[jboss-cvs] JBossAS SVN: r74039 - 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
Tue Jun 3 18:00:17 EDT 2008
Author: alex.loubyansky at jboss.com
Date: 2008-06-03 18:00:16 -0400 (Tue, 03 Jun 2008)
New Revision: 74039
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossConsumerBeanMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MessagePropertiesMetaData.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossConsumerBeanOverrideUnitTestCase.java
Log:
JBMETA-49
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossConsumerBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossConsumerBeanMetaData.java 2008-06-03 21:47:21 UTC (rev 74038)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossConsumerBeanMetaData.java 2008-06-03 22:00:16 UTC (rev 74039)
@@ -22,6 +22,8 @@
package org.jboss.metadata.ejb.jboss;
import org.jboss.logging.Logger;
+
+import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
@@ -145,4 +147,91 @@
return null;
}
+ public void merge(JBossEnterpriseBeanMetaData overrideEjb, JBossEnterpriseBeanMetaData originalEjb)
+ {
+ super.merge(overrideEjb, originalEjb);
+
+ List<ProducerMetaData> originalProducers = null;
+ List<LocalProducerMetaData> originalLocalProducers = null;
+ List<MessagePropertiesMetaData> originalMsgProps = null;
+ MethodAttributesMetaData originalMsg = null;
+ JBossConsumerBeanMetaData original = (JBossConsumerBeanMetaData) originalEjb;
+ if(original != null)
+ {
+ if(original.destination != null)
+ destination = original.destination;
+ if(original.destinationType != null)
+ destinationType = original.destinationType;
+
+ originalMsg = original.currentMessage;
+ originalMsgProps = original.messageProperties;
+ originalProducers = original.producers;
+ originalLocalProducers = original.localProducers;
+ }
+
+ List<ProducerMetaData> overrideProducers = null;
+ List<LocalProducerMetaData> overrideLocalProducers = null;
+ List<MessagePropertiesMetaData> overrideMsgProps = null;
+ MethodAttributesMetaData overrideMsg = null;
+ JBossConsumerBeanMetaData override = (JBossConsumerBeanMetaData) overrideEjb;
+ if(override != null)
+ {
+ if(override.destination != null)
+ destination = override.destination;
+ if(override.destinationType != null)
+ destinationType = override.destinationType;
+
+ overrideMsg = override.currentMessage;
+ overrideMsg = override.currentMessage;
+ overrideMsgProps = override.messageProperties;
+ overrideProducers = override.producers;
+ overrideLocalProducers = override.localProducers;
+ }
+
+ if(originalMsg != null || overrideMsg != null)
+ {
+ if(currentMessage == null)
+ currentMessage = new MethodAttributesMetaData();
+ currentMessage.merge(overrideMsg, originalMsg);
+ }
+
+ if(overrideMsgProps != null)
+ {
+ if(messageProperties == null)
+ messageProperties = new ArrayList<MessagePropertiesMetaData>();
+ messageProperties.addAll(overrideMsgProps);
+ }
+ if(originalMsgProps != null)
+ {
+ if(messageProperties == null)
+ messageProperties = new ArrayList<MessagePropertiesMetaData>();
+ messageProperties.addAll(originalMsgProps);
+ }
+
+ if(overrideProducers != null)
+ {
+ if(producers == null)
+ producers = new ArrayList<ProducerMetaData>();
+ producers.addAll(overrideProducers);
+ }
+ if(originalProducers != null)
+ {
+ if(producers == null)
+ producers = new ArrayList<ProducerMetaData>();
+ producers.addAll(originalProducers);
+ }
+
+ if(overrideLocalProducers != null)
+ {
+ if(localProducers == null)
+ localProducers = new ArrayList<LocalProducerMetaData>();
+ localProducers.addAll(overrideLocalProducers);
+ }
+ if(originalLocalProducers != null)
+ {
+ if(localProducers == null)
+ localProducers = new ArrayList<LocalProducerMetaData>();
+ localProducers.addAll(originalLocalProducers);
+ }
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MessagePropertiesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MessagePropertiesMetaData.java 2008-06-03 21:47:21 UTC (rev 74038)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MessagePropertiesMetaData.java 2008-06-03 22:00:16 UTC (rev 74039)
@@ -89,5 +89,4 @@
sb.append("]");
return sb.toString();
}
-
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossConsumerBeanOverrideUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossConsumerBeanOverrideUnitTestCase.java 2008-06-03 21:47:21 UTC (rev 74038)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossConsumerBeanOverrideUnitTestCase.java 2008-06-03 22:00:16 UTC (rev 74039)
@@ -21,8 +21,16 @@
*/
package org.jboss.test.metadata.ejb;
+import java.util.ArrayList;
+import java.util.List;
+
import org.jboss.metadata.ejb.jboss.JBossConsumerBeanMetaData;
import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.LocalProducerMetaData;
+import org.jboss.metadata.ejb.jboss.MessagePropertiesMetaData;
+import org.jboss.metadata.ejb.jboss.MethodAttributeMetaData;
+import org.jboss.metadata.ejb.jboss.MethodAttributesMetaData;
+import org.jboss.metadata.ejb.jboss.ProducerMetaData;
/**
@@ -38,4 +46,268 @@
{
simplePropertiesTest(JBossConsumerBeanMetaData.class, JBossEnterpriseBeanMetaData.class, null);
}
+
+ public void testCurrentMessage() throws Exception
+ {
+ JBossConsumerBeanMetaData original = new JBossConsumerBeanMetaData();
+ original.setEjbName("consumer");
+
+ MethodAttributesMetaData curMsg = new MethodAttributesMetaData();
+ original.setCurrentMessage(curMsg);
+ MethodAttributeMetaData mAttr = new MethodAttributeMetaData();
+ mAttr.setMethodName("method1");
+ mAttr.setTransactionTimeout(1000);
+ curMsg.add(mAttr);
+ mAttr = new MethodAttributeMetaData();
+ mAttr.setMethodName("method2");
+ mAttr.setTransactionTimeout(2000);
+ curMsg.add(mAttr);
+
+ JBossConsumerBeanMetaData override = new JBossConsumerBeanMetaData();
+ override.setEjbName("consumer");
+ curMsg = new MethodAttributesMetaData();
+ override.setCurrentMessage(curMsg);
+ mAttr = new MethodAttributeMetaData();
+ mAttr.setMethodName("method2");
+ mAttr.setTransactionTimeout(2500);
+ curMsg.add(mAttr);
+ mAttr = new MethodAttributeMetaData();
+ mAttr.setMethodName("method3");
+ mAttr.setTransactionTimeout(3000);
+ curMsg.add(mAttr);
+
+ JBossConsumerBeanMetaData merged = new JBossConsumerBeanMetaData();
+ merged.merge(override, original);
+ curMsg = merged.getCurrentMessage();
+ assertNotNull(curMsg);
+ mAttr = curMsg.get("method1");
+ assertNotNull(mAttr);
+ assertEquals(1000, mAttr.getTransactionTimeout());
+ mAttr = curMsg.get("method2");
+ assertNotNull(mAttr);
+ assertEquals(2500, mAttr.getTransactionTimeout());
+ mAttr = curMsg.get("method3");
+ assertNotNull(mAttr);
+ assertEquals(3000, mAttr.getTransactionTimeout());
+ }
+
+ public void testMessageProperties() throws Exception
+ {
+ JBossConsumerBeanMetaData original = new JBossConsumerBeanMetaData();
+ original.setEjbName("consumer");
+
+ List<MessagePropertiesMetaData> msgProps = new ArrayList<MessagePropertiesMetaData>();
+ original.setMessageProperties(msgProps);
+ MessagePropertiesMetaData msgProp = new MessagePropertiesMetaData();
+ msgProp.setClassName("class1");
+ msgProp.setDelivery("NonPersistent");
+ msgProp.setPriority(1);
+ MethodAttributeMetaData method = new MethodAttributeMetaData();
+ method.setMethodName("method1");
+ method.setIdempotent(false);
+ method.setReadOnly(false);
+ method.setTransactionTimeout(1000);
+ msgProp.setMethod(method);
+ msgProps.add(msgProp);
+ msgProp = new MessagePropertiesMetaData();
+ msgProp.setClassName("class2");
+ msgProp.setDelivery("NonPersistent");
+ msgProp.setPriority(1);
+ method = new MethodAttributeMetaData();
+ method.setMethodName("method2");
+ method.setIdempotent(false);
+ method.setReadOnly(false);
+ method.setTransactionTimeout(1000);
+ msgProps.add(msgProp);
+ msgProp.setMethod(method);
+
+ JBossConsumerBeanMetaData override = new JBossConsumerBeanMetaData();
+ override.setEjbName("consumer");
+
+ msgProps = new ArrayList<MessagePropertiesMetaData>();
+ override.setMessageProperties(msgProps);
+ msgProp = new MessagePropertiesMetaData();
+ msgProp.setClassName("class2");
+ msgProp.setDelivery("Persistent");
+ msgProp.setPriority(2);
+ method = new MethodAttributeMetaData();
+ method.setMethodName("method2");
+ method.setIdempotent(true);
+ method.setReadOnly(true);
+ method.setTransactionTimeout(2000);
+ msgProp.setMethod(method);
+ msgProps.add(msgProp);
+ msgProp = new MessagePropertiesMetaData();
+ msgProp.setClassName("class3");
+ msgProp.setDelivery("Persistent");
+ msgProp.setPriority(3);
+ method = new MethodAttributeMetaData();
+ method.setMethodName("method3");
+ method.setIdempotent(true);
+ method.setReadOnly(true);
+ method.setTransactionTimeout(3000);
+ msgProp.setMethod(method);
+ msgProps.add(msgProp);
+
+ JBossConsumerBeanMetaData merged = new JBossConsumerBeanMetaData();
+ merged.merge(override, original);
+ msgProps = merged.getMessageProperties();
+ assertNotNull(msgProps);
+ // shouldn't it be 3?
+ assertEquals(4, msgProps.size());
+
+ msgProp = msgProps.get(0);
+ assertNotNull(msgProp);
+ assertEquals("class2", msgProp.getClassName());
+ assertEquals("Persistent", msgProp.getDelivery());
+ assertEquals(new Integer(2), msgProp.getPriority());
+ method = msgProp.getMethod();
+ assertNotNull(method);
+ assertEquals("method2", method.getMethodName());
+ assertEquals(2000, method.getTransactionTimeout());
+ assertTrue(method.isIdempotent());
+ assertTrue(method.isReadOnly());
+
+ msgProp = msgProps.get(1);
+ assertNotNull(msgProp);
+ assertEquals("class3", msgProp.getClassName());
+ assertEquals("Persistent", msgProp.getDelivery());
+ assertEquals(new Integer(3), msgProp.getPriority());
+ method = msgProp.getMethod();
+ assertNotNull(method);
+ assertEquals("method3", method.getMethodName());
+ assertEquals(3000, method.getTransactionTimeout());
+ assertTrue(method.isIdempotent());
+ assertTrue(method.isReadOnly());
+
+ msgProp = msgProps.get(2);
+ assertNotNull(msgProp);
+ assertEquals("class1", msgProp.getClassName());
+ assertEquals("NonPersistent", msgProp.getDelivery());
+ assertEquals(new Integer(1), msgProp.getPriority());
+ method = msgProp.getMethod();
+ assertNotNull(method);
+ assertEquals("method1", method.getMethodName());
+ assertEquals(1000, method.getTransactionTimeout());
+ assertFalse(method.isIdempotent());
+ assertFalse(method.isReadOnly());
+
+ msgProp = msgProps.get(3);
+ assertNotNull(msgProp);
+ assertEquals("class2", msgProp.getClassName());
+ assertEquals("NonPersistent", msgProp.getDelivery());
+ assertEquals(new Integer(1), msgProp.getPriority());
+ method = msgProp.getMethod();
+ assertNotNull(method);
+ assertEquals("method2", method.getMethodName());
+ assertEquals(1000, method.getTransactionTimeout());
+ assertFalse(method.isIdempotent());
+ assertFalse(method.isReadOnly());
+ }
+
+ public void testProducers() throws Exception
+ {
+ JBossConsumerBeanMetaData original = new JBossConsumerBeanMetaData();
+ original.setEjbName("consumer");
+
+ List<ProducerMetaData> producers = new ArrayList<ProducerMetaData>();
+ original.setProducers(producers);
+ ProducerMetaData producer = new ProducerMetaData();
+ producer.setClassName("class1");
+ producer.setConnectionFactory("factory1");
+ producers.add(producer);
+ producer = new ProducerMetaData();
+ producer.setClassName("class2");
+ producer.setConnectionFactory("factory2");
+ producers.add(producer);
+
+ JBossConsumerBeanMetaData override = new JBossConsumerBeanMetaData();
+ override.setEjbName("consumer");
+ producers = new ArrayList<ProducerMetaData>();
+ override.setProducers(producers);
+ producer = new ProducerMetaData();
+ producer.setClassName("class2");
+ producer.setConnectionFactory("factory3");
+ producers.add(producer);
+ producer = new ProducerMetaData();
+ producer.setClassName("class3");
+ producer.setConnectionFactory("factory3");
+ producers.add(producer);
+
+ JBossConsumerBeanMetaData merged = new JBossConsumerBeanMetaData();
+ merged.merge(override, original);
+ producers = merged.getProducers();
+ assertNotNull(producers);
+ assertEquals(4, producers.size());
+
+ producer = producers.get(0);
+ assertNotNull(producer);
+ assertEquals("class2", producer.getClassName());
+ assertEquals("factory3", producer.getConnectionFactory());
+ producer = producers.get(1);
+ assertNotNull(producer);
+ assertEquals("class3", producer.getClassName());
+ assertEquals("factory3", producer.getConnectionFactory());
+ producer = producers.get(2);
+ assertNotNull(producer);
+ assertEquals("class1", producer.getClassName());
+ assertEquals("factory1", producer.getConnectionFactory());
+ producer = producers.get(3);
+ assertNotNull(producer);
+ assertEquals("class2", producer.getClassName());
+ assertEquals("factory2", producer.getConnectionFactory());
+ }
+
+ public void testLocalProducers() throws Exception
+ {
+ JBossConsumerBeanMetaData original = new JBossConsumerBeanMetaData();
+ original.setEjbName("consumer");
+
+ List<LocalProducerMetaData> producers = new ArrayList<LocalProducerMetaData>();
+ original.setLocalProducers(producers);
+ LocalProducerMetaData producer = new LocalProducerMetaData();
+ producer.setClassName("class1");
+ producer.setConnectionFactory("factory1");
+ producers.add(producer);
+ producer = new LocalProducerMetaData();
+ producer.setClassName("class2");
+ producer.setConnectionFactory("factory2");
+ producers.add(producer);
+
+ JBossConsumerBeanMetaData override = new JBossConsumerBeanMetaData();
+ override.setEjbName("consumer");
+ producers = new ArrayList<LocalProducerMetaData>();
+ override.setLocalProducers(producers);
+ producer = new LocalProducerMetaData();
+ producer.setClassName("class2");
+ producer.setConnectionFactory("factory3");
+ producers.add(producer);
+ producer = new LocalProducerMetaData();
+ producer.setClassName("class3");
+ producer.setConnectionFactory("factory3");
+ producers.add(producer);
+
+ JBossConsumerBeanMetaData merged = new JBossConsumerBeanMetaData();
+ merged.merge(override, original);
+ producers = merged.getLocalProducers();
+ assertNotNull(producers);
+ assertEquals(4, producers.size());
+
+ producer = producers.get(0);
+ assertNotNull(producer);
+ assertEquals("class2", producer.getClassName());
+ assertEquals("factory3", producer.getConnectionFactory());
+ producer = producers.get(1);
+ assertNotNull(producer);
+ assertEquals("class3", producer.getClassName());
+ assertEquals("factory3", producer.getConnectionFactory());
+ producer = producers.get(2);
+ assertNotNull(producer);
+ assertEquals("class1", producer.getClassName());
+ assertEquals("factory1", producer.getConnectionFactory());
+ producer = producers.get(3);
+ assertNotNull(producer);
+ assertEquals("class2", producer.getClassName());
+ assertEquals("factory2", producer.getConnectionFactory());
+ }
}
More information about the jboss-cvs-commits
mailing list