[jboss-cvs] JBossAS SVN: r67941 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/annotation/ejb3 and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Dec 5 09:03:22 EST 2007


Author: wolfc
Date: 2007-12-05 09:03:22 -0500 (Wed, 05 Dec 2007)
New Revision: 67941

Added:
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/messagelistenerinterface/
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/messagelistenerinterface/UnknownMessageListenerInterfaceMDB.java
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testMessageDrivenBeanMerge.xml
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AroundInvokesMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MessageDrivenBeanMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java
Log:
JBAS-4506: merging of message driven bean

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AroundInvokesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AroundInvokesMetaData.java	2007-12-05 14:00:05 UTC (rev 67940)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AroundInvokesMetaData.java	2007-12-05 14:03:22 UTC (rev 67941)
@@ -23,6 +23,8 @@
 
 import java.util.ArrayList;
 
+import org.jboss.metadata.merge.MergeUtil;
+
 /**
  * AroundInvokesMetaData.
  * 
@@ -41,4 +43,9 @@
    {
       // For serialization
    }
+   
+   public void merge(AroundInvokesMetaData override, AroundInvokesMetaData original)
+   {
+      MergeUtil.merge(this, override, original);
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MessageDrivenBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MessageDrivenBeanMetaData.java	2007-12-05 14:00:05 UTC (rev 67940)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MessageDrivenBeanMetaData.java	2007-12-05 14:03:22 UTC (rev 67941)
@@ -355,4 +355,67 @@
          sd = SubscriptionDurability.Durable;
       this.setSubscriptionDurability(sd);
    }
+   
+   @Override
+   public void merge(EnterpriseBeanMetaData override, EnterpriseBeanMetaData original)
+   {
+      merge((MessageDrivenBeanMetaData) override, (MessageDrivenBeanMetaData) original);
+   }
+   
+   public void merge(MessageDrivenBeanMetaData override, MessageDrivenBeanMetaData original)
+   {
+      super.merge(override, original);
+      
+      if(override != null && override.acknowledgeMode != null)
+         this.acknowledgeMode = override.acknowledgeMode;
+      else if(original != null)
+         this.acknowledgeMode = original.acknowledgeMode;
+      
+      if((override != null && override.activationConfig != null) || (original != null && original.activationConfig != null))
+      {
+         activationConfig = new ActivationConfigMetaData();
+         activationConfig.merge(override != null ? override.activationConfig : null, original != null ? original.activationConfig : null);
+      }
+      
+      if((override != null && override.aroundInvokes != null) || (original != null && original.aroundInvokes != null))
+      {
+         aroundInvokes = new AroundInvokesMetaData();
+         aroundInvokes.merge(override != null ? override.aroundInvokes : null, original != null ? original.aroundInvokes : null);
+      }
+
+      if(override != null && override.messageDestinationLink != null)
+         this.messageDestinationLink = override.messageDestinationLink;
+      else if(original != null)
+         this.messageDestinationLink = original.messageDestinationLink;
+
+      if(override != null && override.messageDestinationType != null)
+         this.messageDestinationType = override.messageDestinationType;
+      else if(original != null)
+         this.messageDestinationType = original.messageDestinationType;
+
+      if(override != null && override.messageSelector != null)
+         this.messageSelector = override.messageSelector;
+      else if(original != null)
+         this.messageSelector = original.messageSelector;
+
+      if(override != null && override.messagingType != null)
+         this.messagingType = override.messagingType;
+      else if(original != null)
+         this.messagingType = original.messagingType;
+
+      if(override != null && override.subscriptionDurability != null)
+         this.subscriptionDurability = override.subscriptionDurability;
+      else if(original != null)
+         this.subscriptionDurability = original.subscriptionDurability;
+
+      if(override != null && override.timeoutMethod != null)
+         this.timeoutMethod = override.timeoutMethod;
+      else if(original != null)
+         this.timeoutMethod = original.timeoutMethod;
+
+      if(override != null && override.transactionType != null)
+         this.transactionType = override.transactionType;
+      else if(original != null)
+         this.transactionType = original.transactionType; 
+   }
 }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java	2007-12-05 14:00:05 UTC (rev 67940)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java	2007-12-05 14:03:22 UTC (rev 67941)
@@ -570,5 +570,37 @@
       AnnotationMergedView.merge(merged, specMetaData, metaData);
       ejbJar.assertEverythingWithAppMetaData(merged, Mode.SPEC);
    }
-}
-
+   
+   /**
+    * Test the merge of a MessageDrivenBeanMetaData.
+    * 
+    * @throws Exception
+    */
+   @ScanPackage("org.jboss.test.metadata.annotation.ejb3.messagelistenerinterface")
+   public void testMessageDrivenBeanMerge() throws Exception
+   {
+      // annotations define a MDB
+      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+      
+      Collection<Class<?>> classes = PackageScanner.loadClasses();
+      System.out.println("Processing classes: "+classes);
+      
+      EjbJar30Creator creator = new EjbJar30Creator(finder);
+      
+      EjbJar30MetaData metaData = creator.create(classes);
+      
+      // xml augments it with a messaging-interface
+      EjbJar3xMetaData specMetaData = unmarshal(EjbJar3xMetaData.class);
+      
+      EjbJar3xMetaData merged = new EjbJar30MetaData();
+      AnnotationMergedView.merge(merged, specMetaData, metaData);
+      
+      MessageDrivenBeanMetaData result = (MessageDrivenBeanMetaData) merged.getEnterpriseBean("UnknownMessageListenerInterfaceMDB");
+      assertEquals("javax.jms.MessageListener", result.getMessagingType());
+      ActivationConfigPropertiesMetaData activationConfigProperties = result.getActivationConfig().getActivationConfigProperties();
+      assertEquals(3, activationConfigProperties.size());
+      assertEquals("none", activationConfigProperties.get("dummy").getValue());
+      assertEquals("Auto-acknowledge", activationConfigProperties.get("acknowledgeMode").getValue());
+      assertEquals("javax.jms.Queue", activationConfigProperties.get("destinationType").getValue());
+   }
+}
\ No newline at end of file

Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/messagelistenerinterface/UnknownMessageListenerInterfaceMDB.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/messagelistenerinterface/UnknownMessageListenerInterfaceMDB.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/messagelistenerinterface/UnknownMessageListenerInterfaceMDB.java	2007-12-05 14:03:22 UTC (rev 67941)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.annotation.ejb3.messagelistenerinterface;
+
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.MessageDriven;
+
+/**
+ * This bean does not define a message listener interface or implement one,
+ * it must be augmented by xml.
+ *
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+ at MessageDriven(activationConfig =
+{@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
+      @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge")})
+public class UnknownMessageListenerInterfaceMDB
+{
+
+}


Property changes on: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/messagelistenerinterface/UnknownMessageListenerInterfaceMDB.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testMessageDrivenBeanMerge.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testMessageDrivenBeanMerge.xml	                        (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testMessageDrivenBeanMerge.xml	2007-12-05 14:03:22 UTC (rev 67941)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar version="3.0"
+   xmlns="http://java.sun.com/xml/ns/javaee"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
+   <enterprise-beans>
+      <message-driven>
+         <ejb-name>UnknownMessageListenerInterfaceMDB</ejb-name>
+         <messaging-type>javax.jms.MessageListener</messaging-type>
+         <activation-config>
+            <activation-config-property>
+               <activation-config-property-name>dummy</activation-config-property-name>
+               <activation-config-property-value>none</activation-config-property-value>
+            </activation-config-property>
+         </activation-config>
+      </message-driven>
+   </enterprise-beans>
+</ejb-jar>


Property changes on: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testMessageDrivenBeanMerge.xml
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native




More information about the jboss-cvs-commits mailing list