You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ga...@apache.org on 2009/10/06 22:36:23 UTC

svn commit: r822486 - in /incubator/aries/trunk/jndi-contrib/jndi-core/src/main/java/org/apache/aries/jndi: DelegateContext.java OSGiObjectFactoryBuilder.java

Author: gawor
Date: Tue Oct  6 20:36:22 2009
New Revision: 822486

URL: http://svn.apache.org/viewvc?rev=822486&view=rev
Log:
merge changes made in revision 821187, 821237, and 821652

Modified:
    incubator/aries/trunk/jndi-contrib/jndi-core/src/main/java/org/apache/aries/jndi/DelegateContext.java
    incubator/aries/trunk/jndi-contrib/jndi-core/src/main/java/org/apache/aries/jndi/OSGiObjectFactoryBuilder.java

Modified: incubator/aries/trunk/jndi-contrib/jndi-core/src/main/java/org/apache/aries/jndi/DelegateContext.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jndi-contrib/jndi-core/src/main/java/org/apache/aries/jndi/DelegateContext.java?rev=822486&r1=822485&r2=822486&view=diff
==============================================================================
--- incubator/aries/trunk/jndi-contrib/jndi-core/src/main/java/org/apache/aries/jndi/DelegateContext.java (original)
+++ incubator/aries/trunk/jndi-contrib/jndi-core/src/main/java/org/apache/aries/jndi/DelegateContext.java Tue Oct  6 20:36:22 2009
@@ -29,8 +29,12 @@
 import javax.naming.NameParser;
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.ModificationItem;
+import javax.naming.directory.SearchControls;
 
-public class DelegateContext implements Context
+public class DelegateContext implements DirContext
 {
   private Hashtable<Object, Object> env = new Hashtable<Object, Object>();
   private Context defaultContext;
@@ -285,4 +289,108 @@
   {
     urlContexts.put(url, ctx);
   }
+  
+  public Attributes getAttributes(Name name) throws NamingException {
+      return ((DirContext)findContext(name)).getAttributes(name);
+  }
+  
+  public Attributes getAttributes(String name) throws NamingException {
+      return ((DirContext)findContext(name)).getAttributes(name);
+  }
+  
+  public Attributes getAttributes(Name name, String[] attrIds) throws NamingException {
+      return ((DirContext)findContext(name)).getAttributes(name, attrIds);
+  }
+  
+  public Attributes getAttributes(String name, String[] attrIds) throws NamingException {
+      return ((DirContext)findContext(name)).getAttributes(name, attrIds);
+  }
+  
+  public void modifyAttributes(Name name, int mod_op, Attributes attrs) throws NamingException {
+      ((DirContext)findContext(name)).modifyAttributes(name, mod_op, attrs);
+  }
+  
+  public void modifyAttributes(String name, int mod_op, Attributes attrs) throws NamingException {
+      ((DirContext)findContext(name)).modifyAttributes(name, mod_op, attrs);
+  }
+  
+  public void modifyAttributes(Name name, ModificationItem[] mods) throws NamingException {
+      ((DirContext)findContext(name)).modifyAttributes(name, mods);
+  }
+  
+  public void modifyAttributes(String name, ModificationItem[] mods) throws NamingException {
+      ((DirContext)findContext(name)).modifyAttributes(name, mods);
+  }
+  
+  public void bind(Name name, Object obj, Attributes attrs) throws NamingException {
+      ((DirContext)findContext(name)).bind(name, obj, attrs);
+  }
+  
+  public void bind(String name, Object obj, Attributes attrs) throws NamingException {
+      ((DirContext)findContext(name)).bind(name, obj, attrs);
+  }
+
+  public void rebind(Name name, Object obj, Attributes attrs) throws NamingException {
+      ((DirContext)findContext(name)).rebind(name, obj, attrs);
+  }
+
+  public void rebind(String name, Object obj, Attributes attrs) throws NamingException {
+      ((DirContext)findContext(name)).rebind(name, obj, attrs);
+  }
+
+  public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException {
+      return ((DirContext)findContext(name)).createSubcontext(name, attrs);
+  }
+
+  public DirContext createSubcontext(String name, Attributes attrs) throws NamingException {
+      return ((DirContext)findContext(name)).createSubcontext(name, attrs);
+  }
+
+  public DirContext getSchema(Name name) throws NamingException {
+      return ((DirContext)findContext(name)).getSchema(name);
+  }
+
+  public DirContext getSchema(String name) throws NamingException {
+      return ((DirContext)findContext(name)).getSchema(name);
+  }
+
+  public DirContext getSchemaClassDefinition(Name name) throws NamingException {
+      return ((DirContext)findContext(name)).getSchemaClassDefinition(name);
+  }
+
+  public DirContext getSchemaClassDefinition(String name) throws NamingException {
+      return ((DirContext)findContext(name)).getSchemaClassDefinition(name);
+  }
+
+  public NamingEnumeration search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException {
+      return ((DirContext)findContext(name)).search(name, matchingAttributes, attributesToReturn);
+  }
+
+  public NamingEnumeration search(String name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException {
+      return ((DirContext)findContext(name)).search(name, matchingAttributes, attributesToReturn);
+  }
+
+  public NamingEnumeration search(Name name, Attributes matchingAttributes) throws NamingException {
+      return ((DirContext)findContext(name)).search(name, matchingAttributes);
+  }
+
+  public NamingEnumeration search(String name, Attributes matchingAttributes) throws NamingException {
+      return ((DirContext)findContext(name)).search(name, matchingAttributes);
+  }
+
+  public NamingEnumeration search(Name name, String filter, SearchControls cons) throws NamingException {
+      return ((DirContext)findContext(name)).search(name, filter, cons);
+  }
+
+  public NamingEnumeration search(String name, String filter, SearchControls cons) throws NamingException {
+      return ((DirContext)findContext(name)).search(name, filter, cons);
+  }
+
+  public NamingEnumeration search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException {
+      return ((DirContext)findContext(name)).search(name, filterExpr, filterArgs, cons);
+  }
+
+  public NamingEnumeration search(String name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException {
+      return ((DirContext)findContext(name)).search(name, filterExpr, filterArgs, cons);
+  }
 }
\ No newline at end of file

Modified: incubator/aries/trunk/jndi-contrib/jndi-core/src/main/java/org/apache/aries/jndi/OSGiObjectFactoryBuilder.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jndi-contrib/jndi-core/src/main/java/org/apache/aries/jndi/OSGiObjectFactoryBuilder.java?rev=822486&r1=822485&r2=822486&view=diff
==============================================================================
--- incubator/aries/trunk/jndi-contrib/jndi-core/src/main/java/org/apache/aries/jndi/OSGiObjectFactoryBuilder.java (original)
+++ incubator/aries/trunk/jndi-contrib/jndi-core/src/main/java/org/apache/aries/jndi/OSGiObjectFactoryBuilder.java Tue Oct  6 20:36:22 2009
@@ -28,6 +28,8 @@
 import javax.naming.Reference;
 import javax.naming.Referenceable;
 import javax.naming.StringRefAddr;
+import javax.naming.directory.Attributes;
+import javax.naming.spi.DirObjectFactory;
 import javax.naming.spi.ObjectFactory;
 import javax.naming.spi.ObjectFactoryBuilder;
 
@@ -35,7 +37,7 @@
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
-public class OSGiObjectFactoryBuilder implements ObjectFactoryBuilder, ObjectFactory
+public class OSGiObjectFactoryBuilder implements ObjectFactoryBuilder, ObjectFactory, DirObjectFactory
 {
   /** The bundle context we use for accessing the SR */
   private static BundleContext context;
@@ -230,4 +232,15 @@
 
     return result;
   }
+  
+  /**
+   * when we get called by DirectoryManager#getObjectInstance if we can't find the object 
+   * instance, we just need to return the passed in refInfo  
+   */
+  public Object getObjectInstance(Object refInfo, Name name, Context nameCtx, 
+                                  Hashtable<?, ?> environment, Attributes attrs) throws Exception {
+      Object result = getObjectInstance(refInfo, name, nameCtx, environment);
+      return result == null ? refInfo : result;
+  }
+
 }
\ No newline at end of file