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