[jboss-cvs] JBossAS SVN: r74186 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/ejb and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jun 5 17:55:31 EDT 2008
Author: alex.loubyansky at jboss.com
Date: 2008-06-05 17:55:31 -0400 (Thu, 05 Jun 2008)
New Revision: 74186
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossMessageDrivenBeanOverrideUnitTestCase.java
Log:
JBMETA-50
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 2008-06-05 21:46:21 UTC (rev 74185)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java 2008-06-05 21:55:31 UTC (rev 74186)
@@ -656,4 +656,106 @@
defaultActivationConfig = joverride.defaultActivationConfig;
}
+ public void merge(JBossEnterpriseBeanMetaData overrideEjb, JBossEnterpriseBeanMetaData originalEjb)
+ {
+ super.merge(overrideEjb, originalEjb);
+
+ JBossMessageDrivenBeanMetaData override = (JBossMessageDrivenBeanMetaData) overrideEjb;
+ JBossMessageDrivenBeanMetaData original = (JBossMessageDrivenBeanMetaData) originalEjb;
+
+ ActivationConfigMetaData originalAConfig = null;
+ AroundInvokesMetaData originalAInvokes = null;
+ SecurityIdentityMetaData originalEjbTimeoutIdentity = null;
+ if(original != null)
+ {
+ if(original.acknowledgeMode != null)
+ this.acknowledgeMode = original.acknowledgeMode;
+ if(original.destinationJndiName != null)
+ this.destinationJndiName = original.destinationJndiName;
+ if(original.mdbClientId != null)
+ this.mdbClientId = original.mdbClientId;
+ if(original.mdbPassword != null)
+ this.mdbPassword = original.mdbPassword;
+ if(original.mdbSubscriptionId != null)
+ this.mdbSubscriptionId = original.mdbSubscriptionId;
+ if(original.mdbUser != null)
+ this.mdbUser = original.mdbUser;
+ if(original.messageDestinationLink != null)
+ this.messageDestinationLink = original.messageDestinationLink;
+ if(original.messageDestinationType != null)
+ this.messageDestinationType = original.messageDestinationType;
+ if(original.messageSelector != null)
+ this.messageSelector = original.messageSelector;
+ if(original.messagingType != null)
+ this.messagingType = original.messagingType;
+ if(original.resourceAdapterName != null)
+ this.resourceAdapterName = original.resourceAdapterName;
+ if(original.subscriptionDurability != null)
+ this.subscriptionDurability = original.subscriptionDurability;
+ if(original.timeoutMethod != null)
+ this.timeoutMethod = original.timeoutMethod;
+
+ originalAConfig = original.activationConfig;
+ originalAInvokes = original.aroundInvokes;
+ originalEjbTimeoutIdentity = original.ejbTimeoutIdentity;
+ }
+
+ ActivationConfigMetaData overrideAConfig = null;
+ AroundInvokesMetaData overrideAInvokes = null;
+ SecurityIdentityMetaData overrideEjbTimeoutIdentity = null;
+ if(override != null)
+ {
+ if(override.acknowledgeMode != null)
+ this.acknowledgeMode = override.acknowledgeMode;
+ if(override.destinationJndiName != null)
+ this.destinationJndiName = override.destinationJndiName;
+ if(override.mdbClientId != null)
+ this.mdbClientId = override.mdbClientId;
+ if(override.mdbPassword != null)
+ this.mdbPassword = override.mdbPassword;
+ if(override.mdbSubscriptionId != null)
+ this.mdbSubscriptionId = override.mdbSubscriptionId;
+ if(override.mdbUser != null)
+ this.mdbUser = override.mdbUser;
+ if(override.messageDestinationLink != null)
+ this.messageDestinationLink = override.messageDestinationLink;
+ if(override.messageDestinationType != null)
+ this.messageDestinationType = override.messageDestinationType;
+ if(override.messageSelector != null)
+ this.messageSelector = override.messageSelector;
+ if(override.messagingType != null)
+ this.messagingType = override.messagingType;
+ if(override.resourceAdapterName != null)
+ this.resourceAdapterName = override.resourceAdapterName;
+ if(override.subscriptionDurability != null)
+ this.subscriptionDurability = override.subscriptionDurability;
+ if(override.timeoutMethod != null)
+ this.timeoutMethod = override.timeoutMethod;
+
+ overrideAConfig = override.activationConfig;
+ overrideAInvokes = override.aroundInvokes;
+ overrideEjbTimeoutIdentity = override.ejbTimeoutIdentity;
+ }
+
+ if(originalAConfig != null || overrideAConfig != null)
+ {
+ if(activationConfig == null)
+ activationConfig = new ActivationConfigMetaData();
+ activationConfig.merge(overrideAConfig, originalAConfig);
+ }
+
+ if(originalAInvokes != null || overrideAInvokes != null)
+ {
+ if(aroundInvokes == null)
+ aroundInvokes = new AroundInvokesMetaData();
+ aroundInvokes.merge(overrideAInvokes, originalAInvokes);
+ }
+
+ if(originalEjbTimeoutIdentity != null || overrideEjbTimeoutIdentity != null)
+ {
+ if(ejbTimeoutIdentity == null)
+ ejbTimeoutIdentity = new SecurityIdentityMetaData();
+ ejbTimeoutIdentity.merge(overrideEjbTimeoutIdentity, originalEjbTimeoutIdentity);
+ }
+ }
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossMessageDrivenBeanOverrideUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossMessageDrivenBeanOverrideUnitTestCase.java 2008-06-05 21:46:21 UTC (rev 74185)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossMessageDrivenBeanOverrideUnitTestCase.java 2008-06-05 21:55:31 UTC (rev 74186)
@@ -24,6 +24,16 @@
import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
+import org.jboss.metadata.ejb.spec.ActivationConfigMetaData;
+import org.jboss.metadata.ejb.spec.ActivationConfigPropertiesMetaData;
+import org.jboss.metadata.ejb.spec.ActivationConfigPropertyMetaData;
+import org.jboss.metadata.ejb.spec.AroundInvokeMetaData;
+import org.jboss.metadata.ejb.spec.AroundInvokesMetaData;
+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.javaee.spec.EmptyMetaData;
+import org.jboss.metadata.javaee.spec.RunAsMetaData;
/**
@@ -39,4 +49,172 @@
{
simplePropertiesTest(JBossMessageDrivenBeanMetaData.class, JBossEnterpriseBeanMetaData.class, null);
}
+
+ public void testTimeoutMethod()
+ {
+ JBossMessageDrivenBeanMetaData original = new JBossMessageDrivenBeanMetaData();
+ original.setEjbName("mdb");
+
+ NamedMethodMetaData method = new NamedMethodMetaData();
+ method.setMethodName("timeoutOriginal");
+ original.setTimeoutMethod(method);
+
+ JBossMessageDrivenBeanMetaData override = new JBossMessageDrivenBeanMetaData();
+ override.setEjbName("mdb");
+
+ method = new NamedMethodMetaData();
+ method.setMethodName("timeoutOverride");
+ override.setTimeoutMethod(method);
+
+ JBossMessageDrivenBeanMetaData merged = new JBossMessageDrivenBeanMetaData();
+ merged.merge(null, original);
+ method = merged.getTimeoutMethod();
+ assertNotNull(method);
+ assertTrue(original.getTimeoutMethod() == method);
+
+ merged = new JBossMessageDrivenBeanMetaData();
+ merged.merge(override, original);
+ method = merged.getTimeoutMethod();
+ assertNotNull(method);
+ assertTrue(override.getTimeoutMethod() == method);
+ }
+
+ public void testActivationConfig()
+ {
+ JBossMessageDrivenBeanMetaData original = new JBossMessageDrivenBeanMetaData();
+ original.setEjbName("mdb");
+
+ ActivationConfigPropertiesMetaData props = new ActivationConfigPropertiesMetaData();
+ ActivationConfigPropertyMetaData prop = new ActivationConfigPropertyMetaData();
+ prop.setName("prop1");
+ prop.setValue(prop.getName() + "Original");
+ props.add(prop);
+ prop = new ActivationConfigPropertyMetaData();
+ prop.setName("prop2");
+ prop.setValue(prop.getName() + "Original");
+ props.add(prop);
+ ActivationConfigMetaData aconfig = new ActivationConfigMetaData();
+ aconfig.setActivationConfigProperties(props);
+ original.setActivationConfig(aconfig);
+
+ JBossMessageDrivenBeanMetaData override = new JBossMessageDrivenBeanMetaData();
+ override.setEjbName("mdb");
+
+ props = new ActivationConfigPropertiesMetaData();
+ prop = new ActivationConfigPropertyMetaData();
+ prop.setName("prop2");
+ prop.setValue(prop.getName() + "Override");
+ props.add(prop);
+ prop = new ActivationConfigPropertyMetaData();
+ prop.setName("prop3");
+ prop.setValue(prop.getName() + "Override");
+ props.add(prop);
+ aconfig = new ActivationConfigMetaData();
+ aconfig.setActivationConfigProperties(props);
+ override.setActivationConfig(aconfig);
+
+ JBossMessageDrivenBeanMetaData merged = new JBossMessageDrivenBeanMetaData();
+ merged.merge(override, original);
+ aconfig = merged.getActivationConfig();
+ assertNotNull(aconfig);
+ props = aconfig.getActivationConfigProperties();
+ assertNotNull(props);
+ assertEquals(3, props.size());
+ prop = props.get("prop1");
+ assertNotNull(prop);
+ assertEquals(prop.getName() + "Original", prop.getValue());
+ prop = props.get("prop2");
+ assertNotNull(prop);
+ assertEquals(prop.getName() + "Override", prop.getValue());
+ prop = props.get("prop3");
+ assertNotNull(prop);
+ assertEquals(prop.getName() + "Override", prop.getValue());
+ }
+
+ public void testAroundInvokes()
+ {
+ JBossMessageDrivenBeanMetaData original = new JBossMessageDrivenBeanMetaData();
+ original.setEjbName("mdb");
+
+ AroundInvokesMetaData invokes = new AroundInvokesMetaData();
+ AroundInvokeMetaData invoke = new AroundInvokeMetaData();
+ invoke.setClassName("class1");
+ invoke.setMethodName("method1");
+ invokes.add(invoke);
+ invoke = new AroundInvokeMetaData();
+ invoke.setClassName("class2");
+ invoke.setMethodName("method1");
+ invokes.add(invoke);
+ original.setAroundInvokes(invokes);
+
+ JBossMessageDrivenBeanMetaData override = new JBossMessageDrivenBeanMetaData();
+ override.setEjbName("mdb");
+
+ invokes = new AroundInvokesMetaData();
+ invoke = new AroundInvokeMetaData();
+ invoke.setClassName("class2");
+ invoke.setMethodName("method2");
+ invokes.add(invoke);
+ invoke = new AroundInvokeMetaData();
+ invoke.setClassName("class3");
+ invoke.setMethodName("method2");
+ invokes.add(invoke);
+ override.setAroundInvokes(invokes);
+
+ JBossMessageDrivenBeanMetaData merged = new JBossMessageDrivenBeanMetaData();
+ merged.merge(override, original);
+ invokes = merged.getAroundInvokes();
+ assertNotNull(invokes);
+ assertEquals(4, invokes.size());
+ }
+
+ public void testSubscriptionDurability()
+ {
+ JBossMessageDrivenBeanMetaData original = new JBossMessageDrivenBeanMetaData();
+ original.setEjbName("mdb");
+ original.setSubscriptionDurability(SubscriptionDurability.NonDurable);
+
+ JBossMessageDrivenBeanMetaData override = new JBossMessageDrivenBeanMetaData();
+ override.setEjbName("mdb");
+ override.setSubscriptionDurability(SubscriptionDurability.Durable);
+
+ JBossMessageDrivenBeanMetaData merged = new JBossMessageDrivenBeanMetaData();
+ merged.merge(override, original);
+ SubscriptionDurability sd = merged.getSubscriptionDurability();
+ assertNotNull(sd);
+ assertEquals(SubscriptionDurability.Durable, sd);
+ }
+
+ public void testEjbTimeoutIdentity()
+ {
+ JBossMessageDrivenBeanMetaData original = new JBossMessageDrivenBeanMetaData();
+ original.setEjbName("mdb");
+
+ SecurityIdentityMetaData sid = new SecurityIdentityMetaData();
+ RunAsMetaData runAs = new RunAsMetaData();
+ runAs.setRoleName("role1");
+ sid.setRunAs(runAs);
+ sid.setRunAsPrincipal("principal1");
+ original.setEjbTimeoutIdentity(sid);
+
+ JBossMessageDrivenBeanMetaData override = new JBossMessageDrivenBeanMetaData();
+ override.setEjbName("mdb");
+
+ sid = new SecurityIdentityMetaData();
+ runAs = new RunAsMetaData();
+ runAs.setRoleName("role2");
+ sid.setRunAs(runAs);
+ sid.setUseCallerIdentity(new EmptyMetaData());
+ override.setEjbTimeoutIdentity(sid);
+
+ JBossMessageDrivenBeanMetaData merged = new JBossMessageDrivenBeanMetaData();
+ merged.merge(override, original);
+ sid = merged.getEjbTimeoutIdentity();
+ assertNotNull(sid);
+ runAs = sid.getRunAs();
+ assertNotNull(runAs);
+ assertEquals("role2", runAs.getRoleName());
+ assertEquals("principal1", sid.getRunAsPrincipal());
+ assertNotNull(sid.getUseCallerIdentity());
+ }
}
More information about the jboss-cvs-commits
mailing list