[jboss-cvs] JBossAS SVN: r66953 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/ejb/spec and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Nov 12 06:43:56 EST 2007
Author: adrian at jboss.org
Date: 2007-11-12 06:43:56 -0500 (Mon, 12 Nov 2007)
New Revision: 66953
Added:
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeActivationConfigUnitTestCase.java
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar21MergeActivationConfig.xml
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar3xMergeActivationConfig.xml
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss5xMergeActivationConfig.xml
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/ActivationConfigMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/ActivationConfigPropertiesMetaData.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EJBMetaDataTestSuite.java
Log:
[JBAS-4958] - Merge activation config properties
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 2007-11-12 11:05:41 UTC (rev 66952)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java 2007-11-12 11:43:56 UTC (rev 66953)
@@ -583,11 +583,19 @@
messageDestinationLink = joverride.messageDestinationLink;
else if(soriginal != null && soriginal.getMessageDestinationLink() != null)
messageDestinationLink = soriginal.getMessageDestinationLink();
- // activationConfig
- if(joverride != null && joverride.activationConfig != null)
- activationConfig = joverride.activationConfig;
- else if(soriginal != null && soriginal.getActivationConfig() != null)
- activationConfig = soriginal.getActivationConfig();
+ // Fixup the activation config
+ ActivationConfigMetaData jbossActivationConfig = null;
+ if (joverride != null && joverride.getActivationConfig() != null)
+ jbossActivationConfig = joverride.getActivationConfig();
+ ActivationConfigMetaData originalActivationConfig = null;
+ if(soriginal != null)
+ originalActivationConfig = soriginal.getActivationConfig();
+ if(jbossActivationConfig != null || originalActivationConfig != null)
+ {
+ if(activationConfig == null)
+ activationConfig = new ActivationConfigMetaData();
+ activationConfig.merge(jbossActivationConfig, originalActivationConfig);
+ }
// aroundInvokes
if(joverride != null && joverride.aroundInvokes != null)
aroundInvokes = joverride.aroundInvokes;
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/ActivationConfigMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/ActivationConfigMetaData.java 2007-11-12 11:05:41 UTC (rev 66952)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/ActivationConfigMetaData.java 2007-11-12 11:43:56 UTC (rev 66953)
@@ -71,4 +71,29 @@
throw new IllegalArgumentException("Null activationConfigProperties");
this.activationConfigProperties = activationConfigProperties;
}
+
+ public void merge(ActivationConfigMetaData override, ActivationConfigMetaData original)
+ {
+ super.merge(override, original);
+ ActivationConfigPropertiesMetaData propertyOverride = null;
+ if (override != null)
+ propertyOverride = override.getActivationConfigProperties();
+ ActivationConfigPropertiesMetaData propertyOriginal = null;
+ if (original != null)
+ propertyOriginal = original.getActivationConfigProperties();
+ if (propertyOverride == null || propertyOverride.isEmpty())
+ {
+ if (propertyOriginal != null)
+ activationConfigProperties = propertyOriginal;
+ return;
+ }
+ if (propertyOriginal == null || propertyOriginal.isEmpty())
+ {
+ if (propertyOverride != null)
+ activationConfigProperties = propertyOverride;
+ return;
+ }
+ activationConfigProperties = new ActivationConfigPropertiesMetaData();
+ activationConfigProperties.merge(propertyOverride, propertyOriginal);
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/ActivationConfigPropertiesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/ActivationConfigPropertiesMetaData.java 2007-11-12 11:05:41 UTC (rev 66952)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/ActivationConfigPropertiesMetaData.java 2007-11-12 11:43:56 UTC (rev 66953)
@@ -41,4 +41,19 @@
{
super("activation config property name");
}
+
+ public void merge(ActivationConfigPropertiesMetaData override, ActivationConfigPropertiesMetaData original)
+ {
+ super.merge(override, original);
+ if (original != null)
+ {
+ for (ActivationConfigPropertyMetaData property : original)
+ add(property);
+ }
+ if (override != null)
+ {
+ for (ActivationConfigPropertyMetaData property : override)
+ add(property);
+ }
+ }
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EJBMetaDataTestSuite.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EJBMetaDataTestSuite.java 2007-11-12 11:05:41 UTC (rev 66952)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EJBMetaDataTestSuite.java 2007-11-12 11:43:56 UTC (rev 66953)
@@ -51,6 +51,7 @@
suite.addTest(JBoss5xEverythingUnitTestCase.suite());
suite.addTest(EjbJarJBossMergeEverythingUnitTestCase.suite());
suite.addTest(JBoss42UnitTestCase.suite());
+ suite.addTest(EjbJarJBossMergeActivationConfigUnitTestCase.suite());
//suite.addTest(JBossCMPUnitTestCase.suite());
//suite.addTest(JBossCMPMergeUnitTestCase.suite());
Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeActivationConfigUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeActivationConfigUnitTestCase.java (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeActivationConfigUnitTestCase.java 2007-11-12 11:43:56 UTC (rev 66953)
@@ -0,0 +1,107 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb;
+
+import junit.framework.Test;
+
+import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
+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.EjbJar21MetaData;
+import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
+import org.jboss.metadata.ejb.spec.EjbJar3xMetaData;
+import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+
+/**
+ *
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+public class EjbJarJBossMergeActivationConfigUnitTestCase
+ extends AbstractEJBEverythingTest
+{
+ public static Test suite()
+ {
+ return suite(EjbJarJBossMergeActivationConfigUnitTestCase.class);
+ }
+
+ public static SchemaBindingResolver initResolver()
+ {
+ DefaultSchemaResolver resolver = new DefaultSchemaResolver();
+ resolver.addClassBindingForLocation("ejb-jar_2_1.xsd", EjbJar21MetaData.class);
+ resolver.addClassBindingForLocation("ejb-jar_3_0.xsd", EjbJar30MetaData.class);
+ resolver.addClassBindingForLocation("jboss_5_0.xsd", JBoss50MetaData.class);
+ resolver.addClassBinding("http://www.jboss.com/xml/ns/javaee", JBoss50MetaData.class);
+ return resolver;
+ }
+
+ public EjbJarJBossMergeActivationConfigUnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void testEJB3xMergeActivationConfig() throws Exception
+ {
+ EjbJar3xMetaData ejbJarMetaData = unmarshal("EjbJar3xMergeActivationConfig.xml", EjbJar30MetaData.class, null);
+ JBoss50MetaData jbossMetaData = unmarshal("JBoss5xMergeActivationConfig.xml", JBoss50MetaData.class, null);
+ jbossMetaData.merge(jbossMetaData, ejbJarMetaData);
+ testMergeActivationConfig(jbossMetaData);
+ }
+
+ public void testEJB21MergeActivationConfig() throws Exception
+ {
+ EjbJar21MetaData ejbJarMetaData = unmarshal("EjbJar21MergeActivationConfig.xml", EjbJar21MetaData.class, null);
+ JBoss50MetaData jbossMetaData = unmarshal("JBoss5xMergeActivationConfig.xml", JBoss50MetaData.class, null);
+ jbossMetaData.merge(jbossMetaData, ejbJarMetaData);
+ testMergeActivationConfig(jbossMetaData);
+ }
+
+ protected void testMergeActivationConfig(JBoss50MetaData jbossMetaData)
+ {
+ JBossEnterpriseBeanMetaData enterpriseBeanMetaData = jbossMetaData.getEnterpriseBean("testmdb");
+ assertNotNull(enterpriseBeanMetaData);
+ assertTrue(enterpriseBeanMetaData.isMessageDriven());
+ JBossMessageDrivenBeanMetaData messageDrivenBeanMetaData = (JBossMessageDrivenBeanMetaData) enterpriseBeanMetaData;
+ ActivationConfigMetaData activationConfigMetaData = messageDrivenBeanMetaData.getActivationConfig();
+ assertNotNull(activationConfigMetaData);
+ ActivationConfigPropertiesMetaData properties = activationConfigMetaData.getActivationConfigProperties();
+ assertNotNull(properties);
+ assertEquals(6, properties.size());
+ assertProperty(properties, "ejbjar1", "FromEJBJAR1");
+ assertProperty(properties, "ejbjar2", "FromEJBJAR2");
+ assertProperty(properties, "jboss1", "FromJBoss1");
+ assertProperty(properties, "jboss2", "FromJBoss2");
+ assertProperty(properties, "shared1", "FromJBossShared1");
+ assertProperty(properties, "shared2", "FromJBossShared2");
+ }
+
+ protected void assertProperty(ActivationConfigPropertiesMetaData properties, String key, String value)
+ {
+ ActivationConfigPropertyMetaData property = properties.get(key);
+ assertNotNull("Expected property: " + key, property);
+ assertEquals(value, property.getValue());
+ }
+}
Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar21MergeActivationConfig.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar21MergeActivationConfig.xml (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar21MergeActivationConfig.xml 2007-11-12 11:43:56 UTC (rev 66953)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Id -->
+<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
+ version="2.1">
+
+ <enterprise-beans>
+
+ <message-driven>
+ <ejb-name>testmdb</ejb-name>
+ <activation-config>
+ <activation-config-property>
+ <activation-config-property-name>ejbjar1</activation-config-property-name>
+ <activation-config-property-value>FromEJBJAR1</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>ejbjar2</activation-config-property-name>
+ <activation-config-property-value>FromEJBJAR2</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>shared1</activation-config-property-name>
+ <activation-config-property-value>FromEJBJARShared1</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>shared2</activation-config-property-name>
+ <activation-config-property-value>FromEJBJARShared2</activation-config-property-value>
+ </activation-config-property>
+ </activation-config>
+ </message-driven>
+
+ </enterprise-beans>
+
+</ejb-jar>
Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar3xMergeActivationConfig.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar3xMergeActivationConfig.xml (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar3xMergeActivationConfig.xml 2007-11-12 11:43:56 UTC (rev 66953)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar 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"
+ version="3.0"
+ metadata-complete="true">
+
+ <enterprise-beans>
+
+ <message-driven>
+ <ejb-name>testmdb</ejb-name>
+ <activation-config>
+ <activation-config-property>
+ <activation-config-property-name>ejbjar1</activation-config-property-name>
+ <activation-config-property-value>FromEJBJAR1</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>ejbjar2</activation-config-property-name>
+ <activation-config-property-value>FromEJBJAR2</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>shared1</activation-config-property-name>
+ <activation-config-property-value>FromEJBJARShared1</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>shared2</activation-config-property-name>
+ <activation-config-property-value>FromEJBJARShared2</activation-config-property-value>
+ </activation-config-property>
+ </activation-config>
+ </message-driven>
+
+ </enterprise-beans>
+
+</ejb-jar>
\ No newline at end of file
Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss5xMergeActivationConfig.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss5xMergeActivationConfig.xml (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss5xMergeActivationConfig.xml 2007-11-12 11:43:56 UTC (rev 66953)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Id: JBoss5xEverything_testEverything.xml 66795 2007-11-06 18:37:23Z bstansberry at jboss.com $ -->
+
+<jboss xmlns="http://www.jboss.com/xml/ns/javaee"
+ xmlns:jee="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss_5_0.xsd"
+ version="5.0">
+
+ <enterprise-beans>
+
+ <message-driven>
+ <ejb-name>testmdb</ejb-name>
+ <activation-config>
+ <activation-config-property>
+ <activation-config-property-name>jboss1</activation-config-property-name>
+ <activation-config-property-value>FromJBoss1</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>jboss2</activation-config-property-name>
+ <activation-config-property-value>FromJBoss2</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>shared1</activation-config-property-name>
+ <activation-config-property-value>FromJBossShared1</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>shared2</activation-config-property-name>
+ <activation-config-property-value>FromJBossShared2</activation-config-property-value>
+ </activation-config-property>
+ </activation-config>
+ </message-driven>
+
+ </enterprise-beans>
+
+</jboss>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list