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>> |