[jboss-cvs] JBossAS SVN: r66347 - in projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb: spec and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Oct 23 02:07:16 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-10-23 02:07:16 -0400 (Tue, 23 Oct 2007)
New Revision: 66347

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationsMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/InvokerProxyBindingsMetaData.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/JBossEnvironmentRefsGroupMetaData.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/ResourceManagersMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SecurityIdentityMetaData.java
Log:
Update merge implementations

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationsMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationsMetaData.java	2007-10-23 00:56:01 UTC (rev 66346)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ContainerConfigurationsMetaData.java	2007-10-23 06:07:16 UTC (rev 66347)
@@ -46,4 +46,16 @@
    {
       super("container-name for container configuration");
    }
+
+   /**
+    * Simply merges all ContainerConfigurationMetaData from extra
+    * into this as ContainerConfigurationMetaData does not merge.
+    * @param extra - a collection of ContainerConfigurationMetaData
+    */
+   public void merge(ContainerConfigurationsMetaData extra)
+   {
+      if(extra == null)
+         return;
+      this.addAll(extra);
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/InvokerProxyBindingsMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/InvokerProxyBindingsMetaData.java	2007-10-23 00:56:01 UTC (rev 66346)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/InvokerProxyBindingsMetaData.java	2007-10-23 06:07:16 UTC (rev 66347)
@@ -46,4 +46,16 @@
    {
       super("invoker-proxy-binding-name for invoker-proxy-binding");
    }
+
+   /**
+    * Simply merges all InvokerProxyBindingMetaData from extra
+    * into this as InvokerProxyBindingMetaData does not merge.
+    * @param extra - a collection of InvokerProxyBindingMetaData
+    */
+   public void merge(InvokerProxyBindingsMetaData extra)
+   {
+      if(extra == null)
+         return;
+      this.addAll(extra);
+   }
 }

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-23 00:56:01 UTC (rev 66346)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java	2007-10-23 06:07:16 UTC (rev 66347)
@@ -332,25 +332,39 @@
       }
       return x;
    }
-   public void merge(JBossAssemblyDescriptorMetaData merged, IAssemblyDescriptorMetaData assembly)
+
+   /**
+    * Merge the contents of override with original into this.
+    * 
+    * @param override data which overrides original
+    * @param original the original data
+    */
+   public void merge(JBossAssemblyDescriptorMetaData override, IAssemblyDescriptorMetaData assembly)
    {
       AssemblyDescriptorMetaData original = (AssemblyDescriptorMetaData) assembly;
-      super.merge(merged, original);
-      if(messageDestinations != null)
+      super.merge(override, original);
+      MessageDestinationsMetaData mergedMD = new MessageDestinationsMetaData();
+      setMessageDestinations(mergedMD);
+      if(override != null && override.messageDestinations != null)
       {
-         MessageDestinationsMetaData mergedMD = new MessageDestinationsMetaData();
-         messageDestinations.merge(mergedMD, original.getMessageDestinations());
-         merged.setMessageDestinations(mergedMD);
+         if(original != null)
+            mergedMD.merge(messageDestinations, original.getMessageDestinations());
+         else
+            mergedMD.merge(messageDestinations, null);
       }
-      else if(original.getMessageDestinations() != null)
-         merged.setMessageDestinations(original.getMessageDestinations());
-      if(this.securityRoles != null)
+      else if(original != null && original.getMessageDestinations() != null)
+         mergedMD.merge(null, original.getMessageDestinations());
+
+      SecurityRolesMetaData mergedSR = new SecurityRolesMetaData();
+      setSecurityRoles(mergedSR);
+      if(override != null)
       {
-         SecurityRolesMetaData mergedSR = new SecurityRolesMetaData();
-         securityRoles.merge(mergedSR, original.getSecurityRoles());
-         merged.setSecurityRoles(mergedSR);
+         if(original != null)
+            mergedSR.merge(override.getSecurityRoles(), original.getSecurityRoles());
+         else
+            mergedSR.merge(override.getSecurityRoles(), null);            
       }
-      else if(original.getSecurityRoles() != null)
-         merged.setSecurityRoles(original.getSecurityRoles());
+      else if(original != null && original.getSecurityRoles() != null)
+         mergedSR.merge(null, original.getSecurityRoles());
    }
 }

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-23 00:56:01 UTC (rev 66346)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java	2007-10-23 06:07:16 UTC (rev 66347)
@@ -33,7 +33,6 @@
 import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.spec.ContainerTransactionMetaData;
 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;
@@ -50,7 +49,6 @@
 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;
@@ -75,7 +73,6 @@
 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;
@@ -142,9 +139,6 @@
    /** The environment */
    private JBossEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup;
 
-   /** The merged environment */
-   private transient JBossEnvironmentRefsGroupMetaData mergedEnvironment;
-   
    /** The method attributes */
    private MethodAttributesMetaData methodAttributes;
    
@@ -849,27 +843,6 @@
     */
    protected abstract String getDefaultInvokerName();
 
-   /**
-    * Get the mergedEnvironment.
-    * 
-    * @return the mergedEnvironment.
-    */
-   @XmlTransient
-   public JBossEnvironmentRefsGroupMetaData getMergedEnvironment()
-   {
-      if (mergedEnvironment != null)
-         return mergedEnvironment;
-      
-      try
-      {
-      }
-      catch (Exception e)
-      {
-         throw new RuntimeException("Error merging jndi environment for " + getEjbName(), e);
-      }
-      return mergedEnvironment;
-   }
-
    public EJBLocalReferenceMetaData getEjbLocalReferenceByName(String name)
    {
       return AbstractMappedMetaData.getByName(name, getEjbLocalReferences());
@@ -877,7 +850,7 @@
 
    public EJBLocalReferencesMetaData getEjbLocalReferences()
    {
-      return getMergedEnvironment().getEjbLocalReferences();
+      return jndiEnvironmentRefsGroup.getEjbLocalReferences();
    }
 
    public EJBReferenceMetaData getEjbReferenceByName(String name)
@@ -887,12 +860,12 @@
 
    public EJBReferencesMetaData getEjbReferences()
    {
-      return getMergedEnvironment().getEjbReferences();
+      return jndiEnvironmentRefsGroup.getEjbReferences();
    }
 
    public EnvironmentEntriesMetaData getEnvironmentEntries()
    {
-      return getMergedEnvironment().getEnvironmentEntries();
+      return jndiEnvironmentRefsGroup.getEnvironmentEntries();
    }
 
    public EnvironmentEntryMetaData getEnvironmentEntryByName(String name)
@@ -907,7 +880,7 @@
 
    public MessageDestinationReferencesMetaData getMessageDestinationReferences()
    {
-      return getMergedEnvironment().getMessageDestinationReferences();
+      return jndiEnvironmentRefsGroup.getMessageDestinationReferences();
    }
 
    public PersistenceContextReferenceMetaData getPersistenceContextReferenceByName(String name)
@@ -917,7 +890,7 @@
 
    public PersistenceContextReferencesMetaData getPersistenceContextRefs()
    {
-      return getMergedEnvironment().getPersistenceContextRefs();
+      return jndiEnvironmentRefsGroup.getPersistenceContextRefs();
    }
 
    public PersistenceUnitReferenceMetaData getPersistenceUnitReferenceByName(String name)
@@ -927,17 +900,17 @@
 
    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 ResourceEnvironmentReferenceMetaData getResourceEnvironmentReferenceByName(String name)
@@ -947,7 +920,7 @@
 
    public ResourceEnvironmentReferencesMetaData getResourceEnvironmentReferences()
    {
-      return getMergedEnvironment().getResourceEnvironmentReferences();
+      return jndiEnvironmentRefsGroup.getResourceEnvironmentReferences();
    }
 
    public ResourceReferenceMetaData getResourceReferenceByName(String name)
@@ -957,7 +930,7 @@
 
    public ResourceReferencesMetaData getResourceReferences()
    {
-      return getMergedEnvironment().getResourceReferences();
+      return jndiEnvironmentRefsGroup.getResourceReferences();
    }
 
    public ServiceReferenceMetaData getServiceReferenceByName(String name)
@@ -967,7 +940,7 @@
 
    public ServiceReferencesMetaData getServiceReferences()
    {
-      return getMergedEnvironment().getServiceReferences();
+      return jndiEnvironmentRefsGroup.getServiceReferences();
    }
 
    /**
@@ -986,7 +959,7 @@
          else
             return jndiEnvironmentRefsGroup.getSecurityIdentity();
       }
-      return getMergedEnvironment().getSecurityIdentity();
+      return jndiEnvironmentRefsGroup.getSecurityIdentity();
    }
    
    /**
@@ -1368,40 +1341,51 @@
 
    public void merge(JBossEnterpriseBeanMetaData override, EnterpriseBeanMetaData original)
    {
-      JBossEnterpriseBeanMetaData merged = this;
       if(override != null && override.getEjbClass() != null)
-         merged.setEjbClass(override.getEjbClass());
+         setEjbClass(override.getEjbClass());
       else if(original.getEjbClass() != null)
-         merged.setEjbClass(original.getEjbClass());
+         setEjbClass(original.getEjbClass());
       if(override != null && override.getName() != null)
-         merged.setName(override.getName());
+         setName(override.getName());
       else if(original.getName() != null)
-         merged.setName(original.getName());
+         setName(original.getName());
 
       if(override != null)
       {
-         merged.setAopDomainName(override.aopDomainName);
-         merged.setConfigurationName(override.configurationName);
-         merged.setAnnotations(override.annotations);
-         merged.setDepends(override.depends);
-         merged.setExceptionOnRollback(override.exceptionOnRollback);
-         merged.setIgnoreDependency(override.ignoreDependency);
-         merged.setInvokerBindings(override.invokers);
-         merged.setIorSecurityConfig(override.iorSecurityConfig);
-         merged.setSecurityProxy(override.securityProxy);
+         if(override.aopDomainName != null)
+            setAopDomainName(override.aopDomainName);
+         if(override.configurationName != null)
+            setConfigurationName(override.configurationName);
+         if(override.annotations != null)
+            setAnnotations(override.annotations);
+         if(override.depends != null)
+            setDepends(override.depends);
+         setExceptionOnRollback(override.exceptionOnRollback);
+         if(override.ignoreDependency != null)
+            setIgnoreDependency(override.ignoreDependency);
+         if(override.invokers != null)
+            setInvokerBindings(override.invokers);
+         if(override.iorSecurityConfig != null)
+            setIorSecurityConfig(override.iorSecurityConfig);
+         if(override.securityProxy != null)
+            setSecurityProxy(override.securityProxy);
       }
-      merged.setOverridenMetaData(original);
+      // TODO: remove
+      setOverridenMetaData(original);
 
-      merged.setJndiEnvironmentRefsGroup(new JBossEnvironmentRefsGroupMetaData());
+      if(this.jndiEnvironmentRefsGroup == null)
+         jndiEnvironmentRefsGroup = new JBossEnvironmentRefsGroupMetaData();
       EnvironmentRefsGroupMetaData env = original != null ? original.getJndiEnvironmentRefsGroup() : null;
       JBossEnvironmentRefsGroupMetaData jenv = null;
-      ResourceManagersMetaData resourceMgrs = null;
+      ResourceManagersMetaData resourceMgrs = getJBossMetaData().getResourceManagers();
       if( override != null )
       {
-         resourceMgrs = override.getJBossMetaData().getResourceManagers();
+         ResourceManagersMetaData resourceMgrsOverride = override.getJBossMetaData().getResourceManagers();
+         if(resourceMgrsOverride != null)
+            resourceMgrs = resourceMgrsOverride;
          jenv = override.jndiEnvironmentRefsGroup;
       }
-      merged.jndiEnvironmentRefsGroup.merge(jenv, env, resourceMgrs);
+      jndiEnvironmentRefsGroup.merge(jenv, env, resourceMgrs);
 
       // Fixup the invoker binding references on ejb refs
       InvokerBindingsMetaData invokerBindings = getInvokerBindings();
@@ -1412,7 +1396,7 @@
             String ejbRefName = invokerBinding.getEjbRefName();
             if (ejbRefName != null)
             {
-               EJBReferenceMetaData ejbRef = mergedEnvironment.getEjbReferenceByName(ejbRefName);
+               EJBReferenceMetaData ejbRef = jndiEnvironmentRefsGroup.getEjbReferenceByName(ejbRefName);
                if (ejbRef == null)
                   throw new IllegalStateException("ejb-ref " + ejbRefName + " found on invoker " + invokerBinding.getName() + " but it does not exist for ejb: " + getName());
                ejbRef.addInvokerBinding(invokerBinding.getName(), invokerBinding.getJndiName());
@@ -1422,19 +1406,14 @@
       
       // Fixup the security identity
       SecurityIdentityMetaData jbossSecurityIdentity = null;
-      if (jndiEnvironmentRefsGroup != null)
-         jbossSecurityIdentity = jndiEnvironmentRefsGroup.getSecurityIdentity();
+      if (override != null && override.jndiEnvironmentRefsGroup != null)
+         jbossSecurityIdentity = override.jndiEnvironmentRefsGroup.getSecurityIdentity();
       SecurityIdentityMetaData originalSecurityIdentity = null;
       if(original != null)
          originalSecurityIdentity = original.getSecurityIdentity();
-      SecurityIdentityMetaData mergedSecurityIdentity = jbossSecurityIdentity;
-      if (jbossSecurityIdentity == null)
-         mergedSecurityIdentity = originalSecurityIdentity;
-      else if  (originalSecurityIdentity != null)
-         mergedSecurityIdentity = jbossSecurityIdentity.merge(originalSecurityIdentity);
-      if (mergedSecurityIdentity != null)
-         mergedEnvironment.setSecurityIdentity(mergedSecurityIdentity);
-
+      SecurityIdentityMetaData mergedSecurityIdentity = new SecurityIdentityMetaData();
+      mergedSecurityIdentity.merge(jbossSecurityIdentity, originalSecurityIdentity);
+      setSecurityIdentity(mergedSecurityIdentity);
       // TODO, all fields
    }
 

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-23 00:56:01 UTC (rev 66346)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java	2007-10-23 06:07:16 UTC (rev 66347)
@@ -119,16 +119,25 @@
     */
    public void merge(JBossEnterpriseBeansMetaData override, IEnterpriseBeansMetaData<EnterpriseBeanMetaData> original)
    {
+      // Add all override beans
       if(original == null && override != null)
          addAll(override);
+      // Merge original beans with this
       else if(original != null)
       {
          for(EnterpriseBeanMetaData ejb : original)
          {
+            JBossEnterpriseBeanMetaData mergedEJB = null;
+            // First look for an override JBossEnterpriseBeanMetaData
             JBossEnterpriseBeanMetaData jejb = null;
             if( override != null )
                jejb = override.get(ejb.getEjbName());
-            JBossEnterpriseBeanMetaData mergedEJB = JBossEnterpriseBeanMetaData.newBean(ejb);
+            // Then to an existing one in this
+            else
+               mergedEJB = get(ejb.getEjbName());
+            if(mergedEJB == null)
+               mergedEJB = JBossEnterpriseBeanMetaData.newBean(ejb);
+            mergedEJB.setEnterpriseBeansMetaData(this);
             mergedEJB.merge(jejb, ejb);
             this.add(mergedEJB);
          }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java	2007-10-23 00:56:01 UTC (rev 66346)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java	2007-10-23 06:07:16 UTC (rev 66347)
@@ -180,8 +180,6 @@
             EnvironmentRefsGroupMetaData environmentRefsGroup,
             ResourceManagersMetaData resourceMgrs)
    {
-      JBossEnvironmentRefsGroupMetaData merged = this;
-      
       if (jbossEnvironmentRefsGroup == null && environmentRefsGroup == null)
          return;
 
@@ -224,17 +222,26 @@
          jbossResEnvRefs = jbossEnvironmentRefsGroup.getResourceEnvironmentReferences();
          jbossMessageDestinationRefs = jbossEnvironmentRefsGroup.getMessageDestinationReferences();
       }
+      else
+      {
+         // Use the merge target for the static merge methods
+         jbossEjbRefs = this.getEjbReferences();
+         jbossEjbLocalRefs = this.getEjbLocalReferences();
+         jbossResRefs = this.getResourceReferences();
+         jbossResEnvRefs = this.getResourceEnvironmentReferences();
+         jbossMessageDestinationRefs = this.getMessageDestinationReferences();
+      }
       
       EJBReferencesMetaData mergedEjbRefs = EJBReferencesMetaData.merge(jbossEjbRefs, ejbRefs, "ejb-jar.xml", "jboss.xml");
       if (mergedEjbRefs != null)
-         merged.setEjbReferences(mergedEjbRefs);
+         this.setEjbReferences(mergedEjbRefs);
       
       EJBLocalReferencesMetaData mergedEjbLocalRefs = EJBLocalReferencesMetaData.merge(jbossEjbLocalRefs, ejbLocalRefs, "ejb-jar.xml", "jboss.xml");
       if (mergedEjbLocalRefs != null)
-         merged.setEjbLocalReferences(mergedEjbLocalRefs);
+         this.setEjbLocalReferences(mergedEjbLocalRefs);
       
       // Need to set the jndi name from resource mgr if referenced
-      if(jbossResRefs != null && resourceMgrs != null)
+      if(resourceMgrs != null && jbossResRefs != null)
       {
          for(ResourceReferenceMetaData ref : jbossResRefs)
          {
@@ -250,30 +257,30 @@
       }
       ResourceReferencesMetaData mergedResRefs = ResourceReferencesMetaData.merge(jbossResRefs, resRefs, "ejb-jar.xml", "jboss.xml");
       if (mergedResRefs != null)
-         merged.setResourceReferences(mergedResRefs);
+         this.setResourceReferences(mergedResRefs);
 
       ResourceEnvironmentReferencesMetaData mergedResEnvRefs = ResourceEnvironmentReferencesMetaData.merge(jbossResEnvRefs, resEnvRefs, "ejb-jar.xml", "jboss.xml");
       if (mergedResEnvRefs != null)
-         merged.setResourceEnvironmentReferences(mergedResEnvRefs);
+         this.setResourceEnvironmentReferences(mergedResEnvRefs);
 
       MessageDestinationReferencesMetaData mergedMessageDestinationRefs = MessageDestinationReferencesMetaData.merge(jbossMessageDestinationRefs, messageDestinationRefs, "ejb-jar.xml", "jboss.xml");
       if (mergedMessageDestinationRefs != null)
-         merged.setMessageDestinationReferences(mergedMessageDestinationRefs);
+         this.setMessageDestinationReferences(mergedMessageDestinationRefs);
       
       if (envEntries != null)
-         merged.setEnvironmentEntries(envEntries);
+         this.setEnvironmentEntries(envEntries);
       
       if (persistenceContextRefs != null)
-         merged.setPersistenceContextRefs(persistenceContextRefs);
+         this.setPersistenceContextRefs(persistenceContextRefs);
       
       if (persistenceUnitRefs != null)
-         merged.setPersistenceUnitRefs(persistenceUnitRefs);
+         this.setPersistenceUnitRefs(persistenceUnitRefs);
       
       if (postConstructs != null)
-         merged.setPostConstructs(postConstructs);
+         this.setPostConstructs(postConstructs);
       
       if (preDestroys != null)
-         merged.setPreDestroys(preDestroys);
+         this.setPreDestroys(preDestroys);
    }
 
    /**

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-23 00:56:01 UTC (rev 66346)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java	2007-10-23 06:07:16 UTC (rev 66347)
@@ -21,10 +21,15 @@
 */
 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.AroundInvokesMetaData;
+import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;
+import org.jboss.metadata.ejb.spec.NamedMethodMetaData;
 import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
+import org.jboss.metadata.ejb.spec.SubscriptionDurability;
+import org.jboss.metadata.ejb.spec.TransactionType;
+
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
@@ -41,6 +46,36 @@
    /** The serialVersionUID */
    private static final long serialVersionUID = -4006016148034278681L;
    
+   /** The messaging type */
+   private String messagingType;
+   
+   /** The timeout method */
+   private NamedMethodMetaData timeoutMethod;
+
+   /** The transaction type */
+   private TransactionType transactionType;
+   
+   /** The message destination type */
+   private String messageDestinationType;
+   
+   /** The message destination link */
+   private String messageDestinationLink;
+
+   /** The activation config */
+   private ActivationConfigMetaData activationConfig = new ActivationConfigMetaData();
+   
+   /** The around invokes */
+   private AroundInvokesMetaData aroundInvokes;
+
+   /** The message selector */
+   private String messageSelector;
+   
+   /** The acknowledge mode */
+   private String acknowledgeMode;
+   
+   /** The subscription durability */
+   private SubscriptionDurability subscriptionDurability = SubscriptionDurability.NonDurable;
+
    /** The destination jndi name */
    private String destinationJndiName;
 
@@ -91,7 +126,120 @@
       return true;
    }
 
+   /**
+    * Get the messagingType.
+    * 
+    * @return the messagingType.
+    */
+   public String getMessagingType()
+   {
+      return messagingType;
+   }
+
+   /**
+    * Is this JMS
+    * 
+    * @return true for jms
+    */
+   public boolean isJMS()
+   {
+      String messagingType = getMessagingType();
+      return messagingType == null || "javax.jms.MessageListener".equals(messagingType);
+   }
+
+   /**
+    * Get the timeoutMethod.
+    * 
+    * @return the timeoutMethod.
+    */
+   public NamedMethodMetaData getTimeoutMethod()
+   {
+      return timeoutMethod;
+   }
+
+
    @Override
+   public TransactionType getTransactionType()
+   {
+      return transactionType;
+   }
+
+
+   /**
+    * Get the messageDestinationType.
+    * 
+    * @return the messageDestinationType.
+    */
+   public String getMessageDestinationType()
+   {
+      return messageDestinationType;
+   }
+
+
+   /**
+    * Get the aroundInvokes.
+    * 
+    * @return the aroundInvokes.
+    */
+   public AroundInvokesMetaData getAroundInvokes()
+   {
+      return aroundInvokes;
+   }
+
+
+   /**
+    * Get the messageDestinationLink.
+    * 
+    * @return the messageDestinationLink.
+    */
+   public String getMessageDestinationLink()
+   {
+      return messageDestinationLink;
+   }
+
+
+   /**
+    * Get the activationConfig.
+    * 
+    * @return the activationConfig.
+    */
+   public ActivationConfigMetaData getActivationConfig()
+   {
+      return activationConfig;
+   }
+
+
+   /**
+    * Get the messageSelector.
+    * 
+    * @return the messageSelector.
+    */
+   public String getMessageSelector()
+   {
+      return messageSelector;
+   }
+
+   /**
+    * Get the acknowledgeMode.
+    * 
+    * @return the acknowledgeMode.
+    */
+   public String getAcknowledgeMode()
+   {
+      return acknowledgeMode;
+   }
+
+   /**
+    * Get the subscriptionDurability.
+    * 
+    * @return the subscriptionDurability.
+    */
+   public SubscriptionDurability getSubscriptionDurability()
+   {
+      return subscriptionDurability;
+   }
+
+   @Override
    public String getDefaultConfigurationName()
    {
       boolean isJMS = true;
@@ -295,5 +443,89 @@
          throw new IllegalArgumentException("Null ejbTimeoutIdentity");
       this.ejbTimeoutIdentity = ejbTimeoutIdentity;
    }
+
+   @Override
+   public void merge(JBossEnterpriseBeanMetaData override, EnterpriseBeanMetaData original)
+   {
+      super.merge(override, original);
+      JBossMessageDrivenBeanMetaData joverride = (JBossMessageDrivenBeanMetaData) override;
+      MessageDrivenBeanMetaData soriginal = (MessageDrivenBeanMetaData) original;
+      // messagingType
+      if(joverride != null && joverride.messagingType != null)
+         messagingType = joverride.messagingType;
+      else if(soriginal != null && soriginal.getMessagingType() != null)
+         messagingType = soriginal.getMessagingType();
+      // timeoutMethod
+      if(joverride != null && joverride.timeoutMethod != null)
+         timeoutMethod = joverride.timeoutMethod;
+      else if(soriginal != null && soriginal.getTimeoutMethod() != null)
+         timeoutMethod = soriginal.getTimeoutMethod();
+      // transactionType
+      if(joverride != null && joverride.transactionType != null)
+         transactionType = joverride.transactionType;
+      else if(soriginal != null && soriginal.getTransactionType() != null)
+         transactionType = soriginal.getTransactionType();
+      // messageDestinationType
+      if(joverride != null && joverride.messageDestinationType != null)
+         messageDestinationType = joverride.messageDestinationType;
+      else if(soriginal != null && soriginal.getMessageDestinationType() != null)
+         messageDestinationType = soriginal.getMessageDestinationType();
+      // messageDestinationLink
+      if(joverride != null && joverride.messageDestinationLink != null)
+         messageDestinationLink = joverride.messageDestinationLink;
+      else if(soriginal != null && soriginal.getMessageDestinationLink() != null)
+         messageDestinationLink = soriginal.getMessageDestinationLink();
+      // activationConfig
+      if(joverride != null && joverride.activationConfig != null)
+         activationConfig = joverride.activationConfig;
+      else if(soriginal != null && soriginal.getActivationConfig() != null)
+         activationConfig = soriginal.getActivationConfig();
+      // aroundInvokes
+      if(joverride != null && joverride.aroundInvokes != null)
+         aroundInvokes = joverride.aroundInvokes;
+      else if(soriginal != null && soriginal.getAroundInvokes() != null)
+         aroundInvokes = soriginal.getAroundInvokes();
+      // messageSelector
+      if(joverride != null && joverride.messageSelector != null)
+         messageSelector = joverride.messageSelector;
+      else if(soriginal != null && soriginal.getMessageSelector() != null)
+         messageSelector = soriginal.getMessageSelector();
+      // messageSelector
+      if(joverride != null && joverride.acknowledgeMode != null)
+         acknowledgeMode = joverride.acknowledgeMode;
+      else if(soriginal != null && soriginal.getAcknowledgeMode() != null)
+         acknowledgeMode = soriginal.getAcknowledgeMode();
+      // messageSelector
+      if(joverride != null && joverride.subscriptionDurability != null)
+         subscriptionDurability = joverride.subscriptionDurability;
+      else if(soriginal != null && soriginal.getSubscriptionDurability() != null)
+         subscriptionDurability = soriginal.getSubscriptionDurability();
+      // destinationJndiName
+      if(joverride != null && joverride.destinationJndiName != null)
+         destinationJndiName = joverride.destinationJndiName;
+      else if(soriginal != null && soriginal.getMappedName() != null)
+         destinationJndiName = soriginal.getMappedName();
+      // mdbUser
+      if(joverride != null && joverride.mdbUser != null)
+         mdbUser = joverride.mdbUser;
+      // mdbPassword
+      if(joverride != null && joverride.mdbPassword != null)
+         mdbPassword = joverride.mdbPassword;
+      // mdbClientId
+      if(joverride != null && joverride.mdbClientId != null)
+         mdbClientId = joverride.mdbClientId;
+      // mdbSubscriptionId
+      if(joverride != null && joverride.mdbSubscriptionId != null)
+         mdbSubscriptionId = joverride.mdbSubscriptionId;
+      // resourceAdapterName
+      if(joverride != null && joverride.resourceAdapterName != null)
+         resourceAdapterName = joverride.resourceAdapterName;
+      // ejbTimeoutIdentity
+      if(joverride != null && joverride.ejbTimeoutIdentity != null)
+         ejbTimeoutIdentity = joverride.ejbTimeoutIdentity;
+      // defaultActivationConfig
+      if(joverride != null && joverride.defaultActivationConfig != null)
+         defaultActivationConfig = joverride.defaultActivationConfig;
+   }
    
 }

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-23 00:56:01 UTC (rev 66346)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java	2007-10-23 06:07:16 UTC (rev 66347)
@@ -570,17 +570,52 @@
    public void merge(JBossMetaData override, EjbJarMetaData original)
    {
       super.merge(override, original);
-      setAssemblyDescriptor(new JBossAssemblyDescriptorMetaData());
+      if(this.assemblyDescriptor == null)
+         assemblyDescriptor = new JBossAssemblyDescriptorMetaData();
+      if(this.resourceManagers == null)
+         resourceManagers = new ResourceManagersMetaData();
+      if(this.containerConfigurations == null)
+         containerConfigurations = new ContainerConfigurationsMetaData();
+      if(override.containerConfigurations != null)
+         containerConfigurations.merge(override.containerConfigurations);
+      if(this.invokerProxyBindings != null)
+         invokerProxyBindings = new InvokerProxyBindingsMetaData();
+      if(override.invokerProxyBindings != null)
+         invokerProxyBindings.merge(override.invokerProxyBindings);
+      if(this.webservices == null)
+         webservices = new WebservicesMetaData();
+
       if(override != null && override.assemblyDescriptor != null)
       {
          assemblyDescriptor.merge(override.assemblyDescriptor, original.getAssemblyDescriptor());
       }
       else if(original != null && original.getAssemblyDescriptor() != null)
       {
-         assemblyDescriptor.merge(null, original);
+         assemblyDescriptor.merge(null, original.getAssemblyDescriptor());
       }
+      //
+      if(override != null && override.resourceManagers != null)
+         resourceManagers.merge(override.resourceManagers);
 
-      setEnterpriseBeans(new JBossEnterpriseBeansMetaData());
+      if(override != null)
+      {
+         if(override.jaccContextID != null)
+            jaccContextID = override.jaccContextID;
+         if(override.jmxName != null)
+            jmxName = override.jmxName;
+         if(override.loaderRepository != null)
+            loaderRepository = override.loaderRepository;         
+         if(override.securityDomain != null)
+            securityDomain = override.securityDomain;         
+         if(override.unauthenticatedPrincipal != null)
+            unauthenticatedPrincipal = override.unauthenticatedPrincipal;         
+      }
+
+      if(this.enterpriseBeans == null)
+      {
+         enterpriseBeans = new JBossEnterpriseBeansMetaData();
+         enterpriseBeans.setJBossMetaData(this);
+      }
       JBossEnterpriseBeansMetaData jbeans = null;
       if(override != null)
          jbeans = override.enterpriseBeans;
@@ -588,6 +623,7 @@
       if(original != null)
          beans = original.getEnterpriseBeans();
       enterpriseBeans.merge(jbeans, beans);
+
    }
 
    /**

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-23 00:56:01 UTC (rev 66346)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaDataWrapper.java	2007-10-23 06:07:16 UTC (rev 66347)
@@ -21,26 +21,10 @@
  */
 package org.jboss.metadata.ejb.jboss;
 
-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;
-import org.jboss.metadata.ejb.jboss.InvokerProxyBindingMetaData;
-import org.jboss.metadata.ejb.jboss.InvokerProxyBindingsMetaData;
-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.JBossMetaData;
-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.javaee.spec.DescriptionGroupMetaData;
-import org.jboss.metadata.javaee.support.JavaEEMetaDataUtil;
 
 /**
  * Read only wrapper that combines a primary and standardjboss.xml defaults into
@@ -55,8 +39,6 @@
    private JBossMetaData primary;
    private JBossMetaData defaults;
    private ContainerConfigurationsMetaData configurationsWrapper;
-   /** The merged enterprise beans */
-   private transient JBossEnterpriseBeansMetaData mergedEnterpriseBeans;
    private transient InvokerProxyBindingsMetaData mergedInvokerBindings;
    
 

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ResourceManagersMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ResourceManagersMetaData.java	2007-10-23 00:56:01 UTC (rev 66346)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ResourceManagersMetaData.java	2007-10-23 06:07:16 UTC (rev 66347)
@@ -46,4 +46,15 @@
    {
       super("res-name for resource manager");
    }
+
+   public void merge(ResourceManagersMetaData override)
+   {
+      if(override != null)
+      {
+         for(ResourceManagerMetaData res : override)
+         {
+            this.add(res);
+         }
+      }
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SecurityIdentityMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SecurityIdentityMetaData.java	2007-10-23 00:56:01 UTC (rev 66346)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SecurityIdentityMetaData.java	2007-10-23 06:07:16 UTC (rev 66347)
@@ -25,7 +25,6 @@
 import org.jboss.metadata.javaee.spec.RunAsMetaData;
 import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptions;
 import org.jboss.metadata.javaee.support.MergeableMetaData;
-import org.jboss.xb.annotations.JBossXmlNsPrefix;
 
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
@@ -34,6 +33,7 @@
  * SecurityIdentityMetaData.
  * 
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author Scott.Stark at jboss.org
  * @version $Revision: 1.1 $
  */
 @XmlType(name="security-identityType")
@@ -147,16 +147,24 @@
    }
 
    /**
-    * Merge
-    * 
-    * @param merged the data to merge into
-    * @param original the original data
+    * Merge override + original into this
+    * @param override
+    * @param original
     */
-   public void merge(SecurityIdentityMetaData merged, SecurityIdentityMetaData original)
+   public void merge(SecurityIdentityMetaData override, SecurityIdentityMetaData original)
    {
-      super.merge(merged, original);
-      merged.setUseCallerIdentity(original.getUseCallerIdentity());
-      merged.setRunAs(original.getRunAs());
-      merged.setRunAsPrincipal(getRunAsPrincipal());
+      super.merge(override, original);
+      if(override != null && override.getUseCallerIdentity() != null)
+         setUseCallerIdentity(override.getUseCallerIdentity());
+      else if(original != null && original.getUseCallerIdentity() != null)
+      setUseCallerIdentity(original.getUseCallerIdentity());
+      if(override != null && override.getRunAs() != null)
+         setRunAs(override.getRunAs());
+      else if(override != null && original.getRunAs() != null)
+         setRunAs(original.getRunAs());
+      if(override != null && override.getRunAsPrincipal() != null)
+         setRunAsPrincipal(getRunAsPrincipal());
+      else if(original != null && original.getRunAsPrincipal() != null)
+         setRunAsPrincipal(original.getRunAsPrincipal());
    }
 }




More information about the jboss-cvs-commits mailing list