aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/javax/naming/spi
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/javax/naming/spi')
-rw-r--r--libjava/classpath/javax/naming/spi/DirObjectFactory.java56
-rw-r--r--libjava/classpath/javax/naming/spi/DirStateFactory.java83
-rw-r--r--libjava/classpath/javax/naming/spi/DirectoryManager.java243
-rw-r--r--libjava/classpath/javax/naming/spi/InitialContextFactory.java71
-rw-r--r--libjava/classpath/javax/naming/spi/InitialContextFactoryBuilder.java66
-rw-r--r--libjava/classpath/javax/naming/spi/NamingManager.java671
-rw-r--r--libjava/classpath/javax/naming/spi/ObjectFactory.java76
-rw-r--r--libjava/classpath/javax/naming/spi/ObjectFactoryBuilder.java70
-rw-r--r--libjava/classpath/javax/naming/spi/ResolveResult.java182
-rw-r--r--libjava/classpath/javax/naming/spi/Resolver.java62
-rw-r--r--libjava/classpath/javax/naming/spi/StateFactory.java79
-rw-r--r--libjava/classpath/javax/naming/spi/package.html46
12 files changed, 0 insertions, 1705 deletions
diff --git a/libjava/classpath/javax/naming/spi/DirObjectFactory.java b/libjava/classpath/javax/naming/spi/DirObjectFactory.java
deleted file mode 100644
index 47fb7a1..0000000
--- a/libjava/classpath/javax/naming/spi/DirObjectFactory.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/* DirObjectFactory.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package javax.naming.spi;
-
-import java.util.Hashtable;
-
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.directory.Attributes;
-
-/**
- * @author Warren Levy (warrenl@redhat.com)
- * @date June 1, 2001
- */
-public interface DirObjectFactory extends ObjectFactory
-{
- Object getObjectInstance(Object obj, Name name, Context nameCtx,
- Hashtable<?, ?> environment, Attributes attrs)
- throws Exception;
-}
diff --git a/libjava/classpath/javax/naming/spi/DirStateFactory.java b/libjava/classpath/javax/naming/spi/DirStateFactory.java
deleted file mode 100644
index 1c0c21b..0000000
--- a/libjava/classpath/javax/naming/spi/DirStateFactory.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/* DirStateFactory.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package javax.naming.spi;
-
-import java.util.Hashtable;
-
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NamingException;
-import javax.naming.directory.Attributes;
-
-/**
- * @author Warren Levy (warrenl@redhat.com)
- * @date June 1, 2001
- */
-public interface DirStateFactory extends StateFactory
-{
- // Inner class
-
- public static class Result
- {
- private Object obj;
- private Attributes outAttrs;
-
- public Result(Object obj, Attributes outAttrs)
- {
- this.obj = obj;
- this.outAttrs = outAttrs;
- }
-
- public Object getObject()
- {
- return obj;
- }
-
- public Attributes getAttributes()
- {
- return outAttrs;
- }
- }
-
- DirStateFactory.Result getStateToBind(Object obj, Name name,
- Context nameCtx,
- Hashtable<?, ?> environment,
- Attributes inAttrs)
- throws NamingException;
-}
diff --git a/libjava/classpath/javax/naming/spi/DirectoryManager.java b/libjava/classpath/javax/naming/spi/DirectoryManager.java
deleted file mode 100644
index 4abb5f1..0000000
--- a/libjava/classpath/javax/naming/spi/DirectoryManager.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/* DirectoryManager.java --
- Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package javax.naming.spi;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.StringTokenizer;
-
-import javax.naming.CannotProceedException;
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NamingException;
-import javax.naming.RefAddr;
-import javax.naming.Reference;
-import javax.naming.Referenceable;
-import javax.naming.StringRefAddr;
-import javax.naming.directory.Attributes;
-import javax.naming.directory.DirContext;
-
-/**
- * @author Tom Tromey (tromey@redhat.com)
- * @date June 25, 2001
- */
-public class DirectoryManager extends NamingManager
-{
- // Can't instantiate this class.
- DirectoryManager ()
- {
- }
-
- public static DirContext getContinuationDirContext (CannotProceedException c)
- throws NamingException
- {
- return (DirContext) getContinuationContext (c);
- }
-
- // Try to create an object using the factory. Return null on
- // failure.
- private static Object tryCreateObject (ObjectFactory factory,
- Object refInfo,
- Name name,
- Context nameCtx,
- Hashtable environment,
- Attributes attrs)
- throws Exception
- {
- if (factory instanceof DirObjectFactory)
- {
- DirObjectFactory dof = (DirObjectFactory) factory;
- return dof.getObjectInstance (refInfo, name, nameCtx,
- environment, attrs);
- }
- else
- return factory.getObjectInstance (refInfo, name, nameCtx,
- environment);
- }
-
- public static Object getObjectInstance (Object refInfo, Name name,
- Context nameCtx,
- Hashtable<?, ?> environment,
- Attributes attrs)
- throws Exception
- {
- ObjectFactory factory = null;
-
- if (ofb != null)
- factory = ofb.createObjectFactory (refInfo, environment);
- else
- {
- // First see if we have a Reference or a Referenceable. If so
- // we do some special processing.
- Object ref2 = refInfo;
- if (refInfo instanceof Referenceable)
- ref2 = ((Referenceable) refInfo).getReference ();
- if (ref2 instanceof Reference)
- {
- Reference ref = (Reference) ref2;
-
- // If we have a factory class name then we use that.
- String fClass = ref.getFactoryClassName ();
- if (fClass != null)
- {
- // Exceptions here are passed to the caller.
- Class k = Class.forName (fClass);
- factory = (ObjectFactory) k.newInstance ();
- }
- else
- {
- // There's no factory class name. If the address is a
- // StringRefAddr with address type `URL', then we try
- // the URL's context factory.
- Enumeration e = ref.getAll ();
- while (e.hasMoreElements ())
- {
- RefAddr ra = (RefAddr) e.nextElement ();
- if (ra instanceof StringRefAddr
- && "URL".equals (ra.getType ()))
- {
- factory
- = (ObjectFactory) getURLContext (refInfo,
- name,
- nameCtx,
- (String) ra.getContent (),
- environment);
- Object obj = tryCreateObject (factory,
- refInfo,
- name,
- nameCtx,
- environment,
- attrs);
- if (obj != null)
- return obj;
- }
- }
-
- // Have to try the next step.
- factory = null;
- }
- }
-
- // Now look at OBJECT_FACTORIES to find the factory.
- if (factory == null)
- {
- StringTokenizer tokens = getPlusPath (Context.OBJECT_FACTORIES,
- environment, nameCtx);
-
- while (tokens.hasMoreTokens ())
- {
- String klassName = tokens.nextToken ();
- Class k = Class.forName (klassName);
- factory = (ObjectFactory) k.newInstance ();
- Object obj = tryCreateObject (factory, refInfo, name,
- nameCtx, environment, attrs);
- if (obj != null)
- return obj;
- }
-
- // Failure.
- return refInfo;
- }
- }
-
- if (factory == null)
- return refInfo;
- Object obj = tryCreateObject (factory, refInfo, name,
- nameCtx, environment, attrs);
- return obj == null ? refInfo : obj;
- }
-
- public static DirStateFactory.Result getStateToBind (Object obj,
- Name name,
- Context nameCtx,
- Hashtable<?, ?> environment,
- Attributes attrs)
- throws NamingException
- {
- StringTokenizer tokens = getPlusPath (Context.STATE_FACTORIES,
- environment, nameCtx);
- while (tokens.hasMoreTokens ())
- {
- String klassName = tokens.nextToken ();
- try
- {
- Class k = Class.forName (klassName);
- StateFactory factory = (StateFactory) k.newInstance ();
-
- DirStateFactory.Result result = null;
- if (factory instanceof DirStateFactory)
- {
- DirStateFactory dsf = (DirStateFactory) factory;
- result = dsf.getStateToBind (obj, name, nameCtx, environment,
- attrs);
- }
- else
- {
- Object o = factory.getStateToBind (obj, name, nameCtx,
- environment);
- if (o != null)
- result = new DirStateFactory.Result (o, attrs);
- }
- if (result != null)
- return result;
- }
- catch (ClassNotFoundException _1)
- {
- // Ignore it.
- }
- catch (ClassCastException _2)
- {
- // This means that the class we found was not an
- // ObjectFactory or that the factory returned something
- // which was not a Context.
- }
- catch (InstantiationException _3)
- {
- // If we couldn't instantiate the factory we might get
- // this.
- }
- catch (IllegalAccessException _4)
- {
- // Another possibility when instantiating.
- }
- }
-
- return new DirStateFactory.Result (obj, attrs);
- }
-}
diff --git a/libjava/classpath/javax/naming/spi/InitialContextFactory.java b/libjava/classpath/javax/naming/spi/InitialContextFactory.java
deleted file mode 100644
index bd13c6e..0000000
--- a/libjava/classpath/javax/naming/spi/InitialContextFactory.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/* InitialContextFactory.java --
- Copyright (C) 2000, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package javax.naming.spi;
-
-import java.util.Hashtable;
-
-import javax.naming.Context;
-import javax.naming.NamingException;
-
-/**
- * <p>
- * Defines a factory that creates the initial context for the beginning of the
- * name resolution. JNDI allows to specify different implementations of the
- * initial context at runtime.
- * </p>
- * <p>
- * The class, implementing this interface, must be public and have a public
- * parameterless constructor
- * </p>
- */
-public interface InitialContextFactory
-{
- /**
- * Create a new initial context
- *
- * @param environment the properties, used when creating the context. The
- * implementing class will not modify the table nor keep the
- * reference to it. After the method returns, the caller can safely
- * reuse the table for other purposes.
- * @return the new initial context
- * @throws NamingException if the naming exception has occured
- */
- Context getInitialContext (Hashtable<?, ?> environment)
- throws NamingException;
-}
diff --git a/libjava/classpath/javax/naming/spi/InitialContextFactoryBuilder.java b/libjava/classpath/javax/naming/spi/InitialContextFactoryBuilder.java
deleted file mode 100644
index 12ee888..0000000
--- a/libjava/classpath/javax/naming/spi/InitialContextFactoryBuilder.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/* InitialContextFactoryBuilder.java --
- Copyright (C) 2000, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package javax.naming.spi;
-
-import java.util.Hashtable;
-
-import javax.naming.NamingException;
-
-/**
- * Represents the builder that creates instances of the factories that produce
- * initial naming contexts. JNDI allows to specifiy different initial contexts
- * at runtime. The user program can install its own initial context factory
- * builder.
- *
- * @see NamingManager#setInitialContextFactoryBuilder
- */
-public interface InitialContextFactoryBuilder
-{
- /**
- * Create the new initial context factory
- *
- * @param environment the properties, used for creation of the initial
- * context factory. The parameter is owned by the caller: it is safe to reuse
- * the table for other purposes after the method returns.
- * @return the created initial context factory, never null.
- * @throws NamingException on failure
- */
- InitialContextFactory createInitialContextFactory (Hashtable<?, ?> environment)
- throws NamingException;
-}
diff --git a/libjava/classpath/javax/naming/spi/NamingManager.java b/libjava/classpath/javax/naming/spi/NamingManager.java
deleted file mode 100644
index d974513..0000000
--- a/libjava/classpath/javax/naming/spi/NamingManager.java
+++ /dev/null
@@ -1,671 +0,0 @@
-/* NamingManager.java -- Creates contexts and objects
- Copyright (C) 2000, 2001, 2002, 2003, 2004,
- 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package javax.naming.spi;
-
-import gnu.classpath.VMStackWalker;
-
-import gnu.java.lang.CPStringBuilder;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.StringTokenizer;
-
-import javax.naming.CannotProceedException;
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NamingException;
-import javax.naming.NoInitialContextException;
-import javax.naming.RefAddr;
-import javax.naming.Reference;
-import javax.naming.Referenceable;
-import javax.naming.StringRefAddr;
-
-/**
- * Contains methods for creating contexts and objects referred to by
- * location information. The location is specified in the scope of the
- * certain naming or directory service. This class only contais static
- * methods and cannot be instantiated.
- */
-public class NamingManager
-{
- /**
- * The environment property into which getContinuationContext() stores the
- * value of the CannotProceedException parameter. The value of this field
- * is <i>java.naming.spi.CannotProceedException<i>.
- */
- public static final String CPE = "java.naming.spi.CannotProceedException";
-
- private static InitialContextFactoryBuilder icfb;
-
- // Package private so DirectoryManager can access it.
- static ObjectFactoryBuilder ofb;
-
- // This class cannot be instantiated.
- NamingManager ()
- {
- }
-
- /**
- * Checks if the initial context factory builder has been set.
- *
- * @return true if the builder has been set
- *
- * @see #setInitialContextFactoryBuilder(InitialContextFactoryBuilder)
- */
- public static boolean hasInitialContextFactoryBuilder ()
- {
- return icfb != null;
- }
-
- /**
- * Creates the initial context. If the initial object factory builder has
- * been set with {@link #setObjectFactoryBuilder(ObjectFactoryBuilder)},
- * the work is delegated to this builder. Otherwise, the method searches
- * for the property Context.INITIAL_CONTEXT_FACTORY first in the passed
- * table and then in the system properties. The value of this property is
- * uses as a class name to install the context factory. The corresponding
- * class must exist, be public and have the public parameterless constructor.
- *
- * @param environment the properties, used to create the context.
- *
- * @return the created context
- *
- * @throws NoInitialContextException if the initial builder is not set,
- * the property Context.INITIAL_CONTEXT_FACTORY is missing of the
- * class, named by this property, cannot be instantiated.
- * @throws NamingException if throws by the context factory
- */
- public static Context getInitialContext (Hashtable<?, ?> environment)
- throws NamingException
- {
- InitialContextFactory icf = null;
-
- if (icfb != null)
- icf = icfb.createInitialContextFactory(environment);
- else
- {
- String java_naming_factory_initial = null;
- if (environment != null)
- java_naming_factory_initial
- = (String) environment.get (Context.INITIAL_CONTEXT_FACTORY);
- if (java_naming_factory_initial == null)
- java_naming_factory_initial =
- System.getProperty (Context.INITIAL_CONTEXT_FACTORY);
- if (java_naming_factory_initial == null)
- throw new
- NoInitialContextException ("Can't find property: "
- + Context.INITIAL_CONTEXT_FACTORY);
-
- try
- {
- icf = (InitialContextFactory)Class.forName
- (java_naming_factory_initial, true,
- Thread.currentThread().getContextClassLoader())
- .newInstance ();
- }
- catch (Exception exception)
- {
- NoInitialContextException e
- = new NoInitialContextException
- ("Can't load InitialContextFactory class: "
- + java_naming_factory_initial);
- e.setRootCause(exception);
- throw e;
- }
- }
-
- return icf.getInitialContext (environment);
- }
-
- /**
- * <p>
- * Creates the URL context for the given URL scheme id.
- * </p>
- * <p>
- * The class name of the factory that creates the context has the naming
- * pattern scheme-idURLContextFactory. For instance, the factory for the "ftp"
- * sheme should be named "ftpURLContextFactory".
- * </p>
- * <p>
- * The Context.URL_PKG_PREFIXES environment property contains the
- * colon-separated list of the possible package prefixes. The package name is
- * constructed concatenating the package prefix with the scheme id. This
- * property is searched in the passed <i>environment</i> parameter and later
- * in the system properties.
- * </p>
- * <p>
- * If the factory class cannot be found in the specified packages, system will
- * try to use the default internal factory for the given scheme.
- * </p>
- * <p>
- * After the factory is instantiated, its method
- * {@link ObjectFactory#getObjectInstance(Object, Name, Context, Hashtable)}
- * is called to create and return the object instance.
- *
- * @param refInfo passed to the factory
- * @param name passed to the factory
- * @param nameCtx passed to the factory
- * @param scheme the url scheme that must be supported by the given context
- * @param environment the properties for creating the factory and context (may
- * be null)
- * @return the created context
- * @throws NamingException if thrown by the factory when creating the context.
- */
- static Context getURLContext(Object refInfo, Name name, Context nameCtx,
- String scheme, Hashtable<?,?> environment)
- throws NamingException
- {
- // Doc specifies com.sun.jndi.url as the final destination, but we cannot
- // put our classes into such namespace.
- String defaultPrefix = "gnu.javax.naming.jndi.url";
-
- // The final default location, as specified in the documentation.
- String finalPrefix = "com.sun.jndi.url";
-
- CPStringBuilder allPrefixes = new CPStringBuilder();
-
- String prefixes;
- if (environment != null)
- {
- prefixes = (String) environment.get(Context.URL_PKG_PREFIXES);
- if (prefixes != null)
- allPrefixes.append(prefixes);
- }
-
- prefixes = System.getProperty(Context.URL_PKG_PREFIXES);
- if (prefixes != null)
- {
- if (allPrefixes.length() > 0)
- allPrefixes.append(':');
- allPrefixes.append(prefixes);
- }
-
- if (allPrefixes.length() > 0)
- allPrefixes.append(':');
- allPrefixes.append(defaultPrefix);
- allPrefixes.append(':');
- allPrefixes.append(finalPrefix);
-
- scheme = scheme + "." + scheme + "URLContextFactory";
-
- StringTokenizer tokens = new StringTokenizer(allPrefixes.toString(), ":");
- while (tokens.hasMoreTokens())
- {
- String aTry = tokens.nextToken();
- try
- {
- String tryClass = aTry + "." + scheme;
- Class factoryClass = forName(tryClass);
- if (factoryClass != null)
- {
- Object obj;
- try
- {
- ObjectFactory factory = (ObjectFactory) factoryClass.newInstance();
- obj = factory.getObjectInstance(refInfo, name, nameCtx,
- environment);
- Context ctx = (Context) obj;
- if (ctx != null)
- return ctx;
- }
- catch (RuntimeException e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- catch (ClassNotFoundException _1)
- {
- // Ignore it.
- }
- catch (ClassCastException _2)
- {
- // This means that the class we found was not an
- // ObjectFactory or that the factory returned something
- // which was not a Context.
- }
- catch (InstantiationException _3)
- {
- // If we couldn't instantiate the factory we might get
- // this.
- }
- catch (IllegalAccessException _4)
- {
- // Another possibility when instantiating.
- }
- catch (NamingException _5)
- {
- throw _5;
- }
- catch (Exception _6)
- {
- // Anything from getObjectInstance.
- }
- }
-
- return null;
- }
-
- /**
- * Load the class with the given name. This method tries to use the context
- * class loader first. If this fails, it searches for the suitable class
- * loader in the caller stack trace. This method is a central point where all
- * requests to find a class by name are delegated.
- */
- static Class forName(String className)
- {
- try
- {
- return Class.forName(className, true,
- Thread.currentThread().getContextClassLoader());
- }
- catch (ClassNotFoundException nex)
- {
- /**
- * Returns the first user defined class loader on the call stack, or
- * null when no non-null class loader was found.
- */
- Class[] ctx = VMStackWalker.getClassContext();
- for (int i = 0; i < ctx.length; i++)
- {
- // Since we live in a class loaded by the bootstrap
- // class loader, getClassLoader is safe to call without
- // needing to be wrapped in a privileged action.
- ClassLoader cl = ctx[i].getClassLoader();
- try
- {
- if (cl != null)
- return Class.forName(className, true, cl);
- }
- catch (ClassNotFoundException nex2)
- {
- // Try next.
- }
- }
- }
- return null;
- }
-
-
- /**
- * <p>
- * Creates the URL context for the given URL scheme id.
- * </p>
- * <p>
- * The class name of the factory that creates the context has the naming
- * pattern scheme-idURLContextFactory. For instance, the factory for the
- * "ftp" scheme should be named "ftpURLContextFactory".
- * The Context.URL_PKG_PREFIXES environment property contains the
- * colon-separated list of the possible package prefixes. The package name
- * is constructed by concatenating the package prefix with the scheme id.
- * </p>
- * <p>
- * If the factory class cannot be found in the specified packages, the
- * system will try to use the default internal factory for the given scheme.
- * </p>
- * <p>
- * After the factory is instantiated, its method
- * {@link ObjectFactory#getObjectInstance(Object, Name, Context, Hashtable)}
- * is called to create and return the object instance.
- *
- * @param scheme the url scheme that must be supported by the given context
- * @param environment the properties for creating the factory and context
- * (may be null)
- * @return the created context
- * @throws NamingException if thrown by the factory when creating the
- * context.
- */
- public static Context getURLContext (String scheme,
- Hashtable<?, ?> environment)
- throws NamingException
- {
- return getURLContext (null, null, null, scheme, environment);
- }
-
- /**
- * Sets the initial object factory builder.
- *
- * @param builder the builder to set
- *
- * @throws SecurityException if the builder cannot be installed due
- * security restrictions.
- * @throws NamingException if the builder cannot be installed due other
- * reasons
- * @throws IllegalStateException if setting the builder repeatedly
- */
- public static void setObjectFactoryBuilder (ObjectFactoryBuilder builder)
- throws NamingException
- {
- SecurityManager sm = System.getSecurityManager ();
- if (sm != null)
- sm.checkSetFactory ();
- // Once the builder is installed it cannot be replaced.
- if (ofb != null)
- throw new IllegalStateException ("object factory builder already installed");
- if (builder != null)
- ofb = builder;
- }
-
- static StringTokenizer getPlusPath (String property, Hashtable env,
- Context nameCtx)
- throws NamingException
- {
- String path = (String) env.get (property);
- if (nameCtx == null)
- nameCtx = getInitialContext (env);
- String path2 = (String) nameCtx.getEnvironment ().get (property);
- if (path == null)
- path = path2;
- else if (path2 != null)
- path += ":" + path2;
- return new StringTokenizer (path != null ? path : "", ":");
- }
-
- /**
- * <p>Creates an object for the specified name context, environment and
- * referencing context object.</p>
- * <p>
- * If the builder factory is set by
- * {@link #setObjectFactoryBuilder(ObjectFactoryBuilder)}, the call is
- * delegated to that factory. Otherwise, the object is created using the
- * following rules:
- * <ul>
- * <li>If the referencing object (refInfo) contains the factory class name,
- * the object is created by this factory. If the creation fails,
- * the parameter refInfo is returned as the method return value.</li>
- * <li>If the referencing object has no factory class name, and the addresses
- * are StringRefAddrs having the address type "URL", the object is
- * created by the URL context factory. The used factory corresponds the
- * the naming schema of the each URL. If the attempt to create
- * the object this way is not successful, the subsequent rule is
- * tried.</li>
- * <li> If the refInfo is not an instance of Reference or Referencable
- * (for example, null), the object is created by the factories,
- * specified in the Context.OBJECT_FACTORIES property of the
- * environment and the provider resource file, associated with the
- * nameCtx. The value of this property is the colon separated list
- * of the possible factories. If none of the factories can be
- * loaded, the refInfo is returned.
- * </ul>
- * </p>
- * <p>The object factory must be public and have the public parameterless
- * constructor.</p>
- *
- * @param refInfo the referencing object, for which the new object must be
- * created (can be null). If not null, it is usually an instance of
- * the {@link Reference} or {@link Referenceable}.
- * @param name the name of the object. The name is relative to
- * the nameCtx naming context. The value of this parameter can be
- * null if the name is not specified.
- * @param nameCtx the naming context, in which scope the name of the new
- * object is specified. If this parameter is null, the name is
- * specified in the scope of the initial context.
- * @param environment contains additional information for creating the object.
- * This paramter can be null if there is no need to provide any
- * additional information.
- *
- * @return the created object. If the creation fails, in some cases
- * the parameter refInfo may be returned.
- *
- * @throws NamingException if the attempt to name the new object has failed
- * @throws Exception if the object factory throws it. The object factory
- * only throws an exception if it does not want other factories
- * to be used to create the object.
- */
- public static Object getObjectInstance (Object refInfo,
- Name name,
- Context nameCtx,
- Hashtable<?, ?> environment)
- throws Exception
- {
- ObjectFactory factory = null;
-
- if (ofb != null)
- factory = ofb.createObjectFactory (refInfo, environment);
- else
- {
- // First see if we have a Reference or a Referenceable. If so
- // we do some special processing.
- Object ref2 = refInfo;
- if (refInfo instanceof Referenceable)
- ref2 = ((Referenceable) refInfo).getReference ();
- if (ref2 instanceof Reference)
- {
- Reference ref = (Reference) ref2;
-
- // If we have a factory class name then we use that.
- String fClass = ref.getFactoryClassName ();
- if (fClass != null)
- {
- // Exceptions here are passed to the caller.
- Class k = Class.forName (fClass,
- true,
- Thread.currentThread().getContextClassLoader());
- factory = (ObjectFactory) k.newInstance ();
- }
- else
- {
- // There's no factory class name. If the address is a
- // StringRefAddr with address type `URL', then we try
- // the URL's context factory.
- Enumeration e = ref.getAll ();
- while (e.hasMoreElements ())
- {
- RefAddr ra = (RefAddr) e.nextElement ();
- if (ra instanceof StringRefAddr
- && "URL".equals (ra.getType ()))
- {
- factory
- = (ObjectFactory) getURLContext (refInfo,
- name,
- nameCtx,
- (String) ra.getContent (),
- environment);
- Object obj = factory.getObjectInstance (refInfo,
- name,
- nameCtx,
- environment);
- if (obj != null)
- return obj;
- }
- }
-
- // Have to try the next step.
- factory = null;
- }
- }
-
- // Now look at OBJECT_FACTORIES to find the factory.
- if (factory == null)
- {
- StringTokenizer tokens = getPlusPath (Context.OBJECT_FACTORIES,
- environment, nameCtx);
-
- while (tokens.hasMoreTokens ())
- {
- String klassName = tokens.nextToken ();
- Class k = Class.forName (klassName,
- true,
- Thread.currentThread().getContextClassLoader());
- factory = (ObjectFactory) k.newInstance ();
- Object obj = factory.getObjectInstance (refInfo, name,
- nameCtx, environment);
- if (obj != null)
- return obj;
- }
-
- // Failure.
- return refInfo;
- }
- }
-
- if (factory == null)
- return refInfo;
- Object obj = factory.getObjectInstance (refInfo, name,
- nameCtx, environment);
- return obj == null ? refInfo : obj;
- }
-
- /**
- * Sets the initial context factory builder.
- *
- * @param builder the builder to set
- *
- * @throws SecurityException if the builder cannot be installed due
- * security restrictions.
- * @throws NamingException if the builder cannot be installed due other
- * reasons
- * @throws IllegalStateException if setting the builder repeatedly
- *
- * @see #hasInitialContextFactoryBuilder()
- */
- public static void setInitialContextFactoryBuilder
- (InitialContextFactoryBuilder builder)
- throws NamingException
- {
- SecurityManager sm = System.getSecurityManager ();
- if (sm != null)
- sm.checkSetFactory ();
- // Once the builder is installed it cannot be replaced.
- if (icfb != null)
- throw new IllegalStateException ("ctx factory builder already installed");
- if (builder != null)
- icfb = builder;
- }
-
- /**
- * Creates a context in which the context operation must be continued.
- * This method is used by operations on names that span multiple namespaces.
- *
- * @param cpe the exception that triggered this continuation. This method
- * obtains the environment ({@link CannotProceedException#getEnvironment()}
- * and sets the environment property {@link #CPE} = cpe.
- *
- * @return a non null context for continuing the operation
- *
- * @throws NamingException if the naming problems have occured
- */
- public static Context getContinuationContext (CannotProceedException cpe)
- throws NamingException
- {
- Hashtable env = cpe.getEnvironment ();
- if (env != null)
- env.put (CPE, cpe);
-
- // TODO: Check if this implementation matches the API specification
- try
- {
- Object obj = getObjectInstance (cpe.getResolvedObj(),
- cpe.getAltName (),
- cpe.getAltNameCtx (),
- env);
- if (obj != null)
- return (Context) obj;
- }
- catch (Exception _)
- {
- }
-
- // fix stack trace for re-thrown exception (message confusing otherwise)
- cpe.fillInStackTrace();
-
- throw cpe;
- }
-
- /**
- * Get the object state for binding.
- *
- * @param obj the object, for that the binding state must be retrieved. Cannot
- * be null.
- * @param name the name of this object, related to the nameCtx. Can be null if
- * not specified.
- * @param nameCtx the naming context, to that the object name is related. Can
- * be null if the name is related to the initial default context.
- * @param environment the properties for creating the object state. Can be
- * null if no properties are provided.
- * @return the object state for binding, may be null if no changes are
- * returned by the factory
- * @throws NamingException
- */
- public static Object getStateToBind (Object obj, Name name,
- Context nameCtx, Hashtable<?, ?> environment)
- throws NamingException
- {
- StringTokenizer tokens = getPlusPath (Context.STATE_FACTORIES,
- environment, nameCtx);
- while (tokens.hasMoreTokens ())
- {
- String klassName = tokens.nextToken ();
- try
- {
- Class k = Class.forName (klassName,
- true,
- Thread.currentThread().getContextClassLoader());
- StateFactory factory = (StateFactory) k.newInstance ();
- Object o = factory.getStateToBind (obj, name, nameCtx,
- environment);
- if (o != null)
- return o;
- }
- catch (ClassNotFoundException _1)
- {
- // Ignore it.
- }
- catch (ClassCastException _2)
- {
- // This means that the class we found was not an
- // ObjectFactory or that the factory returned something
- // which was not a Context.
- }
- catch (InstantiationException _3)
- {
- // If we couldn't instantiate the factory we might get
- // this.
- }
- catch (IllegalAccessException _4)
- {
- // Another possibility when instantiating.
- }
- }
-
- return obj;
- }
-}
diff --git a/libjava/classpath/javax/naming/spi/ObjectFactory.java b/libjava/classpath/javax/naming/spi/ObjectFactory.java
deleted file mode 100644
index d44d2ff..0000000
--- a/libjava/classpath/javax/naming/spi/ObjectFactory.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/* ObjectFactory.java --
- Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package javax.naming.spi;
-
-import java.util.Hashtable;
-
-import javax.naming.Context;
-import javax.naming.Name;
-
-/**
- * Represents a factory for creating the object. ObjectFactory performs the
- * operation, that is the opposite to the operation, performed by the
- * {@link StateFactory}. Classes, implementing this interface, must be public
- * and have public parameterless constructor.
- */
-public interface ObjectFactory
-{
- /**
- * Creates the object, using the specified name and location information. The
- * call of this method must be thread safe.
- *
- * @param refObj may provide the reference and location information. Can be null.
- * @param name the name of the new object in the scope of the specified naming
- * context. Can be null if the name is not specified.
- * @param nameCtx the context, in which the object name is specified. Can be
- * null if the name is specified in the scope of the default initial
- * context.
- * @param environment the properties, providing additional information on how
- * to create an object. Can be null if not additional information is
- * provided.
- * @return the newly created object or null if the object cannot be created
- * @throws Exception if this factory suggest not to try creating of this
- * object by other alternative factories
- *
- * @see NamingManager#getObjectInstance(Object, Name, Context, Hashtable)
- */
- Object getObjectInstance (Object refObj, Name name, Context nameCtx,
- Hashtable<?, ?> environment)
- throws Exception;
-}
diff --git a/libjava/classpath/javax/naming/spi/ObjectFactoryBuilder.java b/libjava/classpath/javax/naming/spi/ObjectFactoryBuilder.java
deleted file mode 100644
index e0886d1..0000000
--- a/libjava/classpath/javax/naming/spi/ObjectFactoryBuilder.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/* ObjectFactoryBuilder.java -- the builder that creates the object factories.
- Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package javax.naming.spi;
-
-import java.util.Hashtable;
-
-import javax.naming.NamingException;
-import javax.naming.Reference;
-import javax.naming.Referenceable;
-
-/**
- * Represents the builder that creates the object factories.
- *
- * @see NamingManager#setObjectFactoryBuilder(ObjectFactoryBuilder)
- *
- * @author Warren Levy (warrenl@redhat.com)
- */
-public interface ObjectFactoryBuilder
-{
- /**
- * Create a new object using the supplied environment.
- *
- * @param refInfo the referencing object, for which the new object must be
- * created (can be null). If not null, it is usually an instance of
- * the {@link Reference} or {@link Referenceable}.
- * @param environment contains the additional information about the factory
- * being created. Can be null.
- * @return the created object factory. The null is never returned.
- * @throws NamingException
- */
- ObjectFactory createObjectFactory(Object refInfo,
- Hashtable<?, ?> environment)
- throws NamingException;
-}
diff --git a/libjava/classpath/javax/naming/spi/ResolveResult.java b/libjava/classpath/javax/naming/spi/ResolveResult.java
deleted file mode 100644
index 3945b9b..0000000
--- a/libjava/classpath/javax/naming/spi/ResolveResult.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/* ResolveResult.java --
- Copyright (C) 2001, 2004, 2005, 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package javax.naming.spi;
-
-import java.io.Serializable;
-
-import javax.naming.CompositeName;
-import javax.naming.InvalidNameException;
-import javax.naming.Name;
-
-/**
- * Stores the partial resolution of the name. This class contains the
- * object to which part of the name has been resolved and the remaining,
- * unresolved part of this name.
- *
- * @author Warren Levy (warrenl@redhat.com)
- */
-
-public class ResolveResult implements Serializable
-{
- private static final long serialVersionUID = - 4552108072002407559L;
-
- // Serialized fields.
- /**
- * The object, to that part of the name has been resolved.
- */
- protected Object resolvedObj;
-
- /**
- * The remaining, unresolved part of the name.
- */
- protected Name remainingName;
-
- /**
- * Create the unitialised instance with both parts being null.
- */
- protected ResolveResult()
- {
- }
-
- /**
- * Create the initialised instance
- *
- * @param resolved the object, to that the name is partially resolved
- * @param remaining the remaining unresolved part of the name.
- */
- public ResolveResult(Object resolved, String remaining)
- {
- if (resolved == null || remaining == null)
- throw new IllegalArgumentException ();
- resolvedObj = resolved;
- remainingName = new CompositeName ();
- try
- {
- remainingName.add (remaining);
- }
- catch (InvalidNameException _)
- {
- }
- }
-
- /**
- * Create the initialised instance
- *
- * @param resolved the object, to that the name is partially resolved
- * @param remaining the remaining unresolved part of the name.
- */
- public ResolveResult(Object resolved, Name remaining)
- {
- resolvedObj = resolved;
- remainingName = remaining;
- }
-
- /**
- * Get the remaining unresolved part of the name
- *
- * @return the remaining unresolved part of the name.
- */
- public Name getRemainingName()
- {
- return remainingName;
- }
-
- /**
- * Get the object to that the name was partially resolved
- *
- * @return the object, to that the name is partially resolved
- */
- public Object getResolvedObj()
- {
- return resolvedObj;
- }
-
- /**
- * Set the remaining unresolved name.
- *
- * @param name the name being set. The passed parameter is cloned, so the
- * caller can reuse or modify it after the method returns.
- */
- public void setRemainingName(Name name)
- {
- remainingName = (Name) name.clone();
- }
-
- /**
- * Append the name to the end of the resolved name.
- *
- * @param name the name to append
- */
- public void appendRemainingName(Name name)
- {
- try
- {
- remainingName.addAll(name);
- }
- catch (InvalidNameException _)
- {
- }
- }
-
- /**
- * Append the name to the end of the resolved name.
- *
- * @param name the name to append
- */
- public void appendRemainingComponent(String name)
- {
- try
- {
- remainingName.add(name);
- }
- catch (InvalidNameException _)
- {
- }
- }
-
- /**
- * Set the object to that the part of the name has been resolved.
- *
- * @param obj the object, to that the name has been partially resolved.
- */
- public void setResolvedObj(Object obj)
- {
- resolvedObj = obj;
- }
-}
diff --git a/libjava/classpath/javax/naming/spi/Resolver.java b/libjava/classpath/javax/naming/spi/Resolver.java
deleted file mode 100644
index 7a009fa..0000000
--- a/libjava/classpath/javax/naming/spi/Resolver.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Resolver.java --
- Copyright (C) 2001, 2005, 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package javax.naming.spi;
-
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NamingException;
-
-/**
- * <p>Represents the object, capable for the at least partial name resolution.
- * The object is not necessay capable for the complete name resolution and
- * need not implement the {@link Context}.</p>
- * <p>
- * Both passed parameters and returned results are owned by the caller.</p>
- *
- * @author Warren Levy (warrenl@redhat.com)
- */
-public interface Resolver
-{
- ResolveResult resolveToClass(Name name,
- Class<? extends Context> contextType)
- throws NamingException;
- ResolveResult resolveToClass(String name,
- Class<? extends Context> contextType)
- throws NamingException;
-}
diff --git a/libjava/classpath/javax/naming/spi/StateFactory.java b/libjava/classpath/javax/naming/spi/StateFactory.java
deleted file mode 100644
index d674803..0000000
--- a/libjava/classpath/javax/naming/spi/StateFactory.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/* StateFactory.java --
- Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package javax.naming.spi;
-
-import java.util.Hashtable;
-
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NamingException;
-
-/**
- * Represents a factory, producing the object states for binding. The operation,
- * performed by this factory, is the reverse operation with related to the
- * operation, performed by the {@link ObjectFactory}. Classes, implementing
- * this interface, must be public and have public parameterless constructor.
- *
- * @see DirStateFactory
- * @see ObjectFactory
- * @author Warren Levy (warrenl@redhat.com)
- */
-public interface StateFactory
-{
- /**
- * Get the object state for binding.
- *
- * @param obj the object, for that the binding state must be retrieved. Cannot
- * be null.
- * @param name the name of this object, related to the nameCtx. Can be null if
- * not specified.
- * @param nameCtx the naming context, to that the object name is related. Can
- * be null if the name is related to the initial default context.
- * @param environment the properties for creating the object state. Can be
- * null if no properties are provided.
- * @return the object state for binding, may be null if no changes are
- * returned by the factory
- * @throws NamingException
- *
- * @see NamingManager#getStateToBind
- * @see DirectoryManager#getStateToBind
- */
- Object getStateToBind(Object obj, Name name, Context nameCtx,
- Hashtable<?, ?> environment) throws NamingException;
-}
diff --git a/libjava/classpath/javax/naming/spi/package.html b/libjava/classpath/javax/naming/spi/package.html
deleted file mode 100644
index b55e97a..0000000
--- a/libjava/classpath/javax/naming/spi/package.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<!-- package.html - describes classes in javax.naming.spi package.
- Copyright (C) 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. -->
-
-<html>
-<head><title>GNU Classpath - javax.naming.spi</title></head>
-
-<body>
-<p></p>
-
-</body>
-</html>