[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