[jboss-cvs] JBossAS SVN: r73821 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/javaee/jboss and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu May 29 17:55:43 EDT 2008


Author: alex.loubyansky at jboss.com
Date: 2008-05-29 17:55:43 -0400 (Thu, 29 May 2008)
New Revision: 73821

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/MethodAttributesMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/PoolConfigMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/IgnoreDependencyMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JndiRefsMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java
Log:
JBMETA-20. more JBossEnterpriseBeanMetaData merge/override

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	2008-05-29 21:37:19 UTC (rev 73820)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java	2008-05-29 21:55:43 UTC (rev 73821)
@@ -1761,6 +1761,10 @@
       AnnotationsMetaData originalAnnotations = null;
       InvokerBindingsMetaData originalInvokers = null;
       JBossEnvironmentRefsGroupMetaData originalEnv = null;
+      MethodAttributesMetaData originalMethodAttrs = null;
+      IgnoreDependencyMetaData originalIgnoreDependency = null;
+      PoolConfigMetaData originalPool = null;
+      JndiRefsMetaData originalJndiRefs = null;
       if(original != null)
       {
          if(original.aopDomainName != null)
@@ -1791,16 +1795,23 @@
          originalAnnotations = original.annotations;
          originalInvokers = original.invokers;
          originalEnv = original.jndiEnvironmentRefsGroup;
+         originalMethodAttrs = original.methodAttributes;
+         originalIgnoreDependency = original.ignoreDependency;
+         originalPool = original.poolConfig;
+         originalJndiRefs = original.jndiRefs;
          
          // not merged currently but overriden
          if(original.iorSecurityConfig != null)
-            iorSecurityConfig = original.iorSecurityConfig;
-         
+            iorSecurityConfig = original.iorSecurityConfig;         
       }
       
       AnnotationsMetaData overrideAnnotations = null;
       InvokerBindingsMetaData overrideInvokers = null;
       JBossEnvironmentRefsGroupMetaData overrideEnv = null;
+      MethodAttributesMetaData overrideMethodAttrs = null;
+      IgnoreDependencyMetaData overrideIgnoreDependency = null;
+      PoolConfigMetaData overridePool = null;
+      JndiRefsMetaData overrideJndiRefs = null;
       if(override != null)
       {         
          if(override.aopDomainName != null)
@@ -1829,6 +1840,10 @@
          overrideAnnotations = override.annotations;
          overrideInvokers = override.invokers;
          overrideEnv = override.jndiEnvironmentRefsGroup;
+         overrideMethodAttrs = override.methodAttributes;
+         overrideIgnoreDependency = override.ignoreDependency;
+         overridePool = override.poolConfig;
+         overrideJndiRefs = override.jndiRefs;
 
          if(override.iorSecurityConfig != null)
             iorSecurityConfig = override.iorSecurityConfig;
@@ -1854,6 +1869,34 @@
             jndiEnvironmentRefsGroup = new JBossEnvironmentRefsGroupMetaData();
          jndiEnvironmentRefsGroup.merge(overrideEnv, originalEnv);
       }
+      
+      if(originalMethodAttrs != null || overrideMethodAttrs != null)
+      {
+         if(methodAttributes == null)
+            methodAttributes = new MethodAttributesMetaData();
+         methodAttributes.merge(overrideMethodAttrs, originalMethodAttrs);
+      }
+      
+      if(originalIgnoreDependency != null || overrideIgnoreDependency != null)
+      {
+         if(ignoreDependency == null)
+            ignoreDependency = new IgnoreDependencyMetaData();
+         ignoreDependency.merge(overrideIgnoreDependency, originalIgnoreDependency);
+      }
+      
+      if(originalPool != null || overridePool != null)
+      {
+         if(poolConfig == null)
+            poolConfig = new PoolConfigMetaData();
+         poolConfig.merge(overridePool, originalPool);
+      }
+      
+      if(originalJndiRefs != null || overrideJndiRefs != null)
+      {
+         if(jndiRefs == null)
+            jndiRefs = new JndiRefsMetaData();
+         jndiRefs.merge(overrideJndiRefs, originalJndiRefs);
+      }
    }
    
    public void checkValid()

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MethodAttributesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MethodAttributesMetaData.java	2008-05-29 21:37:19 UTC (rev 73820)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MethodAttributesMetaData.java	2008-05-29 21:55:43 UTC (rev 73821)
@@ -23,6 +23,8 @@
 
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.jboss.metadata.javaee.jboss.AnnotationMetaData;
+import org.jboss.metadata.javaee.jboss.AnnotationsMetaData;
 import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
 import org.jboss.xb.annotations.JBossXmlChild;
 
@@ -107,4 +109,19 @@
       
       return result;
    }
+   
+   public void merge(MethodAttributesMetaData override, MethodAttributesMetaData original)
+   {
+      super.merge(override, original);
+      if (original != null)
+      {
+         for (MethodAttributeMetaData property : original)
+            add(property);
+      }
+      if (override != null)
+      {
+         for (MethodAttributeMetaData property : override)
+            add(property);
+      }
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/PoolConfigMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/PoolConfigMetaData.java	2008-05-29 21:37:19 UTC (rev 73820)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/PoolConfigMetaData.java	2008-05-29 21:55:43 UTC (rev 73821)
@@ -81,4 +81,26 @@
       return sb.toString();
    }
 
+   public void merge(PoolConfigMetaData override, PoolConfigMetaData original)
+   {
+      if(original != null)
+      {
+         if(original.maxSize != null)
+            maxSize = original.maxSize;
+         if(original.timeout != null)
+            timeout = original.timeout;
+         if(original.value != null)
+            value = original.value;
+      }
+      
+      if(override != null)
+      {
+         if(override.maxSize != null)
+            maxSize = override.maxSize;
+         if(override.timeout != null)
+            timeout = override.timeout;
+         if(override.value != null)
+            value = override.value;
+      }
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/IgnoreDependencyMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/IgnoreDependencyMetaData.java	2008-05-29 21:37:19 UTC (rev 73820)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/IgnoreDependencyMetaData.java	2008-05-29 21:55:43 UTC (rev 73821)
@@ -21,6 +21,7 @@
 */
 package org.jboss.metadata.javaee.jboss;
 
+import java.util.HashSet;
 import java.util.Set;
 
 import javax.xml.bind.annotation.XmlElement;
@@ -28,7 +29,6 @@
 
 import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
 import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptions;
-import org.jboss.metadata.javaee.support.NonNullLinkedHashSet;
 
 /**
  * IgnoreDependencyMetaData.
@@ -68,4 +68,21 @@
          throw new IllegalArgumentException("Null injectionTargets");
       this.injectionTargets = injectionTargets;
    }
+   
+   public void merge(IgnoreDependencyMetaData override, IgnoreDependencyMetaData original)
+   {
+      if(original != null && original.injectionTargets != null)
+      {
+         if(injectionTargets == null)
+            injectionTargets = new HashSet<ResourceInjectionTargetMetaData>();
+         injectionTargets.addAll(original.injectionTargets);
+      }
+
+      if(override != null && override.injectionTargets != null)
+      {
+         if(injectionTargets == null)
+            injectionTargets = new HashSet<ResourceInjectionTargetMetaData>();
+         injectionTargets.addAll(override.injectionTargets);
+      }
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JndiRefsMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JndiRefsMetaData.java	2008-05-29 21:37:19 UTC (rev 73820)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JndiRefsMetaData.java	2008-05-29 21:55:43 UTC (rev 73821)
@@ -41,4 +41,19 @@
    {
       super("jndi ref name");
    }
+   
+   public void merge(JndiRefsMetaData override, JndiRefsMetaData original)
+   {
+      super.merge(override, original);
+      if (original != null)
+      {
+         for (JndiRefMetaData property : original)
+            add(property);
+      }
+      if (override != null)
+      {
+         for (JndiRefMetaData property : override)
+            add(property);
+      }
+   }
 }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java	2008-05-29 21:37:19 UTC (rev 73820)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java	2008-05-29 21:55:43 UTC (rev 73821)
@@ -26,6 +26,7 @@
 import java.beans.PropertyDescriptor;
 import java.lang.reflect.Method;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.Set;
 
 import junit.framework.AssertionFailedError;
@@ -37,10 +38,16 @@
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossEnvironmentRefsGroupMetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.jboss.MethodAttributeMetaData;
+import org.jboss.metadata.ejb.jboss.MethodAttributesMetaData;
+import org.jboss.metadata.ejb.jboss.PoolConfigMetaData;
 import org.jboss.metadata.javaee.jboss.AnnotationMetaData;
 import org.jboss.metadata.javaee.jboss.AnnotationsMetaData;
+import org.jboss.metadata.javaee.jboss.IgnoreDependencyMetaData;
 import org.jboss.metadata.javaee.jboss.JBossServiceReferenceMetaData;
 import org.jboss.metadata.javaee.jboss.JBossServiceReferencesMetaData;
+import org.jboss.metadata.javaee.jboss.JndiRefMetaData;
+import org.jboss.metadata.javaee.jboss.JndiRefsMetaData;
 import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
@@ -58,10 +65,9 @@
 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.ResourceInjectionTargetMetaData;
 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.util.Classes;
 
 
@@ -658,4 +664,179 @@
       assertNotNull(serviceRef);
       assertEquals(serviceRef.getServiceRefName() + "Override", serviceRef.getJndiName());      
    }
+   
+   public void testMethodAttributes() throws Exception
+   {
+      JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+      original.setEjbName("session");
+
+      MethodAttributesMetaData methodAttrs = new MethodAttributesMetaData();
+      MethodAttributeMetaData methodAttr = new MethodAttributeMetaData();
+      methodAttr.setMethodName("method1");
+      methodAttr.setTransactionTimeout(1000);
+      methodAttrs.add(methodAttr);
+      methodAttr = new MethodAttributeMetaData();
+      methodAttr.setMethodName("method2");
+      methodAttr.setTransactionTimeout(1000);
+      methodAttrs.add(methodAttr);
+      original.setMethodAttributes(methodAttrs);
+      
+      // override
+      JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+      override.setEjbName("session");
+
+      methodAttrs = new MethodAttributesMetaData();
+      methodAttr = new MethodAttributeMetaData();
+      methodAttr.setMethodName("method2");
+      methodAttr.setTransactionTimeout(2000);
+      methodAttrs.add(methodAttr);
+      methodAttr = new MethodAttributeMetaData();
+      methodAttr.setMethodName("method3");
+      methodAttr.setTransactionTimeout(2000);
+      methodAttrs.add(methodAttr);
+      override.setMethodAttributes(methodAttrs);
+      
+      // merged
+      JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+      merged.merge(override, original);
+      
+      methodAttrs = merged.getMethodAttributes();
+      assertNotNull(methodAttrs);
+      assertEquals(3, methodAttrs.size());
+      methodAttr = methodAttrs.get("method1");
+      assertNotNull(methodAttr);
+      assertEquals(1000, methodAttr.getTransactionTimeout());
+      methodAttr = methodAttrs.get("method2");
+      assertNotNull(methodAttr);
+      assertEquals(2000, methodAttr.getTransactionTimeout());
+      methodAttr = methodAttrs.get("method3");
+      assertNotNull(methodAttr);
+      assertEquals(2000, methodAttr.getTransactionTimeout());
+   }
+   
+   public void testIgnoreDependency() throws Exception
+   {
+      JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+      original.setEjbName("session");
+
+      IgnoreDependencyMetaData ignoreDependency = new IgnoreDependencyMetaData();
+      Set<ResourceInjectionTargetMetaData> targets = new HashSet<ResourceInjectionTargetMetaData>();
+      ResourceInjectionTargetMetaData target = new ResourceInjectionTargetMetaData();
+      target.setInjectionTargetName("target1");
+      target.setInjectionTargetClass(target.getInjectionTargetName() + "Original");
+      targets.add(target);
+      target = new ResourceInjectionTargetMetaData();
+      target.setInjectionTargetName("target2");
+      target.setInjectionTargetClass(target.getInjectionTargetName() + "Original");
+      targets.add(target);
+      ignoreDependency.setInjectionTargets(targets);
+      original.setIgnoreDependency(ignoreDependency);
+      
+      // override
+      JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+      override.setEjbName("session");
+
+      ignoreDependency = new IgnoreDependencyMetaData();
+      targets = new HashSet<ResourceInjectionTargetMetaData>();
+      target = new ResourceInjectionTargetMetaData();
+      target.setInjectionTargetName("target2");
+      target.setInjectionTargetClass(target.getInjectionTargetName() + "Override");
+      targets.add(target);
+      target = new ResourceInjectionTargetMetaData();
+      target.setInjectionTargetName("target3");
+      target.setInjectionTargetClass(target.getInjectionTargetName() + "Override");
+      targets.add(target);
+      ignoreDependency.setInjectionTargets(targets);
+      override.setIgnoreDependency(ignoreDependency);
+      
+      // merged
+      JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+      merged.merge(override, original);
+
+      ignoreDependency = merged.getIgnoreDependency();
+      assertNotNull(ignoreDependency);
+      targets = ignoreDependency.getInjectionTargets();
+      assertNotNull(targets);
+      assertEquals(4, targets.size());
+   }
+   
+   public void testPoolConfig() throws Exception
+   {
+      JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+      original.setEjbName("session");
+
+      PoolConfigMetaData poolConfig = new PoolConfigMetaData();
+      poolConfig.setMaxSize(100);
+      poolConfig.setTimeout(1000);
+      poolConfig.setValue("Original");
+      original.setPoolConfig(poolConfig);
+      
+      // override
+      JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+      override.setEjbName("session");
+
+      poolConfig = new PoolConfigMetaData();
+      poolConfig.setTimeout(2000);
+      poolConfig.setValue("Override");
+      override.setPoolConfig(poolConfig);
+
+      // merged
+      JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+      merged.merge(override, original);
+
+      poolConfig = merged.getPoolConfig();
+      assertNotNull(poolConfig);
+      assertEquals(new Integer(100), poolConfig.getMaxSize());
+      assertEquals(new Integer(2000), poolConfig.getTimeout());
+      assertEquals("Override", poolConfig.getValue());
+   }
+
+   public void testJndiRefs() throws Exception
+   {
+      JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+      original.setEjbName("session");
+
+      JndiRefsMetaData jndiRefs = new JndiRefsMetaData();
+      JndiRefMetaData jndiRef = new JndiRefMetaData();
+      jndiRef.setJndiRefName("jndiRef1");
+      jndiRef.setJndiName(jndiRef.getJndiRefName() + "Original");
+      jndiRefs.add(jndiRef);
+      jndiRef = new JndiRefMetaData();
+      jndiRef.setJndiRefName("jndiRef2");
+      jndiRef.setJndiName(jndiRef.getJndiRefName() + "Original");
+      jndiRefs.add(jndiRef);
+      original.setJndiRefs(jndiRefs);
+      
+      // override
+      JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+      override.setEjbName("session");
+
+      jndiRefs = new JndiRefsMetaData();
+      jndiRef = new JndiRefMetaData();
+      jndiRef.setJndiRefName("jndiRef2");
+      jndiRef.setJndiName(jndiRef.getJndiRefName() + "Override");
+      jndiRefs.add(jndiRef);
+      jndiRef = new JndiRefMetaData();
+      jndiRef.setJndiRefName("jndiRef3");
+      jndiRef.setJndiName(jndiRef.getJndiRefName() + "Override");
+      jndiRefs.add(jndiRef);
+      override.setJndiRefs(jndiRefs);
+      
+      // merged
+      JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+      merged.merge(override, original);
+
+      jndiRefs = merged.getJndiRefs();
+      assertNotNull(jndiRefs);
+      assertEquals(3, jndiRefs.size());
+      jndiRef = jndiRefs.get("jndiRef1");
+      assertNotNull(jndiRef);
+      assertEquals(jndiRef.getJndiRefName() + "Original", jndiRef.getJndiName());
+      jndiRef = jndiRefs.get("jndiRef2");
+      assertNotNull(jndiRef);
+      assertEquals(jndiRef.getJndiRefName() + "Override", jndiRef.getJndiName());
+      jndiRef = jndiRefs.get("jndiRef3");
+      assertNotNull(jndiRef);
+      assertEquals(jndiRef.getJndiRefName() + "Override", jndiRef.getJndiName());
+   }
 }




More information about the jboss-cvs-commits mailing list