[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