[jboss-cvs] JBossAS SVN: r76188 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/ejb/jboss/jndipolicy/spi and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jul 24 12:14:53 EDT 2008


Author: ALRubinger
Date: 2008-07-24 12:14:53 -0400 (Thu, 24 Jul 2008)
New Revision: 76188

Added:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/spi/PackagingType.java
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/spi/DeploymentSummary.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/ResolvedJndiNameUnitTestCase.java
Log:
[JBMETA-81] Do not append a deploymentScopeBaseName to a JNDI target unless packaging is an EAR

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java	2008-07-24 14:49:19 UTC (rev 76187)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java	2008-07-24 16:14:53 UTC (rev 76188)
@@ -27,6 +27,7 @@
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.DefaultJndiBindingPolicy;
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.EjbDeploymentSummary;
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.KnownInterfaces;
+import org.jboss.metadata.ejb.jboss.jndipolicy.spi.PackagingType;
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.KnownInterfaces.KnownInterfaceType;
 
 /**
@@ -103,18 +104,18 @@
             {
                // base-name/local(-iface)
                case BUSINESS_LOCAL :
-                  
+
                   if (iface == null)
                      jndiName = baseJndiName + "/" + ifaceType.toSuffix();
                   else
                      jndiName = baseJndiName + "/" + ifaceType.toSuffix() + "-" + iface;
-                  
+
                   break;
-                  
+
                // base-name/remote(-iface) || mappedName
                case BUSINESS_REMOTE :
                case UNKNOWN :
-                  
+
                   JBossEnterpriseBeanMetaData md = summary.getBeanMD();
                   String mappedName = null;
                   if (md.isSession())
@@ -126,10 +127,11 @@
                   {
                      mappedName = md.getMappedName();
                   }
-                  
+
                   // JBMETA-75
                   // Use mappedName if it's specified
-                  if(mappedName!=null && iface==null){
+                  if (mappedName != null && iface == null)
+                  {
                      jndiName = mappedName;
                   }
                   // JBMETA-75
@@ -180,7 +182,7 @@
                      {
                         mappedName = ((JBossSessionBeanMetaData) md).getJndiName();
                      }
-                     else if(md.isEntity())
+                     else if (md.isEntity())
                      {
                         mappedName = ((JBossEntityBeanMetaData) md).getJndiName();
                      }
@@ -197,7 +199,7 @@
          }
 
       }
-      
+
       return jndiName;
    }
 
@@ -234,10 +236,18 @@
          // Use the EJB Name
          baseName.append(summary.getBeanMD().getEjbName());
       }
+      
+      // Determine if packaged in an EAR
+      boolean isEar = false;
+      PackagingType packagingType = summary.getPackagingType();
+      if (packagingType != null)
+      {
+         isEar = packagingType.equals(PackagingType.EAR);
+      }
 
-      // Prepend the deployment scope base name, if defined
+      // Prepend the deployment scope base name, if defined for an EAR
       String deploymentScopeBaseName = summary.getDeploymentScopeBaseName();
-      if (deploymentScopeBaseName != null && deploymentScopeBaseName.trim().length() > 0)
+      if (isEar && deploymentScopeBaseName != null && deploymentScopeBaseName.trim().length() > 0)
       {
          deploymentScopeBaseName = deploymentScopeBaseName.trim();
          baseName.insert(0, '/');
@@ -246,5 +256,4 @@
 
       return baseName.toString();
    }
-
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/spi/DeploymentSummary.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/spi/DeploymentSummary.java	2008-07-24 14:49:19 UTC (rev 76187)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/spi/DeploymentSummary.java	2008-07-24 16:14:53 UTC (rev 76188)
@@ -44,6 +44,10 @@
    private String deploymentName;
    /** The parent deployment base name without a suffix */
    private String deploymentScopeBaseName;
+   /**
+    * The packaging structure used
+    */
+   private PackagingType packagingType;
 
    public DeploymentSummary()
    {
@@ -52,6 +56,7 @@
    {
       setDeploymentName(summary.getDeploymentName());
       setDeploymentScopeBaseName(summary.getDeploymentScopeBaseName());
+      this.setPackagingType(summary.getPackagingType());
    }
 
    public String getDeploymentName()
@@ -72,6 +77,14 @@
       this.deploymentScopeBaseName = deploymentScopeBaseName;
    }
    
+   public PackagingType getPackagingType()
+   {
+      return packagingType;
+   }
+   public void setPackagingType(PackagingType packagingType)
+   {
+      this.packagingType = packagingType;
+   }
    /**
     * @deprecated No longer used, will always return null
     * @return

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/spi/PackagingType.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/spi/PackagingType.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/spi/PackagingType.java	2008-07-24 16:14:53 UTC (rev 76188)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+  *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.ejb.jboss.jndipolicy.spi;
+
+/**
+ * PackagingType
+ * 
+ * Describes a packaging structure used by a deployment 
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public enum PackagingType {
+
+   EAR, JAR, STANDALONE_FILE
+   
+}

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java	2008-07-24 14:49:19 UTC (rev 76187)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java	2008-07-24 16:14:53 UTC (rev 76188)
@@ -35,6 +35,7 @@
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.JbossEnterpriseBeanJndiNameResolver;
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.JbossSessionBeanJndiNameResolver;
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.KnownInterfaces;
+import org.jboss.metadata.ejb.jboss.jndipolicy.spi.PackagingType;
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.KnownInterfaces.KnownInterfaceType;
 import org.jboss.metadata.ejb.spec.BusinessLocalsMetaData;
 import org.jboss.metadata.ejb.spec.BusinessRemotesMetaData;
@@ -91,6 +92,49 @@
       String resolvedDeprecated = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, null);
       assertEquals(expected, resolvedDeprecated);
    }
+   
+   /**
+    * Tests that JNDI Names for an EJB packaged
+    * in a JAR have no "appName" in the base
+    */
+   @SuppressWarnings(value="deprecation")
+   public void testResolvedJndiNameJarPackaging()
+   {
+      // Obtain MD 
+      JBossSessionBeanMetaData beanMD = this.getDecoratedEjbMetaData();
+      JBossMetaData jbossMd = beanMD.getJBossMetaData();
+      DeploymentSummary deploymentSummary = jbossMd.getDeploymentSummary();
+      
+      // Set packaging type to "JAR"
+      deploymentSummary.setPackagingType(PackagingType.JAR);
+      
+      String expectedHome = "testResolvedJndiNameJarPackaging-ejb/home";
+      String expectedRemote = "testResolvedJndiNameJarPackaging-ejb/remote";
+      String expectedLocalHome = "testResolvedJndiNameJarPackaging-ejb/localHome";
+      String expectedLocal = "testResolvedJndiNameJarPackaging-ejb/local";
+      
+      // Resolve
+      String resolvedHome = beanMD.getHomeJndiName();
+      String resolvedRemote = beanMD.getJndiName();
+      String resolvedLocalHome = beanMD.getLocalHomeJndiName();
+      String resolvedLocal = beanMD.getLocalJndiName();
+      
+      // Test
+      assertEquals(expectedHome, resolvedHome);
+      assertEquals(expectedRemote, resolvedRemote);
+      assertEquals(expectedLocalHome, resolvedLocalHome);
+      assertEquals(expectedLocal, resolvedLocal);
+      
+      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
+      String resolvedDeprecatedHome = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, null);
+      assertEquals(expectedHome, resolvedDeprecatedHome);
+      String resolvedDeprecatedRemote = beanMD.determineResolvedJndiName(KnownInterfaces.REMOTE, null);
+      assertEquals(expectedRemote, resolvedDeprecatedRemote);
+      String resolvedDeprecatedLocalHome = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL_HOME, null);
+      assertEquals(expectedLocalHome, resolvedDeprecatedLocalHome);
+      String resolvedDeprecatedLocal = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL, null);
+      assertEquals(expectedLocal, resolvedDeprecatedLocal);
+   }
 
    @SuppressWarnings(value="deprecation")
    public void testResolvedJndiNameWithMappedName()
@@ -504,6 +548,7 @@
       DeploymentSummary deploymentSummary = new DeploymentSummary();
       deploymentSummary.setDeploymentName(name);
       deploymentSummary.setDeploymentScopeBaseName("base");
+      deploymentSummary.setPackagingType(PackagingType.EAR);
       jbossMetaData.setDeploymentSummary(deploymentSummary);
       JBossSessionBeanMetaData sbeanMD = new JBossSessionBeanMetaData();
       sbeanMD.setEjbName(name + "-ejb");
@@ -532,6 +577,7 @@
       DeploymentSummary deploymentSummary = new DeploymentSummary();
       deploymentSummary.setDeploymentName(name);
       deploymentSummary.setDeploymentScopeBaseName("base");
+      deploymentSummary.setPackagingType(PackagingType.EAR);
       jbossMetaData.setDeploymentSummary(deploymentSummary);
       JBossEntityBeanMetaData sbeanMD = new JBossEntityBeanMetaData();
       sbeanMD.setEjbName(name + "-ejb");

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/ResolvedJndiNameUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/ResolvedJndiNameUnitTestCase.java	2008-07-24 14:49:19 UTC (rev 76187)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/ResolvedJndiNameUnitTestCase.java	2008-07-24 16:14:53 UTC (rev 76188)
@@ -31,6 +31,7 @@
 import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.EjbNameJndiBindingPolicy;
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.DeploymentSummary;
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.KnownInterfaces;
+import org.jboss.metadata.ejb.jboss.jndipolicy.spi.PackagingType;
 import org.jboss.metadata.ejb.spec.BusinessLocalsMetaData;
 import org.jboss.metadata.ejb.spec.BusinessRemotesMetaData;
 
@@ -210,7 +211,7 @@
       DeploymentSummary deploymentSummary = new DeploymentSummary();
       deploymentSummary.setDeploymentName(name);
       deploymentSummary.setDeploymentScopeBaseName("base");
-      deploymentSummary.setLoader(getClass().getClassLoader());
+      deploymentSummary.setPackagingType(PackagingType.EAR);
       jbossMetaData.setDeploymentSummary(deploymentSummary);
       JBossSessionBeanMetaData sbeanMD = new JBossSessionBeanMetaData();
       sbeanMD.setEjbName(name+"-ejb");
@@ -236,7 +237,7 @@
       DeploymentSummary deploymentSummary = new DeploymentSummary();
       deploymentSummary.setDeploymentName(name);
       deploymentSummary.setDeploymentScopeBaseName("base");
-      deploymentSummary.setLoader(getClass().getClassLoader());
+      deploymentSummary.setPackagingType(PackagingType.EAR);
       jbossMetaData.setDeploymentSummary(deploymentSummary);
       JBossEntityBeanMetaData sbeanMD = new JBossEntityBeanMetaData();
       sbeanMD.setEjbName(name+"-ejb");




More information about the jboss-cvs-commits mailing list