[jboss-cvs] JBossAS SVN: r66323 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/annotation/creator and 12 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Oct 22 01:15:44 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-10-22 01:15:43 -0400 (Mon, 22 Oct 2007)
New Revision: 66323

Added:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaDataIterator.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/
   projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/
   projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IAssemblyDescriptorMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEjbJarMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeansMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMap.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/
   projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MergeUtil.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MetaDataFactory.java
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ApplicationMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractTransactionAttributeProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ClusterConfigMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossGenericBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossServiceBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AssemblyDescriptorMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EjbJarMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImpl.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClientJBossMergeEverythingUnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/AbstractEJBEverythingTest.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar20UnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar21EverythingUnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar21UnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar3xUnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/whitespace/WhitespaceUnitTestCase.java
Log:
Checkpoint the ejb metadata refactoring

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ApplicationMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ApplicationMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ApplicationMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -30,6 +30,8 @@
 import java.util.LinkedHashMap;
 import java.util.Map;
 
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
 import org.jboss.metadata.common.jboss.WebserviceDescriptionMetaData;
 import org.jboss.metadata.common.jboss.WebserviceDescriptionsMetaData;
 import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
@@ -130,7 +132,7 @@
     */
    public boolean isEJB1x()
    {
-      return getOverridenDelegate().isEJB1x();
+      return getDelegate().isEJB1x();
    }
 
    /**
@@ -140,7 +142,7 @@
     */
    public boolean isEJB2x()
    {
-      return getOverridenDelegate().isEJB2x();
+      return getDelegate().isEJB2x();
    }
 
    /**
@@ -150,7 +152,7 @@
     */
    public boolean isEJB21()
    {
-      return getOverridenDelegate().isEJB21();
+      return getDelegate().isEJB21();
    }
 
    /**
@@ -160,7 +162,7 @@
     */
    public boolean isEJB3x()
    {
-      return getOverridenDelegate().isEJB3x();
+      return getDelegate().isEJB3x();
    }
 
    /**
@@ -170,8 +172,8 @@
     */
    public Iterator<BeanMetaData> getEnterpriseBeans()
    {
-      JBossEnterpriseBeansMetaData beans = getDelegate().getMergedEnterpriseBeans();
-      return new OldMetaDataIterator<JBossEnterpriseBeanMetaData, BeanMetaData>(beans, JBossEnterpriseBeanMetaData.class, BeanMetaData.class);
+      JBossEnterpriseBeansMetaData beans = (JBossEnterpriseBeansMetaData) getDelegate().getEnterpriseBeans();
+      return new BeanMetaDataIterator(beans);
    }
 
    /**
@@ -184,8 +186,8 @@
     */
    public BeanMetaData getBeanByEjbName(String ejbName)
    {
-      JBossEnterpriseBeansMetaData beans = getDelegate().getMergedEnterpriseBeans();
-      JBossEnterpriseBeanMetaData bean = beans.get(ejbName);
+      IEnterpriseBeansMetaData beans = getDelegate().getEnterpriseBeans();
+      JBossEnterpriseBeanMetaData bean = (JBossEnterpriseBeanMetaData) beans.get(ejbName);
       if (bean == null)
          return null;
       return BeanMetaData.create(bean);
@@ -199,7 +201,7 @@
     */
    public Iterator<RelationMetaData> getRelationships()
    {
-      RelationsMetaData relations = getOverridenDelegate().getRelationships();
+      RelationsMetaData relations = getDelegate().getRelationships();
       return new OldMetaDataIterator<org.jboss.metadata.ejb.spec.RelationMetaData, RelationMetaData>(relations, org.jboss.metadata.ejb.spec.RelationMetaData.class, RelationMetaData.class);
    }
 
@@ -210,7 +212,7 @@
     */
    public AssemblyDescriptorMetaData getAssemblyDescriptor()
    {
-      JBossAssemblyDescriptorMetaData delegate = getDelegate().getMergedAssemblyDescriptor();
+      JBossAssemblyDescriptorMetaData delegate = (JBossAssemblyDescriptorMetaData) getDelegate().getAssemblyDescriptor();
       return new AssemblyDescriptorMetaData(delegate);
    }
 
@@ -222,7 +224,7 @@
     */
    public MessageDestinationMetaData getMessageDestination(String name)
    {
-      org.jboss.metadata.ejb.spec.AssemblyDescriptorMetaData delegate = getOverridenDelegate().getAssemblyDescriptor();
+      org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData delegate = getDelegate().getAssemblyDescriptor();
       if (delegate == null)
          return null;
       org.jboss.metadata.javaee.spec.MessageDestinationMetaData destination = delegate.getMessageDestination(name);

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -28,6 +28,7 @@
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
 import org.jboss.metadata.ejb.jboss.IORSecurityConfigMetaData;
 import org.jboss.metadata.ejb.jboss.InvokerBindingMetaData;
@@ -72,7 +73,7 @@
  * @version $Revision: 45953 $
  */
 @Deprecated
-public abstract class BeanMetaData extends OldMetaDataWithOverride<JBossEnterpriseBeanMetaData, EnterpriseBeanMetaData>
+public abstract class BeanMetaData extends OldMetaDataWithOverride<JBossEnterpriseBeanMetaData, IEnterpriseBeanMetaData>
 {
    /** Session type */
    public static final char SESSION_TYPE = 'S';

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaDataIterator.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaDataIterator.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaDataIterator.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -0,0 +1,59 @@
+/*
+ * 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;
+
+import java.util.Iterator;
+
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
+
+/**
+ * An iterator of BeanMetaData
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class BeanMetaDataIterator
+   implements Iterator<BeanMetaData>
+{
+   Iterator iter;
+   BeanMetaDataIterator(JBossEnterpriseBeansMetaData beans)
+   {
+      iter = beans.iterator();
+   }
+
+   public boolean hasNext()
+   {
+      return iter.hasNext();
+   }
+
+   public BeanMetaData next()
+   {
+      JBossEnterpriseBeanMetaData bean = (JBossEnterpriseBeanMetaData) iter.next();
+      BeanMetaData bmd = BeanMetaData.create(bean);
+      return bmd;
+   }
+
+   public void remove()
+   {
+      iter.remove();
+   }
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/BeanMetaDataIterator.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractTransactionAttributeProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractTransactionAttributeProcessor.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractTransactionAttributeProcessor.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -27,6 +27,7 @@
 import javax.ejb.TransactionAttribute;
 
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.common.javaee.ejb.IEjbJarMetaData;
 import org.jboss.metadata.ejb.spec.AssemblyDescriptorMetaData;
 import org.jboss.metadata.ejb.spec.ContainerTransactionMetaData;
 import org.jboss.metadata.ejb.spec.ContainerTransactionsMetaData;
@@ -41,7 +42,7 @@
  * E defines the actual annotated element we're working for.
  *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
  */
 public abstract class AbstractTransactionAttributeProcessor<E extends AnnotatedElement, T extends EnterpriseBeanMetaData> extends AbstractFinderUser
 {
@@ -101,7 +102,7 @@
       if(annotation == null)
          return;
       
-      EjbJarMetaData ejbJarMetaData = bean.getEjbJarMetaData();
+      IEjbJarMetaData ejbJarMetaData = bean.getEjbJarMetaData();
       
       if(ejbJarMetaData.getAssemblyDescriptor() == null)
          ejbJarMetaData.setAssemblyDescriptor(new AssemblyDescriptorMetaData());

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -23,21 +23,21 @@
 
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlTransient;
-
 import org.jboss.metadata.client.spec.ApplicationClientMetaData;
-import org.jboss.metadata.javaee.jboss.JBossRemoteEnvironmentRefsGroupMetaData;
+import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EnvironmentEntriesMetaData;
 import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
 import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
 import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
 import org.jboss.metadata.javaee.spec.MessageDestinationReferencesMetaData;
 import org.jboss.metadata.javaee.spec.MessageDestinationsMetaData;
 import org.jboss.metadata.javaee.spec.PersistenceUnitReferenceMetaData;
 import org.jboss.metadata.javaee.spec.PersistenceUnitReferencesMetaData;
 import org.jboss.metadata.javaee.spec.RemoteEnvironment;
+import org.jboss.metadata.javaee.spec.RemoteEnvironmentRefsGroupMetaData;
 import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
 import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferencesMetaData;
 import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
@@ -60,27 +60,77 @@
    private String jndiName;
    
    /** The environment */
-   private JBossRemoteEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup;
+   private RemoteEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup;
    
-   /** The merged environment */
-   private transient JBossRemoteEnvironmentRefsGroupMetaData mergedEnvironment;
-   
    /** A list of extra dependencies to wait on */
    private List<String> depends;
    
    private transient MessageDestinationsMetaData mergedMessageDestinations;
-   
+
    public String getCallbackHandler()
    {
-      return getOverridenMetaDataWithCheck().getCallbackHandler();
+      return ensureOverride().getCallbackHandler();
    }
-   
+   public DescriptionGroupMetaData getDescriptionGroup()
+   {
+      return ensureOverride().getDescriptionGroup();
+   }
+   public String getDtdPublicId()
+   {
+      return ensureOverride().getDtdPublicId();
+   }
+   public String getDtdSystemId()
+   {
+      return ensureOverride().getDtdSystemId();
+   }
+   public String getId()
+   {
+      return ensureOverride().getId();
+   }
+   public MessageDestinationMetaData getMessageDestinationByName(String name)
+   {
+      return ensureOverride().getMessageDestinationByName(name);
+   }
+   public MessageDestinationsMetaData getMessageDestinations()
+   {
+      return ensureOverride().getMessageDestinations();
+   }
+   public String getVersion()
+   {
+      return ensureOverride().getVersion();
+   }
+   public void setDescriptionGroup(DescriptionGroupMetaData descriptionGroup)
+   {
+      ensureOverride().setDescriptionGroup(descriptionGroup);
+   }
+   public void setDTD(String root, String publicId, String systemId)
+   {
+      ensureOverride().setDTD(root, publicId, systemId);
+   }
+   public void setId(String id)
+   {
+      ensureOverride().setId(id);
+   }
+   public void setMessageDestinations(MessageDestinationsMetaData messageDestinations)
+   {
+      ensureOverride().setMessageDestinations(messageDestinations);
+   }
+   public void setVersion(String version)
+   {
+      ensureOverride().setVersion(version);
+   }
+
+   public void setCallbackHandler(String callbackHandler)
+   {
+      ensureOverride().setCallbackHandler(callbackHandler);
+   }
+
    public List<String> getDepends()
    {
       return depends;
    }
    
-   public JBossRemoteEnvironmentRefsGroupMetaData getJBossJndiEnvironmentRefsGroup()
+   public RemoteEnvironmentRefsGroupMetaData getJBossJndiEnvironmentRefsGroup()
    {
       return jndiEnvironmentRefsGroup;
    }
@@ -90,27 +140,12 @@
       return jndiName;
    }
    
-   /**
-    * Get the mergedEnvironment.
-    * 
-    * @return the mergedEnvironment.
-    */
-   @XmlTransient
-   public JBossRemoteEnvironmentRefsGroupMetaData getMergedEnvironment()
-   {
-      if (mergedEnvironment != null)
-         return mergedEnvironment;
-      
-      mergedEnvironment = JBossRemoteEnvironmentRefsGroupMetaData.merge(jndiEnvironmentRefsGroup, getOverridenMetaDataWithCheck(), "application-client.xml", "jboss-client.xml");
-      return mergedEnvironment;
-   }
-   
    public void setDepends(List<String> depends)
    {
       this.depends = depends;
    }
    
-   public void setJBossJndiEnvironmentRefsGroup(JBossRemoteEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup)
+   public void setJndiEnvironmentRefsGroup(RemoteEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup)
    {
       if(jndiEnvironmentRefsGroup == null)
          throw new IllegalArgumentException("jndiEnvironmentRefsGroup is null");
@@ -126,91 +161,93 @@
    
    public EJBReferenceMetaData getEjbReferenceByName(String name)
    {
-      return getMergedEnvironment().getEjbReferenceByName(name);
+      return jndiEnvironmentRefsGroup.getEjbReferenceByName(name);
    }
 
    public EJBReferencesMetaData getEjbReferences()
    {
-      return getMergedEnvironment().getEjbReferences();
+      return jndiEnvironmentRefsGroup.getEjbReferences();
    }
 
    public EnvironmentEntriesMetaData getEnvironmentEntries()
    {
-      return getMergedEnvironment().getEnvironmentEntries();
+      return jndiEnvironmentRefsGroup.getEnvironmentEntries();
    }
 
    public EnvironmentEntryMetaData getEnvironmentEntryByName(String name)
    {
-      return getMergedEnvironment().getEnvironmentEntryByName(name);
+      return jndiEnvironmentRefsGroup.getEnvironmentEntryByName(name);
    }
 
    public MessageDestinationReferenceMetaData getMessageDestinationReferenceByName(String name)
    {
-      return getMergedEnvironment().getMessageDestinationReferenceByName(name);
+      return jndiEnvironmentRefsGroup.getMessageDestinationReferenceByName(name);
    }
 
    public MessageDestinationReferencesMetaData getMessageDestinationReferences()
    {
-      return getMergedEnvironment().getMessageDestinationReferences();
+      return jndiEnvironmentRefsGroup.getMessageDestinationReferences();
    }
 
-   public MessageDestinationsMetaData getMergedMessageDestinations()
-   {
-      if(mergedMessageDestinations != null)
-         return mergedMessageDestinations;
-      
-      mergedMessageDestinations = new MessageDestinationsMetaData();
-      mergedMessageDestinations = JavaEEMetaDataUtil.merge(mergedMessageDestinations, getOverridenMetaDataWithCheck().getMessageDestinations(), null, "message-destination", "application-client.xml", "jboss-client.xml", true);
-      return mergedMessageDestinations;
-   }
-   
    public PersistenceUnitReferenceMetaData getPersistenceUnitReferenceByName(String name)
    {
-      return getMergedEnvironment().getPersistenceUnitReferenceByName(name);
+      return jndiEnvironmentRefsGroup.getPersistenceUnitReferenceByName(name);
    }
 
    public PersistenceUnitReferencesMetaData getPersistenceUnitRefs()
    {
-      return getMergedEnvironment().getPersistenceUnitRefs();
+      return jndiEnvironmentRefsGroup.getPersistenceUnitRefs();
    }
 
    public LifecycleCallbacksMetaData getPostConstructs()
    {
-      return getMergedEnvironment().getPostConstructs();
+      return jndiEnvironmentRefsGroup.getPostConstructs();
    }
 
    public LifecycleCallbacksMetaData getPreDestroys()
    {
-      return getMergedEnvironment().getPreDestroys();
+      return jndiEnvironmentRefsGroup.getPreDestroys();
    }
 
    public ServiceReferenceMetaData getServiceReferenceByName(String name)
    {
-      return getMergedEnvironment().getServiceReferenceByName(name);
+      return jndiEnvironmentRefsGroup.getServiceReferenceByName(name);
    }
 
    public ServiceReferencesMetaData getServiceReferences()
    {
-      return getMergedEnvironment().getServiceReferences();
+      return jndiEnvironmentRefsGroup.getServiceReferences();
    }
 
    public ResourceEnvironmentReferenceMetaData getResourceEnvironmentReferenceByName(String name)
    {
-      return getMergedEnvironment().getResourceEnvironmentReferenceByName(name);
+      return jndiEnvironmentRefsGroup.getResourceEnvironmentReferenceByName(name);
    }
 
    public ResourceEnvironmentReferencesMetaData getResourceEnvironmentReferences()
    {
-      return getMergedEnvironment().getResourceEnvironmentReferences();
+      return jndiEnvironmentRefsGroup.getResourceEnvironmentReferences();
    }
 
    public ResourceReferenceMetaData getResourceReferenceByName(String name)
    {
-      return getMergedEnvironment().getResourceReferenceByName(name);
+      return jndiEnvironmentRefsGroup.getResourceReferenceByName(name);
    }
 
    public ResourceReferencesMetaData getResourceReferences()
    {
-      return getMergedEnvironment().getResourceReferences();
+      return jndiEnvironmentRefsGroup.getResourceReferences();
    }
+
+   protected ApplicationClientMetaData ensureOverride()
+   {
+      if (this.getOverridenMetaData() == null)
+         this.setOverridenMetaData(newOverridenMetaData());
+      return this.getOverridenMetaData();
+   }
+
+   protected ApplicationClientMetaData newOverridenMetaData()
+   {
+      return new ApplicationClientMetaData();
+   }
 }

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IAssemblyDescriptorMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IAssemblyDescriptorMetaData.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IAssemblyDescriptorMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -0,0 +1,189 @@
+/*
+ * 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.common.javaee.ejb;
+
+import org.jboss.metadata.ejb.spec.ApplicationExceptionsMetaData;
+import org.jboss.metadata.ejb.spec.ContainerTransactionsMetaData;
+import org.jboss.metadata.ejb.spec.ExcludeListMetaData;
+import org.jboss.metadata.ejb.spec.InterceptorBindingMetaData;
+import org.jboss.metadata.ejb.spec.InterceptorBindingsMetaData;
+import org.jboss.metadata.ejb.spec.MethodPermissionsMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationsMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
+
+/**
+ * interface for ejb assembly-descriptor contents
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface IAssemblyDescriptorMetaData
+{
+   public SecurityRoleMetaData getSecurityRole(String roleName);
+   /**
+    * Get the securityRoles.
+    * 
+    * @return the securityRoles.
+    */
+   public SecurityRolesMetaData getSecurityRoles();
+   /**
+    * Set the securityRoles.
+    * 
+    * @param securityRoles the securityRoles.
+    * @throws IllegalArgumentException for a null securityRoles
+    */
+   public void setSecurityRoles(SecurityRolesMetaData securityRoles);
+
+   /**
+    * Get the methodPermissions.
+    * 
+    * @return the methodPermissions.
+    */
+   public MethodPermissionsMetaData getMethodPermissions();
+
+   /**
+    * Set the methodPermissions.
+    * 
+    * @param methodPermissions the methodPermissions.
+    * @throws IllegalArgumentException for a null methodPermissions
+    */
+   public void setMethodPermissions(MethodPermissionsMetaData methodPermissions);
+
+   /**
+    * Get the methods permissions for an ejb
+    * 
+    * @param ejbName the ejb name
+    * @return the method permissions or null for no result
+    * @throws IllegalArgumentException for a null ejb name
+    */
+   public MethodPermissionsMetaData getMethodPermissionsByEjbName(String ejbName);
+   /**
+    * Get the containerTransactions.
+    * 
+    * @return the containerTransactions.
+    */
+   public ContainerTransactionsMetaData getContainerTransactions();
+
+   /**
+    * Set the containerTransactions.
+    * 
+    * @param containerTransactions the containerTransactions.
+    * @throws IllegalArgumentException for a null containerTransactions
+    */
+   public void setContainerTransactions(ContainerTransactionsMetaData containerTransactions);
+
+   /**
+    * Get the container transactions for an ejb
+    * 
+    * @param ejbName the ejb name
+    * @return the container transactions or null for no result
+    * @throws IllegalArgumentException for a null ejb name
+    */
+   public ContainerTransactionsMetaData getContainerTransactionsByEjbName(String ejbName);
+
+   /**
+    * Get the interceptorBindings.
+    * 
+    * @return the interceptorBindings.
+    */
+   public InterceptorBindingsMetaData getInterceptorBindings();
+
+   /**
+    * Set the interceptorBindings.
+    * 
+    * @param interceptorBindings the interceptorBindings.
+    * @throws IllegalArgumentException for a null interceptorBindings
+    */
+   public void setInterceptorBindings(InterceptorBindingsMetaData interceptorBindings);
+
+   /**
+    * Get the interceptor binding for an ejb
+    * 
+    * @param ejbName the ejb name
+    * @return the interceptor binding or null for no result
+    * @throws IllegalArgumentException for a null ejb name
+    */
+   public InterceptorBindingMetaData getInterceptorBindingByEjbName(String ejbName);
+
+   /**
+    * Get the messageDestinations.
+    * 
+    * @return the messageDestinations.
+    */
+   public MessageDestinationsMetaData getMessageDestinations();
+
+   /**
+    * Set the messageDestinations.
+    * 
+    * @param messageDestinations the messageDestinations.
+    * @throws IllegalArgumentException for a null messageDestinations
+    */
+   public void setMessageDestinations(MessageDestinationsMetaData messageDestinations);
+
+   /**
+    * Get a message destination
+    * 
+    * @param name the name of the destination
+    * @return the destination or null if not found
+    */
+   public MessageDestinationMetaData getMessageDestination(String name);
+   
+   /**
+    * Get the excludeList.
+    * 
+    * @return the excludeList.
+    */
+   public ExcludeListMetaData getExcludeList();
+
+   /**
+    * Set the excludeList.
+    * 
+    * @param excludeList the excludeList.
+    * @throws IllegalArgumentException for a null excludeList
+    */
+   public void setExcludeList(ExcludeListMetaData excludeList);
+
+   /**
+    * Get the exclude list for an ejb
+    * 
+    * @param ejbName the ejb name
+    * @return the exclude list or null for no result
+    * @throws IllegalArgumentException for a null ejb name
+    */
+   public ExcludeListMetaData getExcludeListByEjbName(String ejbName);
+
+   /**
+    * Get the applicationExceptions.
+    * 
+    * @return the applicationExceptions.
+    */
+   public ApplicationExceptionsMetaData getApplicationExceptions();
+   /**
+    * Set the applicationExceptions.
+    * 
+    * @param applicationExceptions the applicationExceptions.
+    * @throws IllegalArgumentException for a null applicationExceptions
+    */
+   public void setApplicationExceptions(ApplicationExceptionsMetaData applicationExceptions);
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IAssemblyDescriptorMetaData.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEjbJarMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEjbJarMetaData.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEjbJarMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -0,0 +1,47 @@
+/*
+ * 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.common.javaee.ejb;
+
+import org.jboss.metadata.ejb.spec.RelationsMetaData;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface IEjbJarMetaData
+{
+   public String getVersion();
+   public void setVersion(String version);
+   public boolean isEJB1x();
+   public boolean isEJB2x();
+   public boolean isEJB21();
+   public boolean isEJB3x();
+   public String getEjbClientJar();
+   public void setEjbClientJar(String ejbClientJar);
+   public IEnterpriseBeansMetaData getEnterpriseBeans();
+   public IEnterpriseBeanMetaData getEnterpriseBean(String name);
+   public void setEnterpriseBeans(IEnterpriseBeansMetaData enterpriseBeans);
+   public RelationsMetaData getRelationships();
+   public void setRelationships(RelationsMetaData relationships);
+   public IAssemblyDescriptorMetaData getAssemblyDescriptor();
+   public void setAssemblyDescriptor(IAssemblyDescriptorMetaData assemblyDescriptor);
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEjbJarMetaData.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeanMetaData.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeanMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -0,0 +1,116 @@
+/*
+ * 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.common.javaee.ejb;
+
+import java.lang.reflect.Method;
+
+import org.jboss.metadata.ejb.spec.ContainerTransactionsMetaData;
+import org.jboss.metadata.ejb.spec.ExcludeListMetaData;
+import org.jboss.metadata.ejb.spec.InterceptorBindingMetaData;
+import org.jboss.metadata.ejb.spec.MethodInterfaceType;
+import org.jboss.metadata.ejb.spec.MethodPermissionsMetaData;
+import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
+import org.jboss.metadata.ejb.spec.TransAttributeType;
+import org.jboss.metadata.ejb.spec.TransactionType;
+import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
+import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
+import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
+import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
+import org.jboss.metadata.javaee.spec.EJBReferencesMetaData;
+import org.jboss.metadata.javaee.spec.EnvironmentEntriesMetaData;
+import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
+import org.jboss.metadata.javaee.spec.EnvironmentRefsGroupMetaData;
+import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationReferencesMetaData;
+import org.jboss.metadata.javaee.spec.PersistenceContextReferenceMetaData;
+import org.jboss.metadata.javaee.spec.PersistenceContextReferencesMetaData;
+import org.jboss.metadata.javaee.spec.PersistenceUnitReferenceMetaData;
+import org.jboss.metadata.javaee.spec.PersistenceUnitReferencesMetaData;
+import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferencesMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
+import org.jboss.metadata.javaee.support.MappableMetaData;
+import org.jboss.metadata.javaee.support.NamedMetaData;
+
+/**
+ * Common interface for spec/jboss enterprise bean metadata
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface IEnterpriseBeanMetaData extends MappableMetaData
+{
+   public String getId();
+   public DescriptionGroupMetaData getDescriptionGroup();
+   public void setDescriptionGroup(DescriptionGroupMetaData descriptionGroup);
+   public IEjbJarMetaData getEjbJarMetaData();
+   public String getEjbName();
+   public void setEjbName(String ejbName);
+   public boolean isSession();
+   public boolean isMessageDriven();
+   public boolean isEntity();
+   public TransactionType getTransactionType();
+   public boolean isCMT();
+   public boolean isBMT();
+   public String getMappedName();
+   public void setMappedName(String mappedName);
+   public String getEjbClass();
+   public void setEjbClass(String ejbClass);
+   public EnvironmentRefsGroupMetaData getJndiEnvironmentRefsGroup();
+   public void setJndiEnvironmentRefsGroup(EnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup);
+   public SecurityIdentityMetaData getSecurityIdentity();
+   public void setSecurityIdentity(SecurityIdentityMetaData securityIdentity);
+   public EJBLocalReferenceMetaData getEjbLocalReferenceByName(String name);
+   public EJBLocalReferencesMetaData getEjbLocalReferences();
+   public EJBReferenceMetaData getEjbReferenceByName(String name);
+   public EJBReferencesMetaData getEjbReferences();
+   public EnvironmentEntriesMetaData getEnvironmentEntries();
+   public EnvironmentEntryMetaData getEnvironmentEntryByName(String name);
+   public MessageDestinationReferenceMetaData getMessageDestinationReferenceByName(String name);
+   public MessageDestinationReferencesMetaData getMessageDestinationReferences();
+   public PersistenceContextReferenceMetaData getPersistenceContextReferenceByName(String name);
+   public PersistenceContextReferencesMetaData getPersistenceContextRefs();
+   public PersistenceUnitReferenceMetaData getPersistenceUnitReferenceByName(String name);
+   public PersistenceUnitReferencesMetaData getPersistenceUnitRefs();
+   public LifecycleCallbacksMetaData getPostConstructs();
+   public LifecycleCallbacksMetaData getPreDestroys();
+   public ResourceEnvironmentReferenceMetaData getResourceEnvironmentReferenceByName(String name);
+   public ResourceEnvironmentReferencesMetaData getResourceEnvironmentReferences();;
+   public ResourceReferenceMetaData getResourceReferenceByName(String name);
+   public ResourceReferencesMetaData getResourceReferences();;
+   public ServiceReferenceMetaData getServiceReferenceByName(String name);
+   public ServiceReferencesMetaData getServiceReferences();;
+   public MethodPermissionsMetaData getMethodPermissions();;
+   public ContainerTransactionsMetaData getContainerTransactions();;
+   public TransAttributeType getMethodTransactionType(String methodName, Class[] params, MethodInterfaceType iface);
+   public TransAttributeType getMethodTransactionType(Method m, MethodInterfaceType iface);
+   public InterceptorBindingMetaData getInterceptorBinding();;
+   public ExcludeListMetaData getExcludeList();
+   //public IEnterpriseBeansMetaData getEnterpriseBeansMetaData();
+   public void setEnterpriseBeansMetaData(IEnterpriseBeansMetaData data);
+
+   //
+   public void merge(NamedMetaData merged, NamedMetaData original);
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeanMetaData.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeansMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeansMetaData.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeansMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -0,0 +1,50 @@
+/*
+ * 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.common.javaee.ejb;
+
+import java.util.Collection;
+
+import org.jboss.metadata.javaee.support.IdMetaData;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface IEnterpriseBeansMetaData<E extends IEnterpriseBeanMetaData>
+   extends IdMetaData, Collection<E>
+{
+   /**
+    * Get the ejbJarMetaData.
+    * 
+    * @return the ejbJarMetaData.
+    */
+   IEjbJarMetaData getEjbJarMetaData();
+   /**
+    * Set the ejbJarMetaData.
+    * 
+    * @param ejbJarMetaData the ejbJarMetaData.
+    * @throws IllegalArgumentException for a null ejbJarMetaData
+    */
+   void setEjbJarMetaData(IEjbJarMetaData ejbJarMetaData);
+
+   public E get(String ejbName);
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeansMetaData.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ClusterConfigMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ClusterConfigMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ClusterConfigMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -23,6 +23,7 @@
 
 import javax.xml.bind.annotation.XmlType;
 
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
 import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptions;
@@ -98,7 +99,7 @@
    {
       if (beanLoadBalancingPolicy == null && enterpriseBeanMetaData != null)
       {
-         EnterpriseBeanMetaData ejb = enterpriseBeanMetaData.getOverridenMetaData();
+         IEnterpriseBeanMetaData ejb = enterpriseBeanMetaData.getOverridenMetaData();
          if (ejb != null)
          {
             if (ejb.isSession())
@@ -146,7 +147,7 @@
    {
       if (homeLoadBalancingPolicy == null && enterpriseBeanMetaData != null)
       {
-         EnterpriseBeanMetaData ejb = enterpriseBeanMetaData.getOverridenMetaData();
+         IEnterpriseBeanMetaData ejb = enterpriseBeanMetaData.getOverridenMetaData();
          if (ejb != null)
             return ROUND_ROBIN;
       }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -24,11 +24,18 @@
 import java.util.Collections;
 import java.util.Set;
 
+import org.jboss.metadata.ejb.spec.ApplicationExceptionsMetaData;
 import org.jboss.metadata.ejb.spec.AssemblyDescriptorMetaData;
+import org.jboss.metadata.ejb.spec.ContainerTransactionsMetaData;
+import org.jboss.metadata.ejb.spec.ExcludeListMetaData;
+import org.jboss.metadata.ejb.spec.InterceptorBindingMetaData;
+import org.jboss.metadata.ejb.spec.InterceptorBindingsMetaData;
+import org.jboss.metadata.ejb.spec.MethodPermissionsMetaData;
 import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
 import org.jboss.metadata.javaee.spec.MessageDestinationsMetaData;
 import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
 import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
+import org.jboss.metadata.javaee.support.IdMetaDataImpl;
 import org.jboss.metadata.javaee.support.IdMetaDataImplWithOverride;
 import org.jboss.metadata.javaee.support.JavaEEMetaDataUtil;
 import javax.xml.bind.annotation.XmlElement;
@@ -42,6 +49,7 @@
  */
 @XmlType(name="jboss-assembly-descriptorType")
 public class JBossAssemblyDescriptorMetaData extends IdMetaDataImplWithOverride<AssemblyDescriptorMetaData>
+   implements org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = 5638920200035141015L;
@@ -53,69 +61,98 @@
    private MessageDestinationsMetaData messageDestinations;
 
    /**
-    * Merge the assembly descriptors
-    * 
-    * @param jbossAssemblyDescriptorMetaData the override
-    * @param assemblyDescriptorMetaData the overriden
-    * @return the merged data
+    * Create a new JBossAssemblyDescriptorMetaData
     */
-   public static JBossAssemblyDescriptorMetaData merge(JBossAssemblyDescriptorMetaData jbossAssemblyDescriptorMetaData, AssemblyDescriptorMetaData assemblyDescriptorMetaData)
+   public JBossAssemblyDescriptorMetaData()
    {
-      JBossAssemblyDescriptorMetaData merged = new JBossAssemblyDescriptorMetaData();
+      // For serialization
+   }
 
-      SecurityRolesMetaData securityRolesMetaData = null;
-      SecurityRolesMetaData jbossSecurityRolesMetaData = null;
-      MessageDestinationsMetaData messageDestinationsMetaData = null;
-      MessageDestinationsMetaData jbossMessageDestinationsMetaData = null;
-      if (assemblyDescriptorMetaData != null)
-      {
-         merged.setOverridenMetaData(assemblyDescriptorMetaData);
-         securityRolesMetaData = assemblyDescriptorMetaData.getSecurityRoles();
-         messageDestinationsMetaData = assemblyDescriptorMetaData.getMessageDestinations();
-      }
-      if (jbossAssemblyDescriptorMetaData != null)
-      {
-         jbossSecurityRolesMetaData = jbossAssemblyDescriptorMetaData.getSecurityRoles();
-         jbossMessageDestinationsMetaData = jbossAssemblyDescriptorMetaData.getMessageDestinations();
-      }
+   
+   public ApplicationExceptionsMetaData getApplicationExceptions()
+   {
+      return ensureOverride().getApplicationExceptions();
+   }
 
-      if (jbossSecurityRolesMetaData == null || jbossSecurityRolesMetaData.isEmpty())
-      {
-         if (securityRolesMetaData != null)
-            merged.setSecurityRoles(securityRolesMetaData);
-      }
-      else
-      {
-         SecurityRolesMetaData mergedSecurityRolesMetaData = new SecurityRolesMetaData();
-         mergedSecurityRolesMetaData = JavaEEMetaDataUtil.mergeJBossXml(mergedSecurityRolesMetaData, securityRolesMetaData, jbossSecurityRolesMetaData, "security-role", false);
-         if (mergedSecurityRolesMetaData != null && mergedSecurityRolesMetaData.isEmpty() == false)
-            merged.setSecurityRoles(mergedSecurityRolesMetaData);
-      }
-      
-      if (jbossMessageDestinationsMetaData == null || jbossMessageDestinationsMetaData.isEmpty())
-      {
-         if (messageDestinationsMetaData != null && jbossMessageDestinationsMetaData == null)
-         merged.setMessageDestinations(messageDestinationsMetaData);
-      }
-      else
-      {
-         MessageDestinationsMetaData mergedMessageDestinationsMetaData = new MessageDestinationsMetaData();
-         mergedMessageDestinationsMetaData = JavaEEMetaDataUtil.mergeJBossXml(mergedMessageDestinationsMetaData, messageDestinationsMetaData, jbossMessageDestinationsMetaData, "message-destination", true);
-         if (mergedMessageDestinationsMetaData != null && mergedMessageDestinationsMetaData.isEmpty() == false)
-            merged.setMessageDestinations(mergedMessageDestinationsMetaData);
-      }
 
-      return merged;
+   public ContainerTransactionsMetaData getContainerTransactions()
+   {
+      return ensureOverride().getContainerTransactions();
    }
 
-   /**
-    * Create a new JBossAssemblyDescriptorMetaData
-    */
-   public JBossAssemblyDescriptorMetaData()
+
+   public ContainerTransactionsMetaData getContainerTransactionsByEjbName(String ejbName)
    {
-      // For serialization
+      return ensureOverride().getContainerTransactionsByEjbName(ejbName);
    }
 
+
+   public ExcludeListMetaData getExcludeList()
+   {
+      return ensureOverride().getExcludeList();
+   }
+
+
+   public ExcludeListMetaData getExcludeListByEjbName(String ejbName)
+   {
+      return ensureOverride().getExcludeListByEjbName(ejbName);
+   }
+
+
+   public InterceptorBindingMetaData getInterceptorBindingByEjbName(String ejbName)
+   {
+      return ensureOverride().getInterceptorBindingByEjbName(ejbName);
+   }
+
+
+   public InterceptorBindingsMetaData getInterceptorBindings()
+   {
+      return ensureOverride().getInterceptorBindings();
+   }
+
+
+   public MethodPermissionsMetaData getMethodPermissions()
+   {
+      return ensureOverride().getMethodPermissions();
+   }
+
+
+   public MethodPermissionsMetaData getMethodPermissionsByEjbName(String ejbName)
+   {
+      return ensureOverride().getMethodPermissionsByEjbName(ejbName);
+   }
+
+
+   public void setApplicationExceptions(ApplicationExceptionsMetaData applicationExceptions)
+   {
+      ensureOverride().setApplicationExceptions(applicationExceptions);
+   }
+
+
+   public void setContainerTransactions(ContainerTransactionsMetaData containerTransactions)
+   {
+      ensureOverride().setContainerTransactions(containerTransactions);
+   }
+
+
+   public void setExcludeList(ExcludeListMetaData excludeList)
+   {
+      ensureOverride().setExcludeList(excludeList);
+   }
+
+
+   public void setInterceptorBindings(InterceptorBindingsMetaData interceptorBindings)
+   {
+      ensureOverride().setInterceptorBindings(interceptorBindings);
+   }
+
+
+   public void setMethodPermissions(MethodPermissionsMetaData methodPermissions)
+   {
+      ensureOverride().setMethodPermissions(methodPermissions);
+   }
+
+
    /**
     * Get the securityRoles.
     * 
@@ -237,4 +274,61 @@
          return null;
       return messageDestinations.get(name);
    }
+
+   @Override
+   public void merge(IdMetaDataImpl mergedinput, IdMetaDataImpl original)
+   {
+      // TODO Auto-generated method stub
+      super.merge(mergedinput, original);
+      JBossAssemblyDescriptorMetaData merged = (JBossAssemblyDescriptorMetaData) mergedinput;
+      AssemblyDescriptorMetaData assemblyDescriptorMetaData = (AssemblyDescriptorMetaData) original;
+
+      SecurityRolesMetaData securityRolesMetaData = null;
+      SecurityRolesMetaData jbossSecurityRolesMetaData = getSecurityRoles();
+      MessageDestinationsMetaData messageDestinationsMetaData = null;
+      MessageDestinationsMetaData jbossMessageDestinationsMetaData = getMessageDestinations();
+      if (assemblyDescriptorMetaData != null)
+      {
+         merged.setOverridenMetaData(assemblyDescriptorMetaData);
+         securityRolesMetaData = assemblyDescriptorMetaData.getSecurityRoles();
+         messageDestinationsMetaData = assemblyDescriptorMetaData.getMessageDestinations();
+      }
+
+      if (jbossSecurityRolesMetaData == null || jbossSecurityRolesMetaData.isEmpty())
+      {
+         if (securityRolesMetaData != null)
+            merged.setSecurityRoles(securityRolesMetaData);
+      }
+      else
+      {
+         SecurityRolesMetaData mergedSecurityRolesMetaData = new SecurityRolesMetaData();
+         mergedSecurityRolesMetaData = JavaEEMetaDataUtil.mergeJBossXml(mergedSecurityRolesMetaData, securityRolesMetaData, jbossSecurityRolesMetaData, "security-role", false);
+         if (mergedSecurityRolesMetaData != null && mergedSecurityRolesMetaData.isEmpty() == false)
+            merged.setSecurityRoles(mergedSecurityRolesMetaData);
+      }
+      
+      if (jbossMessageDestinationsMetaData == null || jbossMessageDestinationsMetaData.isEmpty())
+      {
+         if (messageDestinationsMetaData != null && jbossMessageDestinationsMetaData == null)
+         merged.setMessageDestinations(messageDestinationsMetaData);
+      }
+      else
+      {
+         MessageDestinationsMetaData mergedMessageDestinationsMetaData = new MessageDestinationsMetaData();
+         mergedMessageDestinationsMetaData = JavaEEMetaDataUtil.mergeJBossXml(mergedMessageDestinationsMetaData, messageDestinationsMetaData, jbossMessageDestinationsMetaData, "message-destination", true);
+         if (mergedMessageDestinationsMetaData != null && mergedMessageDestinationsMetaData.isEmpty() == false)
+            merged.setMessageDestinations(mergedMessageDestinationsMetaData);
+      }
+   }
+
+   protected AssemblyDescriptorMetaData ensureOverride()
+   {
+      AssemblyDescriptorMetaData x = getOverridenMetaData();
+      if (x == null)
+      {
+         x = new AssemblyDescriptorMetaData();
+         super.setOverridenMetaData(x);
+      }
+      return x;
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -26,17 +26,27 @@
 import java.util.HashSet;
 import java.util.Set;
 
+import org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEjbJarMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.spec.ContainerTransactionsMetaData;
+import org.jboss.metadata.ejb.spec.EjbJarMetaData;
 import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.EntityBeanMetaData;
 import org.jboss.metadata.ejb.spec.ExcludeListMetaData;
+import org.jboss.metadata.ejb.spec.InterceptorBindingMetaData;
 import org.jboss.metadata.ejb.spec.MethodInterfaceType;
 import org.jboss.metadata.ejb.spec.MethodPermissionMetaData;
 import org.jboss.metadata.ejb.spec.MethodPermissionsMetaData;
 import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
 import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
+import org.jboss.metadata.ejb.spec.TransAttributeType;
+import org.jboss.metadata.ejb.spec.TransactionType;
 import org.jboss.metadata.javaee.jboss.AnnotationsMetaData;
 import org.jboss.metadata.javaee.jboss.IgnoreDependencyMetaData;
 import org.jboss.metadata.javaee.jboss.JndiRefsMetaData;
+import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
@@ -44,6 +54,7 @@
 import org.jboss.metadata.javaee.spec.Environment;
 import org.jboss.metadata.javaee.spec.EnvironmentEntriesMetaData;
 import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
+import org.jboss.metadata.javaee.spec.EnvironmentRefsGroupMetaData;
 import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
 import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
 import org.jboss.metadata.javaee.spec.MessageDestinationReferencesMetaData;
@@ -60,6 +71,7 @@
 import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
 import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
+import org.jboss.metadata.javaee.support.NamedMetaData;
 import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptionGroupWithOverride;
 import org.jboss.metadata.javaee.support.NonNullLinkedHashSet;
 import org.jboss.xb.annotations.JBossXmlConstants;
@@ -83,7 +95,9 @@
             @JBossXmlModelGroup.Particle(element=@XmlElement(name="message-driven"), type=JBossMessageDrivenBeanMetaData.class),
             @JBossXmlModelGroup.Particle(element=@XmlElement(name="ejb"), type=JBossGenericBeanMetaData.class),
             @JBossXmlModelGroup.Particle(element=@XmlElement(name="service"), type=JBossServiceBeanMetaData.class)})
-public abstract class JBossEnterpriseBeanMetaData extends NamedMetaDataWithDescriptionGroupWithOverride<EnterpriseBeanMetaData> implements Environment
+public abstract class JBossEnterpriseBeanMetaData extends NamedMetaDataWithDescriptionGroupWithOverride<IEnterpriseBeanMetaData>
+   implements Environment,
+   IEnterpriseBeanMetaData
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = 6909774842926430193L;
@@ -157,7 +171,7 @@
     * 
     * @return the enterpriseBeansMetaData.
     */
-   JBossEnterpriseBeansMetaData getEnterpriseBeansMetaData()
+   public IEnterpriseBeansMetaData getEnterpriseBeansMetaData()
    {
       return enterpriseBeansMetaData;
    }
@@ -167,9 +181,9 @@
     * 
     * @param enterpriseBeansMetaData the enterpriseBeansMetaData.
     */
-   void setEnterpriseBeansMetaData(JBossEnterpriseBeansMetaData enterpriseBeansMetaData)
+   public void setEnterpriseBeansMetaData(IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
-      this.enterpriseBeansMetaData = enterpriseBeansMetaData;
+      this.enterpriseBeansMetaData = (JBossEnterpriseBeansMetaData) enterpriseBeansMetaData;
    }
 
    /**
@@ -200,6 +214,20 @@
    }
 
    /**
+    * Get the jndiEnvironmentRefsGroup.
+    * 
+    * @return the jndiEnvironmentRefsGroup.
+    */
+   public EnvironmentRefsGroupMetaData getJndiEnvironmentRefsGroup()
+   {
+      return jndiEnvironmentRefsGroup;
+   }
+   public void setJndiEnvironmentRefsGroup(EnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup)
+   {
+      this.jndiEnvironmentRefsGroup = (JBossEnvironmentRefsGroupMetaData) jndiEnvironmentRefsGroup;
+   }
+
+   /**
     * Get the ejbName.
     * 
     * @return the ejbName.
@@ -220,6 +248,96 @@
       setName(ejbName);
    }
 
+   public ContainerTransactionsMetaData getContainerTransactions()
+   {
+      return ensureOverride().getContainerTransactions();
+   }
+
+   public DescriptionGroupMetaData getDescriptionGroup()
+   {
+      return ensureOverride().getDescriptionGroup();
+   }
+
+   public String getEjbClass()
+   {
+      return ensureOverride().getEjbClass();
+   }
+
+   public IEjbJarMetaData getEjbJarMetaData()
+   {
+      return ensureOverride().getEjbJarMetaData();
+   }
+
+   public ExcludeListMetaData getExcludeList()
+   {
+      return ensureOverride().getExcludeList();
+   }
+
+   public InterceptorBindingMetaData getInterceptorBinding()
+   {
+      return ensureOverride().getInterceptorBinding();
+   }
+
+   public String getMappedName()
+   {
+      return ensureOverride().getMappedName();
+   }
+
+   public MethodPermissionsMetaData getMethodPermissions()
+   {
+      return ensureOverride().getMethodPermissions();
+   }
+
+   public TransAttributeType getMethodTransactionType(Method m, MethodInterfaceType iface)
+   {
+      return ensureOverride().getMethodTransactionType(m, iface);
+   }
+
+   public TransAttributeType getMethodTransactionType(String methodName, Class[] params, MethodInterfaceType iface)
+   {
+      return ensureOverride().getMethodTransactionType(methodName, params, iface);
+   }
+
+   public TransactionType getTransactionType()
+   {
+      return ensureOverride().getTransactionType();
+   }
+
+   public boolean isBMT()
+   {
+      return ensureOverride().isBMT();
+   }
+
+   public boolean isCMT()
+   {
+      return ensureOverride().isCMT();
+   }
+
+   public void merge(NamedMetaData merged, NamedMetaData original)
+   {
+      ensureOverride().merge(merged, original);
+   }
+
+   public void setDescriptionGroup(DescriptionGroupMetaData descriptionGroup)
+   {
+      ensureOverride().setDescriptionGroup(descriptionGroup);
+   }
+
+   public void setEjbClass(String ejbClass)
+   {
+      ensureOverride().setEjbClass(ejbClass);
+   }
+
+   public void setMappedName(String mappedName)
+   {
+      ensureOverride().setMappedName(mappedName);
+   }
+
+   public void setSecurityIdentity(SecurityIdentityMetaData securityIdentity)
+   {
+      ensureOverride().setSecurityIdentity(securityIdentity);
+   }
+
    /**
     * Whether this is a session bean
     * 
@@ -606,29 +724,6 @@
    protected abstract String getDefaultInvokerName();
 
    /**
-    * Get the jndiEnvironmentRefsGroup.
-    * 
-    * @return the jndiEnvironmentRefsGroup.
-    */
-   public JBossEnvironmentRefsGroupMetaData getJbossJndiEnvironmentRefsGroup()
-   {
-      return jndiEnvironmentRefsGroup;
-   }
-
-   /**
-    * Set the jndiEnvironmentRefsGroup.
-    * 
-    * @param jndiEnvironmentRefsGroup the jndiEnvironmentRefsGroup.
-    * @throws IllegalArgumentException for a null jndiEnvironmentRefsGroup
-    */
-   public void setJbossJndiEnvironmentRefsGroup(JBossEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup)
-   {
-      if (jndiEnvironmentRefsGroup == null)
-         throw new IllegalArgumentException("Null jndiEnvironmentRefsGroup");
-      this.jndiEnvironmentRefsGroup = jndiEnvironmentRefsGroup;
-   }
-
-   /**
     * Get the mergedEnvironment.
     * 
     * @return the mergedEnvironment.
@@ -882,7 +977,7 @@
    @XmlTransient
    public SecurityRoleMetaData getSecurityRole(String roleName)
    {
-      JBossAssemblyDescriptorMetaData assemblyDescriptor = getJBossMetaDataWithCheck().getMergedAssemblyDescriptor();
+      IAssemblyDescriptorMetaData assemblyDescriptor = getJBossMetaDataWithCheck().getAssemblyDescriptor();
       if (assemblyDescriptor == null)
          return null;
       else
@@ -919,7 +1014,7 @@
     */
    public Set<String> getSecurityRolePrincipals(String roleName)
    {
-      JBossAssemblyDescriptorMetaData assemblyDescriptor = getJBossMetaDataWithCheck().getMergedAssemblyDescriptor();
+      JBossAssemblyDescriptorMetaData assemblyDescriptor = (JBossAssemblyDescriptorMetaData) getJBossMetaDataWithCheck().getAssemblyDescriptor();
       if (assemblyDescriptor == null)
          return null;
       else
@@ -943,7 +1038,7 @@
    {
       Set<String> result = null;
 
-      EnterpriseBeanMetaData ejb = getOverridenMetaDataWithCheck();
+      IEnterpriseBeanMetaData ejb = getOverridenMetaDataWithCheck();
       JBossMetaData jbossMetaData = getJBossMetaDataWithCheck();
       
       // First check the excluded method list as this takes priority over
@@ -1022,7 +1117,7 @@
     */
    public boolean hasMethodPermissions(String methodName, Class[] params, MethodInterfaceType interfaceType)
    {
-      EnterpriseBeanMetaData ejb = getOverridenMetaDataWithCheck();
+      IEnterpriseBeanMetaData ejb = getOverridenMetaDataWithCheck();
       
       // First check the excluded method list as this takes priority over
       // all other assignments
@@ -1165,4 +1260,6 @@
          return 0;
       return getMethodTransactionTimeout(method.getName());
    }
+
+   protected abstract IEnterpriseBeanMetaData ensureOverride();
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -21,11 +21,17 @@
 */
 package org.jboss.metadata.ejb.jboss;
 
+import org.jboss.metadata.common.javaee.ejb.IEjbJarMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.spec.EjbJarMetaData;
 import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.spec.EnterpriseBeansMap;
 import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.spec.EntityBeanMetaData;
 import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;
 import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
+import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
 import org.jboss.metadata.javaee.support.AbstractMappedMetaDataWithOverride;
 import org.jboss.metadata.javaee.support.JavaEEMetaDataUtil;
 import javax.xml.bind.annotation.XmlType;
@@ -37,11 +43,13 @@
  * @version $Revision: 1.1 $
  */
 @XmlType(name="jboss-enterprise-beansType")
-public class JBossEnterpriseBeansMetaData extends AbstractMappedMetaDataWithOverride<EnterpriseBeanMetaData, JBossEnterpriseBeanMetaData, EnterpriseBeansMetaData>
+public class JBossEnterpriseBeansMetaData
+   extends EnterpriseBeansMap<JBossEnterpriseBeanMetaData>
+   implements IEnterpriseBeansMetaData<JBossEnterpriseBeanMetaData>
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = -5123700601271986251L;
-   
+
    /** The top level metadata */
    private JBossMetaData jbossMetaData;
    
@@ -50,24 +58,10 @@
     */
    public JBossEnterpriseBeansMetaData()
    {
-      super("ejb name for enterprise bean");
    }
    
-   /**
-    * Merge
-    * 
-    * @param jbossEnterpriseBeansMetaData the jboss enterprise beans
-    * @param enterpriseBeansMetaData the enterprise beans
-    * @return the merged jboss enterprise beans
-    */
-   public static JBossEnterpriseBeansMetaData merge(JBossEnterpriseBeansMetaData jbossEnterpriseBeansMetaData, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   public JBossEnterpriseBeanMetaData createOverride(IEnterpriseBeanMetaData data)
    {
-      JBossEnterpriseBeansMetaData merged = new JBossEnterpriseBeansMetaData();
-      return JavaEEMetaDataUtil.mergeOverrideJBossXml(merged, enterpriseBeansMetaData, jbossEnterpriseBeansMetaData, "enterprise bean", true);
-   }
-
-   public JBossEnterpriseBeanMetaData createOverride(EnterpriseBeanMetaData data)
-   {
       if (data == null)
          throw new IllegalArgumentException("Null data");
       JBossEnterpriseBeanMetaData result = null;
@@ -107,15 +101,19 @@
       this.jbossMetaData = jbossMetaData;
    }
 
-   @Override
-   public void addNotification(JBossEnterpriseBeanMetaData added)
+   public boolean add(EnterpriseBeanMetaData o)
    {
-      added.setEnterpriseBeansMetaData(this);
+      // TODO Auto-generated method stub
+      return false;
    }
-   
-   @Override
-   public void removeNotification(JBossEnterpriseBeanMetaData removed)
+
+   public IEjbJarMetaData getEjbJarMetaData()
    {
-      removed.setEnterpriseBeansMetaData(null);
+      return jbossMetaData;
    }
+
+   public void setEjbJarMetaData(IEjbJarMetaData ejbJarMetaData)
+   {
+      jbossMetaData = (JBossMetaData) ejbJarMetaData;
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -21,6 +21,8 @@
 */
 package org.jboss.metadata.ejb.jboss;
 
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.EntityBeanMetaData;
 import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
@@ -372,4 +374,12 @@
       cacheInvalidationConfig.setEntityBean(this);
       this.cacheInvalidationConfig = cacheInvalidationConfig;
    }
+
+   @Override
+   protected IEnterpriseBeanMetaData ensureOverride()
+   {
+      return new JBossEntityBeanMetaData();
+   }
+
+   
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossGenericBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossGenericBeanMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossGenericBeanMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -23,12 +23,14 @@
 
 import javax.xml.bind.annotation.XmlType;
 
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+
 /**
  * Allow for the specification of an unknown bean type in the deployment
  * descriptor (EJBTHREE-936).
  *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
  */
 @XmlType(name="jboss-generic-beanType")
 public class JBossGenericBeanMetaData extends JBossEnterpriseBeanMetaData
@@ -55,4 +57,9 @@
       return null;
    }
 
+   @Override
+   protected IEnterpriseBeanMetaData ensureOverride()
+   {
+      return new JBossGenericBeanMetaData();
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -21,6 +21,7 @@
 */
 package org.jboss.metadata.ejb.jboss;
 
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.ActivationConfigMetaData;
 import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;
 import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
@@ -294,4 +295,11 @@
          throw new IllegalArgumentException("Null ejbTimeoutIdentity");
       this.ejbTimeoutIdentity = ejbTimeoutIdentity;
    }
+
+   @Override
+   protected IEnterpriseBeanMetaData ensureOverride()
+   {
+      return new JBossMessageDrivenBeanMetaData();
+   }
+   
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -21,8 +21,12 @@
 */
 package org.jboss.metadata.ejb.jboss;
 
+import org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEjbJarMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
 import org.jboss.metadata.common.jboss.LoaderRepositoryMetaData;
-import org.jboss.metadata.ejb.spec.EjbJarMetaData;
+import org.jboss.metadata.ejb.spec.RelationsMetaData;
 import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptionGroupWithOverride;
 import org.jboss.logging.Logger;
 
@@ -34,10 +38,11 @@
  * JBossMetaData.
  * 
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author Scott.Stark at jboss.org
  * @version $Revision: 1.1 $
  */
-public class JBossMetaData extends IdMetaDataImplWithDescriptionGroupWithOverride<EjbJarMetaData>
-   // TODO LAST extends EjbJar30MetaData 
+public class JBossMetaData extends IdMetaDataImplWithDescriptionGroupWithOverride<org.jboss.metadata.ejb.spec.EjbJarMetaData>
+   implements IEjbJarMetaData
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = 598759931857080298L;
@@ -170,6 +175,53 @@
       this.version = version;
    }
 
+   public IAssemblyDescriptorMetaData getAssemblyDescriptor()
+   {
+      return assemblyDescriptor;
+   }
+   @XmlElement(type=JBossAssemblyDescriptorMetaData.class)
+   public void setAssemblyDescriptor(IAssemblyDescriptorMetaData assemblyDescriptor)
+   {
+      this.assemblyDescriptor = (JBossAssemblyDescriptorMetaData) assemblyDescriptor;
+   }
+
+   public String getEjbClientJar()
+   {
+      return null;
+   }
+   public void setEjbClientJar(String ejbClientJar)
+   {
+   }
+
+   public RelationsMetaData getRelationships()
+   {
+      return this.getOverridenMetaData().getRelationships();
+   }
+   @XmlTransient
+   public void setRelationships(RelationsMetaData relationships)
+   {      
+   }
+
+   public boolean isEJB1x()
+   {
+      return this.getOverridenMetaData().isEJB1x();
+   }
+
+   public boolean isEJB21()
+   {
+      return this.getOverridenMetaData().isEJB21();
+   }
+
+   public boolean isEJB2x()
+   {
+      return this.getOverridenMetaData().isEJB2x();
+   }
+
+   public boolean isEJB3x()
+   {
+      return this.getOverridenMetaData().isEJB3x();
+   }
+
    /**
     * Get the loaderRepository.
     * 
@@ -318,38 +370,11 @@
    }
 
    /**
-    * Get the merged enterpriseBeans.
-    * 
-    * @return the merged enterpriseBeans.
-    */
-   @XmlTransient
-   public JBossEnterpriseBeansMetaData getMergedEnterpriseBeans()
-   {
-      if (mergedEnterpriseBeans != null)
-         return mergedEnterpriseBeans;
-      mergedEnterpriseBeans = JBossEnterpriseBeansMetaData.merge(enterpriseBeans, getOverridenMetaDataWithCheck().getEnterpriseBeans());
-      mergedEnterpriseBeans.setJBossMetaData(this);
-      return mergedEnterpriseBeans;
-   }
-
-   /**
-    * Get a merged enterprise bean
-    * 
-    * @param name the name
-    * @return the container configuration
-    */
-   @XmlTransient
-   public JBossEnterpriseBeanMetaData getMergedEnterpriseBean(String name)
-   {
-      return getMergedEnterpriseBeans().get(name);
-   }
-
-   /**
     * Get the enterpriseBeans.
     * 
     * @return the enterpriseBeans.
     */
-   public JBossEnterpriseBeansMetaData getEnterpriseBeans()
+   public IEnterpriseBeansMetaData<? extends IEnterpriseBeanMetaData> getEnterpriseBeans()
    {
       return enterpriseBeans;
    }
@@ -360,12 +385,12 @@
     * @param enterpriseBeans the enterpriseBeans.
     * @throws IllegalArgumentException for a null enterpriseBeans
     */
-   public void setEnterpriseBeans(JBossEnterpriseBeansMetaData enterpriseBeans)
+   public void setEnterpriseBeans(IEnterpriseBeansMetaData enterpriseBeans)
    {
       if (enterpriseBeans == null)
          throw new IllegalArgumentException("Null enterpriseBeans");
-      this.enterpriseBeans = enterpriseBeans;
-      enterpriseBeans.setJBossMetaData(this);
+      this.enterpriseBeans = (JBossEnterpriseBeansMetaData) enterpriseBeans;
+      this.enterpriseBeans.setJBossMetaData(this);
    }
 
    /**
@@ -374,7 +399,7 @@
     * @param name the name
     * @return the container configuration
     */
-   public JBossEnterpriseBeanMetaData getEnterpriseBean(String name)
+   public IEnterpriseBeanMetaData getEnterpriseBean(String name)
    {
       if (enterpriseBeans == null)
          return null;
@@ -524,30 +549,6 @@
    }
 
    /**
-    * Get the merged assembly descriptor
-    * 
-    * @return the merged assembly descriptor.
-    */
-   @XmlTransient
-   public JBossAssemblyDescriptorMetaData getMergedAssemblyDescriptor()
-   {
-      if (mergedAssemblyDescriptor != null)
-         return mergedAssemblyDescriptor;
-      mergedAssemblyDescriptor = JBossAssemblyDescriptorMetaData.merge(assemblyDescriptor, getOverridenMetaDataWithCheck().getAssemblyDescriptor());
-      return mergedAssemblyDescriptor;
-   }
-
-   /**
-    * Get the assemblyDescriptor.
-    * 
-    * @return the assemblyDescriptor.
-    */
-   public JBossAssemblyDescriptorMetaData getAssemblyDescriptor()
-   {
-      return assemblyDescriptor;
-   }
-
-   /**
     * Set the assemblyDescriptor.
     * 
     * @param assemblyDescriptor the assemblyDescriptor.
@@ -559,10 +560,4 @@
          throw new IllegalArgumentException("Null assemblyDescriptor");
       this.assemblyDescriptor = assemblyDescriptor;
    }
-
-   // TODO
-   public void mergeMetaDataDefaults(JBossMetaData defaults)
-   {
-      
-   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -23,6 +23,10 @@
 
 import javax.xml.bind.annotation.XmlTransient;
 
+import org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEjbJarMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
 import org.jboss.metadata.common.jboss.LoaderRepositoryMetaData;
 import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
 import org.jboss.metadata.ejb.jboss.ContainerConfigurationsMetaData;
@@ -35,8 +39,6 @@
 import org.jboss.metadata.ejb.jboss.ResourceManagerMetaData;
 import org.jboss.metadata.ejb.jboss.ResourceManagersMetaData;
 import org.jboss.metadata.ejb.jboss.WebservicesMetaData;
-import org.jboss.metadata.ejb.spec.EjbJarMetaData;
-import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
 import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
 import org.jboss.metadata.javaee.support.JavaEEMetaDataUtil;
 
@@ -68,12 +70,6 @@
    }
 
    @Override
-   public JBossAssemblyDescriptorMetaData getAssemblyDescriptor()
-   {
-      return primary.getAssemblyDescriptor();
-   }
-
-   @Override
    public ContainerConfigurationMetaData getContainerConfiguration(String name)
    {
       ContainerConfigurationMetaData ccmd = configurationsWrapper.get(name);
@@ -87,13 +83,13 @@
    }
 
    @Override
-   public JBossEnterpriseBeanMetaData getEnterpriseBean(String name)
+   public IEnterpriseBeanMetaData getEnterpriseBean(String name)
    {
       return primary.getEnterpriseBean(name);
    }
 
    @Override
-   public JBossEnterpriseBeansMetaData getEnterpriseBeans()
+   public IEnterpriseBeansMetaData<? extends IEnterpriseBeanMetaData> getEnterpriseBeans()
    {
       return primary.getEnterpriseBeans();
    }
@@ -138,29 +134,6 @@
    }
 
    @Override
-   public JBossAssemblyDescriptorMetaData getMergedAssemblyDescriptor()
-   {
-      return primary.getMergedAssemblyDescriptor();
-   }
-
-   @Override
-   public JBossEnterpriseBeanMetaData getMergedEnterpriseBean(String name)
-   {
-      return primary.getMergedEnterpriseBean(name);
-   }
-
-   @Override
-   public JBossEnterpriseBeansMetaData getMergedEnterpriseBeans()
-   {
-      if (mergedEnterpriseBeans != null)
-         return mergedEnterpriseBeans;
-      EnterpriseBeansMetaData stdBeans = primary.getOverridenMetaData().getEnterpriseBeans();
-      mergedEnterpriseBeans = JBossEnterpriseBeansMetaData.merge(primary.getEnterpriseBeans(), stdBeans);
-      mergedEnterpriseBeans.setJBossMetaData(this);
-      return mergedEnterpriseBeans;
-   }
-
-   @Override
    public ResourceManagerMetaData getResourceManager(String name)
    {
       return primary.getResourceManager(name);
@@ -212,18 +185,6 @@
    }
 
    @Override
-   public EjbJarMetaData getOverridenMetaData()
-   {
-      return primary.getOverridenMetaData();
-   }
-
-   @Override
-   public void setOverridenMetaData(EjbJarMetaData data)
-   {
-      primary.setOverridenMetaData(data);
-   }
-
-   @Override
    public DescriptionGroupMetaData getDescriptionGroup()
    {
       return primary.getDescriptionGroup();
@@ -243,7 +204,7 @@
 
    protected void wireOverrides()
    {
-      JBossEnterpriseBeansMetaData beans = primary.getEnterpriseBeans();
+      JBossEnterpriseBeansMetaData beans = (JBossEnterpriseBeansMetaData) primary.getEnterpriseBeans();
       beans.setJBossMetaData(this);
    }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossServiceBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossServiceBeanMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossServiceBeanMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -31,7 +31,7 @@
  * An EJB 3 service bean.
  *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
  */
 @XmlType(name="service-beanType")
 public class JBossServiceBeanMetaData extends JBossSessionBeanMetaData
@@ -111,13 +111,6 @@
    
    @Override
    @XmlTransient
-   public JBossEnvironmentRefsGroupMetaData getMergedEnvironment()
-   {
-      return getJbossJndiEnvironmentRefsGroup();
-   }
-   
-   @Override
-   @XmlTransient
    public SessionBeanMetaData getOverridenMetaData()
    {
       return getEmbedded();

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -21,6 +21,7 @@
 */
 package org.jboss.metadata.ejb.jboss;
 
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
 import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
 import org.jboss.metadata.javaee.spec.PortComponent;
@@ -363,4 +364,11 @@
          throw new IllegalArgumentException("Null remoteBinding");
       this.remoteBinding = remoteBinding;
    }
+
+   @Override
+   protected IEnterpriseBeanMetaData ensureOverride()
+   {
+      return new JBossSessionBeanMetaData();
+   }
+   
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AssemblyDescriptorMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AssemblyDescriptorMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AssemblyDescriptorMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -21,8 +21,10 @@
 */
 package org.jboss.metadata.ejb.spec;
 
+import org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData;
 import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
 import org.jboss.metadata.javaee.spec.MessageDestinationsMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
 import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
 import org.jboss.metadata.javaee.support.IdMetaDataImpl;
 import javax.xml.bind.annotation.XmlElement;
@@ -36,6 +38,7 @@
  */
 @XmlType(name="assembly-descriptorType")
 public class AssemblyDescriptorMetaData extends IdMetaDataImpl
+   implements IAssemblyDescriptorMetaData
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = 7634431073492003512L;
@@ -69,6 +72,10 @@
       // For serialization
    }
 
+   public SecurityRoleMetaData getSecurityRole(String roleName)
+   {
+      return securityRoles.get(roleName);
+   }
    /**
     * Get the securityRoles.
     * 

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EjbJarMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EjbJarMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EjbJarMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -21,10 +21,13 @@
 */
 package org.jboss.metadata.ejb.spec;
 
-import java.math.BigDecimal;
-
+import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlTransient;
 
+import org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEjbJarMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
 import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptionGroup;
 
 /**
@@ -34,6 +37,7 @@
  * @version $Revision: 1.1 $
  */
 public abstract class EjbJarMetaData extends IdMetaDataImplWithDescriptionGroup
+   implements IEjbJarMetaData
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = 809339942454480150L;
@@ -194,7 +198,7 @@
     * 
     * @return the enterpriseBeans.
     */
-   public EnterpriseBeansMetaData getEnterpriseBeans()
+   public IEnterpriseBeansMetaData<EnterpriseBeanMetaData> getEnterpriseBeans()
    {
       return enterpriseBeans;
    }
@@ -205,14 +209,20 @@
     * @param enterpriseBeans the enterpriseBeans.
     * @throws IllegalArgumentException for a null enterpriseBeans
     */
-   public void setEnterpriseBeans(EnterpriseBeansMetaData enterpriseBeans)
+   @XmlElement(name="enterprise-beans", type=EnterpriseBeansMetaData.class)
+   public void setEnterpriseBeans(IEnterpriseBeansMetaData enterpriseBeans)
    {
       if (enterpriseBeans == null)
          throw new IllegalArgumentException("Null enterpriseBeans");
-      this.enterpriseBeans = enterpriseBeans;
+      this.enterpriseBeans = (EnterpriseBeansMetaData) enterpriseBeans;
       enterpriseBeans.setEjbJarMetaData(this);
    }
 
+   public IEnterpriseBeanMetaData getEnterpriseBean(String name)
+   {
+      return enterpriseBeans.get(name);
+   }
+
    /**
     * Get the relationships.
     * 
@@ -241,7 +251,7 @@
     * 
     * @return the assemblyDescriptor.
     */
-   public AssemblyDescriptorMetaData getAssemblyDescriptor()
+   public IAssemblyDescriptorMetaData getAssemblyDescriptor()
    {
       return assemblyDescriptor;
    }
@@ -252,10 +262,11 @@
     * @param assemblyDescriptor the assemblyDescriptor.
     * @throws IllegalArgumentException for a null assemblyDescriptor
     */
-   public void setAssemblyDescriptor(AssemblyDescriptorMetaData assemblyDescriptor)
+   @XmlElement(type=AssemblyDescriptorMetaData.class)
+   public void setAssemblyDescriptor(IAssemblyDescriptorMetaData assemblyDescriptor)
    {
       if (assemblyDescriptor == null)
          throw new IllegalArgumentException("Null assemblyDescriptor");
-      this.assemblyDescriptor = assemblyDescriptor;
+      this.assemblyDescriptor = (AssemblyDescriptorMetaData) assemblyDescriptor;
    }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeanMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeanMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -24,6 +24,10 @@
 import java.lang.reflect.Method;
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEjbJarMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
@@ -65,7 +69,9 @@
             @JBossXmlModelGroup.Particle(element=@XmlElement(name="session"), type=SessionBeanMetaData.class),
             @JBossXmlModelGroup.Particle(element=@XmlElement(name="entity"), type=EntityBeanMetaData.class),
             @JBossXmlModelGroup.Particle(element=@XmlElement(name="message-driven"), type=MessageDrivenBeanMetaData.class)})
-public abstract class EnterpriseBeanMetaData extends NamedMetaDataWithDescriptionGroup implements Environment
+public abstract class EnterpriseBeanMetaData extends NamedMetaDataWithDescriptionGroup
+   implements Environment,
+   IEnterpriseBeanMetaData
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = -10005320902508914L;
@@ -105,9 +111,9 @@
     * @param enterpriseBeansMetaData the enterpriseBeansMetaData.
     */
    @XmlTransient
-   void setEnterpriseBeansMetaData(EnterpriseBeansMetaData enterpriseBeansMetaData)
+   public void setEnterpriseBeansMetaData(IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
-      this.enterpriseBeansMetaData = enterpriseBeansMetaData;
+      this.enterpriseBeansMetaData = (EnterpriseBeansMetaData) enterpriseBeansMetaData;
    }
 
    /**
@@ -116,7 +122,7 @@
     * @return the ejbJarMetaData.
     */
    @XmlTransient
-   public EjbJarMetaData getEjbJarMetaData()
+   public IEjbJarMetaData getEjbJarMetaData()
    {
       if (enterpriseBeansMetaData == null)
          return null;
@@ -128,9 +134,9 @@
     * 
     * @return the ejbJarMetaData.
     */
-   AssemblyDescriptorMetaData getAssemblyDescriptor()
+   public IAssemblyDescriptorMetaData getAssemblyDescriptor()
    {
-      EjbJarMetaData ejbJar = getEjbJarMetaData();
+      IEjbJarMetaData ejbJar = getEjbJarMetaData();
       if (ejbJar == null)
          return null;
       return ejbJar.getAssemblyDescriptor();
@@ -443,7 +449,7 @@
     */
    public MethodPermissionsMetaData getMethodPermissions()
    {
-      AssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
+      org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
       if (assemblyDescriptor == null)
          return null;
       return assemblyDescriptor.getMethodPermissionsByEjbName(getEjbName()); 
@@ -458,7 +464,7 @@
    {
       if (cachedContainerTransactions != null)
          return cachedContainerTransactions;
-      AssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
+      org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
       if (assemblyDescriptor == null)
          return null;
       return assemblyDescriptor.getContainerTransactionsByEjbName(getEjbName()); 
@@ -538,7 +544,7 @@
     */
    public InterceptorBindingMetaData getInterceptorBinding()
    {
-      AssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
+      org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
       if (assemblyDescriptor == null)
          return null;
       return assemblyDescriptor.getInterceptorBindingByEjbName(getEjbName()); 
@@ -551,7 +557,7 @@
     */
    public ExcludeListMetaData getExcludeList()
    {
-      AssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
+      org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
       if (assemblyDescriptor == null)
          return null;
       return assemblyDescriptor.getExcludeListByEjbName(getEjbName()); 

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMap.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMap.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMap.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -0,0 +1,154 @@
+/*
+ * 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.spec;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
+import org.jboss.metadata.javaee.support.IdMetaData;
+import org.jboss.metadata.javaee.support.IdMetaDataImpl;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class EnterpriseBeansMap<T extends IEnterpriseBeanMetaData>
+   extends IdMetaDataImpl
+   implements IdMetaData, Collection<T>
+{
+   private static final long serialVersionUID = 1;
+   private HashMap<String, T> map = new HashMap<String, T>();
+   private IEnterpriseBeansMetaData beans;
+
+   public EnterpriseBeansMap()
+   {
+   }
+
+   public IEnterpriseBeansMetaData getBeans()
+   {
+      return beans;
+   }
+   @XmlTransient
+   public void setBeans(IEnterpriseBeansMetaData beans)
+   {
+      this.beans = beans;
+   }
+
+   public boolean add(T o)
+   {
+      o.setEnterpriseBeansMetaData(beans);
+      return map.put(o.getKey(), o) == null;
+   }
+
+   public boolean addAll(Collection<? extends T> c)
+   {
+      for(T t : c)
+         add(t);
+      return true;
+   }
+
+   public void clear()
+   {
+      map.clear();
+   }
+
+   public boolean contains(Object o)
+   {
+      T t = (T) o;
+      return map.containsKey(t.getKey());
+   }
+
+   public boolean containsAll(Collection<?> c)
+   {
+      boolean containsAll = true;
+      for(Object o : c)
+      {
+         T t = (T) o;         
+         containsAll &= map.containsKey(t.getKey());
+      }
+      return containsAll;
+   }
+
+   public T get(String ejbName)
+   {
+      return map.get(ejbName);
+   }
+
+   public boolean isEmpty()
+   {
+      return map.isEmpty();
+   }
+
+   public Iterator<T> iterator()
+   {
+      return map.values().iterator();
+   }
+
+   public boolean remove(Object o)
+   {
+      T t = (T) o;
+      return map.remove(t.getKey()) != null;
+   }
+
+   public boolean removeAll(Collection<?> c)
+   {
+      boolean removeAll = true;
+      for(Object o : c)
+      {
+         T t = (T) o;         
+         removeAll &= map.remove(t.getKey()) != null;
+      }
+      return removeAll;
+   }
+
+   public boolean retainAll(Collection<?> c)
+   {
+      HashMap<String, T> newmap = new HashMap<String, T>();
+      for(Object o : c)
+      {
+         T t = (T) o;
+         newmap.put(t.getKey(), t);
+      }
+      map = newmap;
+      return true;
+   }
+
+   public int size()
+   {
+      return map.size();
+   }
+
+   public Object[] toArray()
+   {
+      return map.values().toArray();
+   }
+
+   public <T> T[] toArray(T[] a)
+   {
+      return map.values().toArray(a);
+   }
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMap.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMetaData.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMetaData.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -21,11 +21,12 @@
 */
 package org.jboss.metadata.ejb.spec;
 
-import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
-
 import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
+import org.jboss.metadata.common.javaee.ejb.IEjbJarMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
+
 /**
  * EnterpriseBeansMetaData.
  * 
@@ -33,7 +34,9 @@
  * @version $Revision: 1.1 $
  */
 @XmlType(name="enterprise-beansType")
-public class EnterpriseBeansMetaData extends AbstractMappedMetaData<EnterpriseBeanMetaData>
+public class EnterpriseBeansMetaData
+   extends EnterpriseBeansMap<EnterpriseBeanMetaData>
+   implements IEnterpriseBeansMetaData<EnterpriseBeanMetaData>
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = -5528174778237011844L;
@@ -46,7 +49,7 @@
     */
    public EnterpriseBeansMetaData()
    {
-      super("ejb name for enterprise bean");
+      super.setBeans(this);
    }
 
    /**
@@ -54,7 +57,7 @@
     * 
     * @return the ejbJarMetaData.
     */
-   EjbJarMetaData getEjbJarMetaData()
+   public IEjbJarMetaData getEjbJarMetaData()
    {
       return ejbJarMetaData;
    }
@@ -66,22 +69,11 @@
     * @throws IllegalArgumentException for a null ejbJarMetaData
     */
    @XmlTransient
-   void setEjbJarMetaData(EjbJarMetaData ejbJarMetaData)
+   public void setEjbJarMetaData(IEjbJarMetaData ejbJarMetaData)
    {
       if (ejbJarMetaData == null)
          throw new IllegalArgumentException("Null ejbJarMetaData");
-      this.ejbJarMetaData = ejbJarMetaData;
+      this.ejbJarMetaData = (EjbJarMetaData) ejbJarMetaData;
    }
 
-   @Override
-   public void addNotification(EnterpriseBeanMetaData added)
-   {
-      added.setEnterpriseBeansMetaData(this);
-   }
-   
-   @Override
-   public void removeNotification(EnterpriseBeanMetaData removed)
-   {
-      removed.setEnterpriseBeansMetaData(null);
-   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImpl.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImpl.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImpl.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -74,7 +74,7 @@
    }
 
    /**
-    * Merge
+    * Merge the contents of this with original to merged.
     * 
     * @param merged the data to merge into
     * @param original the original data

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MergeUtil.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MergeUtil.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MergeUtil.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -0,0 +1,130 @@
+/*
+ * 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.merge;
+
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.spec.EjbJarMetaData;
+import org.jboss.metadata.javaee.spec.EJBReferencesMetaData;
+import org.jboss.metadata.javaee.spec.EnvironmentEntriesMetaData;
+import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationReferencesMetaData;
+import org.jboss.metadata.javaee.spec.PersistenceUnitReferencesMetaData;
+import org.jboss.metadata.javaee.spec.RemoteEnvironment;
+import org.jboss.metadata.javaee.spec.RemoteEnvironmentRefsGroupMetaData;
+import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferencesMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class MergeUtil
+{
+   public static JBossMetaData merge(JBossMetaData jboss, EjbJarMetaData spec)
+   {
+      JBossMetaData merged = new JBossMetaData();
+      merged.merge(jboss, spec);
+      merged.setOverridenMetaData(spec);
+      return merged;
+   }
+   public static RemoteEnvironmentRefsGroupMetaData merge(RemoteEnvironmentRefsGroupMetaData jbossEnvironmentRefsGroup,
+         RemoteEnvironment environmentRefsGroup, String overridenFile, String overrideFile)
+   {
+      RemoteEnvironmentRefsGroupMetaData merged = new RemoteEnvironmentRefsGroupMetaData();
+      
+      if (jbossEnvironmentRefsGroup == null && environmentRefsGroup == null)
+         return merged;
+
+      EnvironmentEntriesMetaData envEntries = null;
+      EJBReferencesMetaData ejbRefs = null;
+      EJBReferencesMetaData jbossEjbRefs = null;
+      ServiceReferencesMetaData serviceRefs = null;
+      ServiceReferencesMetaData jbossServiceRefs = null;
+      ResourceReferencesMetaData resRefs = null;
+      ResourceReferencesMetaData jbossResRefs = null;
+      ResourceEnvironmentReferencesMetaData resEnvRefs = null;
+      ResourceEnvironmentReferencesMetaData jbossResEnvRefs = null;
+      MessageDestinationReferencesMetaData messageDestinationRefs = null;
+      MessageDestinationReferencesMetaData jbossMessageDestinationRefs = null;
+      PersistenceUnitReferencesMetaData persistenceUnitRefs = null;
+      LifecycleCallbacksMetaData postConstructs = null;
+      LifecycleCallbacksMetaData preDestroys = null;
+      
+      if (environmentRefsGroup != null)
+      {
+         envEntries = environmentRefsGroup.getEnvironmentEntries();
+         ejbRefs = environmentRefsGroup.getEjbReferences();
+         serviceRefs = environmentRefsGroup.getServiceReferences();
+         resRefs = environmentRefsGroup.getResourceReferences();
+         resEnvRefs = environmentRefsGroup.getResourceEnvironmentReferences();
+         messageDestinationRefs = environmentRefsGroup.getMessageDestinationReferences();
+         persistenceUnitRefs = environmentRefsGroup.getPersistenceUnitRefs();
+         postConstructs = environmentRefsGroup.getPostConstructs();
+         preDestroys = environmentRefsGroup.getPreDestroys();
+      }
+      
+      if (jbossEnvironmentRefsGroup != null)
+      {
+         jbossEjbRefs = jbossEnvironmentRefsGroup.getEjbReferences();
+         jbossServiceRefs = jbossEnvironmentRefsGroup.getServiceReferences();
+         jbossResRefs = jbossEnvironmentRefsGroup.getResourceReferences();
+         jbossResEnvRefs = jbossEnvironmentRefsGroup.getResourceEnvironmentReferences();
+         jbossMessageDestinationRefs = jbossEnvironmentRefsGroup.getMessageDestinationReferences();
+      }
+      
+      EJBReferencesMetaData mergedEjbRefs = EJBReferencesMetaData.merge(jbossEjbRefs, ejbRefs, overridenFile, overrideFile);
+      if (mergedEjbRefs != null)
+         merged.setEjbReferences(mergedEjbRefs);
+      
+      ServiceReferencesMetaData mergedServiceRefs = ServiceReferencesMetaData.merge(jbossServiceRefs, serviceRefs, overridenFile, overrideFile);
+      if (mergedServiceRefs != null)
+         merged.setServiceReferences(mergedServiceRefs);
+
+      ResourceReferencesMetaData mergedResRefs = ResourceReferencesMetaData.merge(jbossResRefs, resRefs, overridenFile, overrideFile);
+      if (mergedResRefs != null)
+         merged.setResourceReferences(mergedResRefs);
+
+      ResourceEnvironmentReferencesMetaData mergedResEnvRefs = ResourceEnvironmentReferencesMetaData.merge(jbossResEnvRefs, resEnvRefs, overridenFile, overrideFile);
+      if (mergedResEnvRefs != null)
+         merged.setResourceEnvironmentReferences(mergedResEnvRefs);
+
+      MessageDestinationReferencesMetaData mergedMessageDestinationRefs = MessageDestinationReferencesMetaData.merge(jbossMessageDestinationRefs, messageDestinationRefs, overridenFile, overrideFile);
+      if (mergedMessageDestinationRefs != null)
+         merged.setMessageDestinationReferences(mergedMessageDestinationRefs);
+      
+      if (envEntries != null)
+         merged.setEnvironmentEntries(envEntries);
+      
+      if (persistenceUnitRefs != null)
+         merged.setPersistenceUnitRefs(persistenceUnitRefs);
+      
+      if (postConstructs != null)
+         merged.setPostConstructs(postConstructs);
+      
+      if (preDestroys != null)
+         merged.setPreDestroys(preDestroys);
+      
+      return merged;
+   }
+
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MergeUtil.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MetaDataFactory.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MetaDataFactory.java	                        (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MetaDataFactory.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -0,0 +1,47 @@
+/*
+ * 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.merge;
+
+import org.jboss.metadata.client.jboss.JBossClientMetaData;
+import org.jboss.metadata.client.spec.ApplicationClientMetaData;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class MetaDataFactory
+{
+   public static JBossClientMetaData getMergedViews(JBossClientMetaData jboss,
+      ApplicationClientMetaData spec)
+   {
+      if (spec == null)
+         return jboss;
+
+      JBossClientMetaData metaData = new JBossClientMetaData();
+      metaData.setOverridenMetaData(spec);
+      if (jboss != null)
+      {
+         jboss.merge(metaData, spec);
+      }
+      return metaData;
+   }
+}


Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MetaDataFactory.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -39,6 +39,7 @@
 import org.jboss.metadata.annotation.creator.EjbJar30Creator;
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
 import org.jboss.metadata.annotation.finder.DefaultAnnotationFinder;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.ContainerTransactionMetaData;
 import org.jboss.metadata.ejb.spec.ContainerTransactionsMetaData;
 import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
@@ -52,11 +53,11 @@
  * This tests the annotation translation framework.
  *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
  */
 public class AnnotationEjb3UnitTestCase extends TestCase
 {
-   private void assertMyStatefulBean(EnterpriseBeanMetaData enterpriseBean)
+   private void assertMyStatefulBean(IEnterpriseBeanMetaData enterpriseBean)
    {
       assertTrue(enterpriseBean instanceof SessionBeanMetaData);
       
@@ -75,7 +76,7 @@
       assertEquals("init", initMethod.getBeanMethod().getMethodName());
    }
    
-   private void assertMyStateless21Bean(EnterpriseBeanMetaData enterpriseBean)
+   private void assertMyStateless21Bean(IEnterpriseBeanMetaData enterpriseBean)
    {
       assertTrue(enterpriseBean instanceof SessionBeanMetaData);
       SessionBeanMetaData bean = (SessionBeanMetaData) enterpriseBean;
@@ -89,7 +90,7 @@
       assertEquals(MyStateless21Home.class.getName(), bean.getLocalHome());
    }
    
-   private void assertMyStatelessBean(EnterpriseBeanMetaData enterpriseBean)
+   private void assertMyStatelessBean(IEnterpriseBeanMetaData enterpriseBean)
    {
       assertTrue(enterpriseBean instanceof SessionBeanMetaData);
       SessionBeanMetaData bean = (SessionBeanMetaData) enterpriseBean;
@@ -175,7 +176,7 @@
       
       assertEquals(3, metaData.getEnterpriseBeans().size());
       
-      Iterator<EnterpriseBeanMetaData> it = metaData.getEnterpriseBeans().iterator();
+      Iterator<? extends IEnterpriseBeanMetaData> it = metaData.getEnterpriseBeans().iterator();
       
       assertMyStatefulBean(it.next());
       assertMyStateless21Bean(it.next());

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClientJBossMergeEverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClientJBossMergeEverythingUnitTestCase.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClientJBossMergeEverythingUnitTestCase.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -39,7 +39,7 @@
  *
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @author Scott.Stark at jboss.org
- * @version $Revision: $
+ * @version $Revision$
  */
 public class ApplicationClientJBossMergeEverythingUnitTestCase extends AbstractJavaEEEverythingTest
 {
@@ -90,7 +90,7 @@
       assertDescriptionGroup("application-client", appClientMetaData.getDescriptionGroup());
       assertRemoteEnvironment("appClient", jbossClientMetaData, true);
       assertEquals("org.jboss.test.metadata.client.AppClientCallbackHandler", jbossClientMetaData.getCallbackHandler());
-      assertMessageDestinations5("appClientMessageDestination", 2, jbossClientMetaData.getMergedMessageDestinations(), true);
+      assertMessageDestinations5("appClientMessageDestination", 2, jbossClientMetaData.getMessageDestinations(), true);
    }
 
 }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/AbstractEJBEverythingTest.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/AbstractEJBEverythingTest.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/AbstractEJBEverythingTest.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -36,6 +36,8 @@
 import org.jboss.metadata.MetaData;
 import org.jboss.metadata.RelationshipRoleMetaData;
 import org.jboss.metadata.SessionMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.jboss.CacheInvalidationConfigMetaData;
 import org.jboss.metadata.ejb.jboss.ClusterConfigMetaData;
 import org.jboss.metadata.ejb.jboss.IORASContextMetaData;
@@ -54,7 +56,6 @@
 import org.jboss.metadata.ejb.spec.ContainerTransactionsMetaData;
 import org.jboss.metadata.ejb.spec.EjbJarMetaData;
 import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.spec.EntityBeanMetaData;
 import org.jboss.metadata.ejb.spec.ExcludeListMetaData;
 import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;
@@ -98,7 +99,7 @@
 
    protected void assertEnterpriseBeans(EjbJarMetaData ejbJarMetaData)
    {
-      EnterpriseBeansMetaData enterpriseBeansMetaData = ejbJarMetaData.getEnterpriseBeans();
+      IEnterpriseBeansMetaData enterpriseBeansMetaData = ejbJarMetaData.getEnterpriseBeans();
       assertNotNull(enterpriseBeansMetaData);
       assertId("enterprise-beans", enterpriseBeansMetaData);
       assertEquals(15, enterpriseBeansMetaData.size());
@@ -174,7 +175,7 @@
       assertFullMDB("mdb2", applicationMetaData);
    }
    
-   protected SessionBeanMetaData assertFullSession(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   protected SessionBeanMetaData assertFullSession(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
       throw new NotImplementedException();
    }
@@ -186,7 +187,7 @@
     * @param enterpriseBeansMetaData
     * @return
     */
-   private SessionBeanMetaData assertNullSession(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   private SessionBeanMetaData assertNullSession(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
       SessionBeanMetaData session = assertSession(ejbName + "EjbName", enterpriseBeansMetaData);
       assertEquals(ejbName+"EjbClass", session.getEjbClass());
@@ -219,7 +220,7 @@
       return session;
    }
 
-   protected SessionBeanMetaData assertSession(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   protected SessionBeanMetaData assertSession(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
       SessionBeanMetaData session = assertEnterpriseBean(ejbName, enterpriseBeansMetaData, SessionBeanMetaData.class);
       assertTrue(session.isSession());
@@ -289,12 +290,12 @@
       return session;
    }
 
-   protected EntityBeanMetaData assertFullEntity(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   protected EntityBeanMetaData assertFullEntity(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
       throw new NotImplementedException();
    }
 
-   private EntityBeanMetaData assertNullEntity(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   private EntityBeanMetaData assertNullEntity(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
       EntityBeanMetaData entity = assertEntity(ejbName + "EjbName", enterpriseBeansMetaData);
       assertNullEntity(ejbName, entity);      
@@ -328,7 +329,7 @@
       assertNull(entity.getQueries());
    }
    
-   protected EntityBeanMetaData assertEntity(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   protected EntityBeanMetaData assertEntity(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
       EntityBeanMetaData entity = assertEnterpriseBean(ejbName, enterpriseBeansMetaData, EntityBeanMetaData.class);
       assertFalse(entity.isSession());
@@ -453,18 +454,18 @@
          assertEquals(prefix + "Param" + count, params[count-1]);
    }
 
-   protected MessageDrivenBeanMetaData assertFullMDB(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   protected MessageDrivenBeanMetaData assertFullMDB(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
       throw new NotImplementedException();
    }
 
-   private MessageDrivenBeanMetaData assertNullMDB(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   private MessageDrivenBeanMetaData assertNullMDB(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
       MessageDrivenBeanMetaData mdb = assertMDB(ejbName + "EjbName", enterpriseBeansMetaData);
       assertEquals(ejbName+"EjbClass", mdb.getEjbClass());
       assertEquals(TransactionType.Container, mdb.getTransactionType());
-      assertEquals("javax.jms.MessageListener", mdb.getMessagingType());
       assertNotNull(mdb.getActivationConfig());
+      assertNull(mdb.getMessagingType());
       assertNull(mdb.getId());
       assertNull(mdb.getMappedName());
       assertNull(mdb.getTimeoutMethod());
@@ -480,7 +481,7 @@
       return mdb;
    }
    
-   protected MessageDrivenBeanMetaData assertMDB(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   protected MessageDrivenBeanMetaData assertMDB(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
       MessageDrivenBeanMetaData mdb = assertEnterpriseBean(ejbName, enterpriseBeansMetaData, MessageDrivenBeanMetaData.class);
       assertFalse(mdb.isSession());
@@ -572,9 +573,9 @@
       return mdb;
    }
 
-   protected <T extends EnterpriseBeanMetaData> T assertEnterpriseBean(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData, Class<T> expected)
+   protected <T extends EnterpriseBeanMetaData> T assertEnterpriseBean(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData, Class<T> expected)
    {
-      EnterpriseBeanMetaData enterpriseBeanMeta = enterpriseBeansMetaData.get(ejbName);
+      IEnterpriseBeanMetaData enterpriseBeanMeta = enterpriseBeansMetaData.get(ejbName);
       assertNotNull(enterpriseBeanMeta);
       assertEquals(ejbName, enterpriseBeanMeta.getEjbName());
       return expected.cast(enterpriseBeanMeta);
@@ -703,7 +704,7 @@
    
    protected AssemblyDescriptorMetaData assertAssemblyDescriptor(EjbJarMetaData ejbJarMetaData)
    {
-      AssemblyDescriptorMetaData assemblyDescriptorMetaData = ejbJarMetaData.getAssemblyDescriptor();
+      AssemblyDescriptorMetaData assemblyDescriptorMetaData = (AssemblyDescriptorMetaData) ejbJarMetaData.getAssemblyDescriptor();
       assertNotNull(assemblyDescriptorMetaData);
       assertId("assembly-descriptor", assemblyDescriptorMetaData);
       assertSecurityRoles(2, assemblyDescriptorMetaData.getSecurityRoles());

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar20UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar20UnitTestCase.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar20UnitTestCase.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -26,10 +26,10 @@
 import org.jboss.metadata.ApplicationMetaData;
 import org.jboss.metadata.BeanMetaData;
 import org.jboss.metadata.MessageDrivenMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.spec.EjbJar20MetaData;
 import org.jboss.metadata.ejb.spec.EjbJar2xMetaData;
-import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;
 import org.jboss.metadata.ejb.spec.SubscriptionDurability;
 import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
@@ -94,8 +94,8 @@
       EjbJar2xMetaData result = unmarshal();
       assertEquals("2.0", result.getVersion());
 
-      EnterpriseBeansMetaData beans = result.getEnterpriseBeans();
-      EnterpriseBeanMetaData strictlyPooledMDB = beans.get("StrictlyPooledMDB");
+      IEnterpriseBeansMetaData beans = result.getEnterpriseBeans();
+      IEnterpriseBeanMetaData strictlyPooledMDB = beans.get("StrictlyPooledMDB");
       assertNotNull("strictlyPooledMDB", strictlyPooledMDB);
       assertEquals("strictlyPooledMDB-id", strictlyPooledMDB.getId());
       assertEquals("Message driven pooling test", strictlyPooledMDB.getDescriptionGroup().getDescription());
@@ -112,7 +112,7 @@
       assertEquals("java.lang.Integer", maxActiveCount.getType());
       assertEquals("5", maxActiveCount.getValue());
 
-      EnterpriseBeanMetaData subclassMDB = beans.get("SubclassMDB");
+      IEnterpriseBeanMetaData subclassMDB = beans.get("SubclassMDB");
       assertNotNull("strictlyPooledMDB", subclassMDB);
       assertEquals("SubclassMDB-id", subclassMDB.getId());
       assertEquals("Message driven pooling test", subclassMDB.getDescriptionGroup().getDescription());
@@ -142,7 +142,7 @@
       throws Exception
    {
       EjbJar2xMetaData result = unmarshal();
-      EnterpriseBeanMetaData mdb = result.getEnterpriseBeans().get("TopicPublisher");
+      IEnterpriseBeanMetaData mdb = result.getEnterpriseBeans().get("TopicPublisher");
       ResourceReferencesMetaData resources = mdb.getResourceReferences();
       ResourceReferenceMetaData jmsRef1 = resources.get("jms/MyTopicConnection");
       assertNotNull(jmsRef1);

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar21EverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar21EverythingUnitTestCase.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar21EverythingUnitTestCase.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -24,6 +24,8 @@
 import junit.framework.Test;
 
 import org.jboss.metadata.ApplicationMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.spec.CMPFieldMetaData;
 import org.jboss.metadata.ejb.spec.CMPFieldsMetaData;
 import org.jboss.metadata.ejb.spec.EjbJar21MetaData;
@@ -44,6 +46,7 @@
 import org.jboss.metadata.javaee.spec.PersistenceContextReferencesMetaData;
 import org.jboss.metadata.javaee.spec.PersistenceUnitReferencesMetaData;
 import org.jboss.metadata.javaee.spec.ResourceInjectionMetaData;
+import org.jboss.metadata.merge.MergeUtil;
 import org.jboss.test.metadata.ejb.AbstractEJBEverythingTest;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
 
@@ -98,7 +101,10 @@
 
    public void assertEverythingWithAppMetaData(EjbJar2xMetaData ejbJarMetaData)
    {
-      ApplicationMetaData applicationMetaData = new ApplicationMetaData(ejbJarMetaData); 
+      JBossMetaData jbossMetaData = new JBossMetaData();
+      jbossMetaData.setOverridenMetaData(ejbJarMetaData);
+      jbossMetaData = MergeUtil.merge(jbossMetaData, ejbJarMetaData);
+      ApplicationMetaData applicationMetaData = new ApplicationMetaData(jbossMetaData); 
       assertVersion(ejbJarMetaData);
       assertVersion(applicationMetaData);
       assertId("ejb-jar", ejbJarMetaData);
@@ -130,7 +136,7 @@
       assertFalse(applicationMetadata.isEJB3x());
    }
 
-   protected SessionBeanMetaData assertFullSession(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   protected SessionBeanMetaData assertFullSession(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
       SessionBeanMetaData session = assertSession(ejbName + "EjbName", enterpriseBeansMetaData);
       assertFullSessionBean(ejbName, session);      
@@ -156,7 +162,7 @@
       assertSecurityIdentity(ejbName, "SecurityIdentity", session.getSecurityIdentity(), true);
    }
    
-   protected EntityBeanMetaData assertFullEntity(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   protected EntityBeanMetaData assertFullEntity(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
       EntityBeanMetaData entity = assertEntity(ejbName + "EjbName", enterpriseBeansMetaData);
       assertFullEntity(ejbName, entity);      
@@ -228,7 +234,7 @@
          assertMethodParams(ejbName + "QueryMethod", size, queryMethodMetaData.getMethodParams());
    }
    
-   protected MessageDrivenBeanMetaData assertFullMDB(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+   protected MessageDrivenBeanMetaData assertFullMDB(String ejbName, IEnterpriseBeansMetaData enterpriseBeansMetaData)
    {
       MessageDrivenBeanMetaData mdb = assertMDB(ejbName + "EjbName", enterpriseBeansMetaData);
       assertId(ejbName, mdb);

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar21UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar21UnitTestCase.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar21UnitTestCase.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -28,6 +28,8 @@
 import org.jboss.invocation.InvocationType;
 import org.jboss.metadata.ApplicationMetaData;
 import org.jboss.metadata.BeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.spec.AssemblyDescriptorMetaData;
 import org.jboss.metadata.ejb.spec.EjbJar21MetaData;
@@ -91,12 +93,12 @@
       ApplicationMetaData appData = new ApplicationMetaData(jbossMetaData);
 
       // Validate the assembly descriptor permissions
-      AssemblyDescriptorMetaData admd = result.getAssemblyDescriptor();
+      IAssemblyDescriptorMetaData admd = result.getAssemblyDescriptor();
       MethodPermissionsMetaData allPerms = admd.getMethodPermissions();
       assertEquals("ejb-jar has 4 method-permissions", 4, allPerms.size());
 
       // Validate StatelessSession bean permission count
-      EnterpriseBeanMetaData ebmd = result.getEnterpriseBeans().get("StatelessSession");
+      IEnterpriseBeanMetaData ebmd = result.getEnterpriseBeans().get("StatelessSession");
       MethodPermissionsMetaData beanPerms = ebmd.getMethodPermissions();
       assertEquals("StatelessSession has 3 method-permissions", 3, beanPerms.size());
 

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar3xUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar3xUnitTestCase.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJar3xUnitTestCase.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -36,12 +36,12 @@
 import org.jboss.annotation.javaee.Icons;
 import org.jboss.metadata.ApplicationMetaData;
 import org.jboss.metadata.BeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.spec.BusinessLocalsMetaData;
 import org.jboss.metadata.ejb.spec.BusinessRemotesMetaData;
 import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
 import org.jboss.metadata.ejb.spec.EjbJar3xMetaData;
-import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
 import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
 import org.jboss.metadata.javaee.spec.DescriptionImpl;
@@ -157,11 +157,11 @@
    public void testEnterpriseBeans() throws Exception
    {
       EjbJar3xMetaData result = unmarshal();
-      EnterpriseBeansMetaData beans = result.getEnterpriseBeans();
+      IEnterpriseBeansMetaData<? extends IEnterpriseBeanMetaData> beans = result.getEnterpriseBeans();
       assertNotNull(beans);
 
       assertEquals(1, beans.size());
-      EnterpriseBeanMetaData bean = beans.iterator().next();
+      IEnterpriseBeanMetaData bean = beans.iterator().next();
       assertEquals("TestBean", bean.getEjbName());
 
       ApplicationMetaData old = new ApplicationMetaData(result);
@@ -179,9 +179,9 @@
    public void testEnvEntry() throws Exception
    {
       EjbJar3xMetaData result = unmarshal();
-      EnterpriseBeansMetaData beans = result.getEnterpriseBeans();
+      IEnterpriseBeansMetaData beans = result.getEnterpriseBeans();
       assertNotNull(beans);
-      EnterpriseBeanMetaData bean = beans.get("StatelessSession1");
+      IEnterpriseBeanMetaData bean = beans.get("StatelessSession1");
       assertNotNull("StatelessSession1 bean", bean);
       EnvironmentEntryMetaData entry = bean.getEnvironmentEntryByName("session1-entry1-name");
       assertEquals("session1-entry1-id", entry.getId());
@@ -203,9 +203,9 @@
    {
       //enableTrace("org.jboss.xb");
       EjbJar3xMetaData result = unmarshal();
-      EnterpriseBeansMetaData beans = result.getEnterpriseBeans();
+      IEnterpriseBeansMetaData beans = result.getEnterpriseBeans();
       assertNotNull(beans);
-      EnterpriseBeanMetaData bean = beans.get("StatelessSession1");
+      IEnterpriseBeanMetaData bean = beans.get("StatelessSession1");
       ServiceReferencesMetaData serviceRefs = bean.getServiceReferences();
       assertNotNull(serviceRefs);
       ServiceReferenceMetaData srmd = serviceRefs.get("session1/Hello");

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -23,6 +23,7 @@
 
 import junit.framework.Test;
 
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.EjbJar21MetaData;
@@ -75,9 +76,9 @@
       
       jbossMetaData.setOverridenMetaData(ejbJarMetaData);
       
-      JBossEnterpriseBeanMetaData ejb = jbossMetaData.getMergedEnterpriseBean("session1EjbName");      
+      IEnterpriseBeanMetaData ejb = jbossMetaData.getEnterpriseBean("session1EjbName");      
       assertNotNull(ejb);
-      ejbJar.assertFullSessionBean("session1", (SessionBeanMetaData) ejb.getOverridenMetaData());
+      ejbJar.assertFullSessionBean("session1", (SessionBeanMetaData) ejb);
    }
 
    /**
@@ -95,8 +96,8 @@
 
       jbossMetaData.setOverridenMetaData(ejbJarMetaData);
 
-      JBossEnterpriseBeanMetaData ejb = jbossMetaData.getMergedEnterpriseBean("session1EjbName");      
+      IEnterpriseBeanMetaData ejb = jbossMetaData.getEnterpriseBean("session1EjbName");      
       assertNotNull(ejb);
-      ejbJar.assertFullSessionBean("session1", (SessionBeanMetaData) ejb.getOverridenMetaData());
+      ejbJar.assertFullSessionBean("session1", (SessionBeanMetaData) ejb);
    }
 }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss50UnitTestCase.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -30,6 +30,8 @@
 import org.jboss.metadata.ApplicationMetaData;
 import org.jboss.metadata.BeanMetaData;
 import org.jboss.metadata.ConfigurationMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
 import org.jboss.metadata.ejb.jboss.InvokerBindingMetaData;
 import org.jboss.metadata.ejb.jboss.InvokerBindingsMetaData;
@@ -38,7 +40,6 @@
 import org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData;
 import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.jboss.JBossGenericBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
@@ -125,7 +126,7 @@
       JBossMetaData result = unmarshal();
       
       assertEquals(1, result.getEnterpriseBeans().size());
-      JBossEnterpriseBeanMetaData bean = result.getEnterpriseBean("MyStatelessBean");
+      JBossEnterpriseBeanMetaData bean = (JBossEnterpriseBeanMetaData) result.getEnterpriseBean("MyStatelessBean");
       assertNotNull(bean);
       Set<String> expected = new HashSet<String>();
       expected.add("A");
@@ -159,7 +160,7 @@
       JBossMetaData result = unmarshal();
       result.setOverridenMetaData(ejbJar);
       
-      assertEquals(1, result.getMergedEnterpriseBeans().size());
+      assertEquals(1, result.getEnterpriseBeans().size());
       JBossGenericBeanMetaData bean = (JBossGenericBeanMetaData) result.getEnterpriseBean("MyStatelessBean");
       System.out.println(bean.getResourceReferences());
    }
@@ -172,7 +173,7 @@
       JBossMetaData result = unmarshal();
       
       assertEquals(1, result.getEnterpriseBeans().size());
-      JBossEnterpriseBeanMetaData bean = result.getEnterpriseBean("TestMDB");
+      IEnterpriseBeanMetaData bean = result.getEnterpriseBean("TestMDB");
       assertNotNull(bean);
       assertTrue(bean instanceof JBossMessageDrivenBeanMetaData);
       assertEquals("jcainflow.rar", ((JBossMessageDrivenBeanMetaData) bean).getResourceAdapterName());
@@ -188,7 +189,7 @@
       JBossMetaData result = unmarshal();
       
       assertEquals(1, result.getEnterpriseBeans().size());
-      JBossEnterpriseBeanMetaData bean = result.getEnterpriseBean("StatefulOverrideBean");
+      IEnterpriseBeanMetaData bean = result.getEnterpriseBean("StatefulOverrideBean");
       assertNotNull(bean);
       assertTrue(bean instanceof JBossSessionBeanMetaData);
       assertEquals("StatefulOverride", ((JBossSessionBeanMetaData) bean).getJndiName());
@@ -289,14 +290,15 @@
 
       // Test the unified metadata
       InvokerProxyBindingsMetaData bindings = wrapper.getInvokerProxyBindings();
-      JBossEnterpriseBeansMetaData beans = wrapper.getMergedEnterpriseBeans();
-      JBossEnterpriseBeanMetaData session1Ejb = beans.get("session1EjbName");
+      IEnterpriseBeansMetaData<? extends IEnterpriseBeanMetaData> beans = wrapper.getEnterpriseBeans();
+      IEnterpriseBeanMetaData session1Ejb = beans.get("session1EjbName");
       assertNotNull(session1Ejb);
-      for(JBossEnterpriseBeanMetaData bean : beans)
+      for(IEnterpriseBeanMetaData bean : beans)
       {
-         ContainerConfigurationMetaData beanCfg = bean.determineContainerConfiguration();
+         JBossEnterpriseBeanMetaData jbean = (JBossEnterpriseBeanMetaData) bean;
+         ContainerConfigurationMetaData beanCfg = jbean.determineContainerConfiguration();
          assertNotNull(beanCfg);
-         InvokerBindingsMetaData invokers = bean.determineInvokerBindings();
+         InvokerBindingsMetaData invokers = jbean.determineInvokerBindings();
          for(InvokerBindingMetaData invoker : invokers)
          {
             InvokerProxyBindingMetaData ipbmd = bindings.get(invoker.getName());
@@ -359,23 +361,25 @@
 
       // Test the unified metadata
       InvokerProxyBindingsMetaData bindings = wrapper.getInvokerProxyBindings();
-      JBossEnterpriseBeansMetaData beans = wrapper.getMergedEnterpriseBeans();
-      JBossEnterpriseBeanMetaData sessionBean = beans.get("StatelessSessionBean");
+      IEnterpriseBeansMetaData<? extends IEnterpriseBeanMetaData> beans = wrapper.getEnterpriseBeans();
+      IEnterpriseBeanMetaData sessionBean = beans.get("StatelessSessionBean");
       assertNotNull(sessionBean);
-      for(JBossEnterpriseBeanMetaData bean : beans)
+      for(IEnterpriseBeanMetaData bean : beans)
       {
-         ContainerConfigurationMetaData beanCfg = bean.determineContainerConfiguration();
+         JBossEnterpriseBeanMetaData jbean = (JBossEnterpriseBeanMetaData) bean;
+         ContainerConfigurationMetaData beanCfg = jbean.determineContainerConfiguration();
          assertNotNull(beanCfg);
-         InvokerBindingsMetaData invokers = bean.determineInvokerBindings();
-         assertTrue(bean.getName()+" has > 0 invokers", invokers.size() > 0);
+         InvokerBindingsMetaData invokers = jbean.determineInvokerBindings();
+         assertTrue(bean.getEjbName()+" has > 0 invokers", invokers.size() > 0);
          for(InvokerBindingMetaData invoker : invokers)
          {
             InvokerProxyBindingMetaData ipbmd = bindings.get(invoker.getName());
             assertNotNull(invoker.getName(), ipbmd);
          }
       }
-      InvokerBindingsMetaData invokers = sessionBean.determineInvokerBindings();
-      assertTrue(sessionBean.getName()+" has 1 invokers", invokers.size() > 0);
+      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);
@@ -407,7 +411,7 @@
       assertNotNull(imd);
 
       // Validate the merged StrictlyPooledMDB 
-      JBossEnterpriseBeanMetaData strictlyPooledMDB = beans.get("StrictlyPooledMDB");
+      IEnterpriseBeanMetaData strictlyPooledMDB = beans.get("StrictlyPooledMDB");
       JBossMessageDrivenBeanMetaData strictlyPooledMDBMD = (JBossMessageDrivenBeanMetaData) strictlyPooledMDB;
       MessageDrivenBeanMetaData strictlyPooledSpecMD = strictlyPooledMDBMD.getOverridenMetaData();
       assertNotNull("strictlyPooledMDB", strictlyPooledMDB);
@@ -457,7 +461,7 @@
       assertEquals("topic/testTopic", tmgr.getResJndiName());
       
 
-      JBossEnterpriseBeanMetaData mdb = jbossMetaData.getMergedEnterpriseBean("TopicPublisher");
+      IEnterpriseBeanMetaData mdb = jbossMetaData.getEnterpriseBean("TopicPublisher");
       
       ResourceReferencesMetaData resources = mdb.getResourceReferences();
       ResourceReferenceMetaData jmsRef1 = resources.get("jms/MyTopicConnection");

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -27,6 +27,9 @@
 
 import junit.framework.Test;
 
+import org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
 import org.jboss.metadata.common.jboss.LoaderRepositoryConfigMetaData;
 import org.jboss.metadata.common.jboss.LoaderRepositoryMetaData;
 import org.jboss.metadata.common.jboss.WebserviceDescriptionsMetaData;
@@ -42,7 +45,6 @@
 import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
 import org.jboss.metadata.ejb.jboss.JBossAssemblyDescriptorMetaData;
 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.JBossMessageDrivenBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
@@ -54,7 +56,6 @@
 import org.jboss.metadata.ejb.spec.AssemblyDescriptorMetaData;
 import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
 import org.jboss.metadata.ejb.spec.EjbJarMetaData;
-import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.spec.EntityBeanMetaData;
 import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;
@@ -372,7 +373,7 @@
    
    private void assertJBossEnterpriseBeans(JBossMetaData jbossMetaData)
    {
-      JBossEnterpriseBeansMetaData enterpriseBeansMetaData = jbossMetaData.getEnterpriseBeans();
+      IEnterpriseBeansMetaData enterpriseBeansMetaData = jbossMetaData.getEnterpriseBeans();
       assertNotNull(enterpriseBeansMetaData);
       assertEquals(9, enterpriseBeansMetaData.size());
 
@@ -394,20 +395,21 @@
       EjbJarMetaData ejbJarMetaData = jbossMetaData.getOverridenMetaData();
       assertNotNull(ejbJarMetaData);
 
-      EnterpriseBeansMetaData enterpriseBeansMetaData = ejbJarMetaData.getEnterpriseBeans();
+      IEnterpriseBeansMetaData enterpriseBeansMetaData = ejbJarMetaData.getEnterpriseBeans();
       if (enterpriseBeansMetaData == null)
       {
          enterpriseBeansMetaData = new EnterpriseBeansMetaData();
          ejbJarMetaData.setEnterpriseBeans(enterpriseBeansMetaData);
       }
 
-      JBossEnterpriseBeansMetaData jbossEnterpriseBeansMetaData = jbossMetaData.getEnterpriseBeans();
-      for (JBossEnterpriseBeanMetaData jbossEnterpriseBeanMetaData : jbossEnterpriseBeansMetaData)
+      IEnterpriseBeansMetaData<? extends IEnterpriseBeanMetaData> jbossEnterpriseBeansMetaData = jbossMetaData.getEnterpriseBeans();
+      for (IEnterpriseBeanMetaData jbossEnterpriseBeanMetaData : jbossEnterpriseBeansMetaData)
       {
+         JBossEnterpriseBeanMetaData jbean = (JBossEnterpriseBeanMetaData) jbossEnterpriseBeanMetaData;
          String name = jbossEnterpriseBeanMetaData.getEjbName();
          if (enterpriseBeansMetaData.get(name) == null)
          {
-            EnterpriseBeanMetaData enterpriseBeanMetaData = null;
+            IEnterpriseBeanMetaData enterpriseBeanMetaData = null;
             if (jbossEnterpriseBeanMetaData instanceof JBossSessionBeanMetaData)
                enterpriseBeanMetaData = new SessionBeanMetaData();
             else if (jbossEnterpriseBeanMetaData instanceof JBossEntityBeanMetaData)
@@ -415,12 +417,12 @@
             else if (jbossEnterpriseBeanMetaData instanceof JBossMessageDrivenBeanMetaData)
                enterpriseBeanMetaData = new MessageDrivenBeanMetaData();
             enterpriseBeanMetaData.setEjbName(name);
-            jbossEnterpriseBeanMetaData.setOverridenMetaData(enterpriseBeanMetaData);
+            jbean.setOverridenMetaData(enterpriseBeanMetaData);
             enterpriseBeansMetaData.add(enterpriseBeanMetaData);
          }
       }
       
-      for (JBossEnterpriseBeanMetaData enterpriseBean : jbossMetaData.getEnterpriseBeans())
+      for (IEnterpriseBeanMetaData enterpriseBean : jbossMetaData.getEnterpriseBeans())
          fixUpEnterpriseBean(enterpriseBean);
    }
    
@@ -449,15 +451,16 @@
       assertFullMessageDrivenBean("mdb2", application, false);
    }
 */   
-   private void fixUpEnterpriseBean(JBossEnterpriseBeanMetaData jbossEjb)
+   private void fixUpEnterpriseBean(IEnterpriseBeanMetaData jbossEjb)
    {
-      EnterpriseBeanMetaData ejb = jbossEjb.getOverridenMetaData();
-      fixUpEnvironment(ejb, jbossEjb);
+      JBossEnterpriseBeanMetaData jbean = (JBossEnterpriseBeanMetaData) jbossEjb;
+      IEnterpriseBeanMetaData ejb = jbean.getOverridenMetaData();
+      fixUpEnvironment(ejb, jbean);
    }
    
    private <T extends JBossEnterpriseBeanMetaData> T assertJBossEnterpriseBean(String prefix, JBossMetaData jBossMetaData, Class<T> expected)
    {
-      JBossEnterpriseBeanMetaData ejb = jBossMetaData.getEnterpriseBean(prefix + "EjbName");
+      IEnterpriseBeanMetaData ejb = jBossMetaData.getEnterpriseBean(prefix + "EjbName");
       assertNotNull(ejb);
       assertEquals(prefix + "EjbName", ejb.getEjbName());
       assertTrue(expected.isInstance(ejb));
@@ -522,7 +525,7 @@
       
       assertInvokerBindings(prefix, session.getInvokerBindings());
 
-      assertEnvironment(prefix, session.getJbossJndiEnvironmentRefsGroup(), false);
+      assertEnvironment(prefix, session.getJndiEnvironmentRefsGroup(), false);
 
       assertSecurityIdentity(prefix, "SecurityIdentity", session.getSecurityIdentity(), false);
 
@@ -579,7 +582,7 @@
 
       assertNull(session.getInvokerBindings());
 
-      assertNullEnvironment(session.getJbossJndiEnvironmentRefsGroup());
+      assertNullEnvironment(session.getJndiEnvironmentRefsGroup());
 
       assertNull(session.getMethodAttributes());
       
@@ -650,7 +653,7 @@
       
       assertInvokerBindings(prefix, entity.getInvokerBindings());
 
-      assertEnvironment(prefix, entity.getJbossJndiEnvironmentRefsGroup(), false);
+      assertEnvironment(prefix, entity.getJndiEnvironmentRefsGroup(), false);
 
       assertSecurityIdentity(prefix, "SecurityIdentity", entity.getSecurityIdentity(), false);
 
@@ -698,7 +701,7 @@
       
       assertNull(entity.getInvokerBindings());
 
-      assertNullEnvironment(entity.getJbossJndiEnvironmentRefsGroup());
+      assertNullEnvironment(entity.getJndiEnvironmentRefsGroup());
 
       assertNull(entity.getMethodAttributes());
       
@@ -839,7 +842,7 @@
       
       assertInvokerBindings(prefix, mdb.getInvokerBindings());
 
-      assertEnvironment(prefix, mdb.getJbossJndiEnvironmentRefsGroup(), false);
+      assertEnvironment(prefix, mdb.getJndiEnvironmentRefsGroup(), false);
 
       assertMethodAttributes(prefix, mdb.getMethodAttributes());
 
@@ -885,7 +888,7 @@
 
       assertNull(mdb.getInvokerBindings());
 
-      assertNullEnvironment(mdb.getJbossJndiEnvironmentRefsGroup());
+      assertNullEnvironment(mdb.getJndiEnvironmentRefsGroup());
 
       assertNull(mdb.getMethodAttributes());
 
@@ -1313,7 +1316,7 @@
    
    protected void assertAssemblyDescriptor(JBossMetaData jbossMetaData)
    {
-      JBossAssemblyDescriptorMetaData assemblyDescriptorMetaData = jbossMetaData.getAssemblyDescriptor();
+      JBossAssemblyDescriptorMetaData assemblyDescriptorMetaData = (JBossAssemblyDescriptorMetaData) jbossMetaData.getAssemblyDescriptor();
       assertNotNull(assemblyDescriptorMetaData);
       assertId("assembly-descriptor", assemblyDescriptorMetaData);
       assertSecurityRoles(2, assemblyDescriptorMetaData.getSecurityRoles());
@@ -1324,7 +1327,7 @@
    {
       EjbJarMetaData ejbJarMetaData = jbossMetaData.getOverridenMetaData();
       assertNotNull(ejbJarMetaData);
-      AssemblyDescriptorMetaData assemblyDescriptorMetaData = ejbJarMetaData.getAssemblyDescriptor();
+      IAssemblyDescriptorMetaData assemblyDescriptorMetaData = ejbJarMetaData.getAssemblyDescriptor();
       if (assemblyDescriptorMetaData == null)
       {
          assemblyDescriptorMetaData = new AssemblyDescriptorMetaData();
@@ -1333,7 +1336,7 @@
       fixUpMessageDestinations(2, assemblyDescriptorMetaData);
    }
 
-   protected void fixUpMessageDestinations(int size, AssemblyDescriptorMetaData assemblyDescriptorMetaData)
+   protected void fixUpMessageDestinations(int size, IAssemblyDescriptorMetaData assemblyDescriptorMetaData)
    {
       MessageDestinationsMetaData messageDestinationsMetaData = assemblyDescriptorMetaData.getMessageDestinations();
       if (messageDestinationsMetaData == null)
@@ -1373,9 +1376,9 @@
       assertEquals(prefix + "JndiName", messageDestinationMetaData.getMappedName());
    }
 
-   protected void fixUpEnvironment(EnterpriseBeanMetaData ejb, JBossEnterpriseBeanMetaData jbossEjb)
+   protected void fixUpEnvironment(IEnterpriseBeanMetaData ejb, JBossEnterpriseBeanMetaData jbossEjb)
    {
-      EnvironmentRefsGroupMetaData jbossEjbEnvironment = jbossEjb.getJbossJndiEnvironmentRefsGroup();
+      EnvironmentRefsGroupMetaData jbossEjbEnvironment = jbossEjb.getJndiEnvironmentRefsGroup();
       if (jbossEjbEnvironment == null)
          return;
 

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/whitespace/WhitespaceUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/whitespace/WhitespaceUnitTestCase.java	2007-10-22 04:17:53 UTC (rev 66322)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/whitespace/WhitespaceUnitTestCase.java	2007-10-22 05:15:43 UTC (rev 66323)
@@ -21,9 +21,9 @@
  */
 package org.jboss.test.metadata.ejb.whitespace;
 
+import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
 import org.jboss.metadata.ejb.spec.EjbJar3xMetaData;
-import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
 import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
 import org.jboss.test.metadata.javaee.AbstractJavaEEMetaDataTest;
@@ -53,7 +53,7 @@
       EjbJar3xMetaData xml = unmarshal();
       assertEquals("Whitespace", xml.getDescriptionGroup().getDisplayNames().value()[0].value());
       assertEquals(1, xml.getEnterpriseBeans().size());
-      EnterpriseBeanMetaData bean = xml.getEnterpriseBeans().iterator().next();
+      IEnterpriseBeanMetaData bean = xml.getEnterpriseBeans().iterator().next();
       assertTrue(bean instanceof SessionBeanMetaData);
       assertEquals("WhitespaceBean", bean.getEjbName());
       assertEquals(1, bean.getEnvironmentEntries().size());




More information about the jboss-cvs-commits mailing list