[jboss-cvs] JBossAS SVN: r76242 - in projects/metadata/tags: 1.0.0.Beta32 and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Jul 26 02:17:46 EDT 2008


Author: ALRubinger
Date: 2008-07-26 02:17:46 -0400 (Sat, 26 Jul 2008)
New Revision: 76242

Added:
   projects/metadata/tags/1.0.0.Beta32/
   projects/metadata/tags/1.0.0.Beta32/pom.xml
   projects/metadata/tags/1.0.0.Beta32/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java
   projects/metadata/tags/1.0.0.Beta32/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java
Removed:
   projects/metadata/tags/1.0.0.Beta32/pom.xml
   projects/metadata/tags/1.0.0.Beta32/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java
   projects/metadata/tags/1.0.0.Beta32/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java
Log:
[maven-release-plugin]  copy for tag 1.0.0.Beta32

Copied: projects/metadata/tags/1.0.0.Beta32 (from rev 76238, projects/metadata/trunk)

Deleted: projects/metadata/tags/1.0.0.Beta32/pom.xml
===================================================================
--- projects/metadata/trunk/pom.xml	2008-07-26 01:27:58 UTC (rev 76238)
+++ projects/metadata/tags/1.0.0.Beta32/pom.xml	2008-07-26 06:17:46 UTC (rev 76242)
@@ -1,167 +0,0 @@
-<!--
-  vi:ts=2:sw=2:expandtab
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss</groupId>
-    <artifactId>jboss-parent</artifactId>
-    <version>4.0.CR1</version>
-  </parent>
-  <groupId>org.jboss.metadata</groupId>
-  <artifactId>jboss-metadata</artifactId>
-  <packaging>jar</packaging>
-  <version>1.0.0-SNAPSHOT</version>
-  <name>JBoss Metadata</name>
-  <url>http://www.jboss.org</url>
-  <description>The common JavaEE metadata classes</description>
-  <scm>
-    <connection>scm:svn:http://anonsvn.jboss.org/repos/jbossas/projects/metadata/trunk/</connection>
-    <developerConnection>scm:svn:https://svn.jboss.org/repos/jbossas/projects/metadata/trunk/</developerConnection>
-  </scm>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.4.3</version>
-        <configuration>
-          <printSummary>true</printSummary>
-          <disableXmlReport>false</disableXmlReport>
-          <redirectTestOutputToFile>true</redirectTestOutputToFile>
-          <includes>
-            <include>**/*TestCase.java</include>
-          </includes>
-        </configuration>
-      </plugin>      
-    </plugins>
-  </build>
-
-  <!-- 
-    Eclipse settings have been removed from parent. This needs to be
-    done via an eclipse profile.
-    http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4085896#4085896 
-    -->
-  <profiles>
-    <profile>
-      <id>eclipse</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-eclipse-plugin</artifactId>
-            <configuration>
-              <downloadSources>true</downloadSources>
-              <buildOutputDirectory>target/eclipse-classes</buildOutputDirectory>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-
-  <!-- Compile Dependencies -->
-  <dependencies>
-
-    <dependency>
-      <groupId>org.jboss.logging</groupId>
-      <artifactId>jboss-logging-spi</artifactId>
-      <version>2.0.5.GA</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.jboss</groupId>
-      <artifactId>jboss-common-core</artifactId>
-      <version>2.2.7.GA</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-ext-api</artifactId>
-      <version>0.4</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.jboss.javaee</groupId>
-      <artifactId>jboss-ejb-api</artifactId>
-      <version>3.0.0.CR1</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.jboss.javaee</groupId>
-      <artifactId>jboss-jms-api</artifactId>
-      <version>1.1.0.CR1</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.javaee</groupId>
-      <artifactId>jboss-persistence-api</artifactId>
-      <version>3.0.0.CR1</version>
-    </dependency>
-      
-    <dependency>
-      <groupId>org.jboss.javaee</groupId>
-      <artifactId>jboss-transaction-api</artifactId>
-      <version>1.0.1.CR1</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.jboss.ws</groupId>
-      <artifactId>jbossws-spi</artifactId>
-      <version>1.0.2.GA</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.jboss</groupId>
-      <artifactId>jboss-jaxws</artifactId>
-      <version>2.0.1.GA</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss</groupId>
-      <artifactId>jbossxb</artifactId>
-      <version>2.0.0.CR9</version>
-      <exclusions>
-        <exclusion>
-          <groupId>jboss</groupId>
-          <artifactId>jboss-common-logging-spi</artifactId>
-        </exclusion>        
-      </exclusions>       
-    </dependency>
-    
-    <dependency>
-      <groupId>org.jboss</groupId>
-      <artifactId>jboss-vfs</artifactId>
-      <version>2.0.0.Beta18</version>    
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss</groupId>
-      <artifactId>jboss-mdr</artifactId>
-      <version>2.0.0.Beta15</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>javax.xml.bind</groupId>
-      <artifactId>jaxb-api</artifactId>
-      <version>2.1</version>    
-    </dependency>
-    
-    <!-- Test Dependencies -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.jboss.test</groupId>
-      <artifactId>jboss-test</artifactId>
-      <version>1.1.0.GA</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-</project>

Copied: projects/metadata/tags/1.0.0.Beta32/pom.xml (from rev 76241, projects/metadata/trunk/pom.xml)
===================================================================
--- projects/metadata/tags/1.0.0.Beta32/pom.xml	                        (rev 0)
+++ projects/metadata/tags/1.0.0.Beta32/pom.xml	2008-07-26 06:17:46 UTC (rev 76242)
@@ -0,0 +1,167 @@
+<!--
+  vi:ts=2:sw=2:expandtab
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss</groupId>
+    <artifactId>jboss-parent</artifactId>
+    <version>4.0.CR1</version>
+  </parent>
+  <groupId>org.jboss.metadata</groupId>
+  <artifactId>jboss-metadata</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0.0.Beta32</version>
+  <name>JBoss Metadata</name>
+  <url>http://www.jboss.org</url>
+  <description>The common JavaEE metadata classes</description>
+  <scm>
+    <connection>scm:svn:http://anonsvn.jboss.org/repos/jbossas/projects/metadata/tags/1.0.0.Beta32</connection>
+    <developerConnection>scm:svn:https://svn.jboss.org/repos/jbossas/projects/metadata/tags/1.0.0.Beta32</developerConnection>
+  </scm>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.4.3</version>
+        <configuration>
+          <printSummary>true</printSummary>
+          <disableXmlReport>false</disableXmlReport>
+          <redirectTestOutputToFile>true</redirectTestOutputToFile>
+          <includes>
+            <include>**/*TestCase.java</include>
+          </includes>
+        </configuration>
+      </plugin>      
+    </plugins>
+  </build>
+
+  <!-- 
+    Eclipse settings have been removed from parent. This needs to be
+    done via an eclipse profile.
+    http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4085896#4085896 
+    -->
+  <profiles>
+    <profile>
+      <id>eclipse</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-eclipse-plugin</artifactId>
+            <configuration>
+              <downloadSources>true</downloadSources>
+              <buildOutputDirectory>target/eclipse-classes</buildOutputDirectory>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+
+  <!-- Compile Dependencies -->
+  <dependencies>
+
+    <dependency>
+      <groupId>org.jboss.logging</groupId>
+      <artifactId>jboss-logging-spi</artifactId>
+      <version>2.0.5.GA</version>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss</groupId>
+      <artifactId>jboss-common-core</artifactId>
+      <version>2.2.7.GA</version>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-ext-api</artifactId>
+      <version>0.4</version>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.javaee</groupId>
+      <artifactId>jboss-ejb-api</artifactId>
+      <version>3.0.0.CR1</version>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.javaee</groupId>
+      <artifactId>jboss-jms-api</artifactId>
+      <version>1.1.0.CR1</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.javaee</groupId>
+      <artifactId>jboss-persistence-api</artifactId>
+      <version>3.0.0.CR1</version>
+    </dependency>
+      
+    <dependency>
+      <groupId>org.jboss.javaee</groupId>
+      <artifactId>jboss-transaction-api</artifactId>
+      <version>1.0.1.CR1</version>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.ws</groupId>
+      <artifactId>jbossws-spi</artifactId>
+      <version>1.0.2.GA</version>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss</groupId>
+      <artifactId>jboss-jaxws</artifactId>
+      <version>2.0.1.GA</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss</groupId>
+      <artifactId>jbossxb</artifactId>
+      <version>2.0.0.CR9</version>
+      <exclusions>
+        <exclusion>
+          <groupId>jboss</groupId>
+          <artifactId>jboss-common-logging-spi</artifactId>
+        </exclusion>        
+      </exclusions>       
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss</groupId>
+      <artifactId>jboss-vfs</artifactId>
+      <version>2.0.0.Beta18</version>    
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss</groupId>
+      <artifactId>jboss-mdr</artifactId>
+      <version>2.0.0.Beta15</version>
+    </dependency>
+    
+    <dependency>
+      <groupId>javax.xml.bind</groupId>
+      <artifactId>jaxb-api</artifactId>
+      <version>2.1</version>    
+    </dependency>
+    
+    <!-- Test Dependencies -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.test</groupId>
+      <artifactId>jboss-test</artifactId>
+      <version>1.1.0.GA</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+</project>

Deleted: projects/metadata/tags/1.0.0.Beta32/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-26 01:27:58 UTC (rev 76238)
+++ projects/metadata/tags/1.0.0.Beta32/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java	2008-07-26 06:17:46 UTC (rev 76242)
@@ -1,281 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt 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.plugins;
-
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-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;
-
-/**
- * A basic implementation of DefaultJndiBindingPolicy that uses a base jndi
- * name and generates the following from that:
- * getDefaultLocalHomeJndiName : baseJndiName + "/" + KnownInterfaces.LOCAL_HOME
- * getDefaultLocalJndiName : baseJndiName + "/" + KnownInterfaces.LOCAL
- * getDefaultRemoteHomeJndiName : baseJndiName + "/" + KnownInterfaces.HOME
- * getDefaultRemoteJndiName : baseJndiName + "/" + KnownInterfaces.REMOTE
- * getJndiName : baseJndiName
- * getJndiName(String iface) : baseJndiName + "/" + iface (if iface is not in KnownInterfaces)
- * 
- * @author Scott.Stark at jboss.org
- * @version $Revision:$
- */
-public class BasicJndiBindingPolicy implements DefaultJndiBindingPolicy
-{
-
-   private static final long serialVersionUID = 1L;
-
-   public String getDefaultLocalHomeJndiName(EjbDeploymentSummary summary)
-   {
-      String baseJndiName = this.getBaseJndiName(summary);
-      return baseJndiName + "/" + KnownInterfaces.LOCAL_HOME;
-   }
-
-   public String getDefaultLocalJndiName(EjbDeploymentSummary summary)
-   {
-      String baseJndiName = this.getBaseJndiName(summary);
-      return baseJndiName + "/" + KnownInterfaces.LOCAL;
-   }
-
-   public String getDefaultRemoteHomeJndiName(EjbDeploymentSummary summary)
-   {
-      String baseJndiName = this.getBaseJndiName(summary);
-      return baseJndiName + "/" + KnownInterfaces.HOME;
-   }
-
-   public String getDefaultRemoteJndiName(EjbDeploymentSummary summary)
-   {
-      String baseJndiName = this.getBaseJndiName(summary);
-      return baseJndiName + "/" + KnownInterfaces.REMOTE;
-   }
-
-   public String getJndiName(EjbDeploymentSummary summary)
-   {
-      String baseJndiName = this.getBaseJndiName(summary);
-      return baseJndiName;
-   }
-
-   public String getJndiName(EjbDeploymentSummary summary, String iface, KnownInterfaceType ifaceType)
-   {
-      String jndiName = null;
-      if (KnownInterfaces.isKnownInterface(iface))
-         iface = null;
-
-      String baseJndiName = this.getBaseJndiName(summary);
-
-      if (ifaceType == KnownInterfaceType.UNKNOWN)
-      {
-         if (iface == null)
-            jndiName = baseJndiName;
-         else
-            jndiName = baseJndiName + "/" + iface;
-      }
-      else
-      {
-         boolean is3x = summary.getBeanMD().getJBossMetaData().isEJB3x();
-
-         if (is3x)
-         {
-            // EJB 3
-            switch (ifaceType)
-            {
-               // 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())
-                  {
-                     mappedName = ((JBossSessionBeanMetaData) md).getJndiName();
-                  }
-                  String setMappedName = md.getMappedName();
-                  if (setMappedName != null && setMappedName.trim().length() > 0)
-                  {
-                     mappedName = md.getMappedName();
-                  }
-
-                  // JBMETA-75
-                  // Use mappedName if it's specified
-                  if (mappedName != null && iface == null)
-                  {
-                     jndiName = mappedName;
-                  }
-                  // JBMETA-75
-                  // Fall back on base JNDI Name + type suffix
-                  else if (iface == null)
-                     jndiName = baseJndiName + "/" + ifaceType.toSuffix();
-                  else
-                     jndiName = baseJndiName + "/" + ifaceType.toSuffix() + "-" + iface;
-                  break;
-               case LOCAL_HOME :
-                  // base-name / (local|remote)Home
-                  jndiName = baseJndiName + "/" + ifaceType.toSuffix();
-                  break;
-               case REMOTE_HOME :
-                  
-                  /*
-                   * First ensure that the Home binding has not been explicitly-defined
-                   * (JBMETA-82)
-                   */
-                  
-                  // Obtain the MD
-                  JBossEnterpriseBeanMetaData beanMd = summary.getBeanMD();
-
-                  // If a Session Bean
-                  if (beanMd.isSession())
-                  {
-                     JBossSessionBeanMetaData smd = (JBossSessionBeanMetaData) beanMd;
-                     String explicitHomeJndiName = smd.getHomeJndiName();
-                     // If explicitly-defined
-                     if (explicitHomeJndiName != null && explicitHomeJndiName.length() > 0)
-                     {
-                        jndiName = explicitHomeJndiName;
-                        break;
-                     }
-                  }
-                  
-                  // base-name / (local|remote)Home
-                  jndiName = baseJndiName + "/" + ifaceType.toSuffix();
-                  break;
-            }
-         }
-         else
-         {
-            // EJB 2.x
-            switch (ifaceType)
-            {
-               // The local home jndi name (same for getLocalJndiName and getLocalHomeJndiName)
-               case BUSINESS_LOCAL :
-               case LOCAL_HOME :
-                  // Use the bean local jndi name or a generated name for ejb2.x local homes 
-                  jndiName = summary.getBeanMD().getLocalJndiName();
-                  if (jndiName != null && jndiName.trim().length() > 0)
-                  {
-                     return jndiName;
-                  }
-                  String ejbName = summary.getBeanMD().getEjbName();
-                  jndiName = "local/" + ejbName + '@' + System.identityHashCode(ejbName);
-                  break;
-
-               // The home jndi name (same for getJndiName and getHomeJndiName) 
-               case BUSINESS_REMOTE :
-               case REMOTE_HOME :
-                  // Don't append the iface suffix for ejb2.x homes
-                  // JBMETA-79, use any explicit jndi-name/mapped-name
-                  JBossEnterpriseBeanMetaData md = summary.getBeanMD();
-                  String mappedName = md.getMappedName();
-                  if (mappedName == null || mappedName.length() == 0)
-                  {
-                     if (md.isSession())
-                     {
-                        mappedName = ((JBossSessionBeanMetaData) md).getJndiName();
-                     }
-                     else if (md.isEntity())
-                     {
-                        mappedName = ((JBossEntityBeanMetaData) md).getJndiName();
-                     }
-                  }
-                  jndiName = mappedName;
-                  if (jndiName != null && jndiName.trim().length() > 0)
-                  {
-                     return jndiName;
-                  }
-                  // Fallback to the deployment summary base name
-                  jndiName = baseJndiName;
-                  break;
-            }
-         }
-
-      }
-
-      return jndiName;
-   }
-
-   private String getBaseJndiName(EjbDeploymentSummary summary)
-   {
-      StringBuffer baseName = new StringBuffer();
-
-      JBossEnterpriseBeanMetaData md = summary.getBeanMD();
-      assert md != null : JBossEnterpriseBeanMetaData.class.getSimpleName() + " is not set for " + summary;
-
-      //TODO Ugly, should be using polymorphism not runtime type checks w/ casting
-      if (md.isSession())
-      {
-         assert md instanceof JBossSessionBeanMetaData : "Metadata reports as Session Bean but is not assignable to "
-               + JBossSessionBeanMetaData.class.getName();
-         JBossSessionBeanMetaData smd = (JBossSessionBeanMetaData) md;
-         baseName.append(smd.getEjbName());
-      }
-      else if (md.isEntity())
-      {
-         if (baseName == null || baseName.length() == 0)
-         {
-            String jndiName = ((JBossEntityBeanMetaData) summary.getBeanMD()).getJndiName();
-            if (jndiName != null && jndiName.length() > 0)
-            {
-               baseName.append(jndiName.trim());
-            }
-         }
-      }
-
-      // Still no baseName
-      if (baseName == null || baseName.length() == 0)
-      {
-         // 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 for an EAR
-      String deploymentScopeBaseName = summary.getDeploymentScopeBaseName();
-      if (isEar && deploymentScopeBaseName != null && deploymentScopeBaseName.trim().length() > 0)
-      {
-         deploymentScopeBaseName = deploymentScopeBaseName.trim();
-         baseName.insert(0, '/');
-         baseName.insert(0, deploymentScopeBaseName);
-      }
-
-      return baseName.toString();
-   }
-}

Copied: projects/metadata/tags/1.0.0.Beta32/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java (from rev 76240, projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java)
===================================================================
--- projects/metadata/tags/1.0.0.Beta32/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java	                        (rev 0)
+++ projects/metadata/tags/1.0.0.Beta32/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java	2008-07-26 06:17:46 UTC (rev 76242)
@@ -0,0 +1,301 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt 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.plugins;
+
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+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;
+
+/**
+ * A basic implementation of DefaultJndiBindingPolicy that uses a base jndi
+ * name and generates the following from that:
+ * getDefaultLocalHomeJndiName : baseJndiName + "/" + KnownInterfaces.LOCAL_HOME
+ * getDefaultLocalJndiName : baseJndiName + "/" + KnownInterfaces.LOCAL
+ * getDefaultRemoteHomeJndiName : baseJndiName + "/" + KnownInterfaces.HOME
+ * getDefaultRemoteJndiName : baseJndiName + "/" + KnownInterfaces.REMOTE
+ * getJndiName : baseJndiName
+ * getJndiName(String iface) : baseJndiName + "/" + iface (if iface is not in KnownInterfaces)
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision:$
+ */
+public class BasicJndiBindingPolicy implements DefaultJndiBindingPolicy
+{
+
+   private static final long serialVersionUID = 1L;
+   
+   private static final Logger log = Logger.getLogger(BasicJndiBindingPolicy.class);
+
+   public String getDefaultLocalHomeJndiName(EjbDeploymentSummary summary)
+   {
+      String baseJndiName = this.getBaseJndiName(summary);
+      return baseJndiName + "/" + KnownInterfaces.LOCAL_HOME;
+   }
+
+   public String getDefaultLocalJndiName(EjbDeploymentSummary summary)
+   {
+      String baseJndiName = this.getBaseJndiName(summary);
+      return baseJndiName + "/" + KnownInterfaces.LOCAL;
+   }
+
+   public String getDefaultRemoteHomeJndiName(EjbDeploymentSummary summary)
+   {
+      String baseJndiName = this.getBaseJndiName(summary);
+      return baseJndiName + "/" + KnownInterfaces.HOME;
+   }
+
+   public String getDefaultRemoteJndiName(EjbDeploymentSummary summary)
+   {
+      String baseJndiName = this.getBaseJndiName(summary);
+      return baseJndiName + "/" + KnownInterfaces.REMOTE;
+   }
+
+   public String getJndiName(EjbDeploymentSummary summary)
+   {
+      String baseJndiName = this.getBaseJndiName(summary);
+      return baseJndiName;
+   }
+
+   public String getJndiName(EjbDeploymentSummary summary, String iface, KnownInterfaceType ifaceType)
+   {
+      String jndiName = null;
+      if (KnownInterfaces.isKnownInterface(iface))
+         iface = null;
+
+      String baseJndiName = this.getBaseJndiName(summary);
+
+      if (ifaceType == KnownInterfaceType.UNKNOWN)
+      {
+         if (iface == null)
+            jndiName = baseJndiName;
+         else
+            jndiName = baseJndiName + "/" + iface;
+      }
+      else
+      {
+         boolean is3x = summary.getBeanMD().getJBossMetaData().isEJB3x();
+
+         if (is3x)
+         {
+            // EJB 3
+            switch (ifaceType)
+            {
+               // 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())
+                  {
+                     mappedName = ((JBossSessionBeanMetaData) md).getJndiName();
+                  }
+                  String setMappedName = md.getMappedName();
+                  if (setMappedName != null && setMappedName.trim().length() > 0)
+                  {
+                     mappedName = md.getMappedName();
+                  }
+
+                  // JBMETA-75
+                  // Use mappedName if it's specified
+                  if (mappedName != null && iface == null)
+                  {
+                     jndiName = mappedName;
+                  }
+                  // JBMETA-75
+                  // Fall back on base JNDI Name + type suffix
+                  else if (iface == null)
+                     jndiName = baseJndiName + "/" + ifaceType.toSuffix();
+                  else
+                     jndiName = baseJndiName + "/" + ifaceType.toSuffix() + "-" + iface;
+                  break;
+               case LOCAL_HOME :
+                  // base-name / (local|remote)Home
+                  jndiName = baseJndiName + "/" + ifaceType.toSuffix();
+                  break;
+               case REMOTE_HOME :
+                  
+                  /*
+                   * First ensure that the Home binding has not been explicitly-defined
+                   * (JBMETA-82)
+                   */
+                  
+                  // Obtain the MD
+                  JBossEnterpriseBeanMetaData beanMd = summary.getBeanMD();
+
+                  // If a Session Bean
+                  if (beanMd.isSession())
+                  {
+                     JBossSessionBeanMetaData smd = (JBossSessionBeanMetaData) beanMd;
+                     String explicitHomeJndiName = smd.getHomeJndiName();
+                     // If explicitly-defined
+                     if (explicitHomeJndiName != null && explicitHomeJndiName.length() > 0)
+                     {
+                        jndiName = explicitHomeJndiName;
+                        break;
+                     }
+                  }
+                  
+                  // base-name / (local|remote)Home
+                  jndiName = baseJndiName + "/" + ifaceType.toSuffix();
+                  break;
+            }
+         }
+         else
+         {
+            // EJB 2.x
+            switch (ifaceType)
+            {
+               // The local home jndi name (same for getLocalJndiName and getLocalHomeJndiName)
+               case BUSINESS_LOCAL :
+               case LOCAL_HOME :
+                  // Use the bean local jndi name or a generated name for ejb2.x local homes 
+                  jndiName = summary.getBeanMD().getLocalJndiName();
+                  if (jndiName != null && jndiName.trim().length() > 0)
+                  {
+                     return jndiName;
+                  }
+                  String ejbName = summary.getBeanMD().getEjbName();
+                  jndiName = "local/" + ejbName + '@' + System.identityHashCode(ejbName);
+                  break;
+
+               // The home jndi name (same for getJndiName and getHomeJndiName) 
+               case BUSINESS_REMOTE :
+               case REMOTE_HOME :
+                  // Don't append the iface suffix for ejb2.x homes
+                  // JBMETA-79, use any explicit jndi-name/mapped-name
+                  JBossEnterpriseBeanMetaData md = summary.getBeanMD();
+                  String mappedName = md.getMappedName();
+                  if (mappedName == null || mappedName.length() == 0)
+                  {
+                     if (md.isSession())
+                     {
+                        mappedName = ((JBossSessionBeanMetaData) md).getJndiName();
+                     }
+                     else if (md.isEntity())
+                     {
+                        mappedName = ((JBossEntityBeanMetaData) md).getJndiName();
+                     }
+                  }
+                  jndiName = mappedName;
+                  if (jndiName != null && jndiName.trim().length() > 0)
+                  {
+                     return jndiName;
+                  }
+                  // Fallback to the deployment summary base name
+                  jndiName = baseJndiName;
+                  break;
+            }
+         }
+
+      }
+
+      return jndiName;
+   }
+
+   private String getBaseJndiName(EjbDeploymentSummary summary)
+   {
+      StringBuffer baseName = new StringBuffer();
+
+      JBossEnterpriseBeanMetaData md = summary.getBeanMD();
+      assert md != null : JBossEnterpriseBeanMetaData.class.getSimpleName() + " is not set for " + summary;
+
+      //TODO Ugly, should be using polymorphism not runtime type checks w/ casting
+      if (md.isSession())
+      {
+         assert md instanceof JBossSessionBeanMetaData : "Metadata reports as Session Bean but is not assignable to "
+               + JBossSessionBeanMetaData.class.getName();
+         JBossSessionBeanMetaData smd = (JBossSessionBeanMetaData) md;
+         baseName.append(smd.getEjbName());
+      }
+      else if (md.isEntity())
+      {
+         if (baseName == null || baseName.length() == 0)
+         {
+            String jndiName = ((JBossEntityBeanMetaData) summary.getBeanMD()).getJndiName();
+            if (jndiName != null && jndiName.length() > 0)
+            {
+               baseName.append(jndiName.trim());
+            }
+         }
+      }
+
+      // Still no baseName
+      if (baseName == null || baseName.length() == 0)
+      {
+         // 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 for an EAR
+      String deploymentScopeBaseName = summary.getDeploymentScopeBaseName();
+      if (isEar && deploymentScopeBaseName != null && deploymentScopeBaseName.trim().length() > 0)
+      {
+         
+         deploymentScopeBaseName = deploymentScopeBaseName.trim();
+         
+         /*
+          * Adjust deploymentScopeBaseName in the case it's equal 
+          * to mappedName 
+          * 
+          * JBMETA-83
+          */
+         String mappedName = summary.getBeanMD().getMappedName();
+         if(deploymentScopeBaseName.equals(mappedName))
+         {
+            log.warn("The EAR name, which is used as a base, is equal to the mappedName for EJB \""
+                  + summary.getBeanMD().getEjbName()
+                  + "\", to avoid JNDI Naming Conflict appending a '_' to the base JNDI name. [JBMETA-83]");
+            deploymentScopeBaseName = deploymentScopeBaseName + "_";
+         }
+         
+         baseName.insert(0, '/');
+         baseName.insert(0, deploymentScopeBaseName);
+      }
+
+      return baseName.toString();
+   }
+}

Deleted: projects/metadata/tags/1.0.0.Beta32/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-26 01:27:58 UTC (rev 76238)
+++ projects/metadata/tags/1.0.0.Beta32/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java	2008-07-26 06:17:46 UTC (rev 76242)
@@ -1,621 +0,0 @@
-/*
- * 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.test.metadata.ejb;
-
-import junit.framework.TestCase;
-
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
-import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.BasicJndiBindingPolicy;
-import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.EjbNameJndiBindingPolicy;
-import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.JBossSessionPolicyDecorator;
-import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.JbossEntityPolicyDecorator;
-import org.jboss.metadata.ejb.jboss.jndipolicy.spi.DeploymentSummary;
-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;
-
-/**
- * Tests that the JNDI Policy Decorators for Object Model 
- * Metadata properly resolve JNDI targets according to 
- * values expected of the given JNDI Policies
- * 
- * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
- * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
- * @version $Revision$
- */
-public class ResolveJndiNameDecoratorUnitTestCase extends TestCase
-{
-
-   @SuppressWarnings(value="deprecation")
-   public void testResolvedJndiName()
-   {
-      // Obtain MD and define expected values for resolution
-      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
-      String expected = "base/testResolvedJndiName-ejb/home";
-      
-      // Resolve
-      String resolved = beanMD.getHomeJndiName();
-      
-      // Test
-      assertEquals(expected, resolved);
-      
-      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
-      String resolvedDeprecated = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, null);
-      assertEquals(expected, resolvedDeprecated);
-   }
-   
-   @SuppressWarnings(value="deprecation")
-   public void testResolvedJndiNameNoBaseName()
-   {
-      // Obtain MD 
-      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
-      
-      // Remove the baseName
-      JBossMetaData jbMd = beanMD.getEnterpriseBeansMetaData().getEjbJarMetaData();
-      jbMd.getDeploymentSummary().setDeploymentScopeBaseName(null);
-      
-      String expected = "testResolvedJndiNameNoBaseName-ejb/home";
-      
-      // Resolve
-      String resolved = beanMD.getHomeJndiName();
-      
-      // Test
-      assertEquals(expected, resolved);
-      
-      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
-      String resolvedDeprecated = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, null);
-      assertEquals(expected, resolvedDeprecated);
-   }
-   
-   @SuppressWarnings(value="deprecation")
-   public void testResolvedJndiNameExplicitHomeBinding()
-   {
-      // Obtain MD 
-      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
-      
-      String overrideJndiName = "overrideJndiName";
-      
-      // Override
-      beanMD.setHomeJndiName(overrideJndiName);
-      beanMD.setMappedName(overrideJndiName);
-      
-      String expected = overrideJndiName;
-      
-      // Resolve
-      String resolved = beanMD.getHomeJndiName();
-      
-      // Test
-      assertEquals(expected, resolved);
-      
-      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
-      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()
-   {
-      // Obtain MD, set mappedName, and define expected values for resolution
-      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
-      String mappedName = "testResolvedJndiName-mapped-name";
-      beanMD.setMappedName(mappedName);
-      
-      // Execute the tests
-      String expectedBase = "base/testResolvedJndiNameWithMappedName-ejb/";
-      this.resolvedOverrideName(beanMD, mappedName, expectedBase);
-      
-   }
-   
-   @SuppressWarnings(value="deprecation")
-   public void testResolvedJndiNameWithJndiName()
-   {
-      // Obtain MD, set mappedName, and define expected values for resolution
-      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
-      String jndiName = "testResolvedJndiName-jndi-name";
-      beanMD.setJndiName(jndiName);
-      
-      // Execute the tests
-      String expectedBase = "base/testResolvedJndiNameWithJndiName-ejb/";
-      this.resolvedOverrideName(beanMD, jndiName, expectedBase);
-      
-   }
-   
-   /**
-    * Tests for resolved JNDI names in presense of a mapped-name or
-    * jndi-name override
-    * 
-    * @param md
-    * @param overrideName
-    */
-   private void resolvedOverrideName(JBossSessionBeanMetaData md, String overrideName, String expectedBase)
-   {
-      String expectedRemoteBusiness = overrideName;
-      String expectedLocalBusiness = expectedBase + "local";
-      String expectedLocalHome = expectedBase + "localHome";
-      String expectedHome = expectedBase + "home";
-
-      // Resolve
-      String resolvedRemoteBusiness = md.getJndiName();
-      String resolvedHome = md.getHomeJndiName();
-
-      // Test
-      assertEquals(
-            "JNDI Target for default remote business interface in presense of mapped-name must be equal to overridden name",
-            expectedRemoteBusiness, resolvedRemoteBusiness);
-      assertEquals("JNDI Target for Remote Home in presense of an overridden name is invalid", expectedHome,
-            resolvedHome);
-
-      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
-      String resolvedDeprecatedRemoteDefault = md.determineJndiName();
-      String resolvedDeprecatedRemoteDefault2 = md.determineResolvedJndiName(KnownInterfaces.REMOTE, null);
-      String resolvedDeprecatedLocalDefault = md.determineLocalJndiName();
-      String resolvedDeprecatedLocalDefault2 = md.determineResolvedJndiName(KnownInterfaces.LOCAL, null);
-      String resolvedDeprecatedLocalHome = md.determineResolvedJndiName(KnownInterfaces.LOCAL_HOME, null);
-      String resolvedDeprecatedHome = md.determineResolvedJndiName(KnownInterfaces.HOME, null);
-      assertEquals(expectedHome, resolvedDeprecatedHome);
-      assertEquals(expectedRemoteBusiness, resolvedDeprecatedRemoteDefault);
-      assertEquals(expectedRemoteBusiness, resolvedDeprecatedRemoteDefault2);
-      assertEquals(expectedLocalBusiness, resolvedDeprecatedLocalDefault);
-      assertEquals(expectedLocalBusiness, resolvedDeprecatedLocalDefault2);
-      assertEquals(expectedLocalHome, resolvedDeprecatedLocalHome);
-   }
-
-   @SuppressWarnings(value="deprecation")
-   public void testResolvedJndiNames()
-   {
-      // Get Metadata
-      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
-      
-      // Remove a defined jndi-name
-      
-      // Define expected resolved values
-      String expectedBase = "base/testResolvedJndiNames-ejb/";
-      String expectedRemote = beanMD.getJndiName();
-      String expectedHome = expectedBase + KnownInterfaceType.REMOTE_HOME.toSuffix();
-      String expectedLocal = expectedBase + KnownInterfaceType.BUSINESS_LOCAL.toSuffix();
-      String expectedLocalHome = expectedBase + KnownInterfaceType.LOCAL_HOME.toSuffix();
-      
-      // Resolve 
-      String resolvedJndiNameRemote = beanMD.getJndiName();
-      String resolvedJndiNameHome = beanMD.getHomeJndiName();
-      String resolvedJndiNameLocal = beanMD.getLocalJndiName();
-      String resolvedJndiNameLocalHome = beanMD.getLocalHomeJndiName();
-
-      // Test
-      assertEquals(expectedRemote, resolvedJndiNameRemote);
-      assertEquals(expectedHome, resolvedJndiNameHome);
-      assertEquals(expectedLocal, resolvedJndiNameLocal);
-      assertEquals(expectedLocalHome, resolvedJndiNameLocalHome);
-
-      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
-      String resolvedJndiNameRemoteD = beanMD.determineResolvedJndiName(KnownInterfaces.REMOTE, null);
-      String resolvedJndiNameRemoteD2 = beanMD.determineJndiName();
-      assertEquals(expectedRemote, resolvedJndiNameRemoteD);
-      assertEquals(expectedRemote, resolvedJndiNameRemoteD2);
-      String resolvedJndiNameHomeD = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, null);
-      assertEquals(expectedHome, resolvedJndiNameHomeD);
-      String resolvedJndiNameLocalD = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL, null);
-      String resolvedJndiNameLocalD2 = beanMD.determineLocalJndiName();
-      assertEquals(expectedLocal, resolvedJndiNameLocalD);
-      assertEquals(expectedLocal, resolvedJndiNameLocalD2);
-      String resolvedJndiNameLocalHomeD = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL_HOME, null);
-      assertEquals(expectedLocalHome, resolvedJndiNameLocalHomeD);
-   }
-
-   /**
-    * JBMETA-36, JBMETA-37
-    */
-   @SuppressWarnings(value="deprecation")
-   public void testResolvedJndiNamesWithKnownIfaces()
-   {
-      // Obtain MD
-      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
-
-      // Define some interfaces
-      String localInterface1 = "org.jboss.ifaces.LocalIF1";
-      String localInterface2 = "org.jboss.ifaces.LocalIF2";
-      String localHomeInterface = "org.jboss.ifaces.LocalHomeIF";
-      String homeInterface = "org.jboss.ifaces.HomeIF";
-      String remoteInterface1 = "org.jboss.ifaces.RemoteIF1";
-      String remoteInterface2 = "org.jboss.ifaces.RemoteIF2";
-
-      // Manually Set Interfaces
-      beanMD.setLocal(localInterface1);
-      beanMD.setLocalHome(localHomeInterface);
-      beanMD.setHome(homeInterface);
-      beanMD.setRemote(remoteInterface1);
-      BusinessLocalsMetaData locals = new BusinessLocalsMetaData();
-      locals.add(localInterface1);
-      locals.add(localInterface2);
-      beanMD.setBusinessLocals(locals);
-      BusinessRemotesMetaData remotes = new BusinessRemotesMetaData();
-      remotes.add(remoteInterface1);
-      remotes.add(remoteInterface2);
-      beanMD.setBusinessRemotes(remotes);
-
-      // Define expected resolved values
-      String base = "base/testResolvedJndiNamesWithKnownIfaces-ejb/";
-      String expectedRemoteDefault = base + "remote";
-      String expectedRemote1 = base + "remote-org.jboss.ifaces.RemoteIF1";
-      String expectedRemote2 = base + "remote-org.jboss.ifaces.RemoteIF2";
-      String expectedHome = base + KnownInterfaceType.REMOTE_HOME.toSuffix();
-      String expectedLocalDefault = base + KnownInterfaceType.BUSINESS_LOCAL.toSuffix();
-      String expectedLocal1 = base + "local-org.jboss.ifaces.LocalIF1";
-      String expectedLocal2 = base + "local-org.jboss.ifaces.LocalIF2";
-      String expectedLocalHome = base + KnownInterfaceType.LOCAL_HOME.toSuffix();
-
-      // Resolve
-      String resolvedJndiNameRemoteDefaultFromMDMethod = beanMD.getJndiName();
-      String resolvedJndiNameRemoteDefaultUsingResovler = JbossSessionBeanJndiNameResolver
-            .resolveRemoteBusinessDefaultJndiName(beanMD);
-      String resolvedJndiNameRemoteDefaultUsingResovlerType = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD,
-            KnownInterfaces.REMOTE);
-      String resolvedJndiNameRemote1 = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD, remoteInterface1);
-      String resolvedJndiNameRemote2 = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD, remoteInterface2);
-      String resolvedJndiNameHomeFromMdMethod = beanMD.getHomeJndiName();
-      String resolvedJndiNameHomeUsingResolver = JbossSessionBeanJndiNameResolver.resolveRemoteHomeJndiName(beanMD);
-      String resolvedJndiNameLocalDefaultFromMDMethod = beanMD.getLocalJndiName();
-      String resolvedJndiNameLocalDefaultUsingResovler = JbossSessionBeanJndiNameResolver
-            .resolveLocalBusinessDefaultJndiName(beanMD);
-      String resolvedJndiNameLocalDefaultUsingResovlerType = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD,
-            KnownInterfaces.LOCAL);
-      String resolvedJndiNameLocal = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD, localInterface1);
-      String resolvedJndiNameLocal2 = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD, localInterface2);
-      String resolvedJndiNameLocalHomeFromMdMethod = beanMD.getLocalHomeJndiName();
-      String resolvedJndiNameLocalHomeUsingResolver = JbossSessionBeanJndiNameResolver.resolveLocalHomeJndiName(beanMD);
-
-      // Test
-      assertEquals(expectedRemoteDefault, resolvedJndiNameRemoteDefaultFromMDMethod);
-      assertEquals(expectedRemoteDefault, resolvedJndiNameRemoteDefaultUsingResovler);
-      assertEquals(expectedRemoteDefault, resolvedJndiNameRemoteDefaultUsingResovlerType);
-      assertEquals(expectedRemote1, resolvedJndiNameRemote1);
-      assertEquals(expectedRemote2, resolvedJndiNameRemote2);
-      assertEquals(expectedHome, resolvedJndiNameHomeFromMdMethod);
-      assertEquals(expectedHome, resolvedJndiNameHomeUsingResolver);
-      assertEquals(expectedLocalDefault, resolvedJndiNameLocalDefaultFromMDMethod);
-      assertEquals(expectedLocalDefault, resolvedJndiNameLocalDefaultUsingResovler);
-      assertEquals(expectedLocalDefault, resolvedJndiNameLocalDefaultUsingResovlerType);
-      assertEquals(expectedLocal1, resolvedJndiNameLocal);
-      assertEquals(expectedLocal2, resolvedJndiNameLocal2);
-      assertEquals(expectedLocalHome, resolvedJndiNameLocalHomeFromMdMethod);
-      assertEquals(expectedLocalHome, resolvedJndiNameLocalHomeUsingResolver);
-      
-      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
-      String resolvedJndiNameRemoteD = beanMD.determineResolvedJndiName(remoteInterface1, null);
-      assertEquals(expectedRemote1, resolvedJndiNameRemoteD);
-      String resolvedJndiNameRemote2D = beanMD.determineResolvedJndiName(remoteInterface2, null);
-      assertEquals(expectedRemote2, resolvedJndiNameRemote2D);
-      String resolvedJndiNameHomeD = beanMD.determineResolvedJndiName(homeInterface, null);
-      assertEquals(expectedHome, resolvedJndiNameHomeD);
-      String resolvedJndiNameLocalD = beanMD.determineResolvedJndiName(localInterface1, null);
-      assertEquals(expectedLocal1, resolvedJndiNameLocalD);
-      String resolvedJndiNameLocal2D = beanMD.determineResolvedJndiName(localInterface2, null);
-      assertEquals(expectedLocal2, resolvedJndiNameLocal2D);
-      String resolvedJndiNameLocalHomeD = beanMD.determineResolvedJndiName(localHomeInterface, null);
-      assertEquals(expectedLocalHome, resolvedJndiNameLocalHomeD);
-   }
-
-   @SuppressWarnings(value="deprecation")
-   public void testResolvedJndiNamesWithKnownIfaces2x()
-   {
-      // Get MD
-      JBossSessionBeanMetaData sbeanMD = getDecoratedEjbMetaData();
-      
-      // Manually set Version to EJB2.x
-      sbeanMD.getJBossMetaData().setEjbVersion("2.1");
-      
-      // Define Interfaces
-      String local ="org.jboss.ifaces.LocalIF";
-      String localHome = "org.jboss.ifaces.LocalHomeIF";
-      String home = "org.jboss.ifaces.HomeIF";
-      String remote = "org.jboss.ifaces.RemoteIF";
-      
-      // Manually Set Interfaces
-      sbeanMD.setLocal(local);
-      sbeanMD.setLocalHome(localHome);
-      sbeanMD.setHome(home);
-      sbeanMD.setRemote(remote);
-      
-      // Define expected values
-      String expectedRemote = "base/testResolvedJndiNamesWithKnownIfaces2x-ejb";
-      String expectedHome = "base/testResolvedJndiNamesWithKnownIfaces2x-ejb";
-      String expectedLocalHome = "local/" + sbeanMD.getEjbName() + '@' + System.identityHashCode(sbeanMD.getEjbName());
-      
-      // Resolve
-      String resolvedRemote = sbeanMD.getJndiName();
-      String resolvedHome = sbeanMD.getHomeJndiName();
-      String resolvedLocal = sbeanMD.getLocalJndiName();
-      String resolvedLocalHome = sbeanMD.getLocalHomeJndiName();
-      
-      // Test
-      assertEquals(expectedRemote, resolvedRemote);
-      assertEquals(expectedHome, resolvedHome);
-      assertEquals(resolvedRemote, resolvedHome);
-      assertEquals(expectedLocalHome, resolvedLocal);
-      assertEquals(resolvedLocal, resolvedLocalHome);
-      
-      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
-      String resolvedJndiNameD = sbeanMD.determineJndiName();
-      assertEquals(expectedRemote, resolvedJndiNameD);
-      String resolvedJndiNameHomeD = sbeanMD.determineResolvedJndiName(home, null);
-      assertEquals(expectedHome, resolvedJndiNameHomeD);
-      assertEquals(expectedLocalHome, sbeanMD.determineLocalJndiName());
-      String resolvedJndiNameLocalHomeD = sbeanMD.determineResolvedJndiName(localHome, null);
-      assertEquals(sbeanMD.determineLocalJndiName(), resolvedJndiNameLocalHomeD);
-   }
-
-   /**
-    * Test resolved jndi name for an entity bean 
-    */
-   @SuppressWarnings(value="deprecation")
-   public void testResolvedJndiNamesWithKnownIfacesEntity()
-   {
-      // Obtain MD
-      JBossEntityBeanMetaData beanMD = getEntityMetaData();
-      
-      // Declare Interfaces
-      String local = "org.jboss.ifaces.LocalIF";
-      String localHome = "org.jboss.ifaces.LocalHomeIF";
-      String home = "org.jboss.ifaces.HomeIF";
-      String remote = "org.jboss.ifaces.RemoteIF";
-      String randomInterface = "org.jboss.test.some.IFace";
-
-      // Manually set interfaces on MD
-      beanMD.setLocal(local);
-      beanMD.setLocalHome(localHome);
-      beanMD.setHome(home);
-      beanMD.setRemote(remote);
-      
-      // Define expected results
-      String expectedRemote = "base/testResolvedJndiNamesWithKnownIfacesEntity-jndi-name";
-      String expectedHome = "base/testResolvedJndiNamesWithKnownIfacesEntity-jndi-name/home";
-      String expectedLocalHome = "base/testResolvedJndiNamesWithKnownIfacesEntity-jndi-name/localHome";
-      String expectedRandomInterface = "base/testResolvedJndiNamesWithKnownIfacesEntity-jndi-name/" + randomInterface;
-      
-      // Resolve
-      String resolvedDefault = JbossEnterpriseBeanJndiNameResolver.resolveJndiName(beanMD, null);
-      String resolvedHomeUsingInterface = JbossEnterpriseBeanJndiNameResolver.resolveJndiName(beanMD, home);
-      String resolvedHomeUsingType = JbossEnterpriseBeanJndiNameResolver.resolveJndiName(beanMD, KnownInterfaces.HOME);
-      String resolvedLocalHomeUsingInterface = JbossEnterpriseBeanJndiNameResolver.resolveJndiName(beanMD, localHome);
-      String resolvedLocalHomeUsingType = JbossEnterpriseBeanJndiNameResolver.resolveJndiName(beanMD, KnownInterfaces.LOCAL_HOME);
-      String resolvedInterfaceSpecific = JbossEnterpriseBeanJndiNameResolver.resolveJndiName(beanMD, randomInterface);
-      
-      // Test
-      assertEquals(expectedRemote, resolvedDefault);
-      assertEquals(expectedHome, resolvedHomeUsingInterface);
-      assertEquals(expectedHome, resolvedHomeUsingType);
-      assertEquals(expectedLocalHome, resolvedLocalHomeUsingInterface);
-      assertEquals(expectedLocalHome, resolvedLocalHomeUsingType);
-      assertEquals(expectedRandomInterface, resolvedInterfaceSpecific);
-
-      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
-      String resolvedJndiNameD = beanMD.determineResolvedJndiName(null, null);
-      assertEquals(expectedRemote, resolvedJndiNameD);
-      String resolvedJndiNameHomeD = beanMD.determineResolvedJndiName(home, null);
-      assertEquals(expectedHome, resolvedJndiNameHomeD);
-      String resolvedJndiNameLocalHomeD = beanMD.determineResolvedJndiName(localHome, null);
-      assertEquals(expectedLocalHome, resolvedJndiNameLocalHomeD);
-      String resolvedJndiNameIfaceD = beanMD.determineResolvedJndiName(randomInterface, null);
-      assertEquals(expectedRandomInterface, resolvedJndiNameIfaceD);
-   }
-
-   /**
-    * Test the determineResolvedJndiName with a jndiBindingPolicy on the
-    * JBossSessionPolicyDecorator
-    * 
-    */
-   @SuppressWarnings(value="deprecation")
-   public void testResolvedJndiNamesWithMDPolicy()
-   {
-      // Get Metadata
-      JBossSessionBeanMetaData beanMD = this.getEjbMetaData();
-      
-      // Manually Decorate
-      beanMD = new JBossSessionPolicyDecorator(beanMD,new EjbNameJndiBindingPolicy());
-      
-      // Define Expected Results
-      String expectedRemote  = "testResolvedJndiNamesWithMDPolicy-ejbRemote";
-      String expectedHome  = "testResolvedJndiNamesWithMDPolicy-ejbHome";
-      String expectedLocal = "testResolvedJndiNamesWithMDPolicy-ejbLocal";
-      String expectedLocalHome = "testResolvedJndiNamesWithMDPolicy-ejbLocalHome";
-      
-      // Resolve
-      String resolvedJndiNameRemoteUsingResolver = JbossSessionBeanJndiNameResolver.resolveRemoteBusinessDefaultJndiName(beanMD);
-      String resolvedJndiNameRemoteUsingResolverType = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD,KnownInterfaces.REMOTE);
-      String resolvedJndiNameHomeUsingResolver = JbossSessionBeanJndiNameResolver.resolveRemoteHomeJndiName(beanMD);
-      String resolvedJndiNameHomeUsingResolverType = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD,KnownInterfaces.HOME);
-      String resolvedJndiNameLocalUsingResolver = JbossSessionBeanJndiNameResolver.resolveLocalBusinessDefaultJndiName(beanMD);
-      String resolvedJndiNameLocalUsingResolverType = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD,KnownInterfaces.LOCAL);      
-      String resolvedJndiNameLocalHomeUsingResolver = JbossSessionBeanJndiNameResolver.resolveLocalHomeJndiName(beanMD);
-      String resolvedJndiNameLocalHomeUsingResolverType = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD,KnownInterfaces.LOCAL_HOME);
-      
-      // Test
-      assertEquals(expectedRemote,resolvedJndiNameRemoteUsingResolver);
-      assertEquals(expectedRemote,resolvedJndiNameRemoteUsingResolverType);
-      assertEquals(expectedHome,resolvedJndiNameHomeUsingResolver);
-      assertEquals(expectedHome,resolvedJndiNameHomeUsingResolverType);
-      assertEquals(expectedLocal,resolvedJndiNameLocalUsingResolver);
-      assertEquals(expectedLocal,resolvedJndiNameLocalUsingResolverType);
-      assertEquals(expectedLocalHome,resolvedJndiNameLocalHomeUsingResolver);
-      assertEquals(expectedLocalHome,resolvedJndiNameLocalHomeUsingResolverType);
-      
-      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
-      String resolvedJndiNameRemoteD = beanMD.determineResolvedJndiName(KnownInterfaces.REMOTE, null);
-      assertEquals(expectedRemote, resolvedJndiNameRemoteD);
-      String resolvedJndiNameHomeD = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, null);
-      assertEquals(expectedHome, resolvedJndiNameHomeD);
-      String resolvedJndiNameLocalD = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL, null);
-      assertEquals(expectedLocal, resolvedJndiNameLocalD);
-      String resolvedJndiNameLocalHomeD = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL_HOME, null);
-      assertEquals(expectedLocalHome, resolvedJndiNameLocalHomeD);
-   }
-
-   /*
-    * This test has been removed, as specifying a Policy by the caller when looking for 
-    * a Resolved JNDI Name is beyond scope of the Object Model.  This should be done 
-    * when the Object is decorated, as exhibited by "testResolvedJndiNamesWithMDPolicy"
-    */
-//   /**
-//    * Test the determineResolvedJndiName with a jndiBindingPolicy passed into
-//    * determineResolvedJndiName
-//    * 
-//    */
-//   public void testResolvedJndiNamesWithExternalPolicy()
-//   {
-//      JBossEnterpriseBeanMetaData beanMD = getDecoratedEjbMetaData();
-//      EjbNameJndiBindingPolicy policy = new EjbNameJndiBindingPolicy();
-//      String resolvedJndiNameRemote = beanMD.determineResolvedJndiName(KnownInterfaces.REMOTE, policy);
-//      assertEquals("testResolvedJndiNamesWithExternalPolicy-ejbRemote", resolvedJndiNameRemote);
-//      String resolvedJndiNameHome = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, policy);
-//      assertEquals("testResolvedJndiNamesWithExternalPolicy-ejbHome", resolvedJndiNameHome);
-//      String resolvedJndiNameLocal = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL, policy);
-//      assertEquals("testResolvedJndiNamesWithExternalPolicy-ejbLocal", resolvedJndiNameLocal);
-//      String resolvedJndiNameLocalHome = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL_HOME, policy);
-//      assertEquals("testResolvedJndiNamesWithExternalPolicy-ejbLocalHome", resolvedJndiNameLocalHome);
-//   }
-
-   /**
-    * Creates a JBossSessionBeanMetaData decorated with a BasicJndiBindingPolicy
-    */
-   protected JBossSessionBeanMetaData getDecoratedEjbMetaData()
-   {
-      // Get MD
-      JBossSessionBeanMetaData sbeanMD = this.getEjbMetaData();
-
-      // We want the meta data decorated with the JNDI binding policy.
-      sbeanMD =  new JBossSessionPolicyDecorator(sbeanMD, new BasicJndiBindingPolicy());
-      
-      // Return
-      return sbeanMD;
-   }
-   
-   /**
-    * Creates a JBossSessionBeanMetaData with associated JBossMetaData with:
-    * ejbName = getName() + "-ejb"
-    * ejbClass = "org.jboss.ejb."+ getName()
-    * jndiName = getName() + "-jndi-name"
-    * @return JBossSessionBeanMetaData
-    */
-   protected JBossSessionBeanMetaData getEjbMetaData()
-   {
-      String name = super.getName();
-      JBossMetaData jbossMetaData = new JBossMetaData();
-      jbossMetaData.setEjbVersion("3.0");
-      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");
-      sbeanMD.setEjbClass("org.jboss.ejb." + name);
-      JBossEnterpriseBeansMetaData beans = new JBossEnterpriseBeansMetaData();
-      beans.setEjbJarMetaData(jbossMetaData);
-      beans.add(sbeanMD);
-      jbossMetaData.setEnterpriseBeans(beans);
-      
-      // Return
-      return sbeanMD;
-   }
-
-   /**
-    * Creates a JBossEntityBeanMetaData with associated JBossMetaData with:
-    * ejbName = getName() + "-ejb"
-    * ejbClass = "org.jboss.ejb."+ getName()
-    * jndiName = getName() + "-jndi-name"
-    * @return JBossEntityBeanMetaData
-    */
-   protected JBossEntityBeanMetaData getEntityMetaData()
-   {
-      String name = super.getName();
-      JBossMetaData jbossMetaData = new JBossMetaData();
-      jbossMetaData.setEjbVersion("3.0");
-      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");
-      sbeanMD.setEjbClass("org.jboss.ejb." + name);
-      sbeanMD.setJndiName(name + "-jndi-name");
-      JBossEnterpriseBeansMetaData beans = new JBossEnterpriseBeansMetaData();
-      beans.setEjbJarMetaData(jbossMetaData);
-      beans.add(sbeanMD);
-      jbossMetaData.setEnterpriseBeans(beans);
-      
-      // Decorate
-      sbeanMD = new JbossEntityPolicyDecorator(sbeanMD,new BasicJndiBindingPolicy());
-      
-      return sbeanMD;
-   }
-}

Copied: projects/metadata/tags/1.0.0.Beta32/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java (from rev 76239, projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java)
===================================================================
--- projects/metadata/tags/1.0.0.Beta32/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java	                        (rev 0)
+++ projects/metadata/tags/1.0.0.Beta32/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java	2008-07-26 06:17:46 UTC (rev 76242)
@@ -0,0 +1,653 @@
+/*
+ * 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.test.metadata.ejb;
+
+import junit.framework.TestCase;
+
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.BasicJndiBindingPolicy;
+import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.EjbNameJndiBindingPolicy;
+import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.JBossSessionPolicyDecorator;
+import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.JbossEntityPolicyDecorator;
+import org.jboss.metadata.ejb.jboss.jndipolicy.spi.DeploymentSummary;
+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;
+
+/**
+ * Tests that the JNDI Policy Decorators for Object Model 
+ * Metadata properly resolve JNDI targets according to 
+ * values expected of the given JNDI Policies
+ * 
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision$
+ */
+public class ResolveJndiNameDecoratorUnitTestCase extends TestCase
+{
+
+   @SuppressWarnings(value="deprecation")
+   public void testResolvedJndiName()
+   {
+      // Obtain MD and define expected values for resolution
+      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
+      String expected = "base/testResolvedJndiName-ejb/home";
+      
+      // Resolve
+      String resolved = beanMD.getHomeJndiName();
+      
+      // Test
+      assertEquals(expected, resolved);
+      
+      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
+      String resolvedDeprecated = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, null);
+      assertEquals(expected, resolvedDeprecated);
+   }
+   
+   @SuppressWarnings(value="deprecation")
+   public void testResolvedJndiNameNoBaseName()
+   {
+      // Obtain MD 
+      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
+      
+      // Remove the baseName
+      JBossMetaData jbMd = beanMD.getEnterpriseBeansMetaData().getEjbJarMetaData();
+      jbMd.getDeploymentSummary().setDeploymentScopeBaseName(null);
+      
+      String expected = "testResolvedJndiNameNoBaseName-ejb/home";
+      
+      // Resolve
+      String resolved = beanMD.getHomeJndiName();
+      
+      // Test
+      assertEquals(expected, resolved);
+      
+      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
+      String resolvedDeprecated = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, null);
+      assertEquals(expected, resolvedDeprecated);
+   }
+   
+   /**
+    * JBMETA-83
+    * 
+    * When deploymentScopeBaseName is equal to the mappedName, 
+    * the base JNDI name becomes bound and is therefore an
+    * invalid target for a JNDI subcontext
+    */
+   @SuppressWarnings(value="deprecation")
+   public void testResolvedJndiNameWhenMappedNameIsInBaseName()
+   {
+      // Obtain MD 
+      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
+      
+      // Set a deploymentScopeBaseName equal to that of mappedName
+      String commonName = "commonBase";
+      JBossMetaData jbMd = beanMD.getEnterpriseBeansMetaData().getEjbJarMetaData();
+      jbMd.getDeploymentSummary().setDeploymentScopeBaseName(commonName);
+      beanMD.setMappedName(commonName);
+      
+      // Resolve the business default and the home JNDI name
+      String resolvedRemoteBusinessDefaultJndiName = beanMD.getJndiName();
+      String resolvedRemoteHomeJndiName = beanMD.getHomeJndiName();
+      
+      // Test that the Home JNDI Name does not have a base of the mappedName (due to collisions with 
+      assertTrue("When depoymentScopeBaseName is equal to mappedName, JNDI Collisions occur",
+            !resolvedRemoteHomeJndiName.startsWith(resolvedRemoteBusinessDefaultJndiName + "/"));
+      
+      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
+      String resolvedDeprecated = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, null);
+      assertTrue(!resolvedDeprecated.startsWith(resolvedRemoteBusinessDefaultJndiName + "/"));
+   }
+   
+   @SuppressWarnings(value="deprecation")
+   public void testResolvedJndiNameExplicitHomeBinding()
+   {
+      // Obtain MD 
+      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
+      
+      String overrideJndiName = "overrideJndiName";
+      
+      // Override
+      beanMD.setHomeJndiName(overrideJndiName);
+      beanMD.setMappedName(overrideJndiName);
+      
+      String expected = overrideJndiName;
+      
+      // Resolve
+      String resolved = beanMD.getHomeJndiName();
+      
+      // Test
+      assertEquals(expected, resolved);
+      
+      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
+      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()
+   {
+      // Obtain MD, set mappedName, and define expected values for resolution
+      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
+      String mappedName = "testResolvedJndiName-mapped-name";
+      beanMD.setMappedName(mappedName);
+      
+      // Execute the tests
+      String expectedBase = "base/testResolvedJndiNameWithMappedName-ejb/";
+      this.resolvedOverrideName(beanMD, mappedName, expectedBase);
+      
+   }
+   
+   @SuppressWarnings(value="deprecation")
+   public void testResolvedJndiNameWithJndiName()
+   {
+      // Obtain MD, set mappedName, and define expected values for resolution
+      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
+      String jndiName = "testResolvedJndiName-jndi-name";
+      beanMD.setJndiName(jndiName);
+      
+      // Execute the tests
+      String expectedBase = "base/testResolvedJndiNameWithJndiName-ejb/";
+      this.resolvedOverrideName(beanMD, jndiName, expectedBase);
+      
+   }
+   
+   /**
+    * Tests for resolved JNDI names in presense of a mapped-name or
+    * jndi-name override
+    * 
+    * @param md
+    * @param overrideName
+    */
+   private void resolvedOverrideName(JBossSessionBeanMetaData md, String overrideName, String expectedBase)
+   {
+      String expectedRemoteBusiness = overrideName;
+      String expectedLocalBusiness = expectedBase + "local";
+      String expectedLocalHome = expectedBase + "localHome";
+      String expectedHome = expectedBase + "home";
+
+      // Resolve
+      String resolvedRemoteBusiness = md.getJndiName();
+      String resolvedHome = md.getHomeJndiName();
+
+      // Test
+      assertEquals(
+            "JNDI Target for default remote business interface in presense of mapped-name must be equal to overridden name",
+            expectedRemoteBusiness, resolvedRemoteBusiness);
+      assertEquals("JNDI Target for Remote Home in presense of an overridden name is invalid", expectedHome,
+            resolvedHome);
+
+      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
+      String resolvedDeprecatedRemoteDefault = md.determineJndiName();
+      String resolvedDeprecatedRemoteDefault2 = md.determineResolvedJndiName(KnownInterfaces.REMOTE, null);
+      String resolvedDeprecatedLocalDefault = md.determineLocalJndiName();
+      String resolvedDeprecatedLocalDefault2 = md.determineResolvedJndiName(KnownInterfaces.LOCAL, null);
+      String resolvedDeprecatedLocalHome = md.determineResolvedJndiName(KnownInterfaces.LOCAL_HOME, null);
+      String resolvedDeprecatedHome = md.determineResolvedJndiName(KnownInterfaces.HOME, null);
+      assertEquals(expectedHome, resolvedDeprecatedHome);
+      assertEquals(expectedRemoteBusiness, resolvedDeprecatedRemoteDefault);
+      assertEquals(expectedRemoteBusiness, resolvedDeprecatedRemoteDefault2);
+      assertEquals(expectedLocalBusiness, resolvedDeprecatedLocalDefault);
+      assertEquals(expectedLocalBusiness, resolvedDeprecatedLocalDefault2);
+      assertEquals(expectedLocalHome, resolvedDeprecatedLocalHome);
+   }
+
+   @SuppressWarnings(value="deprecation")
+   public void testResolvedJndiNames()
+   {
+      // Get Metadata
+      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
+      
+      // Remove a defined jndi-name
+      
+      // Define expected resolved values
+      String expectedBase = "base/testResolvedJndiNames-ejb/";
+      String expectedRemote = beanMD.getJndiName();
+      String expectedHome = expectedBase + KnownInterfaceType.REMOTE_HOME.toSuffix();
+      String expectedLocal = expectedBase + KnownInterfaceType.BUSINESS_LOCAL.toSuffix();
+      String expectedLocalHome = expectedBase + KnownInterfaceType.LOCAL_HOME.toSuffix();
+      
+      // Resolve 
+      String resolvedJndiNameRemote = beanMD.getJndiName();
+      String resolvedJndiNameHome = beanMD.getHomeJndiName();
+      String resolvedJndiNameLocal = beanMD.getLocalJndiName();
+      String resolvedJndiNameLocalHome = beanMD.getLocalHomeJndiName();
+
+      // Test
+      assertEquals(expectedRemote, resolvedJndiNameRemote);
+      assertEquals(expectedHome, resolvedJndiNameHome);
+      assertEquals(expectedLocal, resolvedJndiNameLocal);
+      assertEquals(expectedLocalHome, resolvedJndiNameLocalHome);
+
+      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
+      String resolvedJndiNameRemoteD = beanMD.determineResolvedJndiName(KnownInterfaces.REMOTE, null);
+      String resolvedJndiNameRemoteD2 = beanMD.determineJndiName();
+      assertEquals(expectedRemote, resolvedJndiNameRemoteD);
+      assertEquals(expectedRemote, resolvedJndiNameRemoteD2);
+      String resolvedJndiNameHomeD = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, null);
+      assertEquals(expectedHome, resolvedJndiNameHomeD);
+      String resolvedJndiNameLocalD = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL, null);
+      String resolvedJndiNameLocalD2 = beanMD.determineLocalJndiName();
+      assertEquals(expectedLocal, resolvedJndiNameLocalD);
+      assertEquals(expectedLocal, resolvedJndiNameLocalD2);
+      String resolvedJndiNameLocalHomeD = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL_HOME, null);
+      assertEquals(expectedLocalHome, resolvedJndiNameLocalHomeD);
+   }
+
+   /**
+    * JBMETA-36, JBMETA-37
+    */
+   @SuppressWarnings(value="deprecation")
+   public void testResolvedJndiNamesWithKnownIfaces()
+   {
+      // Obtain MD
+      JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
+
+      // Define some interfaces
+      String localInterface1 = "org.jboss.ifaces.LocalIF1";
+      String localInterface2 = "org.jboss.ifaces.LocalIF2";
+      String localHomeInterface = "org.jboss.ifaces.LocalHomeIF";
+      String homeInterface = "org.jboss.ifaces.HomeIF";
+      String remoteInterface1 = "org.jboss.ifaces.RemoteIF1";
+      String remoteInterface2 = "org.jboss.ifaces.RemoteIF2";
+
+      // Manually Set Interfaces
+      beanMD.setLocal(localInterface1);
+      beanMD.setLocalHome(localHomeInterface);
+      beanMD.setHome(homeInterface);
+      beanMD.setRemote(remoteInterface1);
+      BusinessLocalsMetaData locals = new BusinessLocalsMetaData();
+      locals.add(localInterface1);
+      locals.add(localInterface2);
+      beanMD.setBusinessLocals(locals);
+      BusinessRemotesMetaData remotes = new BusinessRemotesMetaData();
+      remotes.add(remoteInterface1);
+      remotes.add(remoteInterface2);
+      beanMD.setBusinessRemotes(remotes);
+
+      // Define expected resolved values
+      String base = "base/testResolvedJndiNamesWithKnownIfaces-ejb/";
+      String expectedRemoteDefault = base + "remote";
+      String expectedRemote1 = base + "remote-org.jboss.ifaces.RemoteIF1";
+      String expectedRemote2 = base + "remote-org.jboss.ifaces.RemoteIF2";
+      String expectedHome = base + KnownInterfaceType.REMOTE_HOME.toSuffix();
+      String expectedLocalDefault = base + KnownInterfaceType.BUSINESS_LOCAL.toSuffix();
+      String expectedLocal1 = base + "local-org.jboss.ifaces.LocalIF1";
+      String expectedLocal2 = base + "local-org.jboss.ifaces.LocalIF2";
+      String expectedLocalHome = base + KnownInterfaceType.LOCAL_HOME.toSuffix();
+
+      // Resolve
+      String resolvedJndiNameRemoteDefaultFromMDMethod = beanMD.getJndiName();
+      String resolvedJndiNameRemoteDefaultUsingResovler = JbossSessionBeanJndiNameResolver
+            .resolveRemoteBusinessDefaultJndiName(beanMD);
+      String resolvedJndiNameRemoteDefaultUsingResovlerType = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD,
+            KnownInterfaces.REMOTE);
+      String resolvedJndiNameRemote1 = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD, remoteInterface1);
+      String resolvedJndiNameRemote2 = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD, remoteInterface2);
+      String resolvedJndiNameHomeFromMdMethod = beanMD.getHomeJndiName();
+      String resolvedJndiNameHomeUsingResolver = JbossSessionBeanJndiNameResolver.resolveRemoteHomeJndiName(beanMD);
+      String resolvedJndiNameLocalDefaultFromMDMethod = beanMD.getLocalJndiName();
+      String resolvedJndiNameLocalDefaultUsingResovler = JbossSessionBeanJndiNameResolver
+            .resolveLocalBusinessDefaultJndiName(beanMD);
+      String resolvedJndiNameLocalDefaultUsingResovlerType = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD,
+            KnownInterfaces.LOCAL);
+      String resolvedJndiNameLocal = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD, localInterface1);
+      String resolvedJndiNameLocal2 = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD, localInterface2);
+      String resolvedJndiNameLocalHomeFromMdMethod = beanMD.getLocalHomeJndiName();
+      String resolvedJndiNameLocalHomeUsingResolver = JbossSessionBeanJndiNameResolver.resolveLocalHomeJndiName(beanMD);
+
+      // Test
+      assertEquals(expectedRemoteDefault, resolvedJndiNameRemoteDefaultFromMDMethod);
+      assertEquals(expectedRemoteDefault, resolvedJndiNameRemoteDefaultUsingResovler);
+      assertEquals(expectedRemoteDefault, resolvedJndiNameRemoteDefaultUsingResovlerType);
+      assertEquals(expectedRemote1, resolvedJndiNameRemote1);
+      assertEquals(expectedRemote2, resolvedJndiNameRemote2);
+      assertEquals(expectedHome, resolvedJndiNameHomeFromMdMethod);
+      assertEquals(expectedHome, resolvedJndiNameHomeUsingResolver);
+      assertEquals(expectedLocalDefault, resolvedJndiNameLocalDefaultFromMDMethod);
+      assertEquals(expectedLocalDefault, resolvedJndiNameLocalDefaultUsingResovler);
+      assertEquals(expectedLocalDefault, resolvedJndiNameLocalDefaultUsingResovlerType);
+      assertEquals(expectedLocal1, resolvedJndiNameLocal);
+      assertEquals(expectedLocal2, resolvedJndiNameLocal2);
+      assertEquals(expectedLocalHome, resolvedJndiNameLocalHomeFromMdMethod);
+      assertEquals(expectedLocalHome, resolvedJndiNameLocalHomeUsingResolver);
+      
+      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
+      String resolvedJndiNameRemoteD = beanMD.determineResolvedJndiName(remoteInterface1, null);
+      assertEquals(expectedRemote1, resolvedJndiNameRemoteD);
+      String resolvedJndiNameRemote2D = beanMD.determineResolvedJndiName(remoteInterface2, null);
+      assertEquals(expectedRemote2, resolvedJndiNameRemote2D);
+      String resolvedJndiNameHomeD = beanMD.determineResolvedJndiName(homeInterface, null);
+      assertEquals(expectedHome, resolvedJndiNameHomeD);
+      String resolvedJndiNameLocalD = beanMD.determineResolvedJndiName(localInterface1, null);
+      assertEquals(expectedLocal1, resolvedJndiNameLocalD);
+      String resolvedJndiNameLocal2D = beanMD.determineResolvedJndiName(localInterface2, null);
+      assertEquals(expectedLocal2, resolvedJndiNameLocal2D);
+      String resolvedJndiNameLocalHomeD = beanMD.determineResolvedJndiName(localHomeInterface, null);
+      assertEquals(expectedLocalHome, resolvedJndiNameLocalHomeD);
+   }
+
+   @SuppressWarnings(value="deprecation")
+   public void testResolvedJndiNamesWithKnownIfaces2x()
+   {
+      // Get MD
+      JBossSessionBeanMetaData sbeanMD = getDecoratedEjbMetaData();
+      
+      // Manually set Version to EJB2.x
+      sbeanMD.getJBossMetaData().setEjbVersion("2.1");
+      
+      // Define Interfaces
+      String local ="org.jboss.ifaces.LocalIF";
+      String localHome = "org.jboss.ifaces.LocalHomeIF";
+      String home = "org.jboss.ifaces.HomeIF";
+      String remote = "org.jboss.ifaces.RemoteIF";
+      
+      // Manually Set Interfaces
+      sbeanMD.setLocal(local);
+      sbeanMD.setLocalHome(localHome);
+      sbeanMD.setHome(home);
+      sbeanMD.setRemote(remote);
+      
+      // Define expected values
+      String expectedRemote = "base/testResolvedJndiNamesWithKnownIfaces2x-ejb";
+      String expectedHome = "base/testResolvedJndiNamesWithKnownIfaces2x-ejb";
+      String expectedLocalHome = "local/" + sbeanMD.getEjbName() + '@' + System.identityHashCode(sbeanMD.getEjbName());
+      
+      // Resolve
+      String resolvedRemote = sbeanMD.getJndiName();
+      String resolvedHome = sbeanMD.getHomeJndiName();
+      String resolvedLocal = sbeanMD.getLocalJndiName();
+      String resolvedLocalHome = sbeanMD.getLocalHomeJndiName();
+      
+      // Test
+      assertEquals(expectedRemote, resolvedRemote);
+      assertEquals(expectedHome, resolvedHome);
+      assertEquals(resolvedRemote, resolvedHome);
+      assertEquals(expectedLocalHome, resolvedLocal);
+      assertEquals(resolvedLocal, resolvedLocalHome);
+      
+      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
+      String resolvedJndiNameD = sbeanMD.determineJndiName();
+      assertEquals(expectedRemote, resolvedJndiNameD);
+      String resolvedJndiNameHomeD = sbeanMD.determineResolvedJndiName(home, null);
+      assertEquals(expectedHome, resolvedJndiNameHomeD);
+      assertEquals(expectedLocalHome, sbeanMD.determineLocalJndiName());
+      String resolvedJndiNameLocalHomeD = sbeanMD.determineResolvedJndiName(localHome, null);
+      assertEquals(sbeanMD.determineLocalJndiName(), resolvedJndiNameLocalHomeD);
+   }
+
+   /**
+    * Test resolved jndi name for an entity bean 
+    */
+   @SuppressWarnings(value="deprecation")
+   public void testResolvedJndiNamesWithKnownIfacesEntity()
+   {
+      // Obtain MD
+      JBossEntityBeanMetaData beanMD = getEntityMetaData();
+      
+      // Declare Interfaces
+      String local = "org.jboss.ifaces.LocalIF";
+      String localHome = "org.jboss.ifaces.LocalHomeIF";
+      String home = "org.jboss.ifaces.HomeIF";
+      String remote = "org.jboss.ifaces.RemoteIF";
+      String randomInterface = "org.jboss.test.some.IFace";
+
+      // Manually set interfaces on MD
+      beanMD.setLocal(local);
+      beanMD.setLocalHome(localHome);
+      beanMD.setHome(home);
+      beanMD.setRemote(remote);
+      
+      // Define expected results
+      String expectedRemote = "base/testResolvedJndiNamesWithKnownIfacesEntity-jndi-name";
+      String expectedHome = "base/testResolvedJndiNamesWithKnownIfacesEntity-jndi-name/home";
+      String expectedLocalHome = "base/testResolvedJndiNamesWithKnownIfacesEntity-jndi-name/localHome";
+      String expectedRandomInterface = "base/testResolvedJndiNamesWithKnownIfacesEntity-jndi-name/" + randomInterface;
+      
+      // Resolve
+      String resolvedDefault = JbossEnterpriseBeanJndiNameResolver.resolveJndiName(beanMD, null);
+      String resolvedHomeUsingInterface = JbossEnterpriseBeanJndiNameResolver.resolveJndiName(beanMD, home);
+      String resolvedHomeUsingType = JbossEnterpriseBeanJndiNameResolver.resolveJndiName(beanMD, KnownInterfaces.HOME);
+      String resolvedLocalHomeUsingInterface = JbossEnterpriseBeanJndiNameResolver.resolveJndiName(beanMD, localHome);
+      String resolvedLocalHomeUsingType = JbossEnterpriseBeanJndiNameResolver.resolveJndiName(beanMD, KnownInterfaces.LOCAL_HOME);
+      String resolvedInterfaceSpecific = JbossEnterpriseBeanJndiNameResolver.resolveJndiName(beanMD, randomInterface);
+      
+      // Test
+      assertEquals(expectedRemote, resolvedDefault);
+      assertEquals(expectedHome, resolvedHomeUsingInterface);
+      assertEquals(expectedHome, resolvedHomeUsingType);
+      assertEquals(expectedLocalHome, resolvedLocalHomeUsingInterface);
+      assertEquals(expectedLocalHome, resolvedLocalHomeUsingType);
+      assertEquals(expectedRandomInterface, resolvedInterfaceSpecific);
+
+      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
+      String resolvedJndiNameD = beanMD.determineResolvedJndiName(null, null);
+      assertEquals(expectedRemote, resolvedJndiNameD);
+      String resolvedJndiNameHomeD = beanMD.determineResolvedJndiName(home, null);
+      assertEquals(expectedHome, resolvedJndiNameHomeD);
+      String resolvedJndiNameLocalHomeD = beanMD.determineResolvedJndiName(localHome, null);
+      assertEquals(expectedLocalHome, resolvedJndiNameLocalHomeD);
+      String resolvedJndiNameIfaceD = beanMD.determineResolvedJndiName(randomInterface, null);
+      assertEquals(expectedRandomInterface, resolvedJndiNameIfaceD);
+   }
+
+   /**
+    * Test the determineResolvedJndiName with a jndiBindingPolicy on the
+    * JBossSessionPolicyDecorator
+    * 
+    */
+   @SuppressWarnings(value="deprecation")
+   public void testResolvedJndiNamesWithMDPolicy()
+   {
+      // Get Metadata
+      JBossSessionBeanMetaData beanMD = this.getEjbMetaData();
+      
+      // Manually Decorate
+      beanMD = new JBossSessionPolicyDecorator(beanMD,new EjbNameJndiBindingPolicy());
+      
+      // Define Expected Results
+      String expectedRemote  = "testResolvedJndiNamesWithMDPolicy-ejbRemote";
+      String expectedHome  = "testResolvedJndiNamesWithMDPolicy-ejbHome";
+      String expectedLocal = "testResolvedJndiNamesWithMDPolicy-ejbLocal";
+      String expectedLocalHome = "testResolvedJndiNamesWithMDPolicy-ejbLocalHome";
+      
+      // Resolve
+      String resolvedJndiNameRemoteUsingResolver = JbossSessionBeanJndiNameResolver.resolveRemoteBusinessDefaultJndiName(beanMD);
+      String resolvedJndiNameRemoteUsingResolverType = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD,KnownInterfaces.REMOTE);
+      String resolvedJndiNameHomeUsingResolver = JbossSessionBeanJndiNameResolver.resolveRemoteHomeJndiName(beanMD);
+      String resolvedJndiNameHomeUsingResolverType = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD,KnownInterfaces.HOME);
+      String resolvedJndiNameLocalUsingResolver = JbossSessionBeanJndiNameResolver.resolveLocalBusinessDefaultJndiName(beanMD);
+      String resolvedJndiNameLocalUsingResolverType = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD,KnownInterfaces.LOCAL);      
+      String resolvedJndiNameLocalHomeUsingResolver = JbossSessionBeanJndiNameResolver.resolveLocalHomeJndiName(beanMD);
+      String resolvedJndiNameLocalHomeUsingResolverType = JbossSessionBeanJndiNameResolver.resolveJndiName(beanMD,KnownInterfaces.LOCAL_HOME);
+      
+      // Test
+      assertEquals(expectedRemote,resolvedJndiNameRemoteUsingResolver);
+      assertEquals(expectedRemote,resolvedJndiNameRemoteUsingResolverType);
+      assertEquals(expectedHome,resolvedJndiNameHomeUsingResolver);
+      assertEquals(expectedHome,resolvedJndiNameHomeUsingResolverType);
+      assertEquals(expectedLocal,resolvedJndiNameLocalUsingResolver);
+      assertEquals(expectedLocal,resolvedJndiNameLocalUsingResolverType);
+      assertEquals(expectedLocalHome,resolvedJndiNameLocalHomeUsingResolver);
+      assertEquals(expectedLocalHome,resolvedJndiNameLocalHomeUsingResolverType);
+      
+      // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
+      String resolvedJndiNameRemoteD = beanMD.determineResolvedJndiName(KnownInterfaces.REMOTE, null);
+      assertEquals(expectedRemote, resolvedJndiNameRemoteD);
+      String resolvedJndiNameHomeD = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, null);
+      assertEquals(expectedHome, resolvedJndiNameHomeD);
+      String resolvedJndiNameLocalD = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL, null);
+      assertEquals(expectedLocal, resolvedJndiNameLocalD);
+      String resolvedJndiNameLocalHomeD = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL_HOME, null);
+      assertEquals(expectedLocalHome, resolvedJndiNameLocalHomeD);
+   }
+
+   /*
+    * This test has been removed, as specifying a Policy by the caller when looking for 
+    * a Resolved JNDI Name is beyond scope of the Object Model.  This should be done 
+    * when the Object is decorated, as exhibited by "testResolvedJndiNamesWithMDPolicy"
+    */
+//   /**
+//    * Test the determineResolvedJndiName with a jndiBindingPolicy passed into
+//    * determineResolvedJndiName
+//    * 
+//    */
+//   public void testResolvedJndiNamesWithExternalPolicy()
+//   {
+//      JBossEnterpriseBeanMetaData beanMD = getDecoratedEjbMetaData();
+//      EjbNameJndiBindingPolicy policy = new EjbNameJndiBindingPolicy();
+//      String resolvedJndiNameRemote = beanMD.determineResolvedJndiName(KnownInterfaces.REMOTE, policy);
+//      assertEquals("testResolvedJndiNamesWithExternalPolicy-ejbRemote", resolvedJndiNameRemote);
+//      String resolvedJndiNameHome = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, policy);
+//      assertEquals("testResolvedJndiNamesWithExternalPolicy-ejbHome", resolvedJndiNameHome);
+//      String resolvedJndiNameLocal = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL, policy);
+//      assertEquals("testResolvedJndiNamesWithExternalPolicy-ejbLocal", resolvedJndiNameLocal);
+//      String resolvedJndiNameLocalHome = beanMD.determineResolvedJndiName(KnownInterfaces.LOCAL_HOME, policy);
+//      assertEquals("testResolvedJndiNamesWithExternalPolicy-ejbLocalHome", resolvedJndiNameLocalHome);
+//   }
+
+   /**
+    * Creates a JBossSessionBeanMetaData decorated with a BasicJndiBindingPolicy
+    */
+   protected JBossSessionBeanMetaData getDecoratedEjbMetaData()
+   {
+      // Get MD
+      JBossSessionBeanMetaData sbeanMD = this.getEjbMetaData();
+
+      // We want the meta data decorated with the JNDI binding policy.
+      sbeanMD =  new JBossSessionPolicyDecorator(sbeanMD, new BasicJndiBindingPolicy());
+      
+      // Return
+      return sbeanMD;
+   }
+   
+   /**
+    * Creates a JBossSessionBeanMetaData with associated JBossMetaData with:
+    * ejbName = getName() + "-ejb"
+    * ejbClass = "org.jboss.ejb."+ getName()
+    * jndiName = getName() + "-jndi-name"
+    * @return JBossSessionBeanMetaData
+    */
+   protected JBossSessionBeanMetaData getEjbMetaData()
+   {
+      String name = super.getName();
+      JBossMetaData jbossMetaData = new JBossMetaData();
+      jbossMetaData.setEjbVersion("3.0");
+      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");
+      sbeanMD.setEjbClass("org.jboss.ejb." + name);
+      JBossEnterpriseBeansMetaData beans = new JBossEnterpriseBeansMetaData();
+      beans.setEjbJarMetaData(jbossMetaData);
+      beans.add(sbeanMD);
+      jbossMetaData.setEnterpriseBeans(beans);
+      
+      // Return
+      return sbeanMD;
+   }
+
+   /**
+    * Creates a JBossEntityBeanMetaData with associated JBossMetaData with:
+    * ejbName = getName() + "-ejb"
+    * ejbClass = "org.jboss.ejb."+ getName()
+    * jndiName = getName() + "-jndi-name"
+    * @return JBossEntityBeanMetaData
+    */
+   protected JBossEntityBeanMetaData getEntityMetaData()
+   {
+      String name = super.getName();
+      JBossMetaData jbossMetaData = new JBossMetaData();
+      jbossMetaData.setEjbVersion("3.0");
+      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");
+      sbeanMD.setEjbClass("org.jboss.ejb." + name);
+      sbeanMD.setJndiName(name + "-jndi-name");
+      JBossEnterpriseBeansMetaData beans = new JBossEnterpriseBeansMetaData();
+      beans.setEjbJarMetaData(jbossMetaData);
+      beans.add(sbeanMD);
+      jbossMetaData.setEnterpriseBeans(beans);
+      
+      // Decorate
+      sbeanMD = new JbossEntityPolicyDecorator(sbeanMD,new BasicJndiBindingPolicy());
+      
+      return sbeanMD;
+   }
+}




More information about the jboss-cvs-commits mailing list