[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