[jboss-cvs] JBossAS SVN: r75953 - in trunk: testsuite/src/main/org/jboss/test/refs/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jul 17 07:40:29 EDT 2008


Author: wolfc
Date: 2008-07-17 07:40:29 -0400 (Thu, 17 Jul 2008)
New Revision: 75953

Modified:
   trunk/server/src/main/org/jboss/deployment/plugin/MappedDeploymentEndpointResolver.java
   trunk/testsuite/src/main/org/jboss/test/refs/test/MappedResolverUnitTestCase.java
Log:
Search for ejbs at application level

Modified: trunk/server/src/main/org/jboss/deployment/plugin/MappedDeploymentEndpointResolver.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/plugin/MappedDeploymentEndpointResolver.java	2008-07-17 10:08:19 UTC (rev 75952)
+++ trunk/server/src/main/org/jboss/deployment/plugin/MappedDeploymentEndpointResolver.java	2008-07-17 11:40:29 UTC (rev 75953)
@@ -23,11 +23,9 @@
 
 import java.util.Map;
 
-import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.deployment.dependency.ContainerDependencyMetaData;
 import org.jboss.deployment.spi.DeploymentEndpointResolver;
 import org.jboss.deployment.spi.EndpointInfo;
-import org.jboss.deployment.spi.EndpointType;
 import org.jboss.logging.Logger;
 
 /**
@@ -124,7 +122,25 @@
       if(cdmd != null)
       {
          info = new EndpointInfo(unitPath, endpointName, type);
+         return info;
       }
+      
+      // It could not be found in the unit itself, let's search globally
+      if(ref.indexOf('#') == -1)
+      {
+         // See MappedReferenceMetaDataResolverDeployer.mapEjbs
+         key = "ejb/" + ref;
+         
+         String ejbCompID = endpointAlternateMap.get(key);
+         if(ejbCompID != null)
+         {
+            cdmd = endpointMap.get(ejbCompID);
+            if(cdmd == null)
+               throw new IllegalStateException("endpoint mapping is corrupt, can't find '" + ejbCompID + "' in " + endpointMap);
+            info = new EndpointInfo(cdmd.getDeploymentPath(), cdmd.getComponentName(), type);
+            return info;
+         }
+      }
       else
       {
          log.debug("Failed to find mapping for ref: "+ref+" path: "+vfsContext);

Modified: trunk/testsuite/src/main/org/jboss/test/refs/test/MappedResolverUnitTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/refs/test/MappedResolverUnitTestCase.java	2008-07-17 10:08:19 UTC (rev 75952)
+++ trunk/testsuite/src/main/org/jboss/test/refs/test/MappedResolverUnitTestCase.java	2008-07-17 11:40:29 UTC (rev 75953)
@@ -24,14 +24,14 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import junit.framework.TestCase;
+
 import org.jboss.deployment.dependency.ContainerDependencyMetaData;
 import org.jboss.deployment.plugin.MappedDeploymentEndpointResolver;
 import org.jboss.deployment.spi.EndpointInfo;
 import org.jboss.deployment.spi.EndpointType;
 import org.jboss.test.refs.common.EjbLinkIF;
 
-import junit.framework.TestCase;
-
 /**
  * Tests of the MappedDeploymentEndpointResolver
  * 
@@ -59,6 +59,9 @@
       // Add ejb mappings to ejb1.jar
       endpointMap.put("ejb/ejb1.jar#Ejb1InJar1", new ContainerDependencyMetaData("Ejb1InJar1", "Ejb1InJar1", "ejb1.jar"));
       endpointMap.put("ejb/ejb1.jar#Ejb2InJar1", new ContainerDependencyMetaData("Ejb2InJar1", "Ejb2InJar1", "ejb1.jar"));
+      // the alternate mapping (See MappedReferenceMetaDataResolverDeployer.mapEjbs)
+      endpointAlternateMap.put("ejb/Ejb1InJar1", "ejb/ejb1.jar#Ejb1InJar1");
+      endpointAlternateMap.put("ejb/Ejb2InJar1", "ejb/ejb1.jar#Ejb2InJar1");
       // A business-local mapping for Ejb1InJar1
       endpointAlternateMap.put("ejb/ejb1.jar@"+EjbLinkIF.class.getName(), "ejb/ejb1.jar#Ejb1InJar1");
       EndpointInfo info = resolver.getEndpointInfo("Ejb1InJar1", EndpointType.EJB, "ejb1.jar");
@@ -75,5 +78,12 @@
       info = resolver.getEndpointInfo(EjbLinkIF.class, EndpointType.EJB, "ejb1.jar");
       assertNotNull(info);
       assertEquals("Ejb1InJar1", info.getName());
-      assertEquals("ejb1.jar", info.getPathName());   }
+      assertEquals("ejb1.jar", info.getPathName());
+      
+      // Test finding a bean with only a bean name
+      info = resolver.getEndpointInfo("Ejb2InJar1", EndpointType.EJB, "ejb2.jar");
+      assertNotNull(info);
+      assertEquals("Ejb2InJar1", info.getName());
+      assertEquals("ejb1.jar", info.getPathName());
+   }
 }




More information about the jboss-cvs-commits mailing list