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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jun 11 23:31:48 EDT 2008


Author: scott.stark at jboss.org
Date: 2008-06-11 23:31:48 -0400 (Wed, 11 Jun 2008)
New Revision: 74453

Added:
   projects/metadata/tags/1.0.0.Beta20/
   projects/metadata/tags/1.0.0.Beta20/pom.xml
   projects/metadata/tags/1.0.0.Beta20/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java
   projects/metadata/tags/1.0.0.Beta20/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java
Removed:
   projects/metadata/tags/1.0.0.Beta20/pom.xml
   projects/metadata/tags/1.0.0.Beta20/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java
   projects/metadata/tags/1.0.0.Beta20/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java
Log:
[maven-release-plugin]  copy for tag 1.0.0.Beta20

Copied: projects/metadata/tags/1.0.0.Beta20 (from rev 74441, projects/metadata/trunk)

Deleted: projects/metadata/tags/1.0.0.Beta20/pom.xml
===================================================================
--- projects/metadata/trunk/pom.xml	2008-06-12 00:22:38 UTC (rev 74441)
+++ projects/metadata/tags/1.0.0.Beta20/pom.xml	2008-06-12 03:31:48 UTC (rev 74453)
@@ -1,212 +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>3</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:https://svn.jboss.org/repos/jbossas/projects/metadata/trunk/</connection>
-  </scm>
-  <licenses>
-    <license>
-      <name>lgpl</name>
-      <url>http://repository.jboss.com/licenses/lgpl.txt</url>
-    </license>
-  </licenses>
-  <organization>
-    <name>JBoss, A division of Red Hat</name>
-    <url>http://www.jboss.org</url>
-  </organization>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.3</version>
-        <configuration>
-          <printSummary>true</printSummary>
-          <disableXmlReport>false</disableXmlReport>
-          <testFailureIgnore>true</testFailureIgnore>
-          <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>
-    <profile>
-      <!-- This profile allows hudson to skip the jboss-deploy step -->
-      <id>jboss-deploy</id>
-      <activation>
-        <property>
-          <name>!skip.jboss-deploy</name>
-        </property>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.jboss.maven.plugins</groupId>
-            <artifactId>maven-jboss-deploy-plugin</artifactId>
-            <version>1.5</version>
-            <executions>
-              <execution>
-                <id>jboss-deploy</id>
-                <goals>
-                  <goal>jboss-deploy</goal>
-                </goals>
-                <phase>deploy</phase>
-              </execution>
-            </executions>
-            <configuration>
-              <groupId>jboss</groupId>
-              <imports>
-                <jboss.common-core>2.2.1.GA,2.2.2.GA</jboss.common-core>
-              </imports>
-              <jbossDeployRoot>${jboss.repository.root}</jbossDeployRoot>
-              <removeArtifactVersion>true</removeArtifactVersion>
-            </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.5.GA</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-ext-api</artifactId>
-      <version>0.3</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.Beta11</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.Beta20/pom.xml (from rev 74452, projects/metadata/trunk/pom.xml)
===================================================================
--- projects/metadata/tags/1.0.0.Beta20/pom.xml	                        (rev 0)
+++ projects/metadata/tags/1.0.0.Beta20/pom.xml	2008-06-12 03:31:48 UTC (rev 74453)
@@ -0,0 +1,212 @@
+<!--
+  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>3</version>
+  </parent>
+  <groupId>org.jboss.metadata</groupId>
+  <artifactId>jboss-metadata</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0.0.Beta20</version>
+  <name>JBoss Metadata</name>
+  <url>http://www.jboss.org</url>
+  <description>The common JavaEE metadata classes</description>
+  <scm>
+    <connection>scm:svn:https://svn.jboss.org/repos/jbossas/projects/metadata/tags/1.0.0.Beta20</connection>
+  </scm>
+  <licenses>
+    <license>
+      <name>lgpl</name>
+      <url>http://repository.jboss.com/licenses/lgpl.txt</url>
+    </license>
+  </licenses>
+  <organization>
+    <name>JBoss, A division of Red Hat</name>
+    <url>http://www.jboss.org</url>
+  </organization>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.3</version>
+        <configuration>
+          <printSummary>true</printSummary>
+          <disableXmlReport>false</disableXmlReport>
+          <testFailureIgnore>true</testFailureIgnore>
+          <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>
+    <profile>
+      <!-- This profile allows hudson to skip the jboss-deploy step -->
+      <id>jboss-deploy</id>
+      <activation>
+        <property>
+          <name>!skip.jboss-deploy</name>
+        </property>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.jboss.maven.plugins</groupId>
+            <artifactId>maven-jboss-deploy-plugin</artifactId>
+            <version>1.5</version>
+            <executions>
+              <execution>
+                <id>jboss-deploy</id>
+                <goals>
+                  <goal>jboss-deploy</goal>
+                </goals>
+                <phase>deploy</phase>
+              </execution>
+            </executions>
+            <configuration>
+              <groupId>jboss</groupId>
+              <imports>
+                <jboss.common-core>2.2.1.GA,2.2.2.GA</jboss.common-core>
+              </imports>
+              <jbossDeployRoot>${jboss.repository.root}</jbossDeployRoot>
+              <removeArtifactVersion>true</removeArtifactVersion>
+            </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.5.GA</version>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-ext-api</artifactId>
+      <version>0.3</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.Beta11</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.Beta20/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java	2008-06-12 00:22:38 UTC (rev 74441)
+++ projects/metadata/tags/1.0.0.Beta20/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java	2008-06-12 03:31:48 UTC (rev 74453)
@@ -1,273 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, 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;
-
-import org.jboss.metadata.common.jboss.LoaderRepositoryMetaData;
-import org.jboss.metadata.ejb.spec.InterceptorsMetaData;
-import org.jboss.metadata.ejb.spec.RelationsMetaData;
-import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
-
-/**
- * Read only wrapper that combines a primary and standardjboss.xml defaults into
- * a unified view.
- *
- * @author Scott.Stark at jboss.org
- * @version $Revision$
- */
-public class JBossMetaDataWrapper extends JBossMetaData
-{
-   private static final long serialVersionUID = 1;
-   private JBossMetaData primary;
-   private JBossMetaData defaults;
-   private ContainerConfigurationsMetaData configurationsWrapper;
-   private transient InvokerProxyBindingsMetaData mergedInvokerBindings;
-   
-
-   public JBossMetaDataWrapper(JBossMetaData primary, JBossMetaData defaults)
-   {
-      this.primary = primary;
-      this.defaults = defaults;
-      configurationsWrapper = new ContainerConfigurationsMetaDataWrapper(primary.getContainerConfigurations(),
-            defaults.getContainerConfigurations());
-      wireOverrides();
-   }
-
-   @Override
-   public String getDtdPublicId()
-   {
-      return primary.getDtdPublicId();
-   }
-
-   @Override
-   public String getDtdSystemId()
-   {
-      return primary.getDtdSystemId();
-   }
-
-   @Override
-   public String getEjbClientJar()
-   {
-      String clientJar = primary.getEjbClientJar();
-      if(clientJar == null)
-         clientJar = defaults.getEjbClientJar();
-      return clientJar;
-   }
-
-   @Override
-   public InterceptorsMetaData getInterceptors()
-   {
-      InterceptorsMetaData interceptors = primary.getInterceptors();
-      if(interceptors == null)
-         interceptors = defaults.getInterceptors();
-      return interceptors;
-   }
-
-   @Override
-   public String getJaccContextID()
-   {
-      String jaccID = primary.getJaccContextID();
-      if(jaccID == null)
-         jaccID = defaults.getJaccContextID();
-      return jaccID;
-   }
-
-   @Override
-   public RelationsMetaData getRelationships()
-   {
-      RelationsMetaData relations = primary.getRelationships();
-      if(relations == null)
-         relations = defaults.getRelationships();
-      return relations;
-   }
-
-   @Override
-   public boolean isEJB1x()
-   {
-      return primary.isEJB1x();
-   }
-
-   @Override
-   public boolean isEJB21()
-   {
-      return primary.isEJB21();
-   }
-
-   @Override
-   public boolean isEJB2x()
-   {
-      return primary.isEJB2x();
-   }
-
-   @Override
-   public boolean isEJB3x()
-   {
-      return primary.isEJB3x();
-   }
-
-   @Override
-   public JBossAssemblyDescriptorMetaData getAssemblyDescriptor()
-   {
-      return primary.getAssemblyDescriptor();
-   }
-   
-   @Override
-   public ContainerConfigurationMetaData getContainerConfiguration(String name)
-   {
-      ContainerConfigurationMetaData ccmd = configurationsWrapper.get(name);
-      return ccmd;
-   }
-
-   @Override
-   public ContainerConfigurationsMetaData getContainerConfigurations()
-   {
-      return configurationsWrapper;
-   }
-
-   @Override
-   public JBossEnterpriseBeanMetaData getEnterpriseBean(String name)
-   {
-      return primary.getEnterpriseBean(name);
-   }
-
-   @Override
-   public JBossEnterpriseBeansMetaData getEnterpriseBeans()
-   {
-      return primary.getEnterpriseBeans();
-   }
-
-   @Override
-   public InvokerProxyBindingMetaData getInvokerProxyBinding(String name)
-   {
-      InvokerProxyBindingMetaData ipbmd = primary.getInvokerProxyBinding(name);
-      if(ipbmd == null)
-         ipbmd = defaults.getInvokerProxyBinding(name);
-      return ipbmd;
-   }
-
-   @Override
-   public InvokerProxyBindingsMetaData getInvokerProxyBindings()
-   {
-      if(mergedInvokerBindings == null)
-      {
-         mergedInvokerBindings = new InvokerProxyBindingsMetaDataWrapper(
-               this.primary.getInvokerProxyBindings(),
-               this.defaults.getInvokerProxyBindings());
-      }
-      return mergedInvokerBindings;
-   }
-
-   @Override
-   public String getJmxName()
-   {
-      String jmxName = primary.getJmxName();
-      if(jmxName == null)
-         jmxName = defaults.getJmxName();
-      return jmxName;
-   }
-
-   @Override
-   public LoaderRepositoryMetaData getLoaderRepository()
-   {
-      LoaderRepositoryMetaData x = primary.getLoaderRepository();
-      if(x == null)
-         x = defaults.getLoaderRepository();
-      return x;
-   }
-
-   @Override
-   public ResourceManagerMetaData getResourceManager(String name)
-   {
-      return primary.getResourceManager(name);
-   }
-
-   @Override
-   public ResourceManagersMetaData getResourceManagers()
-   {
-      return primary.getResourceManagers();
-   }
-
-   @Override
-   public String getSecurityDomain()
-   {
-      return primary.getSecurityDomain();
-   }
-
-   @Override
-   public String getUnauthenticatedPrincipal()
-   {
-      String unauthenticatedPrincipal = primary.getUnauthenticatedPrincipal();
-      if (unauthenticatedPrincipal == null)
-         unauthenticatedPrincipal = defaults.getUnauthenticatedPrincipal();
-      return unauthenticatedPrincipal;
-   }
-
-   @Override
-   public String getVersion()
-   {
-      return primary.getVersion();
-   }
-
-   @Override
-   public WebservicesMetaData getWebservices()
-   {
-      return primary.getWebservices();
-   }
-
-   @Override
-   public boolean isExceptionOnRollback()
-   {
-      return primary.isExceptionOnRollback();
-   }
-
-   @Override
-   public boolean isExcludeMissingMethods()
-   {
-      return primary.isExcludeMissingMethods();
-   }
-
-   @Override
-   public DescriptionGroupMetaData getDescriptionGroup()
-   {
-      return primary.getDescriptionGroup();
-   }
-
-   @Override
-   public String getId()
-   {
-      return primary.getId();
-   }
-
-   @Override
-   public String toString()
-   {
-      return primary.toString();
-   }
-
-   protected void wireOverrides()
-   {
-      if( primary != null )
-      {
-         JBossEnterpriseBeansMetaData beans = (JBossEnterpriseBeansMetaData) primary.getEnterpriseBeans();
-         beans.setJBossMetaData(this);
-      }
-   }
-}

Copied: projects/metadata/tags/1.0.0.Beta20/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java (from rev 74451, projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java)
===================================================================
--- projects/metadata/tags/1.0.0.Beta20/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java	                        (rev 0)
+++ projects/metadata/tags/1.0.0.Beta20/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java	2008-06-12 03:31:48 UTC (rev 74453)
@@ -0,0 +1,319 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, 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;
+
+import org.jboss.metadata.common.jboss.LoaderRepositoryMetaData;
+import org.jboss.metadata.ejb.jboss.jndipolicy.spi.DeploymentSummary;
+import org.jboss.metadata.ejb.spec.InterceptorsMetaData;
+import org.jboss.metadata.ejb.spec.RelationsMetaData;
+import org.jboss.metadata.javaee.jboss.RunAsIdentityMetaData;
+import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
+
+/**
+ * Read only wrapper that combines a primary and standardjboss.xml defaults into
+ * a unified view.
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class JBossMetaDataWrapper extends JBossMetaData
+{
+   private static final long serialVersionUID = 1;
+   private JBossMetaData primary;
+   private JBossMetaData defaults;
+   private ContainerConfigurationsMetaData configurationsWrapper;
+   private transient InvokerProxyBindingsMetaData mergedInvokerBindings;
+   
+
+   public JBossMetaDataWrapper(JBossMetaData primary, JBossMetaData defaults)
+   {
+      this.primary = primary;
+      this.defaults = defaults;
+      configurationsWrapper = new ContainerConfigurationsMetaDataWrapper(primary.getContainerConfigurations(),
+            defaults.getContainerConfigurations());
+      wireOverrides();
+   }
+
+   @Override
+   public String getDtdPublicId()
+   {
+      return primary.getDtdPublicId();
+   }
+
+   @Override
+   public String getDtdSystemId()
+   {
+      return primary.getDtdSystemId();
+   }
+
+   @Override
+   public String getEjbClientJar()
+   {
+      String clientJar = primary.getEjbClientJar();
+      if(clientJar == null && defaults != null)
+         clientJar = defaults.getEjbClientJar();
+      return clientJar;
+   }
+
+   @Override
+   public InterceptorsMetaData getInterceptors()
+   {
+      InterceptorsMetaData interceptors = primary.getInterceptors();
+      if(interceptors == null && defaults != null)
+         interceptors = defaults.getInterceptors();
+      return interceptors;
+   }
+
+   @Override
+   public String getJaccContextID()
+   {
+      String jaccID = primary.getJaccContextID();
+      if(jaccID == null && defaults != null)
+         jaccID = defaults.getJaccContextID();
+      return jaccID;
+   }
+
+   @Override
+   public RelationsMetaData getRelationships()
+   {
+      RelationsMetaData relations = primary.getRelationships();
+      if(relations == null && defaults != null)
+         relations = defaults.getRelationships();
+      return relations;
+   }
+
+   @Override
+   public boolean isEJB1x()
+   {
+      return primary.isEJB1x();
+   }
+
+   @Override
+   public boolean isEJB21()
+   {
+      return primary.isEJB21();
+   }
+
+   @Override
+   public boolean isEJB2x()
+   {
+      return primary.isEJB2x();
+   }
+
+   @Override
+   public boolean isEJB3x()
+   {
+      return primary.isEJB3x();
+   }
+
+   @Override
+   public JBossAssemblyDescriptorMetaData getAssemblyDescriptor()
+   {
+      return primary.getAssemblyDescriptor();
+   }
+   
+   @Override
+   public ContainerConfigurationMetaData getContainerConfiguration(String name)
+   {
+      ContainerConfigurationMetaData ccmd = configurationsWrapper.get(name);
+      return ccmd;
+   }
+
+   @Override
+   public ContainerConfigurationsMetaData getContainerConfigurations()
+   {
+      return configurationsWrapper;
+   }
+
+   @Override
+   public JBossEnterpriseBeanMetaData getEnterpriseBean(String name)
+   {
+      return primary.getEnterpriseBean(name);
+   }
+
+   @Override
+   public JBossEnterpriseBeansMetaData getEnterpriseBeans()
+   {
+      return primary.getEnterpriseBeans();
+   }
+
+   @Override
+   public InvokerProxyBindingMetaData getInvokerProxyBinding(String name)
+   {
+      InvokerProxyBindingMetaData ipbmd = primary.getInvokerProxyBinding(name);
+      if(ipbmd == null && defaults != null)
+         ipbmd = defaults.getInvokerProxyBinding(name);
+      return ipbmd;
+   }
+
+   @Override
+   public InvokerProxyBindingsMetaData getInvokerProxyBindings()
+   {
+      if(mergedInvokerBindings == null)
+      {
+         mergedInvokerBindings = new InvokerProxyBindingsMetaDataWrapper(
+               this.primary.getInvokerProxyBindings(),
+               this.defaults.getInvokerProxyBindings());
+      }
+      return mergedInvokerBindings;
+   }
+
+   @Override
+   public String getJmxName()
+   {
+      String jmxName = primary.getJmxName();
+      if(jmxName == null && defaults != null)
+         jmxName = defaults.getJmxName();
+      return jmxName;
+   }
+
+   @Override
+   public LoaderRepositoryMetaData getLoaderRepository()
+   {
+      LoaderRepositoryMetaData x = primary.getLoaderRepository();
+      if(x == null && defaults != null)
+         x = defaults.getLoaderRepository();
+      return x;
+   }
+
+   @Override
+   public ResourceManagerMetaData getResourceManager(String name)
+   {
+      return primary.getResourceManager(name);
+   }
+
+   @Override
+   public ResourceManagersMetaData getResourceManagers()
+   {
+      return primary.getResourceManagers();
+   }
+
+   @Override
+   public String getSecurityDomain()
+   {
+      return primary.getSecurityDomain();
+   }
+
+   @Override
+   public String getUnauthenticatedPrincipal()
+   {
+      String unauthenticatedPrincipal = primary.getUnauthenticatedPrincipal();
+      if (unauthenticatedPrincipal == null && defaults != null)
+         unauthenticatedPrincipal = defaults.getUnauthenticatedPrincipal();
+      return unauthenticatedPrincipal;
+   }
+
+   
+   @Override
+   public DeploymentSummary getDeploymentSummary()
+   {
+      DeploymentSummary summary = primary.getDeploymentSummary();
+      return summary;
+   }
+
+   @Override
+   public String getJndiBindingPolicy()
+   {
+      String policy = primary.getJndiBindingPolicy();
+      if(policy == null && defaults != null)
+         policy = defaults.getJndiBindingPolicy();
+      return policy;
+   }
+
+   @Override
+   public RunAsIdentityMetaData getRunAsIdentity(String ejbName)
+   {
+      RunAsIdentityMetaData runAs = primary.getRunAsIdentity(ejbName);
+      if(runAs == null && defaults != null)
+         runAs = defaults.getRunAsIdentity(ejbName);
+      return runAs;
+   }
+
+   @Override
+   public boolean isMetadataComplete()
+   {
+      return primary.isMetadataComplete();
+   }
+
+   @Override
+   public String getEjbVersion()
+   {
+      String ejbVersion = primary.getEjbVersion();
+      if(ejbVersion == null)
+         ejbVersion = defaults.getEjbVersion();
+      return ejbVersion;
+   }
+
+   @Override
+   public String getVersion()
+   {
+      String version = primary.getVersion();
+      if(version == null)
+         version = defaults.getVersion();
+      return version;
+   }
+
+   @Override
+   public WebservicesMetaData getWebservices()
+   {
+      return primary.getWebservices();
+   }
+
+   @Override
+   public boolean isExceptionOnRollback()
+   {
+      return primary.isExceptionOnRollback();
+   }
+
+   @Override
+   public boolean isExcludeMissingMethods()
+   {
+      return primary.isExcludeMissingMethods();
+   }
+
+   @Override
+   public DescriptionGroupMetaData getDescriptionGroup()
+   {
+      return primary.getDescriptionGroup();
+   }
+
+   @Override
+   public String getId()
+   {
+      return primary.getId();
+   }
+
+   @Override
+   public String toString()
+   {
+      return primary.toString();
+   }
+
+   protected void wireOverrides()
+   {
+      if( primary != null )
+      {
+         JBossEnterpriseBeansMetaData beans = (JBossEnterpriseBeansMetaData) primary.getEnterpriseBeans();
+         beans.setJBossMetaData(this);
+      }
+   }
+}

Deleted: projects/metadata/tags/1.0.0.Beta20/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java	2008-06-12 00:22:38 UTC (rev 74441)
+++ projects/metadata/tags/1.0.0.Beta20/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java	2008-06-12 03:31:48 UTC (rev 74453)
@@ -1,1002 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* 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.test.metadata.ejb;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import junit.framework.Test;
-
-import org.jboss.metadata.ApplicationMetaData;
-import org.jboss.metadata.BeanMetaData;
-import org.jboss.metadata.ConfigurationMetaData;
-import org.jboss.metadata.ejb.jboss.CacheInvalidationConfigMetaData;
-import org.jboss.metadata.ejb.jboss.ClusterConfigMetaData;
-import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
-import org.jboss.metadata.ejb.jboss.InvokerBindingMetaData;
-import org.jboss.metadata.ejb.jboss.InvokerBindingsMetaData;
-import org.jboss.metadata.ejb.jboss.InvokerProxyBindingMetaData;
-import org.jboss.metadata.ejb.jboss.InvokerProxyBindingsMetaData;
-import org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData;
-import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
-import org.jboss.metadata.ejb.jboss.JBossAssemblyDescriptorMetaData;
-import org.jboss.metadata.ejb.jboss.JBossConsumerBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
-import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossGenericBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMetaDataWrapper;
-import org.jboss.metadata.ejb.jboss.JBossServiceBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossSessionPolicyDecorator;
-import org.jboss.metadata.ejb.jboss.MessagePropertiesMetaData;
-import org.jboss.metadata.ejb.jboss.ProducerMetaData;
-import org.jboss.metadata.ejb.jboss.RemoteBindingMetaData;
-import org.jboss.metadata.ejb.jboss.ResourceManagerMetaData;
-import org.jboss.metadata.ejb.jboss.ResourceManagersMetaData;
-import org.jboss.metadata.ejb.spec.EjbJar20MetaData;
-import org.jboss.metadata.ejb.spec.EjbJar21MetaData;
-import org.jboss.metadata.ejb.spec.EjbJar2xMetaData;
-import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
-import org.jboss.metadata.ejb.spec.EjbJarMetaData;
-import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
-import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;
-import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
-import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
-import org.jboss.metadata.ejb.spec.SubscriptionDurability;
-import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
-import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
-import org.jboss.metadata.javaee.spec.EJBReferenceType;
-import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
-import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
-import org.jboss.metadata.javaee.spec.PortComponent;
-import org.jboss.metadata.javaee.spec.ResourceAuthorityType;
-import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
-import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
-import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
-import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
-import org.jboss.metadata.javaee.spec.RunAsMetaData;
-import org.jboss.metadata.merge.MergeUtil;
-import org.jboss.test.metadata.javaee.AbstractJavaEEMetaDataTest;
-import org.jboss.test.metadata.javaee.JBossXBTestDelegate;
-import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
-import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
-
-/**
- * Miscellaneous tests with a JBoss 5 xml.
- * 
- * @author <a href="carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @author Scott.Stark at jboss.org
- * @version $Revision$
- */
- at SuppressWarnings("deprecation")
-public class JBoss50UnitTestCase extends AbstractJavaEEMetaDataTest
-{
-   public static Test suite()
-   {
-      return suite(JBoss50UnitTestCase.class);
-   }
-   
-   public static SchemaBindingResolver initResolver()
-   {
-      DefaultSchemaResolver resolver = new DefaultSchemaResolver();
-      resolver.addClassBindingForLocation("ejb-jar_2_0.dtd", EjbJar20MetaData.class);
-      resolver.addClassBindingForLocation("ejb-jar_2_1.xsd", EjbJar21MetaData.class);
-      resolver.addClassBindingForLocation("jboss_3_0.dtd", JBoss50DTDMetaData.class);
-      resolver.addClassBindingForLocation("jboss_3_2.dtd", JBoss50DTDMetaData.class);
-      resolver.addClassBindingForLocation("jboss_4_0.dtd", JBoss50DTDMetaData.class);
-      resolver.addClassBindingForLocation("jboss_4_2.dtd", JBoss50DTDMetaData.class);
-      resolver.addClassBindingForLocation("jboss_5_0.dtd", JBoss50DTDMetaData.class);
-      resolver.addClassBindingForLocation("jboss_5_0.xsd", JBoss50MetaData.class);
-      // Workaround wildard resolution slowness
-      resolver.addClassBinding("http://www.jboss.com/xml/ns/javaee", JBoss50MetaData.class);
-      return resolver;
-   }
-   
-   public static boolean validateSchema()
-   {
-      return true;
-   }
-   
-   public JBoss50UnitTestCase(String name)
-   {
-      super(name);
-   }
-   
-   protected JBossMetaData unmarshal() throws Exception
-   {
-      return unmarshal(JBossMetaData.class);
-   }
-   
-   /**
-    * Test for consumer bean
-    */
-   public void testConsumer() throws Exception
-   {
-      JBossMetaData result = unmarshal();
-      
-      assertEquals(1, result.getEnterpriseBeans().size());
-      JBossConsumerBeanMetaData bean = (JBossConsumerBeanMetaData) result.getEnterpriseBean("DeploymentDescriptorQueueTestConsumer");
-      assertNotNull(bean);
-      assertTrue(bean.isConsumer());
-      assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestConsumer", bean.getEjbClass());
-      assertEquals("queue/consumertest", bean.getMessageDestination());
-      assertEquals("javax.jms.Queue", bean.getMessageDestinationType());
-      
-      assertEquals(2, bean.getProducers().size());
-      {
-         ProducerMetaData producer = bean.getProducers().get(0);
-         assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestRemote", producer.getClassName());
-      }
-      {
-         ProducerMetaData producer = bean.getProducers().get(1);
-         assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestXA", producer.getClassName());
-         assertEquals("java:/JmsXA", producer.getConnectionFactory());
-      }
-      assertEquals(1, bean.getLocalProducers().size());
-      {
-         ProducerMetaData producer = bean.getLocalProducers().get(0);
-         assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestLocal", producer.getClassName());
-         assertTrue(producer.isLocal());
-      }
-      assertEquals(2, bean.getCurrentMessage().size());
-      assertNotNull(bean.getCurrentMessage().getMethodAttribute("currentMessage"));
-      assertNotNull(bean.getCurrentMessage().getMethodAttribute("setMessage"));
-      assertEquals(2, bean.getMessageProperties().size());
-      {
-         MessagePropertiesMetaData messageProperties = bean.getMessageProperties().get(0);
-         assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTest", messageProperties.getClassName());
-         assertEquals("method2", messageProperties.getMethod().getMethodName());
-         assertEquals("NonPersistent", messageProperties.getDelivery());
-      }
-      {
-         MessagePropertiesMetaData messageProperties = bean.getMessageProperties().get(1);
-         assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestXA", messageProperties.getClassName());
-         assertEquals("method2", messageProperties.getMethod().getMethodName());
-         assertEquals("Persistent", messageProperties.getDelivery());
-         assertEquals(4, (int) messageProperties.getPriority());
-      }
-      
-      String pkg = "consumer";
-      String injectionTargetClass = "org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestConsumer";
-      {
-         assertEquals(1, bean.getEjbReferences().size());
-         EJBReferenceMetaData ejbRef = bean.getEjbReferenceByName("ejb/StatelessRemote");
-         assertNotNull(ejbRef);
-         //assertEquals("test", ejbRef.getDescriptions().value()[0].value());
-         assertEquals(EJBReferenceType.Session, ejbRef.getEjbRefType());
-         assertEquals("org.jboss.ejb3.test." + pkg + ".StatelessRemote", ejbRef.getRemote());
-         assertEquals("StatelessBean", ejbRef.getLink());
-         assertEquals("StatelessBean/remote", ejbRef.getJndiName());
-         assertEquals(1, ejbRef.getInjectionTargets().size());
-         ResourceInjectionTargetMetaData injectionTarget = ejbRef.getInjectionTargets().iterator().next();
-         assertNotNull(injectionTarget);
-         assertEquals(injectionTargetClass, injectionTarget.getInjectionTargetClass());
-         assertEquals("stateless", injectionTarget.getInjectionTargetName());
-      }
-      
-      {
-         assertEquals(1, bean.getEjbLocalReferences().size());
-         EJBLocalReferenceMetaData ejbLocalRef = bean.getEjbLocalReferenceByName("ejb/StatelessLocal");
-         assertNotNull(ejbLocalRef);
-         assertEquals(EJBReferenceType.Session, ejbLocalRef.getEjbRefType());
-         assertEquals("org.jboss.ejb3.test." + pkg +".StatelessLocal", ejbLocalRef.getLocal());
-         assertEquals("StatelessBean", ejbLocalRef.getLink());
-         assertEquals("StatelessBean/local", ejbLocalRef.getJndiName());
-         assertEquals(1, ejbLocalRef.getInjectionTargets().size());
-         ResourceInjectionTargetMetaData injectionTarget = ejbLocalRef.getInjectionTargets().iterator().next();
-         assertNotNull(injectionTarget);
-         assertEquals(injectionTargetClass, injectionTarget.getInjectionTargetClass());
-         assertEquals("setStatelessLocal", injectionTarget.getInjectionTargetName());
-      }
-      
-      {
-         assertEquals(1, bean.getResourceReferences().size());
-         ResourceReferenceMetaData resourceRef = bean.getResourceReferenceByName("testDatasource");
-         assertNotNull(resourceRef);
-         assertEquals("javax.sql.DataSource", resourceRef.getType());
-         assertEquals(ResourceAuthorityType.Container, resourceRef.getResAuth());
-         assertEquals("java:/DefaultDS", resourceRef.getMappedName());
-         assertEquals(1, resourceRef.getInjectionTargets().size());
-         ResourceInjectionTargetMetaData injectionTarget = resourceRef.getInjectionTargets().iterator().next();
-         assertNotNull(injectionTarget);
-         assertEquals(injectionTargetClass, injectionTarget.getInjectionTargetClass());
-         assertEquals("testDatasource", injectionTarget.getInjectionTargetName());
-      }
-      
-      {
-         assertEquals(1, bean.getResourceEnvironmentReferences().size());
-         ResourceEnvironmentReferenceMetaData resourceEnvRef = bean.getResourceEnvironmentReferenceByName("res/aQueue");
-         assertEquals("javax.jms.Queue", resourceEnvRef.getType());
-         assertEquals("queue/mdbtest", resourceEnvRef.getJndiName());
-      }
-      
-      /*
-      {
-         assertEquals(1, bean.getMessageDestinationReferences().size());
-         MessageDestinationReferenceMetaData messageDestinationRef = bean.getMessageDestinationReferenceByName("messageDestinationRef");
-         assertNotNull(messageDestinationRef);
-         assertEquals("mappedName", messageDestinationRef.getMappedName());
-      }
-      */
-   }
-   
-   /**
-    * Test whether the cardinality of depends and ignore-dependency is correct.
-    */
-   public void testDependencies() throws Exception
-   {
-//      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
-//      xbdelegate.setValidateSchema(false);
-      
-      JBossMetaData result = unmarshal();
-      
-      assertEquals(1, result.getEnterpriseBeans().size());
-      JBossEnterpriseBeanMetaData bean = (JBossEnterpriseBeanMetaData) result.getEnterpriseBean("MyStatelessBean");
-      assertNotNull(bean);
-      Set<String> expected = new HashSet<String>();
-      expected.add("A");
-      expected.add("B");
-      assertEquals(expected, bean.getDepends());
-      
-      assertNotNull(bean.getIgnoreDependency());
-      assertNotNull(bean.getIgnoreDependency().getInjectionTargets());
-      assertEquals(2, bean.getIgnoreDependency().getInjectionTargets().size());
-      int i = 1;
-      for(ResourceInjectionTargetMetaData target : bean.getIgnoreDependency().getInjectionTargets())
-      {
-         assertEquals("Class" + i, target.getInjectionTargetClass());
-         assertEquals(Character.toString((char) ('B' + i)), target.getInjectionTargetName());
-         i++;
-      }
-   }
-   
-   /**
-    * EJBTHREE-936: allow for an unknown bean type
-    */
-   public void testEjbthree936() throws Exception
-   {
-      // normally from the annotation scanner
-      EjbJar30MetaData ejbJar = new EjbJar30MetaData();
-      ejbJar.setEnterpriseBeans(new EnterpriseBeansMetaData());
-      SessionBeanMetaData sessionBean = new SessionBeanMetaData();
-      sessionBean.setEjbName("MyStatelessBean");
-      ejbJar.getEnterpriseBeans().add(sessionBean);
-      
-      JBossMetaData jboss = unmarshal();
-      
-      assertEquals(1, jboss.getEnterpriseBeans().size());
-      
-      // create a merged view
-      JBossMetaData merged = MergeUtil.merge(jboss, ejbJar);
-      assertNotNull(merged.getEnterpriseBeans());
-      // As of JBMETA-1, this is now a JBossSessionBeanMetaData
-      // JBossGenericBeanMetaData bean = (JBossGenericBeanMetaData) merged.getEnterpriseBean("MyStatelessBean");
-      JBossSessionBeanMetaData bean = (JBossSessionBeanMetaData) merged.getEnterpriseBean("MyStatelessBean");
-      assertEquals(1, bean.getResourceReferences().size());
-      ResourceReferenceMetaData ref = bean.getResourceReferenceByName("qFactory");
-      assertNotNull(ref);
-      assertEquals("ConnectionFactory", ref.getJndiName());
-   }
-   
-   /**
-    * EJBTHREE-936: allow for an unknown bean type
-    */
-   public void testEjbthree936WithoutScanner() throws Exception
-   {
-      JBossMetaData jboss = unmarshal("JBoss50_testEjbthree936.xml", JBossMetaData.class);
-      
-      assertEquals(1, jboss.getEnterpriseBeans().size());
-      
-      // create a merged view
-      JBossMetaData merged = MergeUtil.merge(jboss, null);
-      assertNotNull(merged.getEnterpriseBeans());
-      JBossGenericBeanMetaData bean = (JBossGenericBeanMetaData) merged.getEnterpriseBean("MyStatelessBean");
-      assertEquals(1, bean.getResourceReferences().size());
-      ResourceReferenceMetaData ref = bean.getResourceReferenceByName("qFactory");
-      assertNotNull(ref);
-      assertEquals("ConnectionFactory", ref.getJndiName());
-   }
-   
-   /**
-    * Test the cardinality of remote bindings
-    */
-   public void testRemoteBindings() throws Exception
-   {
-      JBossMetaData jboss = unmarshal();
-      
-      assertEquals(1, jboss.getEnterpriseBeans().size());
-      
-      JBossSessionBeanMetaData sessionBean = (JBossSessionBeanMetaData) jboss.getEnterpriseBean("StatefulBean");
-      sessionBean = new JBossSessionPolicyDecorator(sessionBean);
-      String determinedJndiName = sessionBean.determineJndiName();
-      boolean determinedValid = false;
-      for(int i = 0; i < 2; i++)
-      {
-         RemoteBindingMetaData remoteBinding = sessionBean.getRemoteBindings().get(i);
-         String jndiName = "jndiName" + (i + 1);
-         assertEquals(jndiName, remoteBinding.getJndiName());
-         assertEquals("clientBindUrl" + (i + 1), remoteBinding.getClientBindUrl());
-         determinedValid |= jndiName.equals(determinedJndiName);
-      }
-      assertTrue("determinedJndiName is one of the remote-binding values", determinedValid);
-   }
-   
-   /**
-    * A test for resource-adapter-name (ejb3 jca/inflow unit test)
-    */
-   public void testResourceAdapterName() throws Exception
-   {
-      JBossMetaData result = unmarshal();
-      
-      assertEquals(1, result.getEnterpriseBeans().size());
-      JBossEnterpriseBeanMetaData bean = result.getEnterpriseBean("TestMDB");
-      assertNotNull(bean);
-      assertTrue(bean instanceof JBossMessageDrivenBeanMetaData);
-      assertEquals("jcainflow.rar", ((JBossMessageDrivenBeanMetaData) bean).getResourceAdapterName());
-   }
-   
-   /**
-    * A simple test coming from ejb3 naming unit test.
-    * 
-    * @throws Exception
-    */
-   public void testSimple() throws Exception
-   {
-      JBossMetaData result = unmarshal();
-      
-      assertEquals(1, result.getEnterpriseBeans().size());
-      JBossEnterpriseBeanMetaData bean = result.getEnterpriseBean("StatefulOverrideBean");
-      assertNotNull(bean);
-      assertTrue(bean instanceof JBossSessionBeanMetaData);
-      assertEquals("StatefulOverride", ((JBossSessionBeanMetaData) bean).getJndiName());
-   }
-   
-   /**
-    * Test the service bean from dd.
-    */
-   public void testService() throws Exception
-   {
-//      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
-//      xbdelegate.setValidateSchema(false);
-      
-      JBossMetaData result = unmarshal();
-      
-      JBossServiceBeanMetaData bean = (JBossServiceBeanMetaData) result.getEnterpriseBean("ServiceSix");
-      assertNotNull(bean);
-      assertEquals("ServiceSix", bean.getEjbName());
-      
-      assertEquals("service description", bean.getDescriptionGroup().getDescription());
-      
-      assertEquals(1, bean.getBusinessLocals().size());
-      assertTrue(bean.getBusinessLocals().contains("org.jboss.ejb3.test.service.ServiceSixLocal"));
-      assertEquals(1, bean.getBusinessRemotes().size());
-      assertTrue(bean.getBusinessRemotes().contains("org.jboss.ejb3.test.service.ServiceSixRemote"));
-      assertEquals("org.jboss.ejb3.test.service.ServiceSix", bean.getEjbClass());
-      {
-         assertEquals(1, bean.getEjbReferences().size());
-         EJBReferenceMetaData ejbRef = bean.getEjbReferenceByName("ejb/StatelessBean");
-         assertNotNull(ejbRef);
-         assertEquals("test", ejbRef.getDescriptions().value()[0].value());
-         assertEquals(EJBReferenceType.Session, ejbRef.getEjbRefType());
-         assertEquals("org.jboss.ejb3.test.service.StatelessRemote", ejbRef.getRemote());
-         assertEquals("StatelessBean", ejbRef.getLink());
-         assertEquals("StatelessBean/remote", ejbRef.getJndiName());
-         assertEquals(1, ejbRef.getInjectionTargets().size());
-         ResourceInjectionTargetMetaData injectionTarget = ejbRef.getInjectionTargets().iterator().next();
-         assertNotNull(injectionTarget);
-         assertEquals("org.jboss.ejb3.test.service.ServiceSix", injectionTarget.getInjectionTargetClass());
-         assertEquals("stateless", injectionTarget.getInjectionTargetName());
-      }
-      
-      {
-         assertEquals(1, bean.getEjbLocalReferences().size());
-         EJBLocalReferenceMetaData ejbLocalRef = bean.getEjbLocalReferenceByName("ejb/StatelessLocal");
-         assertNotNull(ejbLocalRef);
-         assertEquals(EJBReferenceType.Session, ejbLocalRef.getEjbRefType());
-         assertEquals("org.jboss.ejb3.test.service.StatelessLocal", ejbLocalRef.getLocal());
-         assertEquals("StatelessBean", ejbLocalRef.getLink());
-         assertEquals("StatelessBean/local", ejbLocalRef.getJndiName());
-         assertEquals(1, ejbLocalRef.getInjectionTargets().size());
-         ResourceInjectionTargetMetaData injectionTarget = ejbLocalRef.getInjectionTargets().iterator().next();
-         assertNotNull(injectionTarget);
-         assertEquals("org.jboss.ejb3.test.service.ServiceSix", injectionTarget.getInjectionTargetClass());
-         assertEquals("setStatelessLocal", injectionTarget.getInjectionTargetName());
-      }
-      
-      {
-         assertEquals(1, bean.getResourceReferences().size());
-         ResourceReferenceMetaData resourceRef = bean.getResourceReferenceByName("testDatasource");
-         assertNotNull(resourceRef);
-         assertEquals("javax.sql.DataSource", resourceRef.getType());
-         assertEquals(ResourceAuthorityType.Container, resourceRef.getResAuth());
-         assertEquals("java:/DefaultDS", resourceRef.getMappedName());
-         assertEquals(1, resourceRef.getInjectionTargets().size());
-         ResourceInjectionTargetMetaData injectionTarget = resourceRef.getInjectionTargets().iterator().next();
-         assertNotNull(injectionTarget);
-         assertEquals("org.jboss.ejb3.test.service.ServiceSix", injectionTarget.getInjectionTargetClass());
-         assertEquals("testDatasource", injectionTarget.getInjectionTargetName());
-      }
-      
-      {
-         assertEquals(1, bean.getResourceEnvironmentReferences().size());
-         ResourceEnvironmentReferenceMetaData resourceEnvRef = bean.getResourceEnvironmentReferenceByName("res/aQueue");
-         assertEquals("javax.jms.Queue", resourceEnvRef.getType());
-         assertEquals("queue/mdbtest", resourceEnvRef.getJndiName());
-      }
-      
-      {
-         assertEquals(1, bean.getMessageDestinationReferences().size());
-         MessageDestinationReferenceMetaData messageDestinationRef = bean.getMessageDestinationReferenceByName("messageDestinationRef");
-         assertNotNull(messageDestinationRef);
-         assertEquals("mappedName", messageDestinationRef.getMappedName());
-      }
-      
-      SecurityIdentityMetaData securityIdentity = bean.getSecurityIdentity();
-      assertNotNull(securityIdentity);
-      RunAsMetaData runAs = securityIdentity.getRunAs();
-      assertNotNull(runAs);
-      assertEquals("role name", runAs.getRoleName());
-      assertEquals("run as principal", securityIdentity.getRunAsPrincipal());
-      
-      assertEquals("object name", bean.getObjectName());
-      assertEquals("org.jboss.ejb3.test.service.ServiceSixManagement", bean.getManagement());
-      assertEquals("xmbean", bean.getXmbean());
-      assertEquals(1, bean.getRemoteBindings().size());
-      RemoteBindingMetaData remoteBinding = bean.getRemoteBindings().get(0);
-      assertEquals("client bind url", remoteBinding.getClientBindUrl());
-      assertEquals("serviceSix/remote", bean.getJndiName());
-      assertEquals("serviceSix/local", bean.getLocalJndiName());
-      assertEquals("security domain", bean.getSecurityDomain());
-      assertEquals(1, bean.getMethodAttributes().size());
-      assertEquals(1, bean.getMethodTransactionTimeout("test"));
-   }
-   
-   /**
-    * Simple test of a jboss.xml with a 5.0 dtd doctype
-    * @throws Exception
-    */
-   public void testVersion50() throws Exception
-   {
-      JBossMetaData result = unmarshal();
-      assertEquals("5.0", result.getVersion());
-   }
-   public void testVersion50xsd() throws Exception
-   {
-      JBossMetaData result = unmarshal();
-      assertEquals("3.0", result.getVersion());
-   }
-
-   /**
-    * Simple test of a jboss.xml with a 4.2 dtd doctype
-    * @throws Exception
-    */
-   public void testVersion42() throws Exception
-   {
-      JBossMetaData result = unmarshal();
-      assertEquals("4.2", result.getVersion());
-   }
-   public void testVersion40() throws Exception
-   {
-      JBossMetaData result = unmarshal();
-      assertEquals("4.0", result.getVersion());
-   }
-   public void testVersion32() throws Exception
-   {
-      JBossMetaData result = unmarshal();
-      assertEquals("3.2", result.getVersion());
-   }
-   public void testVersion30() throws Exception
-   {
-      JBossMetaData result = unmarshal();
-      assertEquals("3.0", result.getVersion());
-   }
-
-   /**
-    * Validate an ejb-jar.xml/jboss.xml/standardjboss.xml set of metadata used to
-    * obtain an ejb container configuration.
-    *
-    */
-   public void testEjb21MergedContainerDefs()
-      throws Exception
-   {
-      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
-      xbdelegate.setValidateSchema(false);
-      long start = System.currentTimeMillis();
-      EjbJarMetaData specMetaData = unmarshal("EjbJar21Everything_testEverything.xml", EjbJar21MetaData.class, null);
-      long end = System.currentTimeMillis();
-      getLog().info("EjbJar21Everything_testEverything.xml parse time = "+(end - start));
-      JBoss50MetaData stdMetaData = unmarshal("JBoss5xEverything_testStandard.xml", JBoss50MetaData.class, null);
-      long end2 = System.currentTimeMillis();
-      getLog().info("JBoss5xEverything_testStandard.xml parse time = "+(end2 - end));
-      JBoss50MetaData jbossMetaData = unmarshal("JBoss5xEverything_testEverything.xml", JBoss50MetaData.class, null);
-      long end3 = System.currentTimeMillis();
-      getLog().info("JBoss5xEverything_testEverything.xml parse time = "+(end3 - end2));
-      //jbossMetaData.setOverridenMetaData(specMetaData);
-      jbossMetaData.merge(null, specMetaData);
-      JBossMetaDataWrapper wrapper = new JBossMetaDataWrapper(jbossMetaData, stdMetaData);
-
-      // Test the unified metadata
-      InvokerProxyBindingsMetaData bindings = wrapper.getInvokerProxyBindings();
-      JBossEnterpriseBeansMetaData beans = wrapper.getEnterpriseBeans();
-      JBossEnterpriseBeanMetaData session1Ejb = beans.get("session1EjbName");
-      assertNotNull(session1Ejb);
-      for(JBossEnterpriseBeanMetaData jbean : beans)
-      {
-         ContainerConfigurationMetaData beanCfg = jbean.determineContainerConfiguration();
-         assertNotNull(beanCfg);
-         InvokerBindingsMetaData invokers = jbean.determineInvokerBindings();
-         for(InvokerBindingMetaData invoker : invokers)
-         {
-            InvokerProxyBindingMetaData ipbmd = bindings.get(invoker.getName());
-            assertNotNull(invoker.getName(), ipbmd);
-         }
-      }
-
-      // Test the legacy wrapper view
-      ApplicationMetaData appMetaData = new ApplicationMetaData(wrapper);
-      Iterator<BeanMetaData> beans2 = appMetaData.getEnterpriseBeans();
-      while (beans2.hasNext())
-      {
-         BeanMetaData bean = (BeanMetaData) beans2.next();
-         ConfigurationMetaData beanCfg = bean.getContainerConfiguration();
-         assertNotNull(beanCfg);
-      }
-
-      assertTrue(bindings.size() > 10);
-      // Validate some know invoker bindings
-      InvokerProxyBindingMetaData ssui = bindings.get("stateless-unified-invoker");
-      assertNotNull(ssui);
-      InvokerProxyBindingMetaData sfui = bindings.get("stateful-unified-invoker");
-      assertNotNull(sfui);
-
-      BeanMetaData beanCfg = appMetaData.getBeanByEjbName("session1EjbName");
-      assertNotNull(beanCfg);
-      Iterator<String> it = beanCfg.getInvokerBindings();
-      org.jboss.metadata.InvokerProxyBindingMetaData imd = null;
-      while (it.hasNext() && imd == null)
-      {
-         String invoker = it.next();
-         String jndiBinding = beanCfg.getInvokerBinding(invoker);
-         imd = beanCfg.getApplicationMetaData().getInvokerProxyBindingMetaDataByName(invoker);
-         assertNotNull(imd);
-      }
-      assertNotNull(imd);
-   }
-   /**
-    * Validate an ejb-jar.xml/jboss.xml/standardjboss.xml set of metadata used to
-    * obtain an ejb container configuration.
-    *
-    */
-   public void testCts()
-      throws Exception
-   {
-      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
-      xbdelegate.setValidateSchema(false);
-      long start = System.currentTimeMillis();
-      EjbJarMetaData specMetaData = unmarshal("JBoss50_testCtsEjb20Jar.xml", EjbJarMetaData.class, null);
-      long end = System.currentTimeMillis();
-      getLog().info("EjbJar21Everything_testEverything.xml parse time = "+(end - start));
-      JBossMetaData stdMetaData = unmarshal("JBoss5xEverything_testStandard.xml", JBossMetaData.class, null);
-      long end2 = System.currentTimeMillis();
-      getLog().info("JBoss5xEverything_testStandard.xml parse time = "+(end2 - end));
-      JBossMetaData jbossXmlMetaData = unmarshal("JBoss50_testCtsJBoss32.xml", JBossMetaData.class, null);
-      long end3 = System.currentTimeMillis();
-      getLog().info("JBoss5xEverything_testEverything.xml parse time = "+(end3 - end2));
-      //jbossMetaData.setOverridenMetaData(specMetaData);
-      // Merge the jboss.xml, ejb-jar.xml
-      JBossMetaData jbossMetaData = new JBossMetaData();
-      jbossMetaData.merge(jbossXmlMetaData, specMetaData);
-      // Add the standardjboss.xml wrapper for defaults
-      JBossMetaDataWrapper wrapper = new JBossMetaDataWrapper(jbossMetaData, stdMetaData);
-
-      // Test the unified metadata view using the wrapper
-      InvokerProxyBindingsMetaData bindings = wrapper.getInvokerProxyBindings();
-      JBossEnterpriseBeansMetaData beans = wrapper.getEnterpriseBeans();
-      JBossEnterpriseBeanMetaData sessionBean = beans.get("StatelessSessionBean");
-      assertNotNull(sessionBean);
-      for(JBossEnterpriseBeanMetaData jbean : beans)
-      {
-         ContainerConfigurationMetaData beanCfg = jbean.determineContainerConfiguration();
-         assertNotNull(beanCfg);
-         InvokerBindingsMetaData invokers = jbean.determineInvokerBindings();
-         assertTrue(jbean.getEjbName()+" has > 0 invokers", invokers.size() > 0);
-         for(InvokerBindingMetaData invoker : invokers)
-         {
-            InvokerProxyBindingMetaData ipbmd = bindings.get(invoker.getName());
-            assertNotNull(invoker.getName(), ipbmd);
-         }
-      }
-      JBossEnterpriseBeanMetaData jsessionBean = (JBossEnterpriseBeanMetaData) sessionBean;
-      InvokerBindingsMetaData invokers = jsessionBean.determineInvokerBindings();
-      assertTrue(sessionBean.getEjbName()+" has 1 invokers", invokers.size() > 0);
-
-      // Test the legacy wrapper view
-      ApplicationMetaData appMetaData = new ApplicationMetaData(wrapper);
-      Iterator<BeanMetaData> beans2 = appMetaData.getEnterpriseBeans();
-      while (beans2.hasNext())
-      {
-         BeanMetaData bean = (BeanMetaData) beans2.next();
-         ConfigurationMetaData beanCfg = bean.getContainerConfiguration();
-         assertNotNull(beanCfg);
-      }
-
-      assertTrue(bindings.size() > 10);
-      // Validate some know invoker bindings
-      InvokerProxyBindingMetaData ssui = bindings.get("stateless-unified-invoker");
-      assertNotNull(ssui);
-      InvokerProxyBindingMetaData sfui = bindings.get("stateful-unified-invoker");
-      assertNotNull(sfui);
-
-      BeanMetaData beanCfg = appMetaData.getBeanByEjbName("StatelessSessionBean");
-      assertNotNull(beanCfg);
-      Iterator<String> it = beanCfg.getInvokerBindings();
-      org.jboss.metadata.InvokerProxyBindingMetaData imd = null;
-      while (it.hasNext() && imd == null)
-      {
-         String invoker = it.next();
-         imd = beanCfg.getApplicationMetaData().getInvokerProxyBindingMetaDataByName(invoker);
-         assertNotNull(imd);
-      }
-      assertNotNull(imd);
-
-      // Validate the merged StrictlyPooledMDB 
-      JBossEnterpriseBeanMetaData strictlyPooledMDB = beans.get("StrictlyPooledMDB");
-      JBossMessageDrivenBeanMetaData strictlyPooledMDBMD = (JBossMessageDrivenBeanMetaData) strictlyPooledMDB;
-      assertNotNull("strictlyPooledMDB", strictlyPooledMDB);
-      assertEquals("Message driven pooling test", strictlyPooledMDBMD.getDescriptionGroup().getDescription());
-      assertEquals("org.jboss.test.cts.ejb.StrictlyPooledMDB", strictlyPooledMDBMD.getEjbClass());
-      assertTrue(strictlyPooledMDB.isMessageDriven());
-      assertTrue(strictlyPooledMDB instanceof JBossMessageDrivenBeanMetaData);
-      assertEquals("AUTO_ACKNOWLEDGE", strictlyPooledMDBMD.getAcknowledgeMode());
-      assertEquals("javax.jms.Queue", strictlyPooledMDBMD.getMessageDestinationType());
-      assertEquals(SubscriptionDurability.NonDurable, strictlyPooledMDBMD.getSubscriptionDurability());
-      EnvironmentEntryMetaData maxActiveCount = strictlyPooledMDBMD.getEnvironmentEntryByName("maxActiveCount");
-      assertEquals("maxActiveCountID", maxActiveCount.getId());
-      assertEquals("java.lang.Integer", maxActiveCount.getType());
-      assertEquals("5", maxActiveCount.getValue());
-      assertEquals("queue/A", strictlyPooledMDBMD.getDestinationJndiName());
-      assertEquals("Strictly Pooled Message Driven Bean", strictlyPooledMDBMD.getConfigurationName());
-
-      // Test security-identity information      
-      org.jboss.metadata.SecurityIdentityMetaData secMetaData = beanCfg.getSecurityIdentityMetaData();
-      assertNull(secMetaData);
-
-      BeanMetaData RunAsStatelessSessionBean = appMetaData.getBeanByEjbName("RunAsStatelessSessionBean");
-      assertNotNull(RunAsStatelessSessionBean);
-      secMetaData = RunAsStatelessSessionBean.getSecurityIdentityMetaData();
-      assertEquals("getUseCallerIdentity", false, secMetaData.getUseCallerIdentity());
-      String roleName = secMetaData.getRunAsRoleName();
-      assertEquals("RunAsStatelessSessionBean.getRunAsRoleName", "RunAsStatelessSessionBean-role-name", roleName);
-   }
-
-   /**
-    * Test the merged resource-ref view of the EjbJar20_testResourceRefs.xml
-    * + JBoss50_testResourceRefs.xml with the merged JBossMetaData coming
-    * from merging the JBoss50_testResourceRefs.xml parsed object with the
-    * EjbJar20_testResourceRefs.xml EjbJar2xMetaData
-    * @throws Exception
-    */
-   public void testResourceRefsMergeSelf()
-      throws Exception
-   {
-      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
-      EjbJar2xMetaData specData = unmarshal("EjbJar20_testResourceRefs.xml", EjbJar2xMetaData.class, null);
-      xbdelegate.setValidateSchema(false);
-      JBossMetaData jbossMetaData = unmarshal("JBoss50_testResourceRefs.xml", JBossMetaData.class, null);
-      jbossMetaData.merge(null, specData);
-      validateResourceRefs(jbossMetaData);
-   }
-   /**
-    * Test the merged resource-ref view of the EjbJar20_testREsourceRefs.xml
-    * + JBoss50_testResourceRefs.xml with the merged JBossMetaData coming
-    * from merging the JBoss50_testResourceRefs.xml parsed object with the
-    * EjbJar20_testResourceRefs.xml EjbJar2xMetaData into a new empty
-    * JBossMetaData instance.
-    * @throws Exception
-    */
-   public void testResourceRefs()
-      throws Exception
-   {
-      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
-      EjbJar2xMetaData specData = unmarshal("EjbJar20_testResourceRefs.xml", EjbJar2xMetaData.class, null);
-      xbdelegate.setValidateSchema(false);
-      JBossMetaData jbossXmlMetaData = unmarshal();
-      JBossMetaData jbossMetaData = new JBossMetaData();
-      jbossMetaData.merge(jbossXmlMetaData, specData);
-      validateResourceRefs(jbossMetaData);
-   }
-
-   public void testEjbJndiName()
-      throws Exception
-   {
-      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
-      xbdelegate.setValidateSchema(true);
-      JBossMetaData jbossXmlMetaData = unmarshal();
-      JBossEnterpriseBeansMetaData enterpriseBeans = jbossXmlMetaData.getEnterpriseBeans();
-      assertNotNull(enterpriseBeans);
-      assertEquals(2, enterpriseBeans.size());
-      for(JBossEnterpriseBeanMetaData bean : enterpriseBeans)
-      {
-         assertEquals("servlet_annotation_" + bean.getEjbName(), ((JBossGenericBeanMetaData)bean).getJndiName());
-      }
-   }
-
-   public void testMDBActivationConfigMerge()
-   {
-      EjbJar30MetaData ejbJar = new EjbJar30MetaData();
-      ejbJar.setEnterpriseBeans(new EnterpriseBeansMetaData());
-      MessageDrivenBeanMetaData messageBean = new MessageDrivenBeanMetaData();
-      messageBean.setEjbName("MyMDB");
-      // Do not add an activationConfig
-//      ActivationConfigMetaData activationConfig = new ActivationConfigMetaData();
-//      ActivationConfigPropertiesMetaData activationConfigProperties = new ActivationConfigPropertiesMetaData();
-//      ActivationConfigPropertyMetaData activationConfigProperty = new ActivationConfigPropertyMetaData();
-//      activationConfigProperty.setName("aName");
-//      activationConfigProperty.setValue("aValue");
-//      activationConfigProperties.add(activationConfigProperty);
-//      activationConfig.setActivationConfigProperties(activationConfigProperties);
-//      messageBean.setActivationConfig(activationConfig);
-      ejbJar.getEnterpriseBeans().add(messageBean);
-      
-      JBoss50MetaData metaData = new JBoss50MetaData();
-      metaData.setEnterpriseBeans(new JBossEnterpriseBeansMetaData());
-      JBossMessageDrivenBeanMetaData jMessageBean = new JBossMessageDrivenBeanMetaData();
-      jMessageBean.setEjbName("MyMDB");
-      jMessageBean.setDestinationJndiName("destinationJndiName");
-      metaData.getEnterpriseBeans().add(jMessageBean);
-      
-      metaData.merge(null, ejbJar);
-      
-      JBossMessageDrivenBeanMetaData mergedBean = (JBossMessageDrivenBeanMetaData) metaData.getEnterpriseBean("MyMDB");
-      assertNull(mergedBean.getActivationConfig());
-   }
-   
-   public void testInvokerDefaultJndiName() throws Exception
-   {
-      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
-      xbdelegate.setValidateSchema(false);
-
-      JBossMetaData result = unmarshal();
-      JBoss50MetaData stdMetaData = unmarshal("JBoss5xEverything_testStandard.xml", JBoss50MetaData.class, null);
-
-      JBossEnterpriseBeanMetaData bean = result.getEnterpriseBean("SessionEjbName");
-      assertNotNull(bean);
-      InvokerBindingsMetaData invokerBindings = bean.getInvokerBindings();
-      assertNotNull(invokerBindings);
-      assertEquals(1, invokerBindings.size());
-      InvokerBindingMetaData invokerBindingMetaData = invokerBindings.get("sessionInvokerProxyBindingName");
-      assertNotNull(invokerBindingMetaData);
-      assertEquals("sessionInvokerProxyBindingName", invokerBindingMetaData.getInvokerProxyBindingName());
-      assertNull(invokerBindingMetaData.getJndiName());
-
-      JBossMetaDataWrapper jbossWrapper = new JBossMetaDataWrapper(result, stdMetaData);
-      ApplicationMetaData app = new ApplicationMetaData(jbossWrapper);
-      BeanMetaData wrapper = app.getBeanByEjbName("SessionEjbName");
-      assertNotNull(wrapper);
-      String invokerJndiName = wrapper.getInvokerBinding("sessionInvokerProxyBindingName");
-      assertEquals("SessionEjbName", invokerJndiName);
-      
-      bean = result.getEnterpriseBean("MdbEjbName");
-      assertNotNull(bean);
-      invokerBindings = bean.getInvokerBindings();
-      assertNull(invokerBindings);
-      invokerBindings = bean.determineInvokerBindings();
-      assertNotNull(invokerBindings);
-      assertEquals(1, invokerBindings.size());
-      InvokerBindingMetaData invokerBinding = invokerBindings.get(InvokerBindingMetaData.MESSAGE_DRIVEN);
-      assertNotNull(invokerBinding);
-      assertEquals(bean.getEjbName(), invokerBinding.getJndiName());
-      
-      wrapper = app.getBeanByEjbName("MdbEjbName");
-      assertNotNull(wrapper);
-      invokerJndiName = wrapper.getInvokerBinding(InvokerBindingMetaData.MESSAGE_DRIVEN);
-      assertEquals(wrapper.getEjbName(), invokerJndiName);
-   }
-
-   protected void validateResourceRefs(JBossMetaData jbossMetaData)
-   {
-      // Validate the resource managers
-      ResourceManagersMetaData resourceMgrs = jbossMetaData.getResourceManagers();
-      assertEquals(5, resourceMgrs.size());
-      ResourceManagerMetaData qfmgr = resourceMgrs.get("queuefactoryref");
-      assertNotNull(qfmgr);
-      assertEquals("java:/JmsXA", qfmgr.getResJndiName());
-      ResourceManagerMetaData qmgr = resourceMgrs.get("queueref");
-      assertNotNull(qmgr);
-      assertEquals("queue/testQueue", qmgr.getResJndiName());
-      ResourceManagerMetaData tfmgr = resourceMgrs.get("topicfactoryref");
-      assertNotNull(tfmgr);
-      assertEquals("java:/JmsXA", tfmgr.getResJndiName());
-      ResourceManagerMetaData tmgr = resourceMgrs.get("topicref");
-      assertNotNull(tmgr);
-      assertEquals("topic/testTopic", tmgr.getResJndiName());
-      
-
-      JBossEnterpriseBeanMetaData mdb = jbossMetaData.getEnterpriseBean("TopicPublisher");
-      
-      ResourceReferencesMetaData resources = mdb.getResourceReferences();
-      ResourceReferenceMetaData jmsRef1 = resources.get("jms/MyTopicConnection");
-      assertNotNull(jmsRef1);
-      assertEquals("jms/MyTopicConnection", jmsRef1.getResourceRefName());
-      assertEquals("javax.jms.TopicConnectionFactory", jmsRef1.getType());
-      assertEquals(ResourceAuthorityType.Container, jmsRef1.getResAuth());
-      assertEquals("topicfactoryref", jmsRef1.getResourceName());
-      assertEquals("java:/JmsXA", jmsRef1.getJndiName());
-      ResourceReferenceMetaData jmsRef2 = resources.get("jms/TopicName");
-      assertNotNull(jmsRef2);
-      assertEquals("jms/TopicName", jmsRef2.getResourceRefName());
-      assertEquals("javax.jms.Topic", jmsRef2.getType());
-      assertEquals(ResourceAuthorityType.Container, jmsRef2.getResAuth());
-      assertEquals("topicref", jmsRef2.getResourceName());
-      assertEquals("topic/testTopic", jmsRef2.getJndiName());
-   }
-   
-   public void testPrincipalVersusRolesMap() throws Exception
-   {
-      JBossMetaData jbossXmlMetaData = unmarshal();
-      JBossAssemblyDescriptorMetaData assemblyDescriptor = jbossXmlMetaData.getAssemblyDescriptor();
-      assertNotNull(assemblyDescriptor);
-      Map<String,Set<String>> principalVersusRolesMap = assemblyDescriptor.getPrincipalVersusRolesMap();
-      assertNotNull(principalVersusRolesMap);
-      Map<String,Set<String>> expected = new HashMap<String, Set<String>>();
-      expected.put("principal1", toSet("test1", "test2", "test3"));
-      expected.put("principal2", toSet("test2", "test3"));
-      expected.put("principal3", toSet("test3"));
-      assertEquals(expected, principalVersusRolesMap);
-   }
-
-   public void testEjbPortComponent() throws Exception
-   {
-      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
-      xbdelegate.setValidateSchema(true);
-      JBossMetaData jboss = unmarshal();
-      JBossGenericBeanMetaData ejb = (JBossGenericBeanMetaData) jboss.getEnterpriseBean("EjbName");
-      assertNotNull(ejb);
-      PortComponent portComponent = ejb.getPortComponent();
-      assertNotNull(portComponent);
-      assertEquals("port.component.name", portComponent.getPortComponentName());
-      assertEquals("port/component/uri", portComponent.getPortComponentURI());
-   }
-   
-   public void testEjbthreeCacheInvalidationConfig() throws Exception
-   {
-      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
-      xbdelegate.setValidateSchema(false);
-      JBossMetaData jbossXmlMetaData = unmarshal();
-      JBossEnterpriseBeansMetaData enterpriseBeans = jbossXmlMetaData.getEnterpriseBeans();
-      assertNotNull(enterpriseBeans);
-      assertEquals(2, enterpriseBeans.size());
-      
-      // Test that we get a proper default config when there is no
-      // <cache-invalidation-config> block in jboss.xml
-      JBossEntityBeanMetaData bean = (JBossEntityBeanMetaData) enterpriseBeans.get("TestEntity1");
-      assertNotNull(bean);
-      CacheInvalidationConfigMetaData cicmd = bean.getCacheInvalidationConfig();
-      assertNull(cicmd);
-      cicmd = bean.determineCacheInvalidationConfig();
-      assertNotNull(cicmd);
-      assertNull(cicmd.getInvalidationGroupName());
-      assertNull(cicmd.getInvalidationManagerName());
-      assertEquals("TestEntity1", cicmd.determineInvalidationGroupName());
-      assertEquals(CacheInvalidationConfigMetaData.DEFAULT_INVALIDATION_MANAGER_NAME, 
-                   cicmd.determineInvalidationManagerName());
-      
-      // Test that a <cache-invalidation-config> block in jboss.xml
-      // is respected
-      bean = (JBossEntityBeanMetaData) enterpriseBeans.get("TestEntity2");
-      assertNotNull(bean);
-      cicmd = bean.getCacheInvalidationConfig();
-      assertNotNull(cicmd);
-      CacheInvalidationConfigMetaData gotten = cicmd;
-      cicmd = bean.determineCacheInvalidationConfig();
-      assertEquals(gotten, cicmd);
-      assertEquals("TestEntityGroup2", cicmd.getInvalidationGroupName());
-      assertEquals("TestInvalidationManager", cicmd.getInvalidationManagerName());
-      assertEquals("TestEntityGroup2", cicmd.determineInvalidationGroupName());
-      assertEquals("TestInvalidationManager", cicmd.determineInvalidationManagerName());
-   }
-   
-   public void testEjbthreeClusterConfig() throws Exception
-   {
-      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
-      xbdelegate.setValidateSchema(true);
-      JBossMetaData jbossXmlMetaData = unmarshal();
-      JBossEnterpriseBeansMetaData enterpriseBeans = jbossXmlMetaData.getEnterpriseBeans();
-      assertNotNull(enterpriseBeans);
-      assertEquals(4, enterpriseBeans.size());
-      
-      JBossSessionBeanMetaData bean = (JBossSessionBeanMetaData) enterpriseBeans.get("SimpleBean");
-      assertNotNull(bean);
-      ClusterConfigMetaData clusterConfig = bean.getClusterConfig();
-      assertNotNull(clusterConfig);      
-      assertEquals("ClusterConfigPartition", clusterConfig.getPartitionName());
-      assertEquals("SimpleLBP", clusterConfig.getLoadBalancePolicy());
-      assertEquals("SimpleLBP", clusterConfig.getBeanLoadBalancePolicy());
-      assertNull(clusterConfig.getHomeLoadBalancePolicy());
-      
-      bean = (JBossSessionBeanMetaData) enterpriseBeans.get("HomeAndBeanBean");
-      assertNotNull(bean);
-      clusterConfig = bean.getClusterConfig();
-      assertNotNull(clusterConfig);      
-      assertEquals("ClusterConfigPartition", clusterConfig.getPartitionName());
-      assertEquals("BeanLBP", clusterConfig.getLoadBalancePolicy());
-      assertEquals("BeanLBP", clusterConfig.getBeanLoadBalancePolicy());
-      assertEquals("HomeLBP", clusterConfig.getHomeLoadBalancePolicy());
-      
-      bean = (JBossSessionBeanMetaData) enterpriseBeans.get("HomeAndSimpleBean");
-      assertNotNull(bean);
-      clusterConfig = bean.getClusterConfig();
-      assertNotNull(clusterConfig);      
-      assertEquals("ClusterConfigPartition", clusterConfig.getPartitionName());
-      assertEquals("SimpleLBP", clusterConfig.getLoadBalancePolicy());
-      assertEquals("SimpleLBP", clusterConfig.getBeanLoadBalancePolicy());
-      assertEquals("HomeLBP", clusterConfig.getHomeLoadBalancePolicy());
-      
-      bean = (JBossSessionBeanMetaData) enterpriseBeans.get("HomeOnlyBean");
-      assertNotNull(bean);
-      clusterConfig = bean.getClusterConfig();
-      assertNotNull(clusterConfig);      
-      assertNull(clusterConfig.getPartitionName());
-      assertNull(clusterConfig.getLoadBalancePolicy());
-      assertNull(clusterConfig.getBeanLoadBalancePolicy());
-      assertEquals("HomeLBP", clusterConfig.getHomeLoadBalancePolicy());
-   }
-
-   public void testJndiBindingPolicy() throws Exception
-   {
-      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
-      xbdelegate.setValidateSchema(true);
-      JBossMetaData jbossXmlMetaData = unmarshal();
-      assertEquals("org.jboss.metadata.test.AppJndiBindingPolicy", jbossXmlMetaData.getJndiBindingPolicy());
-      JBossEnterpriseBeansMetaData enterpriseBeans = jbossXmlMetaData.getEnterpriseBeans();
-      assertNotNull(enterpriseBeans);
-      assertEquals(3, enterpriseBeans.size());
-
-      JBossEnterpriseBeanMetaData ejb = enterpriseBeans.get("EjbBean");
-      assertNotNull(ejb);
-      assertEquals("org.jboss.metadata.test.EjbJndiBindingPolicy", ejb.getJndiBindingPolicy());
-      
-      ejb = enterpriseBeans.get("MdbName");
-      assertNotNull(ejb);
-      assertEquals("org.jboss.metadata.test.MdbJndiBindingPolicy", ejb.getJndiBindingPolicy());
-
-      ejb = enterpriseBeans.get("SessionBean");
-      assertNotNull(ejb);
-      assertEquals("org.jboss.metadata.test.SessionJndiBindingPolicy", ejb.getJndiBindingPolicy());
-   }
-
-   private <T> Set<T> toSet(T ... obj)
-   {
-      Set<T> set = new HashSet<T>();
-      for(T o : obj)
-      {
-         set.add(o);
-      }
-      return set;
-   }
-}

Copied: projects/metadata/tags/1.0.0.Beta20/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java (from rev 74451, projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java)
===================================================================
--- projects/metadata/tags/1.0.0.Beta20/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java	                        (rev 0)
+++ projects/metadata/tags/1.0.0.Beta20/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java	2008-06-12 03:31:48 UTC (rev 74453)
@@ -0,0 +1,1006 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.test.metadata.ejb;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import junit.framework.Test;
+
+import org.jboss.metadata.ApplicationMetaData;
+import org.jboss.metadata.BeanMetaData;
+import org.jboss.metadata.ConfigurationMetaData;
+import org.jboss.metadata.ejb.jboss.CacheInvalidationConfigMetaData;
+import org.jboss.metadata.ejb.jboss.ClusterConfigMetaData;
+import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
+import org.jboss.metadata.ejb.jboss.InvokerBindingMetaData;
+import org.jboss.metadata.ejb.jboss.InvokerBindingsMetaData;
+import org.jboss.metadata.ejb.jboss.InvokerProxyBindingMetaData;
+import org.jboss.metadata.ejb.jboss.InvokerProxyBindingsMetaData;
+import org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData;
+import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
+import org.jboss.metadata.ejb.jboss.JBossAssemblyDescriptorMetaData;
+import org.jboss.metadata.ejb.jboss.JBossConsumerBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossGenericBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaDataWrapper;
+import org.jboss.metadata.ejb.jboss.JBossServiceBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionPolicyDecorator;
+import org.jboss.metadata.ejb.jboss.MessagePropertiesMetaData;
+import org.jboss.metadata.ejb.jboss.ProducerMetaData;
+import org.jboss.metadata.ejb.jboss.RemoteBindingMetaData;
+import org.jboss.metadata.ejb.jboss.ResourceManagerMetaData;
+import org.jboss.metadata.ejb.jboss.ResourceManagersMetaData;
+import org.jboss.metadata.ejb.spec.EjbJar20MetaData;
+import org.jboss.metadata.ejb.spec.EjbJar21MetaData;
+import org.jboss.metadata.ejb.spec.EjbJar2xMetaData;
+import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
+import org.jboss.metadata.ejb.spec.EjbJarMetaData;
+import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;
+import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
+import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
+import org.jboss.metadata.ejb.spec.SubscriptionDurability;
+import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
+import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
+import org.jboss.metadata.javaee.spec.EJBReferenceType;
+import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
+import org.jboss.metadata.javaee.spec.PortComponent;
+import org.jboss.metadata.javaee.spec.ResourceAuthorityType;
+import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
+import org.jboss.metadata.javaee.spec.RunAsMetaData;
+import org.jboss.metadata.merge.MergeUtil;
+import org.jboss.test.metadata.javaee.AbstractJavaEEMetaDataTest;
+import org.jboss.test.metadata.javaee.JBossXBTestDelegate;
+import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+
+/**
+ * Miscellaneous tests with a JBoss 5 xml.
+ * 
+ * @author <a href="carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+ at SuppressWarnings("deprecation")
+public class JBoss50UnitTestCase extends AbstractJavaEEMetaDataTest
+{
+   public static Test suite()
+   {
+      return suite(JBoss50UnitTestCase.class);
+   }
+   
+   public static SchemaBindingResolver initResolver()
+   {
+      DefaultSchemaResolver resolver = new DefaultSchemaResolver();
+      resolver.addClassBindingForLocation("ejb-jar_2_0.dtd", EjbJar20MetaData.class);
+      resolver.addClassBindingForLocation("ejb-jar_2_1.xsd", EjbJar21MetaData.class);
+      resolver.addClassBindingForLocation("jboss_3_0.dtd", JBoss50DTDMetaData.class);
+      resolver.addClassBindingForLocation("jboss_3_2.dtd", JBoss50DTDMetaData.class);
+      resolver.addClassBindingForLocation("jboss_4_0.dtd", JBoss50DTDMetaData.class);
+      resolver.addClassBindingForLocation("jboss_4_2.dtd", JBoss50DTDMetaData.class);
+      resolver.addClassBindingForLocation("jboss_5_0.dtd", JBoss50DTDMetaData.class);
+      resolver.addClassBindingForLocation("jboss_5_0.xsd", JBoss50MetaData.class);
+      // Workaround wildard resolution slowness
+      resolver.addClassBinding("http://www.jboss.com/xml/ns/javaee", JBoss50MetaData.class);
+      return resolver;
+   }
+   
+   public static boolean validateSchema()
+   {
+      return true;
+   }
+   
+   public JBoss50UnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   protected JBossMetaData unmarshal() throws Exception
+   {
+      return unmarshal(JBossMetaData.class);
+   }
+   
+   /**
+    * Test for consumer bean
+    */
+   public void testConsumer() throws Exception
+   {
+      JBossMetaData result = unmarshal();
+      
+      assertEquals(1, result.getEnterpriseBeans().size());
+      JBossConsumerBeanMetaData bean = (JBossConsumerBeanMetaData) result.getEnterpriseBean("DeploymentDescriptorQueueTestConsumer");
+      assertNotNull(bean);
+      assertTrue(bean.isConsumer());
+      assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestConsumer", bean.getEjbClass());
+      assertEquals("queue/consumertest", bean.getMessageDestination());
+      assertEquals("javax.jms.Queue", bean.getMessageDestinationType());
+      
+      assertEquals(2, bean.getProducers().size());
+      {
+         ProducerMetaData producer = bean.getProducers().get(0);
+         assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestRemote", producer.getClassName());
+      }
+      {
+         ProducerMetaData producer = bean.getProducers().get(1);
+         assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestXA", producer.getClassName());
+         assertEquals("java:/JmsXA", producer.getConnectionFactory());
+      }
+      assertEquals(1, bean.getLocalProducers().size());
+      {
+         ProducerMetaData producer = bean.getLocalProducers().get(0);
+         assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestLocal", producer.getClassName());
+         assertTrue(producer.isLocal());
+      }
+      assertEquals(2, bean.getCurrentMessage().size());
+      assertNotNull(bean.getCurrentMessage().getMethodAttribute("currentMessage"));
+      assertNotNull(bean.getCurrentMessage().getMethodAttribute("setMessage"));
+      assertEquals(2, bean.getMessageProperties().size());
+      {
+         MessagePropertiesMetaData messageProperties = bean.getMessageProperties().get(0);
+         assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTest", messageProperties.getClassName());
+         assertEquals("method2", messageProperties.getMethod().getMethodName());
+         assertEquals("NonPersistent", messageProperties.getDelivery());
+      }
+      {
+         MessagePropertiesMetaData messageProperties = bean.getMessageProperties().get(1);
+         assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestXA", messageProperties.getClassName());
+         assertEquals("method2", messageProperties.getMethod().getMethodName());
+         assertEquals("Persistent", messageProperties.getDelivery());
+         assertEquals(4, (int) messageProperties.getPriority());
+      }
+      
+      String pkg = "consumer";
+      String injectionTargetClass = "org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestConsumer";
+      {
+         assertEquals(1, bean.getEjbReferences().size());
+         EJBReferenceMetaData ejbRef = bean.getEjbReferenceByName("ejb/StatelessRemote");
+         assertNotNull(ejbRef);
+         //assertEquals("test", ejbRef.getDescriptions().value()[0].value());
+         assertEquals(EJBReferenceType.Session, ejbRef.getEjbRefType());
+         assertEquals("org.jboss.ejb3.test." + pkg + ".StatelessRemote", ejbRef.getRemote());
+         assertEquals("StatelessBean", ejbRef.getLink());
+         assertEquals("StatelessBean/remote", ejbRef.getJndiName());
+         assertEquals(1, ejbRef.getInjectionTargets().size());
+         ResourceInjectionTargetMetaData injectionTarget = ejbRef.getInjectionTargets().iterator().next();
+         assertNotNull(injectionTarget);
+         assertEquals(injectionTargetClass, injectionTarget.getInjectionTargetClass());
+         assertEquals("stateless", injectionTarget.getInjectionTargetName());
+      }
+      
+      {
+         assertEquals(1, bean.getEjbLocalReferences().size());
+         EJBLocalReferenceMetaData ejbLocalRef = bean.getEjbLocalReferenceByName("ejb/StatelessLocal");
+         assertNotNull(ejbLocalRef);
+         assertEquals(EJBReferenceType.Session, ejbLocalRef.getEjbRefType());
+         assertEquals("org.jboss.ejb3.test." + pkg +".StatelessLocal", ejbLocalRef.getLocal());
+         assertEquals("StatelessBean", ejbLocalRef.getLink());
+         assertEquals("StatelessBean/local", ejbLocalRef.getJndiName());
+         assertEquals(1, ejbLocalRef.getInjectionTargets().size());
+         ResourceInjectionTargetMetaData injectionTarget = ejbLocalRef.getInjectionTargets().iterator().next();
+         assertNotNull(injectionTarget);
+         assertEquals(injectionTargetClass, injectionTarget.getInjectionTargetClass());
+         assertEquals("setStatelessLocal", injectionTarget.getInjectionTargetName());
+      }
+      
+      {
+         assertEquals(1, bean.getResourceReferences().size());
+         ResourceReferenceMetaData resourceRef = bean.getResourceReferenceByName("testDatasource");
+         assertNotNull(resourceRef);
+         assertEquals("javax.sql.DataSource", resourceRef.getType());
+         assertEquals(ResourceAuthorityType.Container, resourceRef.getResAuth());
+         assertEquals("java:/DefaultDS", resourceRef.getMappedName());
+         assertEquals(1, resourceRef.getInjectionTargets().size());
+         ResourceInjectionTargetMetaData injectionTarget = resourceRef.getInjectionTargets().iterator().next();
+         assertNotNull(injectionTarget);
+         assertEquals(injectionTargetClass, injectionTarget.getInjectionTargetClass());
+         assertEquals("testDatasource", injectionTarget.getInjectionTargetName());
+      }
+      
+      {
+         assertEquals(1, bean.getResourceEnvironmentReferences().size());
+         ResourceEnvironmentReferenceMetaData resourceEnvRef = bean.getResourceEnvironmentReferenceByName("res/aQueue");
+         assertEquals("javax.jms.Queue", resourceEnvRef.getType());
+         assertEquals("queue/mdbtest", resourceEnvRef.getJndiName());
+      }
+      
+      /*
+      {
+         assertEquals(1, bean.getMessageDestinationReferences().size());
+         MessageDestinationReferenceMetaData messageDestinationRef = bean.getMessageDestinationReferenceByName("messageDestinationRef");
+         assertNotNull(messageDestinationRef);
+         assertEquals("mappedName", messageDestinationRef.getMappedName());
+      }
+      */
+   }
+   
+   /**
+    * Test whether the cardinality of depends and ignore-dependency is correct.
+    */
+   public void testDependencies() throws Exception
+   {
+//      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+//      xbdelegate.setValidateSchema(false);
+      
+      JBossMetaData result = unmarshal();
+      
+      assertEquals(1, result.getEnterpriseBeans().size());
+      JBossEnterpriseBeanMetaData bean = (JBossEnterpriseBeanMetaData) result.getEnterpriseBean("MyStatelessBean");
+      assertNotNull(bean);
+      Set<String> expected = new HashSet<String>();
+      expected.add("A");
+      expected.add("B");
+      assertEquals(expected, bean.getDepends());
+      
+      assertNotNull(bean.getIgnoreDependency());
+      assertNotNull(bean.getIgnoreDependency().getInjectionTargets());
+      assertEquals(2, bean.getIgnoreDependency().getInjectionTargets().size());
+      int i = 1;
+      for(ResourceInjectionTargetMetaData target : bean.getIgnoreDependency().getInjectionTargets())
+      {
+         assertEquals("Class" + i, target.getInjectionTargetClass());
+         assertEquals(Character.toString((char) ('B' + i)), target.getInjectionTargetName());
+         i++;
+      }
+   }
+   
+   /**
+    * EJBTHREE-936: allow for an unknown bean type
+    */
+   public void testEjbthree936() throws Exception
+   {
+      // normally from the annotation scanner
+      EjbJar30MetaData ejbJar = new EjbJar30MetaData();
+      ejbJar.setEnterpriseBeans(new EnterpriseBeansMetaData());
+      SessionBeanMetaData sessionBean = new SessionBeanMetaData();
+      sessionBean.setEjbName("MyStatelessBean");
+      ejbJar.getEnterpriseBeans().add(sessionBean);
+      
+      JBossMetaData jboss = unmarshal();
+      
+      assertEquals(1, jboss.getEnterpriseBeans().size());
+      
+      // create a merged view
+      JBossMetaData merged = MergeUtil.merge(jboss, ejbJar);
+      assertNotNull(merged.getEnterpriseBeans());
+      // As of JBMETA-1, this is now a JBossSessionBeanMetaData
+      // JBossGenericBeanMetaData bean = (JBossGenericBeanMetaData) merged.getEnterpriseBean("MyStatelessBean");
+      JBossSessionBeanMetaData bean = (JBossSessionBeanMetaData) merged.getEnterpriseBean("MyStatelessBean");
+      assertEquals(1, bean.getResourceReferences().size());
+      ResourceReferenceMetaData ref = bean.getResourceReferenceByName("qFactory");
+      assertNotNull(ref);
+      assertEquals("ConnectionFactory", ref.getJndiName());
+   }
+   
+   /**
+    * EJBTHREE-936: allow for an unknown bean type
+    */
+   public void testEjbthree936WithoutScanner() throws Exception
+   {
+      JBossMetaData jboss = unmarshal("JBoss50_testEjbthree936.xml", JBossMetaData.class);
+      
+      assertEquals(1, jboss.getEnterpriseBeans().size());
+      
+      // create a merged view
+      JBossMetaData merged = MergeUtil.merge(jboss, null);
+      assertNotNull(merged.getEnterpriseBeans());
+      JBossGenericBeanMetaData bean = (JBossGenericBeanMetaData) merged.getEnterpriseBean("MyStatelessBean");
+      assertEquals(1, bean.getResourceReferences().size());
+      ResourceReferenceMetaData ref = bean.getResourceReferenceByName("qFactory");
+      assertNotNull(ref);
+      assertEquals("ConnectionFactory", ref.getJndiName());
+   }
+   
+   /**
+    * Test the cardinality of remote bindings
+    */
+   public void testRemoteBindings() throws Exception
+   {
+      JBossMetaData jboss = unmarshal();
+      
+      assertEquals(1, jboss.getEnterpriseBeans().size());
+      
+      JBossSessionBeanMetaData sessionBean = (JBossSessionBeanMetaData) jboss.getEnterpriseBean("StatefulBean");
+      sessionBean = new JBossSessionPolicyDecorator(sessionBean);
+      String determinedJndiName = sessionBean.determineJndiName();
+      boolean determinedValid = false;
+      for(int i = 0; i < 2; i++)
+      {
+         RemoteBindingMetaData remoteBinding = sessionBean.getRemoteBindings().get(i);
+         String jndiName = "jndiName" + (i + 1);
+         assertEquals(jndiName, remoteBinding.getJndiName());
+         assertEquals("clientBindUrl" + (i + 1), remoteBinding.getClientBindUrl());
+         determinedValid |= jndiName.equals(determinedJndiName);
+      }
+      assertTrue("determinedJndiName is one of the remote-binding values", determinedValid);
+   }
+   
+   /**
+    * A test for resource-adapter-name (ejb3 jca/inflow unit test)
+    */
+   public void testResourceAdapterName() throws Exception
+   {
+      JBossMetaData result = unmarshal();
+      
+      assertEquals(1, result.getEnterpriseBeans().size());
+      JBossEnterpriseBeanMetaData bean = result.getEnterpriseBean("TestMDB");
+      assertNotNull(bean);
+      assertTrue(bean instanceof JBossMessageDrivenBeanMetaData);
+      assertEquals("jcainflow.rar", ((JBossMessageDrivenBeanMetaData) bean).getResourceAdapterName());
+   }
+   
+   /**
+    * A simple test coming from ejb3 naming unit test.
+    * 
+    * @throws Exception
+    */
+   public void testSimple() throws Exception
+   {
+      JBossMetaData result = unmarshal();
+      
+      assertEquals(1, result.getEnterpriseBeans().size());
+      JBossEnterpriseBeanMetaData bean = result.getEnterpriseBean("StatefulOverrideBean");
+      assertNotNull(bean);
+      assertTrue(bean instanceof JBossSessionBeanMetaData);
+      assertEquals("StatefulOverride", ((JBossSessionBeanMetaData) bean).getJndiName());
+   }
+   
+   /**
+    * Test the service bean from dd.
+    */
+   public void testService() throws Exception
+   {
+//      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+//      xbdelegate.setValidateSchema(false);
+      
+      JBossMetaData result = unmarshal();
+      
+      JBossServiceBeanMetaData bean = (JBossServiceBeanMetaData) result.getEnterpriseBean("ServiceSix");
+      assertNotNull(bean);
+      assertEquals("ServiceSix", bean.getEjbName());
+      
+      assertEquals("service description", bean.getDescriptionGroup().getDescription());
+      
+      assertEquals(1, bean.getBusinessLocals().size());
+      assertTrue(bean.getBusinessLocals().contains("org.jboss.ejb3.test.service.ServiceSixLocal"));
+      assertEquals(1, bean.getBusinessRemotes().size());
+      assertTrue(bean.getBusinessRemotes().contains("org.jboss.ejb3.test.service.ServiceSixRemote"));
+      assertEquals("org.jboss.ejb3.test.service.ServiceSix", bean.getEjbClass());
+      {
+         assertEquals(1, bean.getEjbReferences().size());
+         EJBReferenceMetaData ejbRef = bean.getEjbReferenceByName("ejb/StatelessBean");
+         assertNotNull(ejbRef);
+         assertEquals("test", ejbRef.getDescriptions().value()[0].value());
+         assertEquals(EJBReferenceType.Session, ejbRef.getEjbRefType());
+         assertEquals("org.jboss.ejb3.test.service.StatelessRemote", ejbRef.getRemote());
+         assertEquals("StatelessBean", ejbRef.getLink());
+         assertEquals("StatelessBean/remote", ejbRef.getJndiName());
+         assertEquals(1, ejbRef.getInjectionTargets().size());
+         ResourceInjectionTargetMetaData injectionTarget = ejbRef.getInjectionTargets().iterator().next();
+         assertNotNull(injectionTarget);
+         assertEquals("org.jboss.ejb3.test.service.ServiceSix", injectionTarget.getInjectionTargetClass());
+         assertEquals("stateless", injectionTarget.getInjectionTargetName());
+      }
+      
+      {
+         assertEquals(1, bean.getEjbLocalReferences().size());
+         EJBLocalReferenceMetaData ejbLocalRef = bean.getEjbLocalReferenceByName("ejb/StatelessLocal");
+         assertNotNull(ejbLocalRef);
+         assertEquals(EJBReferenceType.Session, ejbLocalRef.getEjbRefType());
+         assertEquals("org.jboss.ejb3.test.service.StatelessLocal", ejbLocalRef.getLocal());
+         assertEquals("StatelessBean", ejbLocalRef.getLink());
+         assertEquals("StatelessBean/local", ejbLocalRef.getJndiName());
+         assertEquals(1, ejbLocalRef.getInjectionTargets().size());
+         ResourceInjectionTargetMetaData injectionTarget = ejbLocalRef.getInjectionTargets().iterator().next();
+         assertNotNull(injectionTarget);
+         assertEquals("org.jboss.ejb3.test.service.ServiceSix", injectionTarget.getInjectionTargetClass());
+         assertEquals("setStatelessLocal", injectionTarget.getInjectionTargetName());
+      }
+      
+      {
+         assertEquals(1, bean.getResourceReferences().size());
+         ResourceReferenceMetaData resourceRef = bean.getResourceReferenceByName("testDatasource");
+         assertNotNull(resourceRef);
+         assertEquals("javax.sql.DataSource", resourceRef.getType());
+         assertEquals(ResourceAuthorityType.Container, resourceRef.getResAuth());
+         assertEquals("java:/DefaultDS", resourceRef.getMappedName());
+         assertEquals(1, resourceRef.getInjectionTargets().size());
+         ResourceInjectionTargetMetaData injectionTarget = resourceRef.getInjectionTargets().iterator().next();
+         assertNotNull(injectionTarget);
+         assertEquals("org.jboss.ejb3.test.service.ServiceSix", injectionTarget.getInjectionTargetClass());
+         assertEquals("testDatasource", injectionTarget.getInjectionTargetName());
+      }
+      
+      {
+         assertEquals(1, bean.getResourceEnvironmentReferences().size());
+         ResourceEnvironmentReferenceMetaData resourceEnvRef = bean.getResourceEnvironmentReferenceByName("res/aQueue");
+         assertEquals("javax.jms.Queue", resourceEnvRef.getType());
+         assertEquals("queue/mdbtest", resourceEnvRef.getJndiName());
+      }
+      
+      {
+         assertEquals(1, bean.getMessageDestinationReferences().size());
+         MessageDestinationReferenceMetaData messageDestinationRef = bean.getMessageDestinationReferenceByName("messageDestinationRef");
+         assertNotNull(messageDestinationRef);
+         assertEquals("mappedName", messageDestinationRef.getMappedName());
+      }
+      
+      SecurityIdentityMetaData securityIdentity = bean.getSecurityIdentity();
+      assertNotNull(securityIdentity);
+      RunAsMetaData runAs = securityIdentity.getRunAs();
+      assertNotNull(runAs);
+      assertEquals("role name", runAs.getRoleName());
+      assertEquals("run as principal", securityIdentity.getRunAsPrincipal());
+      
+      assertEquals("object name", bean.getObjectName());
+      assertEquals("org.jboss.ejb3.test.service.ServiceSixManagement", bean.getManagement());
+      assertEquals("xmbean", bean.getXmbean());
+      assertEquals(1, bean.getRemoteBindings().size());
+      RemoteBindingMetaData remoteBinding = bean.getRemoteBindings().get(0);
+      assertEquals("client bind url", remoteBinding.getClientBindUrl());
+      assertEquals("serviceSix/remote", bean.getJndiName());
+      assertEquals("serviceSix/local", bean.getLocalJndiName());
+      assertEquals("security domain", bean.getSecurityDomain());
+      assertEquals(1, bean.getMethodAttributes().size());
+      assertEquals(1, bean.getMethodTransactionTimeout("test"));
+   }
+   
+   /**
+    * Simple test of a jboss.xml with a 5.0 dtd doctype
+    * @throws Exception
+    */
+   public void testVersion50() throws Exception
+   {
+      JBossMetaData result = unmarshal();
+      assertEquals("5.0", result.getVersion());
+   }
+   public void testVersion50xsd() throws Exception
+   {
+      JBossMetaData result = unmarshal();
+      assertEquals("3.0", result.getVersion());
+   }
+
+   /**
+    * Simple test of a jboss.xml with a 4.2 dtd doctype
+    * @throws Exception
+    */
+   public void testVersion42() throws Exception
+   {
+      JBossMetaData result = unmarshal();
+      assertEquals("4.2", result.getVersion());
+   }
+   public void testVersion40() throws Exception
+   {
+      JBossMetaData result = unmarshal();
+      assertEquals("4.0", result.getVersion());
+   }
+   public void testVersion32() throws Exception
+   {
+      JBossMetaData result = unmarshal();
+      assertEquals("3.2", result.getVersion());
+   }
+   public void testVersion30() throws Exception
+   {
+      JBossMetaData result = unmarshal();
+      assertEquals("3.0", result.getVersion());
+   }
+
+   /**
+    * Validate an ejb-jar.xml/jboss.xml/standardjboss.xml set of metadata used to
+    * obtain an ejb container configuration.
+    *
+    */
+   public void testEjb21MergedContainerDefs()
+      throws Exception
+   {
+      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+      xbdelegate.setValidateSchema(false);
+      long start = System.currentTimeMillis();
+      EjbJarMetaData specMetaData = unmarshal("EjbJar21Everything_testEverything.xml", EjbJar21MetaData.class, null);
+      long end = System.currentTimeMillis();
+      getLog().info("EjbJar21Everything_testEverything.xml parse time = "+(end - start));
+      JBoss50MetaData stdMetaData = unmarshal("JBoss5xEverything_testStandard.xml", JBoss50MetaData.class, null);
+      long end2 = System.currentTimeMillis();
+      getLog().info("JBoss5xEverything_testStandard.xml parse time = "+(end2 - end));
+      JBoss50MetaData jbossMetaData = unmarshal("JBoss5xEverything_testEverything.xml", JBoss50MetaData.class, null);
+      long end3 = System.currentTimeMillis();
+      getLog().info("JBoss5xEverything_testEverything.xml parse time = "+(end3 - end2));
+      //jbossMetaData.setOverridenMetaData(specMetaData);
+      jbossMetaData.merge(null, specMetaData);
+      JBossMetaDataWrapper wrapper = new JBossMetaDataWrapper(jbossMetaData, stdMetaData);
+
+      // Validate version info
+      assertEquals("2.1", specMetaData.getVersion());
+      assertEquals("2.1", wrapper.getEjbVersion());
+
+      // Test the unified metadata
+      InvokerProxyBindingsMetaData bindings = wrapper.getInvokerProxyBindings();
+      JBossEnterpriseBeansMetaData beans = wrapper.getEnterpriseBeans();
+      JBossEnterpriseBeanMetaData session1Ejb = beans.get("session1EjbName");
+      assertNotNull(session1Ejb);
+      for(JBossEnterpriseBeanMetaData jbean : beans)
+      {
+         ContainerConfigurationMetaData beanCfg = jbean.determineContainerConfiguration();
+         assertNotNull(beanCfg);
+         InvokerBindingsMetaData invokers = jbean.determineInvokerBindings();
+         for(InvokerBindingMetaData invoker : invokers)
+         {
+            InvokerProxyBindingMetaData ipbmd = bindings.get(invoker.getName());
+            assertNotNull(invoker.getName(), ipbmd);
+         }
+      }
+
+      // Test the legacy wrapper view
+      ApplicationMetaData appMetaData = new ApplicationMetaData(wrapper);
+      Iterator<BeanMetaData> beans2 = appMetaData.getEnterpriseBeans();
+      while (beans2.hasNext())
+      {
+         BeanMetaData bean = (BeanMetaData) beans2.next();
+         ConfigurationMetaData beanCfg = bean.getContainerConfiguration();
+         assertNotNull(beanCfg);
+      }
+
+      assertTrue(bindings.size() > 10);
+      // Validate some know invoker bindings
+      InvokerProxyBindingMetaData ssui = bindings.get("stateless-unified-invoker");
+      assertNotNull(ssui);
+      InvokerProxyBindingMetaData sfui = bindings.get("stateful-unified-invoker");
+      assertNotNull(sfui);
+
+      BeanMetaData beanCfg = appMetaData.getBeanByEjbName("session1EjbName");
+      assertNotNull(beanCfg);
+      Iterator<String> it = beanCfg.getInvokerBindings();
+      org.jboss.metadata.InvokerProxyBindingMetaData imd = null;
+      while (it.hasNext() && imd == null)
+      {
+         String invoker = it.next();
+         String jndiBinding = beanCfg.getInvokerBinding(invoker);
+         imd = beanCfg.getApplicationMetaData().getInvokerProxyBindingMetaDataByName(invoker);
+         assertNotNull(imd);
+      }
+      assertNotNull(imd);
+   }
+   /**
+    * Validate an ejb-jar.xml/jboss.xml/standardjboss.xml set of metadata used to
+    * obtain an ejb container configuration.
+    *
+    */
+   public void testCts()
+      throws Exception
+   {
+      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+      xbdelegate.setValidateSchema(false);
+      long start = System.currentTimeMillis();
+      EjbJarMetaData specMetaData = unmarshal("JBoss50_testCtsEjb20Jar.xml", EjbJarMetaData.class, null);
+      long end = System.currentTimeMillis();
+      getLog().info("EjbJar21Everything_testEverything.xml parse time = "+(end - start));
+      JBossMetaData stdMetaData = unmarshal("JBoss5xEverything_testStandard.xml", JBossMetaData.class, null);
+      long end2 = System.currentTimeMillis();
+      getLog().info("JBoss5xEverything_testStandard.xml parse time = "+(end2 - end));
+      JBossMetaData jbossXmlMetaData = unmarshal("JBoss50_testCtsJBoss32.xml", JBossMetaData.class, null);
+      long end3 = System.currentTimeMillis();
+      getLog().info("JBoss5xEverything_testEverything.xml parse time = "+(end3 - end2));
+      //jbossMetaData.setOverridenMetaData(specMetaData);
+      // Merge the jboss.xml, ejb-jar.xml
+      JBossMetaData jbossMetaData = new JBossMetaData();
+      jbossMetaData.merge(jbossXmlMetaData, specMetaData);
+      // Add the standardjboss.xml wrapper for defaults
+      JBossMetaDataWrapper wrapper = new JBossMetaDataWrapper(jbossMetaData, stdMetaData);
+
+      // Test the unified metadata view using the wrapper
+      InvokerProxyBindingsMetaData bindings = wrapper.getInvokerProxyBindings();
+      JBossEnterpriseBeansMetaData beans = wrapper.getEnterpriseBeans();
+      JBossEnterpriseBeanMetaData sessionBean = beans.get("StatelessSessionBean");
+      assertNotNull(sessionBean);
+      for(JBossEnterpriseBeanMetaData jbean : beans)
+      {
+         ContainerConfigurationMetaData beanCfg = jbean.determineContainerConfiguration();
+         assertNotNull(beanCfg);
+         InvokerBindingsMetaData invokers = jbean.determineInvokerBindings();
+         assertTrue(jbean.getEjbName()+" has > 0 invokers", invokers.size() > 0);
+         for(InvokerBindingMetaData invoker : invokers)
+         {
+            InvokerProxyBindingMetaData ipbmd = bindings.get(invoker.getName());
+            assertNotNull(invoker.getName(), ipbmd);
+         }
+      }
+      JBossEnterpriseBeanMetaData jsessionBean = (JBossEnterpriseBeanMetaData) sessionBean;
+      InvokerBindingsMetaData invokers = jsessionBean.determineInvokerBindings();
+      assertTrue(sessionBean.getEjbName()+" has 1 invokers", invokers.size() > 0);
+
+      // Test the legacy wrapper view
+      ApplicationMetaData appMetaData = new ApplicationMetaData(wrapper);
+      Iterator<BeanMetaData> beans2 = appMetaData.getEnterpriseBeans();
+      while (beans2.hasNext())
+      {
+         BeanMetaData bean = (BeanMetaData) beans2.next();
+         ConfigurationMetaData beanCfg = bean.getContainerConfiguration();
+         assertNotNull(beanCfg);
+      }
+
+      assertTrue(bindings.size() > 10);
+      // Validate some know invoker bindings
+      InvokerProxyBindingMetaData ssui = bindings.get("stateless-unified-invoker");
+      assertNotNull(ssui);
+      InvokerProxyBindingMetaData sfui = bindings.get("stateful-unified-invoker");
+      assertNotNull(sfui);
+
+      BeanMetaData beanCfg = appMetaData.getBeanByEjbName("StatelessSessionBean");
+      assertNotNull(beanCfg);
+      Iterator<String> it = beanCfg.getInvokerBindings();
+      org.jboss.metadata.InvokerProxyBindingMetaData imd = null;
+      while (it.hasNext() && imd == null)
+      {
+         String invoker = it.next();
+         imd = beanCfg.getApplicationMetaData().getInvokerProxyBindingMetaDataByName(invoker);
+         assertNotNull(imd);
+      }
+      assertNotNull(imd);
+
+      // Validate the merged StrictlyPooledMDB 
+      JBossEnterpriseBeanMetaData strictlyPooledMDB = beans.get("StrictlyPooledMDB");
+      JBossMessageDrivenBeanMetaData strictlyPooledMDBMD = (JBossMessageDrivenBeanMetaData) strictlyPooledMDB;
+      assertNotNull("strictlyPooledMDB", strictlyPooledMDB);
+      assertEquals("Message driven pooling test", strictlyPooledMDBMD.getDescriptionGroup().getDescription());
+      assertEquals("org.jboss.test.cts.ejb.StrictlyPooledMDB", strictlyPooledMDBMD.getEjbClass());
+      assertTrue(strictlyPooledMDB.isMessageDriven());
+      assertTrue(strictlyPooledMDB instanceof JBossMessageDrivenBeanMetaData);
+      assertEquals("AUTO_ACKNOWLEDGE", strictlyPooledMDBMD.getAcknowledgeMode());
+      assertEquals("javax.jms.Queue", strictlyPooledMDBMD.getMessageDestinationType());
+      assertEquals(SubscriptionDurability.NonDurable, strictlyPooledMDBMD.getSubscriptionDurability());
+      EnvironmentEntryMetaData maxActiveCount = strictlyPooledMDBMD.getEnvironmentEntryByName("maxActiveCount");
+      assertEquals("maxActiveCountID", maxActiveCount.getId());
+      assertEquals("java.lang.Integer", maxActiveCount.getType());
+      assertEquals("5", maxActiveCount.getValue());
+      assertEquals("queue/A", strictlyPooledMDBMD.getDestinationJndiName());
+      assertEquals("Strictly Pooled Message Driven Bean", strictlyPooledMDBMD.getConfigurationName());
+
+      // Test security-identity information      
+      org.jboss.metadata.SecurityIdentityMetaData secMetaData = beanCfg.getSecurityIdentityMetaData();
+      assertNull(secMetaData);
+
+      BeanMetaData RunAsStatelessSessionBean = appMetaData.getBeanByEjbName("RunAsStatelessSessionBean");
+      assertNotNull(RunAsStatelessSessionBean);
+      secMetaData = RunAsStatelessSessionBean.getSecurityIdentityMetaData();
+      assertEquals("getUseCallerIdentity", false, secMetaData.getUseCallerIdentity());
+      String roleName = secMetaData.getRunAsRoleName();
+      assertEquals("RunAsStatelessSessionBean.getRunAsRoleName", "RunAsStatelessSessionBean-role-name", roleName);
+   }
+
+   /**
+    * Test the merged resource-ref view of the EjbJar20_testResourceRefs.xml
+    * + JBoss50_testResourceRefs.xml with the merged JBossMetaData coming
+    * from merging the JBoss50_testResourceRefs.xml parsed object with the
+    * EjbJar20_testResourceRefs.xml EjbJar2xMetaData
+    * @throws Exception
+    */
+   public void testResourceRefsMergeSelf()
+      throws Exception
+   {
+      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+      EjbJar2xMetaData specData = unmarshal("EjbJar20_testResourceRefs.xml", EjbJar2xMetaData.class, null);
+      xbdelegate.setValidateSchema(false);
+      JBossMetaData jbossMetaData = unmarshal("JBoss50_testResourceRefs.xml", JBossMetaData.class, null);
+      jbossMetaData.merge(null, specData);
+      validateResourceRefs(jbossMetaData);
+   }
+   /**
+    * Test the merged resource-ref view of the EjbJar20_testREsourceRefs.xml
+    * + JBoss50_testResourceRefs.xml with the merged JBossMetaData coming
+    * from merging the JBoss50_testResourceRefs.xml parsed object with the
+    * EjbJar20_testResourceRefs.xml EjbJar2xMetaData into a new empty
+    * JBossMetaData instance.
+    * @throws Exception
+    */
+   public void testResourceRefs()
+      throws Exception
+   {
+      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+      EjbJar2xMetaData specData = unmarshal("EjbJar20_testResourceRefs.xml", EjbJar2xMetaData.class, null);
+      xbdelegate.setValidateSchema(false);
+      JBossMetaData jbossXmlMetaData = unmarshal();
+      JBossMetaData jbossMetaData = new JBossMetaData();
+      jbossMetaData.merge(jbossXmlMetaData, specData);
+      validateResourceRefs(jbossMetaData);
+   }
+
+   public void testEjbJndiName()
+      throws Exception
+   {
+      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+      xbdelegate.setValidateSchema(true);
+      JBossMetaData jbossXmlMetaData = unmarshal();
+      JBossEnterpriseBeansMetaData enterpriseBeans = jbossXmlMetaData.getEnterpriseBeans();
+      assertNotNull(enterpriseBeans);
+      assertEquals(2, enterpriseBeans.size());
+      for(JBossEnterpriseBeanMetaData bean : enterpriseBeans)
+      {
+         assertEquals("servlet_annotation_" + bean.getEjbName(), ((JBossGenericBeanMetaData)bean).getJndiName());
+      }
+   }
+
+   public void testMDBActivationConfigMerge()
+   {
+      EjbJar30MetaData ejbJar = new EjbJar30MetaData();
+      ejbJar.setEnterpriseBeans(new EnterpriseBeansMetaData());
+      MessageDrivenBeanMetaData messageBean = new MessageDrivenBeanMetaData();
+      messageBean.setEjbName("MyMDB");
+      // Do not add an activationConfig
+//      ActivationConfigMetaData activationConfig = new ActivationConfigMetaData();
+//      ActivationConfigPropertiesMetaData activationConfigProperties = new ActivationConfigPropertiesMetaData();
+//      ActivationConfigPropertyMetaData activationConfigProperty = new ActivationConfigPropertyMetaData();
+//      activationConfigProperty.setName("aName");
+//      activationConfigProperty.setValue("aValue");
+//      activationConfigProperties.add(activationConfigProperty);
+//      activationConfig.setActivationConfigProperties(activationConfigProperties);
+//      messageBean.setActivationConfig(activationConfig);
+      ejbJar.getEnterpriseBeans().add(messageBean);
+      
+      JBoss50MetaData metaData = new JBoss50MetaData();
+      metaData.setEnterpriseBeans(new JBossEnterpriseBeansMetaData());
+      JBossMessageDrivenBeanMetaData jMessageBean = new JBossMessageDrivenBeanMetaData();
+      jMessageBean.setEjbName("MyMDB");
+      jMessageBean.setDestinationJndiName("destinationJndiName");
+      metaData.getEnterpriseBeans().add(jMessageBean);
+      
+      metaData.merge(null, ejbJar);
+      
+      JBossMessageDrivenBeanMetaData mergedBean = (JBossMessageDrivenBeanMetaData) metaData.getEnterpriseBean("MyMDB");
+      assertNull(mergedBean.getActivationConfig());
+   }
+   
+   public void testInvokerDefaultJndiName() throws Exception
+   {
+      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+      xbdelegate.setValidateSchema(false);
+
+      JBossMetaData result = unmarshal();
+      JBoss50MetaData stdMetaData = unmarshal("JBoss5xEverything_testStandard.xml", JBoss50MetaData.class, null);
+
+      JBossEnterpriseBeanMetaData bean = result.getEnterpriseBean("SessionEjbName");
+      assertNotNull(bean);
+      InvokerBindingsMetaData invokerBindings = bean.getInvokerBindings();
+      assertNotNull(invokerBindings);
+      assertEquals(1, invokerBindings.size());
+      InvokerBindingMetaData invokerBindingMetaData = invokerBindings.get("sessionInvokerProxyBindingName");
+      assertNotNull(invokerBindingMetaData);
+      assertEquals("sessionInvokerProxyBindingName", invokerBindingMetaData.getInvokerProxyBindingName());
+      assertNull(invokerBindingMetaData.getJndiName());
+
+      JBossMetaDataWrapper jbossWrapper = new JBossMetaDataWrapper(result, stdMetaData);
+      ApplicationMetaData app = new ApplicationMetaData(jbossWrapper);
+      BeanMetaData wrapper = app.getBeanByEjbName("SessionEjbName");
+      assertNotNull(wrapper);
+      String invokerJndiName = wrapper.getInvokerBinding("sessionInvokerProxyBindingName");
+      assertEquals("SessionEjbName", invokerJndiName);
+      
+      bean = result.getEnterpriseBean("MdbEjbName");
+      assertNotNull(bean);
+      invokerBindings = bean.getInvokerBindings();
+      assertNull(invokerBindings);
+      invokerBindings = bean.determineInvokerBindings();
+      assertNotNull(invokerBindings);
+      assertEquals(1, invokerBindings.size());
+      InvokerBindingMetaData invokerBinding = invokerBindings.get(InvokerBindingMetaData.MESSAGE_DRIVEN);
+      assertNotNull(invokerBinding);
+      assertEquals(bean.getEjbName(), invokerBinding.getJndiName());
+      
+      wrapper = app.getBeanByEjbName("MdbEjbName");
+      assertNotNull(wrapper);
+      invokerJndiName = wrapper.getInvokerBinding(InvokerBindingMetaData.MESSAGE_DRIVEN);
+      assertEquals(wrapper.getEjbName(), invokerJndiName);
+   }
+
+   protected void validateResourceRefs(JBossMetaData jbossMetaData)
+   {
+      // Validate the resource managers
+      ResourceManagersMetaData resourceMgrs = jbossMetaData.getResourceManagers();
+      assertEquals(5, resourceMgrs.size());
+      ResourceManagerMetaData qfmgr = resourceMgrs.get("queuefactoryref");
+      assertNotNull(qfmgr);
+      assertEquals("java:/JmsXA", qfmgr.getResJndiName());
+      ResourceManagerMetaData qmgr = resourceMgrs.get("queueref");
+      assertNotNull(qmgr);
+      assertEquals("queue/testQueue", qmgr.getResJndiName());
+      ResourceManagerMetaData tfmgr = resourceMgrs.get("topicfactoryref");
+      assertNotNull(tfmgr);
+      assertEquals("java:/JmsXA", tfmgr.getResJndiName());
+      ResourceManagerMetaData tmgr = resourceMgrs.get("topicref");
+      assertNotNull(tmgr);
+      assertEquals("topic/testTopic", tmgr.getResJndiName());
+      
+
+      JBossEnterpriseBeanMetaData mdb = jbossMetaData.getEnterpriseBean("TopicPublisher");
+      
+      ResourceReferencesMetaData resources = mdb.getResourceReferences();
+      ResourceReferenceMetaData jmsRef1 = resources.get("jms/MyTopicConnection");
+      assertNotNull(jmsRef1);
+      assertEquals("jms/MyTopicConnection", jmsRef1.getResourceRefName());
+      assertEquals("javax.jms.TopicConnectionFactory", jmsRef1.getType());
+      assertEquals(ResourceAuthorityType.Container, jmsRef1.getResAuth());
+      assertEquals("topicfactoryref", jmsRef1.getResourceName());
+      assertEquals("java:/JmsXA", jmsRef1.getJndiName());
+      ResourceReferenceMetaData jmsRef2 = resources.get("jms/TopicName");
+      assertNotNull(jmsRef2);
+      assertEquals("jms/TopicName", jmsRef2.getResourceRefName());
+      assertEquals("javax.jms.Topic", jmsRef2.getType());
+      assertEquals(ResourceAuthorityType.Container, jmsRef2.getResAuth());
+      assertEquals("topicref", jmsRef2.getResourceName());
+      assertEquals("topic/testTopic", jmsRef2.getJndiName());
+   }
+   
+   public void testPrincipalVersusRolesMap() throws Exception
+   {
+      JBossMetaData jbossXmlMetaData = unmarshal();
+      JBossAssemblyDescriptorMetaData assemblyDescriptor = jbossXmlMetaData.getAssemblyDescriptor();
+      assertNotNull(assemblyDescriptor);
+      Map<String,Set<String>> principalVersusRolesMap = assemblyDescriptor.getPrincipalVersusRolesMap();
+      assertNotNull(principalVersusRolesMap);
+      Map<String,Set<String>> expected = new HashMap<String, Set<String>>();
+      expected.put("principal1", toSet("test1", "test2", "test3"));
+      expected.put("principal2", toSet("test2", "test3"));
+      expected.put("principal3", toSet("test3"));
+      assertEquals(expected, principalVersusRolesMap);
+   }
+
+   public void testEjbPortComponent() throws Exception
+   {
+      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+      xbdelegate.setValidateSchema(true);
+      JBossMetaData jboss = unmarshal();
+      JBossGenericBeanMetaData ejb = (JBossGenericBeanMetaData) jboss.getEnterpriseBean("EjbName");
+      assertNotNull(ejb);
+      PortComponent portComponent = ejb.getPortComponent();
+      assertNotNull(portComponent);
+      assertEquals("port.component.name", portComponent.getPortComponentName());
+      assertEquals("port/component/uri", portComponent.getPortComponentURI());
+   }
+   
+   public void testEjbthreeCacheInvalidationConfig() throws Exception
+   {
+      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+      xbdelegate.setValidateSchema(false);
+      JBossMetaData jbossXmlMetaData = unmarshal();
+      JBossEnterpriseBeansMetaData enterpriseBeans = jbossXmlMetaData.getEnterpriseBeans();
+      assertNotNull(enterpriseBeans);
+      assertEquals(2, enterpriseBeans.size());
+      
+      // Test that we get a proper default config when there is no
+      // <cache-invalidation-config> block in jboss.xml
+      JBossEntityBeanMetaData bean = (JBossEntityBeanMetaData) enterpriseBeans.get("TestEntity1");
+      assertNotNull(bean);
+      CacheInvalidationConfigMetaData cicmd = bean.getCacheInvalidationConfig();
+      assertNull(cicmd);
+      cicmd = bean.determineCacheInvalidationConfig();
+      assertNotNull(cicmd);
+      assertNull(cicmd.getInvalidationGroupName());
+      assertNull(cicmd.getInvalidationManagerName());
+      assertEquals("TestEntity1", cicmd.determineInvalidationGroupName());
+      assertEquals(CacheInvalidationConfigMetaData.DEFAULT_INVALIDATION_MANAGER_NAME, 
+                   cicmd.determineInvalidationManagerName());
+      
+      // Test that a <cache-invalidation-config> block in jboss.xml
+      // is respected
+      bean = (JBossEntityBeanMetaData) enterpriseBeans.get("TestEntity2");
+      assertNotNull(bean);
+      cicmd = bean.getCacheInvalidationConfig();
+      assertNotNull(cicmd);
+      CacheInvalidationConfigMetaData gotten = cicmd;
+      cicmd = bean.determineCacheInvalidationConfig();
+      assertEquals(gotten, cicmd);
+      assertEquals("TestEntityGroup2", cicmd.getInvalidationGroupName());
+      assertEquals("TestInvalidationManager", cicmd.getInvalidationManagerName());
+      assertEquals("TestEntityGroup2", cicmd.determineInvalidationGroupName());
+      assertEquals("TestInvalidationManager", cicmd.determineInvalidationManagerName());
+   }
+   
+   public void testEjbthreeClusterConfig() throws Exception
+   {
+      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+      xbdelegate.setValidateSchema(true);
+      JBossMetaData jbossXmlMetaData = unmarshal();
+      JBossEnterpriseBeansMetaData enterpriseBeans = jbossXmlMetaData.getEnterpriseBeans();
+      assertNotNull(enterpriseBeans);
+      assertEquals(4, enterpriseBeans.size());
+      
+      JBossSessionBeanMetaData bean = (JBossSessionBeanMetaData) enterpriseBeans.get("SimpleBean");
+      assertNotNull(bean);
+      ClusterConfigMetaData clusterConfig = bean.getClusterConfig();
+      assertNotNull(clusterConfig);      
+      assertEquals("ClusterConfigPartition", clusterConfig.getPartitionName());
+      assertEquals("SimpleLBP", clusterConfig.getLoadBalancePolicy());
+      assertEquals("SimpleLBP", clusterConfig.getBeanLoadBalancePolicy());
+      assertNull(clusterConfig.getHomeLoadBalancePolicy());
+      
+      bean = (JBossSessionBeanMetaData) enterpriseBeans.get("HomeAndBeanBean");
+      assertNotNull(bean);
+      clusterConfig = bean.getClusterConfig();
+      assertNotNull(clusterConfig);      
+      assertEquals("ClusterConfigPartition", clusterConfig.getPartitionName());
+      assertEquals("BeanLBP", clusterConfig.getLoadBalancePolicy());
+      assertEquals("BeanLBP", clusterConfig.getBeanLoadBalancePolicy());
+      assertEquals("HomeLBP", clusterConfig.getHomeLoadBalancePolicy());
+      
+      bean = (JBossSessionBeanMetaData) enterpriseBeans.get("HomeAndSimpleBean");
+      assertNotNull(bean);
+      clusterConfig = bean.getClusterConfig();
+      assertNotNull(clusterConfig);      
+      assertEquals("ClusterConfigPartition", clusterConfig.getPartitionName());
+      assertEquals("SimpleLBP", clusterConfig.getLoadBalancePolicy());
+      assertEquals("SimpleLBP", clusterConfig.getBeanLoadBalancePolicy());
+      assertEquals("HomeLBP", clusterConfig.getHomeLoadBalancePolicy());
+      
+      bean = (JBossSessionBeanMetaData) enterpriseBeans.get("HomeOnlyBean");
+      assertNotNull(bean);
+      clusterConfig = bean.getClusterConfig();
+      assertNotNull(clusterConfig);      
+      assertNull(clusterConfig.getPartitionName());
+      assertNull(clusterConfig.getLoadBalancePolicy());
+      assertNull(clusterConfig.getBeanLoadBalancePolicy());
+      assertEquals("HomeLBP", clusterConfig.getHomeLoadBalancePolicy());
+   }
+
+   public void testJndiBindingPolicy() throws Exception
+   {
+      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+      xbdelegate.setValidateSchema(true);
+      JBossMetaData jbossXmlMetaData = unmarshal();
+      assertEquals("org.jboss.metadata.test.AppJndiBindingPolicy", jbossXmlMetaData.getJndiBindingPolicy());
+      JBossEnterpriseBeansMetaData enterpriseBeans = jbossXmlMetaData.getEnterpriseBeans();
+      assertNotNull(enterpriseBeans);
+      assertEquals(3, enterpriseBeans.size());
+
+      JBossEnterpriseBeanMetaData ejb = enterpriseBeans.get("EjbBean");
+      assertNotNull(ejb);
+      assertEquals("org.jboss.metadata.test.EjbJndiBindingPolicy", ejb.getJndiBindingPolicy());
+      
+      ejb = enterpriseBeans.get("MdbName");
+      assertNotNull(ejb);
+      assertEquals("org.jboss.metadata.test.MdbJndiBindingPolicy", ejb.getJndiBindingPolicy());
+
+      ejb = enterpriseBeans.get("SessionBean");
+      assertNotNull(ejb);
+      assertEquals("org.jboss.metadata.test.SessionJndiBindingPolicy", ejb.getJndiBindingPolicy());
+   }
+
+   private <T> Set<T> toSet(T ... obj)
+   {
+      Set<T> set = new HashSet<T>();
+      for(T o : obj)
+      {
+         set.add(o);
+      }
+      return set;
+   }
+}




More information about the jboss-cvs-commits mailing list