[jboss-cvs] JBossAS SVN: r79235 - projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Oct 7 18:22:19 EDT 2008


Author: ALRubinger
Date: 2008-10-07 18:22:19 -0400 (Tue, 07 Oct 2008)
New Revision: 79235

Modified:
   projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiSessionRegistrarBase.java
Log:
[EJBTHREE-1515] Bind every explicit JNDI Binding

Modified: projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiSessionRegistrarBase.java
===================================================================
--- projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiSessionRegistrarBase.java	2008-10-07 22:21:45 UTC (rev 79234)
+++ projects/ejb3/trunk/proxy/src/main/java/org/jboss/ejb3/proxy/jndiregistrar/JndiSessionRegistrarBase.java	2008-10-07 22:22:19 UTC (rev 79235)
@@ -37,7 +37,6 @@
 import org.jboss.aop.Dispatcher;
 import org.jboss.ejb3.common.registrar.spi.DuplicateBindException;
 import org.jboss.ejb3.common.registrar.spi.Ejb3RegistrarLocator;
-import org.jboss.ejb3.common.registrar.spi.NotBoundException;
 import org.jboss.ejb3.common.string.StringUtils;
 import org.jboss.ejb3.proxy.factory.ProxyFactory;
 import org.jboss.ejb3.proxy.factory.session.SessionProxyFactory;
@@ -52,7 +51,6 @@
 import org.jboss.metadata.ejb.spec.BusinessRemotesMetaData;
 import org.jboss.naming.Util;
 import org.jboss.remoting.InvokerLocator;
-import org.jboss.remoting.transport.Connector;
 
 /**
  * JndiSessionRegistrarBase
@@ -216,6 +214,16 @@
                remoteBinding = bindings.get(0);
                url = remoteBinding.getClientBindUrl();
             }
+            // No bindings specified
+            else
+            {
+               // Create some stub objects
+               //FIXME Hacky
+               bindings = new ArrayList<RemoteBindingMetaData>();
+               smd.setRemoteBindings(bindings);
+               remoteBinding = new RemoteBindingMetaData();
+               smd.getRemoteBindings().add(remoteBinding);
+            }
          }
          // The bindings were empty
          catch (IndexOutOfBoundsException ioobe)
@@ -226,12 +234,13 @@
          }
 
          // If no explicit Client Bind URL is specified
-         if (url == null || url.trim().equals(""))
+         if (url == null || url.trim().length()==0)
          {
             // Use the binding on the EJB3 Remoting Connector
             url = ProxyRemotingUtils.getDefaultClientBinding();
             remoteBinding.setClientBindUrl(url);
          }
+         
          // Create and register a remote proxy factory
          String remoteProxyFactoryKey = this.getProxyFactoryRegistryKey(smd, false);
          SessionProxyFactory factory = this.createRemoteProxyFactory(remoteProxyFactoryKey, containerName,
@@ -312,7 +321,30 @@
                + defaultRemoteAddress + "\"");
 
          bindingSet.addDefaultRemoteBinding(new JndiReferenceBinding(defaultRemoteAddress, defaultRemoteRef));
+         
+         /*
+          * Bind all explicitly-declared remote bindings
+          */
+         
+         // For each of the explicitly-defined @RemtoeBindings
+         List<RemoteBindingMetaData> remoteBindings = smd.getRemoteBindings();
+         for (RemoteBindingMetaData binding : remoteBindings)
+         {
+            // Get the defined JNDI Name
+            String jndiName = binding.getJndiName();
 
+            // If the JNDI Name is defined
+            if (jndiName != null && jndiName.trim().length() > 0)
+            {
+               // And if it's not the default remote binding
+               if (!jndiName.equals(defaultRemoteAddress))
+               {
+                  // Add the binding
+                  bindingSet.addDefaultRemoteBinding(new JndiReferenceBinding(jndiName, defaultRemoteRef));
+               }
+            }
+         }
+
          // Bind ObjectFactory specific to each Remote Business Interface
          if (businessRemotes != null)
          {




More information about the jboss-cvs-commits mailing list