|
From: Vance K. <va...@us...> - 2007-02-11 14:06:45
|
User: vancek
Date: 07/02/11 06:06:39
Modified: andromda-ejb3/src/main/resources/templates/ejb3/test
EJB3Container.vsl testng.xml.vsl
andromda-ejb3/src/main/resources/META-INF/andromda
namespace.xml metafacades.xml cartridge.xml
andromda-ejb3/src/test/expected cartridge-output.zip
andromda-ejb3/src/site changes.xml
andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades
EJB3SessionFacadeLogicImpl.java
EJB3MessageDrivenFacadeLogicImpl.java
andromda-ejb3/src/main/uml EJB3MetafacadeModel.xml.zip
Added: andromda-ejb3/src/main/resources/templates/ejb3/test
testjms.xml.vsl MessageDrivenTest.vsl
Log:
add MDB test within embeddable container
Revision Changes Path
1.2 +33 -23 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/test/EJB3Container.vsl
Index: EJB3Container.vsl
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/test/EJB3Container.vsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- EJB3Container.vsl 4 Feb 2007 02:45:07 -0000 1.1
+++ EJB3Container.vsl 11 Feb 2007 14:06:32 -0000 1.2
@@ -47,33 +47,43 @@
// Boot the JBoss Microcontainer with EJB3 settings, loads ejb3-interceptors-aop.xml
EJB3StandaloneBootstrap.boot(null);
- logger.info("==>Deploying embedded-jboss-beans");
- // Deploy CaveatEmptor beans (datasource, mostly)
- //EJB3StandaloneBootstrap.deployXmlResource("embedded-jboss-beans.xml");
- //EJB3StandaloneBootstrap.deployXmlResource("ejb3-interceptors-aop.xml");
- //EJB3StandaloneBootstrap.deployXmlResource("jboss-jms-beans.xml");
- logger.info("==>Deployed embedded-jboss-beans");
-
#if ($stringUtils.isNotBlank(${securityRealm}))
logger.info("==>Deploying security-beans");
EJB3StandaloneBootstrap.deployXmlResource("security-beans.xml");
logger.info("==>Deployed security-beans");
+
#else
- /**
- * Uncomment the following to enable security
- *
- * logger.info("==>Deploying security-beans");
- * EJB3StandaloneBootstrap.deployXmlResource("security-beans.xml");
- * logger.info("==>Deployed security-beans");
- */
+// Uncomment the following to enable security
+// logger.info("==>Deploying security-beans");
+// EJB3StandaloneBootstrap.deployXmlResource("security-beans.xml");
+// logger.info("==>Deployed security-beans");
+
#end
+#if (!$mdbs.empty())
+ logger.info("==>Deploying jboss-jms-beans - init JBoss MQ core services");
+ EJB3StandaloneBootstrap.deployXmlResource("jboss-jms-beans.xml");
+ logger.info("==>Deployed jboss-jms-beans");
+
+ logger.info("==>Configure test queue and topic");
+ EJB3StandaloneBootstrap.deployXmlResource("testjms.xml");
+ logger.info("==>Configured test queues and topics");
+#else
+// logger.info("==>Deploying jboss-jms-beans - init JBoss MQ core services");
+// EJB3StandaloneBootstrap.deployXmlResource("jboss-jms-beans.xml");
+// logger.info("==>Deployed jboss-jms-beans");
+
+// logger.info("==>Configure test queue and topic");
+// EJB3StandaloneBootstrap.deployXmlResource("testjms.xml");
+// logger.info("==>Configured test queues and topics");
+
+#end
+ logger.info("==>Deploying ejb3");
EJB3StandaloneBootstrap.scanClasspath();
// Add all EJBs found in the archive that has this file
deployer = new EJB3StandaloneDeployer();
- logger.info("==>Deploying ejb3");
// Deploy everything we got
deployer.setKernel(EJB3StandaloneBootstrap.getKernel());
deployer.create();
1.3 +5 -2 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/test/testng.xml.vsl
Index: testng.xml.vsl
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/test/testng.xml.vsl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- testng.xml.vsl 9 Feb 2007 01:52:07 -0000 1.2
+++ testng.xml.vsl 11 Feb 2007 14:06:33 -0000 1.3
@@ -1,7 +1,7 @@
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
-<suite name="TimeTracker Test Suite" verbose="2" parallel="false">
- <test name="Services Test">
+<suite name="${entityManagerName} Test Suite" verbose="2" parallel="false">
+ <test name="${entityManagerName} Services Test">
<classes>
#if($stringUtils.isNotEmpty($ejb3TypesPackage))
#**##set ($testPackage = "${ejb3TypesPackage}.test.")
@@ -15,6 +15,9 @@
#foreach ($service in $services)
<class name="${service.fullyQualifiedServiceTestName}"/>
#end
+#foreach ($mdb in $mdbs)
+ <class name="${mdb.fullyQualifiedMessageDrivenTestName}"/>
+#end
</classes>
</test>
</suite>
1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/test/testjms.xml.vsl
Index: testjms.xml.vsl
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
xmlns="urn:jboss:bean-deployer">
#foreach ($mdb in $mdbs)
#**##if ($mdb.destinationTypeQueue)
<bean name="jboss.mq.destination:service=Queue,name=${mdb.messageDrivenName}" class="org.jboss.mq.kernel.Queue">
<property name="destinationManagerPojo"><inject bean="jboss.mq:service=DestinationManager"/></property>
<property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
<property name="destinationName">${mdb.messageDrivenName}</property>
<property name="JNDIName">${mdb.destination}</property>
</bean>
#**##elseif ($mdb.destinationTypeTopic)
<bean name="jboss.mq.destination:service=Topic,name=${mdb.messageDrivenName}" class="org.jboss.mq.kernel.Topic">
<property name="destinationManagerPojo"><inject bean="jboss.mq:service=DestinationManager"/></property>
<property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
<property name="destinationName">${mdb.messageDrivenName}</property>
<property name="JNDIName">${mdb.destination}</property>
</bean>
#**##end
#end
</deployment>
1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/test/MessageDrivenTest.vsl
Index: MessageDrivenTest.vsl
===================================================================
// license-header java merge-point
//
// Generated by: MessageDrivenTest.vsl in andromda-ejb3-cartridge.
//
#if ($stringUtils.isNotBlank($mdb.testPackageName))
package $mdb.testPackageName;
#end
#set ($generatedFile = "${stringUtils.replace($mdb.fullyQualifiedMessageDrivenTestName,'.','/')}.java")
#if($stringUtils.isNotEmpty($ejb3TypesPackage))
#**##set ($testPackage = "${ejb3TypesPackage}.test.")
#else
#**##set ($testPackage = "")
#end
import ${testPackage}EJB3Container;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Message Driven test class ${mdb.messageDrivenTestName} for testing with TestNG
* Check the testng.xml for initialisation of the EJB3Container before running any tests.
*/
public class $mdb.messageDrivenTestName
{
private static final Log logger = LogFactory.getLog(${mdb.messageDrivenTestName}.class);
@org.testng.annotations.Test
public void test${mdb.name}()
{
// try
// {
#if ($mdb.destinationTypeQueue)
// javax.jms.QueueConnection cnn = null;
// javax.jms.QueueSender sender = null;
// javax.jms.QueueSession session = null;
//
// javax.jms.Queue queue = (javax.jms.Queue)EJB3Container.getInitialContext().lookup("${mdb.destination}");
// javax.jms.QueueConnectionFactory factory = (javax.jms.QueueConnectionFactory)EJB3Container.getInitialContext().lookup("java:/ConnectionFactory");
// cnn = factory.createQueueConnection();
// session = cnn.createQueueSession(false, javax.jms.QueueSession.AUTO_ACKNOWLEDGE);
//
// javax.jms.TextMessage msg = session.createTextMessage("Test Message");
//
// sender = session.createSender(queue);
// sender.send(msg);
//
// Thread.sleep(1000);
// session.close();
// cnn.close();
#elseif ($mdb.destinationTypeTopic)
// javax.jms.TopicConnection cnn = null;
// javax.jms.TopicPublisher sender = null;
// javax.jms.TopicSession session = null;
//
// javax.jms.Topic topic = (javax.jms.Topic)EJB3Container.getInitialContext().lookup("${mdb.destination}");
// javax.jms.TopicConnectionFactory factory = (javax.jms.TopicConnectionFactory)EJB3Container.getInitialContext().lookup("java:/ConnectionFactory");
// cnn = factory.createTopicConnection();
// session = cnn.createTopicSession(false, javax.jms.TopicSession.AUTO_ACKNOWLEDGE);
//
// TextMessage msg = session.createTextMessage("Test Message");
//
// sender = session.createPublisher(topic);
// sender.send(msg);
//
// Thread.sleep(1000);
// session.close();
// cnn.close();
#end
// }
// catch (Exception ex)
// {
// logger.warn("Failed test ${mdb.messageDrivenTestName}", ex);
// }
}
}
1.35 +14 -0 cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/namespace.xml
Index: namespace.xml
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/namespace.xml,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -w -r1.34 -r1.35
--- namespace.xml 4 Feb 2007 02:45:07 -0000 1.34
+++ namespace.xml 11 Feb 2007 14:06:34 -0000 1.35
@@ -533,6 +533,20 @@
bean implementation class name.
</documentation>
</property>
+ <property name="messageDrivenTestNamePattern">
+ <default>{0}Test</default>
+ <documentation>
+ The pattern to use when constructing the message driven bean
+ test class name.
+ </documentation>
+ </property>
+ <property name="messageDrivenTestPackageNamePattern">
+ <default>{0}.test</default>
+ <documentation>
+ The pattern to use when constructing the package for
+ the message driven bean test class.
+ </documentation>
+ </property>
<property name="interceptorNamePattern">
<default>{0}</default>
<documentation>
1.29 +2 -0 cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/metafacades.xml
Index: metafacades.xml
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/metafacades.xml,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -w -r1.28 -r1.29
--- metafacades.xml 4 Feb 2007 02:45:07 -0000 1.28
+++ metafacades.xml 11 Feb 2007 14:06:34 -0000 1.29
@@ -208,6 +208,8 @@
<property reference="messageDrivenImplementationNamePattern"/>
<property reference="messageDrivenListenerNamePattern"/>
<property reference="messageDrivenDestinationType"/>
+ <property reference="messageDrivenTestNamePattern"/>
+ <property reference="messageDrivenTestPackageNamePattern"/>
</metafacade>
<metafacade class="org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenOperationFacadeLogicImpl">
<mapping>
1.34 +32 -0 cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/cartridge.xml
Index: cartridge.xml
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/cartridge.xml,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -w -r1.33 -r1.34
--- cartridge.xml 4 Feb 2007 02:45:07 -0000 1.33
+++ cartridge.xml 11 Feb 2007 14:06:34 -0000 1.34
@@ -710,6 +710,23 @@
<modelElement variable="services">
<type name="org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade"/>
</modelElement>
+ <modelElement variable="mdbs">
+ <type name="org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade"/>
+ </modelElement>
+ </modelElements>
+ </template>
+
+ <template
+ path="templates/ejb3/test/testjms.xml.vsl"
+ outputPattern="testjms.xml"
+ outlet="test-config"
+ overwrite="true"
+ outputToSingleFile="true"
+ outputOnEmptyElements="false">
+ <modelElements>
+ <modelElement variable="mdbs">
+ <type name="org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade"/>
+ </modelElement>
</modelElements>
</template>
@@ -724,6 +741,9 @@
<modelElement variable="services">
<type name="org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade"/>
</modelElement>
+ <modelElement variable="mdbs">
+ <type name="org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade"/>
+ </modelElement>
</modelElements>
</template>
@@ -739,6 +759,18 @@
</modelElements>
</template>
+ <template
+ path="templates/ejb3/test/MessageDrivenTest.vsl"
+ outputPattern="$generatedFile"
+ outlet="test-impls"
+ overwrite="false">
+ <modelElements variable="mdb">
+ <modelElement>
+ <type name="org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade"/>
+ </modelElement>
+ </modelElements>
+ </template>
+
<!-- Microcontainer templates -->
<template
1.3 +454 -451 cartridges/andromda-ejb3/src/test/expected/cartridge-output.zip
<<Binary file>>
1.8 +3 -0 cartridges/andromda-ejb3/src/site/changes.xml
Index: changes.xml
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/site/changes.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -w -r1.7 -r1.8
--- changes.xml 7 Feb 2007 04:28:44 -0000 1.7
+++ changes.xml 11 Feb 2007 14:06:37 -0000 1.8
@@ -370,6 +370,9 @@
<action dev="vancek" type="fix">
Finally added cartridge tests!
</action>
+ <action dev="vancek" type="add">
+ Add support for MDB testing within embedded EJB3 container. Further customised test templates.
+ </action>
</release>
</body>
</document>
\ No newline at end of file
1.21 +1 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3SessionFacadeLogicImpl.java
Index: EJB3SessionFacadeLogicImpl.java
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3SessionFacadeLogicImpl.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -w -r1.20 -r1.21
--- EJB3SessionFacadeLogicImpl.java 4 Feb 2007 02:45:06 -0000 1.20
+++ EJB3SessionFacadeLogicImpl.java 11 Feb 2007 14:06:37 -0000 1.21
@@ -78,6 +78,7 @@
* The property which stores the pattern defining the service test package
*/
private static final String SERVICE_TEST_PACKAGE_NAME_PATTERN = "serviceTestPackageNamePattern";
+
/**
* The property which stores the pattern defining the default service bean
* exception class name.
1.12 +45 -1 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3MessageDrivenFacadeLogicImpl.java
Index: EJB3MessageDrivenFacadeLogicImpl.java
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3MessageDrivenFacadeLogicImpl.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -w -r1.11 -r1.12
--- EJB3MessageDrivenFacadeLogicImpl.java 17 Jan 2007 00:50:55 -0000 1.11
+++ EJB3MessageDrivenFacadeLogicImpl.java 11 Feb 2007 14:06:37 -0000 1.12
@@ -48,6 +48,16 @@
*/
private static final String MESSAGE_DRIVEN_IMPLEMENTATION_NAME_PATTERN = "messageDrivenImplementationNamePattern";
+ /**
+ * The property which stores the pattern defining the JMS message driven bean test class name
+ */
+ private static final String MESSAGE_DRIVEN_TEST_NAME_PATTERN = "messageDrivenTestNamePattern";
+
+ /**
+ * The property which stores the pattern defining the JMS message driven bean test package
+ */
+ private static final String MESSAGE_DRIVEN_TEST_PACKAGE_NAME_PATTERN = "messageDrivenTestPackageNamePattern";
+
// ---------------- constructor -------------------------------
public EJB3MessageDrivenFacadeLogicImpl (Object metaObject, String context)
@@ -106,6 +116,17 @@
}
/**
+ * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacadeLogic#handleGetTestPackageName()
+ */
+ protected String handleGetTestPackageName()
+ {
+ String namespacePattern = String.valueOf(this.getConfiguredProperty(MESSAGE_DRIVEN_TEST_PACKAGE_NAME_PATTERN));
+ return MessageFormat.format(
+ namespacePattern,
+ new Object[] {this.getPackageName()});
+ }
+
+ /**
* @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getFullyQualifiedMessageDrivenImplementationName()
*/
protected java.lang.String handleGetFullyQualifiedMessageDrivenImplementationName()
@@ -139,6 +160,17 @@
}
/**
+ * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacadeLogic#handleGetFullyQualifiedMessageDrivenTestName()
+ */
+ protected String handleGetFullyQualifiedMessageDrivenTestName()
+ {
+ return EJB3MetafacadeUtils.getFullyQualifiedName(
+ this.getTestPackageName(),
+ this.getMessageDrivenTestName(),
+ null);
+ }
+
+ /**
* @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getMessageDrivenImplementationName()
*/
protected java.lang.String handleGetMessageDrivenImplementationName()
@@ -178,6 +210,19 @@
}
/**
+ * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacadeLogic#handleGetMessageDrivenTestName()
+ */
+ protected String handleGetMessageDrivenTestName()
+ {
+ String messageDrivenTestNamePattern =
+ (String)this.getConfiguredProperty(MESSAGE_DRIVEN_TEST_NAME_PATTERN);
+
+ return MessageFormat.format(
+ messageDrivenTestNamePattern,
+ new Object[] {StringUtils.trimToEmpty(this.getName())});
+ }
+
+ /**
* @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade#getMessageSelector()
*/
protected java.lang.String handleGetMessageSelector()
@@ -437,5 +482,4 @@
}
return excludeDefault;
}
-
}
\ No newline at end of file
1.51 +225 -280 cartridges/andromda-ejb3/src/main/uml/EJB3MetafacadeModel.xml.zip
<<Binary file>>
|