[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