You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(6) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(178) |
Feb
(169) |
Mar
(286) |
Apr
(117) |
May
(98) |
Jun
(68) |
Jul
(63) |
Aug
(121) |
Sep
(88) |
Oct
(124) |
Nov
(2) |
Dec
(111) |
2007 |
Jan
(224) |
Feb
(69) |
Mar
(10) |
Apr
(72) |
May
(7) |
Jun
(21) |
Jul
(33) |
Aug
(35) |
Sep
(12) |
Oct
(22) |
Nov
(5) |
Dec
(6) |
2008 |
Jan
(2) |
Feb
(10) |
Mar
(39) |
Apr
(58) |
May
(34) |
Jun
(9) |
Jul
(27) |
Aug
(10) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
From: Vance K. <va...@us...> - 2007-02-04 04:18:23
|
User: vancek Date: 07/02/03 20:18:19 Modified: andromda-ejb3/src/site/axdoc howto.xml howto21.xml andromda-ejb3/conf/howto andromda.xml andromda-ejb3/src/site site.xml Added: andromda-ejb3/src/site/axdoc howto22.xml Log: add test framework docs Revision Changes Path 1.4 +8 -0 cartridges/andromda-ejb3/src/site/axdoc/howto.xml Index: howto.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/site/axdoc/howto.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- howto.xml 19 Jan 2007 13:16:58 -0000 1.3 +++ howto.xml 4 Feb 2007 04:18:18 -0000 1.4 @@ -227,6 +227,14 @@ <li><a href="howto21.html#Seam_Profile">EJB3 Seam Profile</a></li> </ul> </li> + <li> + <a href="howto22.html">TestNG with JBoss Embeddable EJB3 Microcontainer</a> + <ul> + <li><a href="howto22.html#Setup">Setup</a></li> + <li><a href="howto22.html#Configuration">Configuration</a></li> + <li><a href="howto22.html#Session_Tests">Session Tests</a></li> + </ul> + </li> </ul> </p> <p> 1.5 +6 -0 cartridges/andromda-ejb3/src/site/axdoc/howto21.xml Index: howto21.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/site/axdoc/howto21.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- howto21.xml 19 Jan 2007 13:16:58 -0000 1.4 +++ howto21.xml 4 Feb 2007 04:18:18 -0000 1.5 @@ -304,5 +304,11 @@ </p> </subsection> </section> + <section name="Next"> + <p> + To read about the test framework using TestNG and JBoss Embeddable microcontainer, click + <a href="howto22.html">here</a>. + </p> + </section> </body> </document> 1.1 cartridges/andromda-ejb3/src/site/axdoc/howto22.xml Index: howto22.xml =================================================================== <?xml version="1.0" encoding="iso-8859-1"?> <document> <properties> <author email="va...@us...">Vance Karimi</author> <title>AndroMDA - EJB3 - TestNG with JBoss Embeddable EJB3 Microcontainer</title> </properties> <body> <section name="TestNG with JBoss Embeddable EJB3 Microcontainer"> <p> As a developer, you are always tempted to get by with smallest amount of unit testing...some even avoid the subject all together. With the introduction of EJB 3.0, it was intended to make things easier, including testing. Setting up the right test environment was always a difficult, specially when you don't always have the luxury of time to get it right! </p> <p> The EJB3 cartridge now provides a basic test framework for your session beans. You can now use the popular TestNG framework, along with JBoss Embeddable EJB3 Microcontainer to perform your tests outside of the application server. </p> <p> Read up on the <a href="http://docs.jboss.org/ejb3/embedded/embedded.html">JBoss Embedded container</a>. Read about the <a href="http://www.testng.org/">TestNG framework</a>. </p> <p> The example widely available on the internet use JUnit in combination with TestNG. The EJB3 cartridge only uses TestNG with Maven2. It is currently using TestNG version 4.7-jdk15 and JBoss Embeddable ALPHA_9. </p> <a name="Setup"/> <subsection name="Setup"> <p> You do not need to download any of the tools mentioned above. The cartridge will generate all the required configuration necessary for the JBoss Embeddable container. All the required artifacts are also available from the AndroMDA repository. </p> <p> Because we consider testing such a key component of a project, there is no option to enable or disable the test framework with an EJB3 project. Everything is generated whether you want it or not. However, all the tests will finish successuflly (as there is not implementation for them). </p> <p> All you need to do is follow the <a href="project.html">project howto</a> to generate your EJB3 project. Make sure you are running the latest AndroMDA since the test framework is only available from AndroMDA version 3.3-SNAPSHOT onwards. </p> <p> The test framework will be generated as long as you have at least 1 session bean modelled in your project. </p> </subsection> <a name="Configuration"/> <subsection name="Configuration"> <p> When you first run <i>mvn</i> over your project, the cartridge will generate all the JBoss Embeddable container configuration files in <code>core/src/test/resources</code>. All these files are generated ONCE ONLY and will NOT be over-written. You can safely make any modifications to any of these files. </p> <p> There is one exception to the latter. The <code>testng.xml</code> configuration file is also generated in <code>core/src/test/resource</code>, however, this is over-written on every run over your model. This is because when you add a new session bean, the trigger to run the tests for this new bean is inserted into the <code>testng.xml</code> file. </p> <p> Once of the most interesting configuration files generated is the <code>embedded-jboss-beans.xml</code>. Take a look at your project's file and notice that the EJB3 cartridge has added your datasource to this file, along with the existing <code>DefaultDS</code> datasource, which is used by the JMS provider. You are free to modify the connection settings so that you point this to your development database server. </p> <p> The <code>log4j.xml</code> file in this directory sets the <i>Threshold</i> to <code>WARN</code> by default. If you want to see more detailed log information to the console while the tests are running, change this to something like <code>DEBUG</code>. </p> <p> The <code>login-config.xml</code> sets up the JAAS environment for your tests. If you had enabled security before running maven over your project the first time, everything will be generated for you and you don't need to worry about the following. If you had not enable security for your project on the first run, a relevent security context will not be generated for you in this file. Say that you want to enable security at a later point, then by simply following <a href="howto8.html">the security howto</a>, you uncomment the <code>securityRealm</code> property in the <b>ejb3</b> and the web framework namespaces. You must then copy the last <code>application-policy</code> section of the <code>login-config.xml</code> and change the name property to your <code>application.id</code>. If your project application id name is <b>howtomodel</b>, the <code>login-config.xml</code> should contain the following: <source language="xml"><![CDATA[ <application-policy name="howtomodel"> <authentication> <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag="required"/> </authentication> </application-policy> ]]></source> </p> <p> The cartridge will also generate a <code>roles.properties</code> and <code>users.properties</code> which will help provide basic JAAS authentication for users/roles. </p> </subsection> <a name="Session_Tests"/> <subsection name="Session Tests"> <p> Now take a look in your source folder <code>core/src/test/java</code>. You should have a file named <code>EJB3Container.java</code> in one of the packages here. This file starts and shuts down the embeddable container before and after running any tests respectively. It also provides helper static methods to get the <code>InitialContext</code> so you can retrive the stub for the session bean (local or remote interface) from JNDI. </p> <p> It is important to note that if you want to propogate security credentials (principal and password) because you have enable security and secured your session beans by modelling actors to the class or operations, you must use the overloaded <code>getInitialContext</code> methods with signature that allows you to provide a username and password. The generated tests actually provide a basic template that shows you how to do this. </p> <p> In case you did not enable security on the first generation run, and find you need it later, apart from following the instructions above to modify the <code>login-config.xml</code>, you must also modify the <code>EJB3Container.java</code> to uncomment the following section in the <i>startup</i> method: <source><![CDATA[ logger.info("==>Deploying security-beans"); EJB3StandaloneBootstrap.deployXmlResource("security-beans.xml"); logger.info("==>Deployed security-beans"); ]]></source> </p> <p> Now open up any of the test classes. These are generated to the <code>core/src/test/java</code> source folder in the corresponding package. You will notice the EJB3 cartridge just creates one test case per session bean business operation. The the test source files will NOT be over-written, so if you add or delete business operations from your model, you must make the changes to these files manually. </p> <p> You may have noticed how simple these test sources really are and you may be wondering how we start and stop the embeddable microcontainer and deploy our archives which contain the EJB 3 beans. Take a look at your <code>testng.xml</code> in <code>core/src/test/resources</code>. The first class listed to run is the <code>EJB3Container</code>. This will call the annotated methods to start and shutdown the embeddable container before and after your tests respectively. </p> <p> You can now open the tests and add your implementation before running maven over the <i>core</i> project or running the tests. </p> </subsection> </section> </body> </document> 1.2 +3 -0 cartridges/andromda-ejb3/conf/howto/andromda.xml Index: andromda.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/conf/howto/andromda.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- andromda.xml 19 Jan 2007 14:35:43 -0000 1.1 +++ andromda.xml 4 Feb 2007 04:18:19 -0000 1.2 @@ -54,6 +54,9 @@ <property name="services">${howto.output.dir}</property> <property name="application-config">${howto.output.dir}/org/andromda/test</property> <property name="application-metainf">${application.metainf.dir}</property> + <property name="test-config">${howto.output.dir}/org/andromda/test</property> + <property name="tests">${howto.output.dir}</property> + <property name="test-impls">${howto.output.dir}</property> <property name="ejb3TypesPackage">org.andromda.test</property> <property name="persistenceContainerName">jboss</property> <property name="persistenceContextUnitName">howtomodel</property> 1.21 +1 -0 cartridges/andromda-ejb3/src/site/site.xml Index: site.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/site/site.xml,v retrieving revision 1.20 retrieving revision 1.21 diff -u -w -r1.20 -r1.21 --- site.xml 18 Dec 2006 02:02:34 -0000 1.20 +++ site.xml 4 Feb 2007 04:18:19 -0000 1.21 @@ -48,6 +48,7 @@ <item name="Webservices" href="howto18.html"/> <item name="Embeddable Value Objects" href="howto20.html"/> <item name="JBoss Seam" href="howto21.html"/> + <item name="Test Framework" href="howto22.html"/> <item name="Tips & Tricks" href="tips.html"/> </menu> <menu name="Support"> |
From: Vance K. <va...@us...> - 2007-02-04 02:45:12
|
User: vancek Date: 07/02/03 18:45:08 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3SessionOperationFacadeLogicImpl.java EJB3SessionFacadeLogicImpl.java andromda-ejb3/src/main/resources/META-INF/andromda cartridge.xml metafacades.xml namespace.xml andromda-ejb3/src/site changes.xml andromda-ejb3/src/main/uml EJB3MetafacadeModel.xml.zip Added: andromda-ejb3/src/main/resources/templates/ejb3/microcontainer ejb3-interceptors-aop.xml.vsl jndi.properties.vsl login-config.xml.vsl log4j.xml.vsl default.persistence.properties.vsl embedded-jboss-beans.xml.vsl users.properties.vsl security-beans.xml.vsl jboss-jms-beans.xml.vsl roles.properties.vsl andromda-ejb3/src/main/resources/templates/ejb3/test SessionTest.vsl EJB3Container.vsl testng.xml.vsl Log: add TestNG and JBoss Embeddable Microcontainer support for generating basic testng tests for each modelled session bean Revision Changes Path 1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/microcontainer/ejb3-interceptors-aop.xml.vsl Index: ejb3-interceptors-aop.xml.vsl =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE aop PUBLIC "-//JBoss//DTD JBOSS AOP 1.0//EN" "http://www.jboss.org/aop/dtd/jboss-aop_1_0.dtd"> <aop> <interceptor class="org.jboss.aspects.remoting.InvokeRemoteInterceptor" scope="PER_VM"/> <interceptor class="org.jboss.aspects.security.SecurityClientInterceptor" scope="PER_VM"/> <interceptor class="org.jboss.aspects.tx.ClientTxPropagationInterceptor" scope="PER_VM"/> <interceptor class="org.jboss.ejb3.remoting.IsLocalInterceptor" scope="PER_VM"/> <interceptor class="org.jboss.aspects.remoting.ClusterChooserInterceptor" scope="PER_VM"/> <interceptor class="org.jboss.aspects.tx.TxPropagationInterceptor" scope="PER_VM"/> <stack name="ServiceClientInterceptors"> <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/> <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/> <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/> <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/> </stack> <stack name="AsynchronousStatelessSessionClientInterceptors"> <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/> <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/> <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/> <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/> </stack> <stack name="AsynchronousStatefulSessionClientInterceptors"> <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/> <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/> <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/> <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/> </stack> <stack name="StatelessSessionClientInterceptors"> <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/> <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/> <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/> <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/> </stack> <stack name="StatefulSessionClientInterceptors"> <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/> <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/> <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/> <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/> </stack> <stack name="ClusteredStatelessSessionClientInterceptors"> <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/> <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/> <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/> <interceptor-ref name="org.jboss.aspects.remoting.ClusterChooserInterceptor"/> <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/> </stack> <stack name="ClusteredStatefulSessionClientInterceptors"> <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/> <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/> <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/> <interceptor-ref name="org.jboss.aspects.remoting.ClusterChooserInterceptor"/> <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/> </stack> <interceptor class="org.jboss.ejb3.asynchronous.AsynchronousInterceptor" scope="PER_CLASS"/> <interceptor class="org.jboss.ejb3.ENCPropagationInterceptor" scope="PER_VM"/> <interceptor name="Basic Authorization" factory="org.jboss.ejb3.security.RoleBasedAuthorizationInterceptorFactory" scope="PER_CLASS"/> <interceptor name="JACC Authorization" factory="org.jboss.ejb3.security.JaccAuthorizationInterceptorFactory" scope="PER_CLASS"/> <interceptor factory="org.jboss.ejb3.security.AuthenticationInterceptorFactory" scope="PER_CLASS"/> <interceptor factory="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory" scope="PER_CLASS"/> <interceptor class="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor" scope="PER_VM"/> <interceptor class="org.jboss.ejb3.stateless.StatelessInstanceInterceptor" scope="PER_VM"/> <interceptor class="org.jboss.ejb3.stateful.StatefulInstanceInterceptor" scope="PER_VM"/> <interceptor class="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor" scope="PER_VM"/> <interceptor class="org.jboss.ejb3.service.ServiceSingletonInterceptor" scope="PER_VM"/> <interceptor class="org.jboss.ejb3.cache.StatefulReplicationInterceptor" scope="PER_VM"/> <interceptor factory="org.jboss.ejb3.stateful.StatefulRemoveFactory" scope="PER_CLASS_JOINPOINT"/> <interceptor factory="org.jboss.ejb3.tx.TxInterceptorFactory" scope="PER_CLASS_JOINPOINT"/> <interceptor factory="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory" scope="PER_CLASS_JOINPOINT"/> <interceptor factory="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory" scope="PER_CLASS"/> <interceptor class="org.jboss.ejb3.AllowedOperationsInterceptor" scope="PER_VM"/> <interceptor factory="org.jboss.ejb3.mdb.CurrentMessageInjectorInterceptorFactory" scope="PER_CLASS"/> <interceptor class="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor" scope="PER_VM"/> <domain name="Stateless Bean"> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/> <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/> <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/> </bind> <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))"> <interceptor-ref name="Basic Authorization"/> </bind> <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))"> <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/> </bind> <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))"> <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/> </bind> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/> <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/> <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/> <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/> <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/> <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/> </bind> <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)"> @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000) </annotation> </domain> <domain name="JACC Stateless Bean"> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/> <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/> <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/> </bind> <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))"> <interceptor-ref name="JACC Authorization"/> </bind> <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))"> <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/> </bind> <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))"> <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/> </bind> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/> <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/> <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/> <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/> <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/> <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/> </bind> <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)"> @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000) </annotation> </domain> <domain name="Base Stateful Bean"> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/> <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/> <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/> </bind> <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))"> <interceptor-ref name="Basic Authorization"/> </bind> <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))"> <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/> </bind> <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))"> <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/> </bind> <bind pointcut="execution(public * *->@javax.ejb.Remove(..))"> <interceptor-ref name="org.jboss.ejb3.stateful.StatefulRemoveFactory"/> </bind> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.stateful.StatefulInstanceInterceptor"/> <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/> <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/> <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/> </bind> #set ($tmpstr = "$") <bind pointcut="execution(public * ${tmpstr}instanceof{javax.ejb.SessionSynchronization}->*(..))"> <interceptor-ref name="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor"/> </bind> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/> <interceptor-ref name="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor"/> <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/> </bind> <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..)) AND !execution(public * *->@javax.ejb.Remove(..))"> <interceptor-ref name="org.jboss.ejb3.cache.StatefulReplicationInterceptor"/> </bind> <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)"> @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000) </annotation> </domain> <domain name="Stateful Bean" extends="Base Stateful Bean" inheritBindings="true"> <!-- NON Clustered cache configuration --> <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND !class(@org.jboss.annotation.ejb.Clustered)"> @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.simple.SimpleStatefulCache.class) </annotation> <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.PersistenceManager) AND !class(@org.jboss.annotation.ejb.Clustered)"> @org.jboss.annotation.ejb.cache.simple.PersistenceManager (org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.class) </annotation> <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.CacheConfig) AND !class(@org.jboss.annotation.ejb.Clustered)"> @org.jboss.annotation.ejb.cache.simple.CacheConfig (maxSize=100000, idleTimeoutSeconds=300) </annotation> <!-- Clustered cache configuration --> <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND class(@org.jboss.annotation.ejb.Clustered)"> @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.tree.StatefulTreeCache.class) </annotation> <annotation expr="!class(@org.jboss.annotation.ejb.cache.tree.CacheConfig) AND class(@org.jboss.annotation.ejb.Clustered)"> @org.jboss.annotation.ejb.cache.tree.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300) </annotation> </domain> <domain name="JACC Stateful Bean"> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/> <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/> <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/> </bind> <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))"> <interceptor-ref name="JACC Authorization"/> </bind> <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))"> <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/> </bind> <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))"> <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/> </bind> <bind pointcut="execution(public * *->@javax.ejb.Remove(..))"> <interceptor-ref name="org.jboss.ejb3.stateful.StatefulRemoveFactory"/> </bind> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.stateful.StatefulInstanceInterceptor"/> <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/> <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/> <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/> </bind> <bind pointcut="execution(public * ${tmpstr}instanceof{javax.ejb.SessionSynchronization}->*(..))"> <interceptor-ref name="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor"/> </bind> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/> <interceptor-ref name="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor"/> <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/> </bind> <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..)) AND !execution(public * *->@javax.ejb.Remove(..))"> <interceptor-ref name="org.jboss.ejb3.cache.StatefulReplicationInterceptor"/> </bind> <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)"> @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000) </annotation> <!-- NON Clustered cache configuration --> <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND !class(@org.jboss.annotation.ejb.Clustered)"> @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.simple.SimpleStatefulCache.class) </annotation> <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.PersistenceManager) AND !class(@org.jboss.annotation.ejb.Clustered)"> @org.jboss.annotation.ejb.cache.simple.PersistenceManager (org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.class) </annotation> <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.CacheConfig) AND !class(@org.jboss.annotation.ejb.Clustered)"> @org.jboss.annotation.ejb.cache.simple.CacheConfig (maxSize=100000, idleTimeoutSeconds=300) </annotation> <!-- Clustered cache configuration --> <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND class(@org.jboss.annotation.ejb.Clustered)"> @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.tree.StatefulTreeCache.class) </annotation> <annotation expr="!class(@org.jboss.annotation.ejb.cache.tree.CacheConfig) AND class(@org.jboss.annotation.ejb.Clustered)"> @org.jboss.annotation.ejb.cache.tree.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300) </annotation> </domain> <domain name="Embedded Stateful Bean" extends="Base Stateful Bean" inheritBindings="true"> <!-- NON Clustered cache configuration --> <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache)"> @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.NoPassivationCache.class) </annotation> </domain> <domain name="Message Driven Bean"> <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))"> <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/> </bind> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/> <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/> <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/> <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/> <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/> </bind> <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)"> @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=30, timeout=10000) </annotation> </domain> <domain name="Consumer Bean"> <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))"> <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/> </bind> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/> <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/> <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/> <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/> </bind> <bind pointcut="execution(public * *->*(..)) AND (has(* *->@org.jboss.annotation.ejb.CurrentMessage(..)) OR hasfield(* *->@org.jboss.annotation.ejb.CurrentMessage))"> <interceptor-ref name="org.jboss.ejb3.mdb.CurrentMessageInjectorInterceptorFactory"/> </bind> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/> </bind> <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)"> @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=30, timeout=10000) </annotation> </domain> <domain name="Service Bean"> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/> <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/> </bind> <bind pointcut="!execution(* *->create()) AND !execution(* *->start()) AND !execution(*->new(..))"> <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/> </bind> <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))"> <interceptor-ref name="Basic Authorization"/> </bind> <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))"> <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/> </bind> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/> <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/> <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/> <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/> </bind> <bind pointcut="execution(public * *->*(..)) AND !execution(* *->create()) AND !execution(* *->start())"> <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/> </bind> </domain> <domain name="JACC Service Bean"> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/> <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/> </bind> <bind pointcut="!execution(* *->create()) AND !execution(* *->start()) AND !execution(*->new(..))"> <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/> </bind> <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))"> <interceptor-ref name="Basic Authorization"/> </bind> <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))"> <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/> </bind> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/> <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/> <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/> <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/> </bind> <bind pointcut="execution(public * *->*(..)) AND !execution(* *->create()) AND !execution(* *->start())"> <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/> </bind> </domain> </aop> 1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/microcontainer/jndi.properties.vsl Index: jndi.properties.vsl =================================================================== java.naming.factory.initial=org.jnp.interfaces.LocalOnlyContextFactory java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces 1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/microcontainer/login-config.xml.vsl Index: login-config.xml.vsl =================================================================== <?xml version='1.0'?> <!DOCTYPE policy PUBLIC "-//JBoss//DTD JBOSS Security Config 3.0//EN" "http://www.jboss.org/j2ee/dtd/security_config.dtd"> <!-- The XML based JAAS login configuration read by the org.jboss.security.auth.login.XMLLoginConfig mbean. Add an application-policy element for each security domain. The outline of the application-policy is: <application-policy name="security-domain-name"> <authentication> <login-module code="login.module1.class.name" flag="control_flag"> <module-option name = "option1-name">option1-value</module-option> <module-option name = "option2-name">option2-value</module-option> ... </login-module> <login-module code="login.module2.class.name" flag="control_flag"> ... </login-module> ... </authentication> </application-policy> $Revision: 1.1 $ --> <policy> <!-- Used by clients within the application server VM such as mbeans and servlets that access EJBs. --> <application-policy name="client-login"> <authentication> <login-module code="org.jboss.security.ClientLoginModule" flag="required"> <!-- Any existing security context will be restored on logout --> <module-option name="restore-login-identity">true</module-option> </login-module> </authentication> </application-policy> <application-policy name="other"> <!-- A simple server login module, which can be used when the number of users is relatively small. It uses two properties files: users.properties, which holds users (key) and their password (value). roles.properties, which holds users (key) and a comma-separated list of their roles (value). The unauthenticatedIdentity property defines the name of the principal that will be used when a null username and password are presented as is the case for an unuathenticated web client or MDB. If you want to allow such users to be authenticated add the property, e.g., unauthenticatedIdentity="nobody" --> <authentication> <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag="required"/> </authentication> </application-policy> #if ($stringUtils.isNotBlank(${securityRealm})) <application-policy name="${securityRealm}"> <!-- A simple server login module, which can be used when the number of users is relatively small. It uses two properties files: users.properties, which holds users (key) and their password (value). roles.properties, which holds users (key) and a comma-separated list of their roles (value). The unauthenticatedIdentity property defines the name of the principal that will be used when a null username and password are presented as is the case for an unuathenticated web client or MDB. If you want to allow such users to be authenticated add the property, e.g., unauthenticatedIdentity="nobody" --> <authentication> <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag="required"/> </authentication> </application-policy> #end </policy> 1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/microcontainer/log4j.xml.vsl Index: log4j.xml.vsl =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <!-- ===================================================================== --> <!-- --> <!-- Log4j Configuration --> <!-- --> <!-- ===================================================================== --> <!-- $Id: log4j.xml.vsl,v 1.1 2007/02/04 02:45:05 vancek Exp $ --> <!-- | For more configuration infromation and examples see the Jakarta Log4j | owebsite: http://jakarta.apache.org/log4j --> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> <param name="Target" value="System.out"/> <param name="Threshold" value="WARN"/> <layout class="org.apache.log4j.PatternLayout"> <!-- The default pattern: Date Priority [Category] Messagen --> <!-- <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/> --> <param name="ConversionPattern" value="%-5p %d{dd-MM HH:mm:ss,SSS} (%F:%M:%L) -%m%n"/> </layout> </appender> <root> <appender-ref ref="CONSOLE"/> </root> </log4j:configuration> 1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/microcontainer/default.persistence.properties.vsl Index: default.persistence.properties.vsl =================================================================== hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup #hibernate.connection.release_mode=after_statement #hibernate.transaction.flush_before_completion=false #hibernate.transaction.auto_close_session=false #hibernate.query.factory_class=org.hibernate.hql.ast.ASTQueryTranslatorFactory #hibernate.hbm2ddl.auto=create-drop #hibernate.hbm2ddl.auto=create hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider # Clustered cache with TreeCache #hibernate.cache.provider_class=org.jboss.ejb3.entity.TreeCacheProviderHook #hibernate.treecache.mbean.object_name=jboss.cache:service=EJB3EntityTreeCache #hibernate.dialect=org.hibernate.dialect.HSQLDialect hibernate.jndi.java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory hibernate.jndi.java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces hibernate.bytecode.use_reflection_optimizer=false # I don't think this is honored, but EJB3Deployer uses it hibernate.bytecode.provider=javassist 1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/microcontainer/embedded-jboss-beans.xml.vsl Index: embedded-jboss-beans.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:2.0"> <bean name="Naming" class="org.jnp.server.SingletonNamingServer"/> <bean name="InitialContextProperties" class="java.util.Hashtable"> <constructor> <parameter class="java.util.Map"> <map keyClass="java.lang.String" valueClass="java.lang.String"> <entry> <key>java.naming.factory.initial</key> <value>org.jnp.interfaces.LocalOnlyContextFactory</value> </entry> <entry> <key>java.naming.factory.url.pkgs</key> <value>org.jboss.naming:org.jnp.interfaces</value> </entry> </map> </parameter> </constructor> </bean> <bean name="java:comp/Initializer" class="org.jboss.ejb3.embedded.JavaCompInitializer"> <property name="jndiProperties"><inject bean="InitialContextProperties"/></property> </bean> <bean name="XidFactory" class="org.jboss.tm.XidFactoryImpl"/> <bean name="XidFactoryMBean" class="org.jboss.ejb3.embedded.XidFactoryMBean"> <constructor> <parameter class="org.jboss.tm.XidFactoryBase"> <inject bean="XidFactory"/> </parameter> </constructor> </bean> <bean name="TransactionManagerInitializer" class="org.jboss.tm.TransactionManagerInitializer"> <property name="xidFactory"><inject bean="XidFactory"/></property> <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property> </bean> <bean name="UserTransaction" class="org.jboss.ejb3.embedded.UserTransactionImpl"> <demand>TransactionManagerInitializer</demand> </bean> <bean name="UserTransactionBinding" class="org.jboss.ejb3.embedded.JndiBinder"> <property name="jndiProperties"><inject bean="InitialContextProperties"/></property> <property name="target"><inject bean="UserTransaction"/></property> <property name="bindTo">UserTransaction</property> <property name="serializable">false</property> </bean> <bean name="TransactionManager" class="java.lang.Object"> <constructor factoryMethod="getTransactionManager"> <factory bean="TransactionManagerInitializer"/> </constructor> </bean> <bean name="CachedConnectionManager" class="org.jboss.resource.connectionmanager.CachedConnectionManagerReference"> <property name="transactionManager"><inject bean="TransactionManager"/></property> </bean> <!-- <bean class="org.jboss.jdbc.HypersonicDatabase" name="jboss:service=Hypersonic,database=localDB"> <property name="database">localDB</property> <property name="inProcessMode">true</property> <property name="dbDataDir">.</property> </bean> --> <bean name="DefaultDSBootstrap" class="org.jboss.resource.adapter.jdbc.local.LocalTxDataSource"> <property name="driverClass">org.hsqldb.jdbcDriver</property> <property name="connectionURL">jdbc:hsqldb:.</property> <!-- <property name="connectionURL">jdbc:hsqldb:./hypersonic/localDB</property> --> <property name="userName">sa</property> <property name="jndiName">java:/DefaultDS</property> <property name="minSize">0</property> <property name="maxSize">10</property> <property name="blockingTimeout">1000</property> <property name="idleTimeout">100000</property> <property name="transactionManager"><inject bean="TransactionManager"/></property> <property name="cachedConnectionManager"><inject bean="CachedConnectionManager"/></property> <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property> </bean> <bean name="DefaultDS" class="java.lang.Object"> <constructor factoryMethod="getDatasource"> <factory bean="DefaultDSBootstrap"/> </constructor> </bean> #if ($stringUtils.isNotBlank(${entityManagerName})) <bean name="${entityManagerName}DatasourceBootstrap" class="org.jboss.resource.adapter.jdbc.local.LocalTxDataSource"> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="connectionURL">jdbc:mysql://localhost:3306/${entityManagerName}</property> <!-- <property name="connectionURL">jdbc:hsqldb:./hypersonic/localDB</property> --> <property name="userName">sa</property> <property name="jndiName">java:/jdbc/${entityManagerName}</property> <property name="minSize">0</property> <property name="maxSize">10</property> <property name="blockingTimeout">1000</property> <property name="idleTimeout">100000</property> <property name="transactionManager"><inject bean="TransactionManager"/></property> <property name="cachedConnectionManager"><inject bean="CachedConnectionManager"/></property> <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property> </bean> <bean name="jdbc/${entityManagerName}" class="java.lang.Object"> <constructor factoryMethod="getDatasource"> <factory bean="${entityManagerName}DatasourceBootstrap"/> </constructor> </bean> #end <!-- <bean name="TimerServiceFactory" class="org.jboss.ejb3.timerservice.quartz.QuartzTimerServiceFactory"> <property name="properties"> org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreCMT org.quartz.jobStore.nonManagedTXDataSource=myDS org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.HSQLDBDelegate org.quartz.jobStore.tablePrefix=QRTZ_ org.quartz.jobStore.dataSource=myDS # To get it to work with hypersonic # FIXME: this doesn't lock the row org.quartz.jobStore.selectWithLockSQL=SELECT * FROM qrtz_locks WHERE lock_name = ? # from quartz.properties org.quartz.scheduler.instanceName=JBossEJB3QuartzScheduler org.quartz.scheduler.rmi.export=false org.quartz.scheduler.rmi.proxy=false org.quartz.scheduler.wrapJobExecutionInUserTransaction=false org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount=10 org.quartz.threadPool.threadPriority=5 org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true org.quartz.jobStore.misfireThreshold=60000 </property> <property name="dataSource">java:/DefaultDS</property> <property name="sqlProperties"> CREATE_DB_ON_STARTUP = TRUE CREATE_TABLE_JOB_DETAILS = CREATE TABLE qrtz_job_details(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, \ DESCRIPTION VARCHAR(120) NULL, JOB_CLASS_NAME VARCHAR(128) NOT NULL, IS_DURABLE VARCHAR(1) NOT NULL, \ IS_VOLATILE VARCHAR(1) NOT NULL, IS_STATEFUL VARCHAR(1) NOT NULL, REQUESTS_RECOVERY VARCHAR(1) NOT NULL, \ JOB_DATA BINARY NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP)) CREATE_TABLE_JOB_LISTENERS = CREATE TABLE qrtz_job_listeners(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, \ JOB_LISTENER VARCHAR(80) NOT NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER), FOREIGN KEY (JOB_NAME,JOB_GROUP) \ REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)) CREATE_TABLE_TRIGGERS = CREATE TABLE qrtz_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, TRIGGER_GROUP VARCHAR(80) NOT NULL, \ JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, IS_VOLATILE VARCHAR(1) NOT NULL, DESCRIPTION VARCHAR(120) NULL, \ NEXT_FIRE_TIME NUMERIC(13) NULL, PREV_FIRE_TIME NUMERIC(13) NULL, TRIGGER_STATE VARCHAR(16) NOT NULL, \ TRIGGER_TYPE VARCHAR(8) NOT NULL, START_TIME NUMERIC(13) NOT NULL, END_TIME NUMERIC(13) NULL, CALENDAR_NAME VARCHAR(80) NULL, \ MISFIRE_INSTR NUMERIC(2) NULL, JOB_DATA BINARY NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (JOB_NAME,JOB_GROUP) \ REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)) CREATE_TABLE_SIMPLE_TRIGGERS = CREATE TABLE qrtz_simple_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \ TRIGGER_GROUP VARCHAR(80) NOT NULL, REPEAT_COUNT NUMERIC(7) NOT NULL, REPEAT_INTERVAL NUMERIC(12) NOT NULL, \ TIMES_TRIGGERED NUMERIC(7) NOT NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \ REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)) CREATE_TABLE_CRON_TRIGGERS = CREATE TABLE qrtz_cron_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \ TRIGGER_GROUP VARCHAR(80) NOT NULL, CRON_EXPRESSION VARCHAR(80) NOT NULL, TIME_ZONE_ID VARCHAR(80), \ PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \ REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)) CREATE_TABLE_BLOB_TRIGGERS = CREATE TABLE qrtz_blob_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \ TRIGGER_GROUP VARCHAR(80) NOT NULL, BLOB_DATA BINARY NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), \ FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)) CREATE_TABLE_TRIGGER_LISTENERS = CREATE TABLE qrtz_trigger_listeners(TRIGGER_NAME VARCHAR(80) NOT NULL, \ TRIGGER_GROUP VARCHAR(80) NOT NULL, TRIGGER_LISTENER VARCHAR(80) NOT NULL, \ PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \ REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)) CREATE_TABLE_CALENDARS = CREATE TABLE qrtz_calendars(CALENDAR_NAME VARCHAR(80) NOT NULL, CALENDAR BINARY NOT NULL, \ PRIMARY KEY (CALENDAR_NAME)) CREATE_TABLE_PAUSED_TRIGGER_GRPS = CREATE TABLE qrtz_paused_trigger_grps(TRIGGER_GROUP VARCHAR(80) NOT NULL, \ PRIMARY KEY (TRIGGER_GROUP)) CREATE_TABLE_FIRED_TRIGGERS = CREATE TABLE qrtz_fired_triggers(ENTRY_ID VARCHAR(95) NOT NULL, TRIGGER_NAME VARCHAR(80) NOT NULL, \ TRIGGER_GROUP VARCHAR(80) NOT NULL, IS_VOLATILE VARCHAR(1) NOT NULL, INSTANCE_NAME VARCHAR(80) NOT NULL, \ FIRED_TIME NUMERIC(13) NOT NULL, STATE VARCHAR(16) NOT NULL, JOB_NAME VARCHAR(80) NULL, JOB_GROUP VARCHAR(80) NULL, \ IS_STATEFUL VARCHAR(1) NULL, REQUESTS_RECOVERY VARCHAR(1) NULL, PRIMARY KEY (ENTRY_ID)) CREATE_TABLE_SCHEDULER_STATE = CREATE TABLE qrtz_scheduler_state(INSTANCE_NAME VARCHAR(80) NOT NULL, \ LAST_CHECKIN_TIME NUMERIC(13) NOT NULL, CHECKIN_INTERVAL NUMERIC(13) NOT NULL, RECOVERER VARCHAR(80) NULL, \ PRIMARY KEY (INSTANCE_NAME)) CREATE_TABLE_LOCKS = CREATE TABLE qrtz_locks(LOCK_NAME VARCHAR(40) NOT NULL, PRIMARY KEY (LOCK_NAME)) INSERT_TRIGGER_ACCESS = INSERT INTO qrtz_locks values('TRIGGER_ACCESS') INSERT_JOB_ACCESS = INSERT INTO qrtz_locks values('JOB_ACCESS') INSERT_CALENDAR_ACCESS = INSERT INTO qrtz_locks values('CALENDAR_ACCESS') INSERT_STATE_ACCESS = INSERT INTO qrtz_locks values('STATE_ACCESS') INSERT_MISFIRE_ACCESS = INSERT INTO qrtz_locks values('MISFIRE_ACCESS') </property> </bean> --> </deployment> 1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/microcontainer/users.properties.vsl Index: users.properties.vsl =================================================================== admin=admin user=password 1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/microcontainer/security-beans.xml.vsl Index: security-beans.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:2.0"> <bean class="org.jboss.ejb3.embedded.JaasSecurityManagerService" name="jboss.security:service=JaasSecurityManager"> <property name="initialContextProperties"> <inject bean="InitialContextProperties"/> </property> </bean> </deployment> 1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/microcontainer/jboss-jms-beans.xml.vsl Index: jboss-jms-beans.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"> <bean name="jboss.mq:service=JMSProviderLoader,name=JMSProvider" class="org.jboss.jms.jndi.JNDIProviderAdapter"> <property name="factoryRef">java:/XAConnectionFactory</property> <property name="queueFactoryRef">java:/XAConnectionFactory</property> <property name="topicFactoryRef">java:/XAConnectionFactory</property> <property name="properties" class="java.util.Properties"> <map keyClass="java.lang.String" valueClass="java.lang.String"> <entry> <key>java.naming.factory.initial</key> <value>org.jnp.interfaces.LocalOnlyContextFactory</value> </entry> <entry> <key>java.naming.factory.url.pkgs</key> <value>org.jboss.naming:org.jnp.interfaces</value> </entry> </map> </property> </bean> <bean name="b1" class="org.jboss.ejb3.embedded.JndiBinder"> <property name="jndiProperties"><inject bean="InitialContextProperties"/></property> <property name="target"><inject bean="jboss.mq:service=JMSProviderLoader,name=JMSProvider"/></property> <property name="bindTo">java:/DefaultJMSProvider</property> <property name="serializable">true</property> </bean> <bean name="jboss.mq:service=ServerSessionPoolMBean,name=StdJMSPool" class="org.jboss.jms.asf.StdServerSessionPoolFactory"> <property name="name">StdJMSPool</property> <property name="xidFactory"><inject bean="XidFactoryMBean"/></property> <property name="transactionManager"><inject bean="TransactionManager"/></property> </bean> <bean name="b2" class="org.jboss.ejb3.embedded.JndiBinder"> <property name="jndiProperties"><inject bean="InitialContextProperties"/></property> <property name="target"><inject bean="jboss.mq:service=ServerSessionPoolMBean,name=StdJMSPool"/></property> <property name="bindTo">java:/StdJMSPool</property> <property name="serializable">false</property> </bean> <bean name="jboss.mq:service=PersistenceManager" class="org.jboss.mq.kernel.JDBC2PersistenceManager"> <property name="transactionManager"> <inject bean="TransactionManager"/> </property> <property name="datasource"> <inject bean="DefaultDS"/> </property> <property name="sqlProperties"> BLOB_TYPE=OBJECT_BLOB INSERT_TX = INSERT INTO JMS_TRANSACTIONS (TXID) values(?) INSERT_MESSAGE = INSERT INTO JMS_MESSAGES (MESSAGEID, DESTINATION, MESSAGEBLOB, TXID, TXOP) VALUES(?,?,?,?,?) SELECT_ALL_UNCOMMITED_TXS = SELECT TXID FROM JMS_TRANSACTIONS SELECT_MAX_TX = SELECT MAX(TXID) FROM JMS_MESSAGES SELECT_MESSAGES_IN_DEST = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE DESTINATION=? SELECT_MESSAGE = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=? MARK_MESSAGE = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE MESSAGEID=? AND DESTINATION=? UPDATE_MESSAGE = UPDATE JMS_MESSAGES SET MESSAGEBLOB=? WHERE MESSAGEID=? AND DESTINATION=? UPDATE_MARKED_MESSAGES = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=? UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=? AND TXID=? DELETE_MARKED_MESSAGES_WITH_TX = DELETE FROM JMS_MESSAGES WHERE TXOP=? AND JMS_MESSAGES.TXID IN (SELECT TXID FROM JMS_TRANSACTIONS) DELETE_TX = DELETE FROM JMS_TRANSACTIONS WHERE TXID = ? DELETE_MARKED_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXID=? AND TXOP=? DELETE_MESSAGE = DELETE FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=? CREATE_MESSAGE_TABLE = CREATE CACHED TABLE JMS_MESSAGES ( MESSAGEID INTEGER NOT NULL, \ DESTINATION VARCHAR(255) NOT NULL, TXID INTEGER, TXOP CHAR(1), \ MESSAGEBLOB OBJECT, PRIMARY KEY (MESSAGEID, DESTINATION) ) CREATE_IDX_MESSAGE_TXOP_TXID = CREATE INDEX JMS_MESSAGES_TXOP_TXID ON JMS_MESSAGES (TXOP, TXID) CREATE_IDX_MESSAGE_DESTINATION = CREATE INDEX JMS_MESSAGES_DESTINATION ON JMS_MESSAGES (DESTINATION) CREATE_TX_TABLE = CREATE CACHED TABLE JMS_TRANSACTIONS ( TXID INTEGER, PRIMARY KEY (TXID) ) CREATE_TABLES_ON_STARTUP = TRUE DELETE_TEMPORARY_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXOP='T' </property> </bean> <bean name="jboss.mq:service=MessageCache" class="org.jboss.mq.kernel.MessageCache"> <property name="persistenceManager"><inject bean="jboss.mq:service=PersistenceManager"/></property> <property name="highMemoryMark">50</property> <property name="maxMemoryMark">60</property> </bean> <bean name="jms-rar-WorkManager" class="org.jboss.ejb3.embedded.resource.JBossWorkManager"> </bean> <bean name="jms-rar-DeploymentInfo" class="org.jboss.ejb3.embedded.resource.Ejb3DeploymentInfo"> <constructor> <parameter class="java.lang.String">jms-ra.rar</parameter> <parameter class="java.lang.String">javax.jms.MessageListener</parameter> <parameter class="java.lang.String">org.jboss.resource.adapter.jms.inflow.JmsActivationSpec</parameter> </constructor> </bean> <bean name="jboss.jca:name='jms-ra.rar',service=RARDeployment" class="org.jboss.ejb3.embedded.resource.RARDeployment"> <constructor> <parameter class="org.jboss.deployment.DeploymentInfo"> <inject bean="jms-rar-DeploymentInfo"/> </parameter> </constructor> <property name="workManager"><inject bean="jms-rar-WorkManager"/></property> </bean> <bean name="jboss.mq:service=StateManager" class="org.jboss.mq.kernel.JDBCStateManager"> <property name="transactionManager"> <inject bean="TransactionManager"/> </property> <property name="datasource"> <inject bean="DefaultDS"/> </property> <property name="sqlProperties"> CREATE_TABLES_ON_STARTUP = TRUE CREATE_USER_TABLE = CREATE TABLE JMS_USERS (USERID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, \ CLIENTID VARCHAR(128), PRIMARY KEY(USERID)) CREATE_ROLE_TABLE = CREATE TABLE JMS_ROLES (ROLEID VARCHAR(32) NOT NULL, USERID VARCHAR(32) NOT NULL, \ PRIMARY KEY(USERID, ROLEID)) CREATE_SUBSCRIPTION_TABLE = CREATE TABLE JMS_SUBSCRIPTIONS (CLIENTID VARCHAR(128) NOT NULL, \ SUBNAME VARCHAR(128) NOT NULL, TOPIC VARCHAR(255) NOT NULL, \ SELECTOR VARCHAR(255), PRIMARY KEY(CLIENTID, SUBNAME)) GET_SUBSCRIPTION = SELECT TOPIC, SELECTOR FROM JMS_SUBSCRIPTIONS WHERE CLIENTID=? AND SUBNAME=? LOCK_SUBSCRIPTION = SELECT TOPIC, SELECTOR FROM JMS_SUBSCRIPTIONS WHERE CLIENTID=? AND SUBNAME=? GET_SUBSCRIPTIONS_FOR_TOPIC = SELECT CLIENTID, SUBNAME, SELECTOR FROM JMS_SUBSCRIPTIONS WHERE TOPIC=? INSERT_SUBSCRIPTION = INSERT INTO JMS_SUBSCRIPTIONS (CLIENTID, SUBNAME, TOPIC, SELECTOR) VALUES(?,?,?,?) UPDATE_SUBSCRIPTION = UPDATE JMS_SUBSCRIPTIONS SET TOPIC=?, SELECTOR=? WHERE CLIENTID=? AND SUBNAME=? REMOVE_SUBSCRIPTION = DELETE FROM JMS_SUBSCRIPTIONS WHERE CLIENTID=? AND SUBNAME=? GET_USER_BY_CLIENTID = SELECT USERID, PASSWD, CLIENTID FROM JMS_USERS WHERE CLIENTID=? GET_USER = SELECT PASSWD, CLIENTID FROM JMS_USERS WHERE USERID=? POPULATE.TABLES.01 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES ('guest', 'guest') POPULATE.TABLES.02 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES ('j2ee', 'j2ee') POPULATE.TABLES.03 = INSERT INTO JMS_USERS (USERID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample') POPULATE.TABLES.04 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES ('nobody', 'nobody') POPULATE.TABLES.05 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES ('dynsub', 'dynsub') POPULATE.TABLES.06 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('guest','guest') POPULATE.TABLES.07 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('j2ee','guest') POPULATE.TABLES.08 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('john','guest') POPULATE.TABLES.09 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('subscriber','john') POPULATE.TABLES.10 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('publisher','john') POPULATE.TABLES.11 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('publisher','dynsub') POPULATE.TABLES.12 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('durpublisher','john') POPULATE.TABLES.13 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('durpublisher','dynsub') POPULATE.TABLES.14 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('noacc','nobody') </property> </bean> <bean name="BasicQueueParameters" class="org.jboss.mq.server.BasicQueueParameters"/> <bean name="jboss.mq:service=ThreadPool" class="org.jboss.util.threadpool.BasicThreadPool"> <property name="name">JMSThread</property> <property name="threadGroupName">JBossMQ Server Threads</property> <!-- The max number of threads in the pool --> <property name="maximumPoolSize">10</property> <!-- The max number of tasks before the queue is full --> <property name="maximumQueueSize">1000</property> <!-- The behavior of the pool when a task is added and the queue is full. abort - a RuntimeException is thrown run - the calling thread executes the task wait - the calling thread blocks until the queue has room discard - the task is silently discarded without being run discardOldest - check to see if a task is about to complete and enque the new task if possible, else run the task in the calling thread --> <property name="blockingModeString">run</property> </bean> <bean name="jboss.mq:service=DestinationManager" class="org.jboss.mq.server.JMSDestinationManager"> <constructor> <parameter class="org.jboss.mq.server.BasicQueueParameters"> <inject bean="BasicQueueParameters"/> </parameter> </constructor> <property name="persistenceManager"><inject bean="jboss.mq:service=PersistenceManager"/></property> <property name="messageCache"><inject bean="jboss.mq:service=MessageCache"/></property> <property name="stateManager"><inject bean="jboss.mq:service=StateManager"/></property> <property name="threadPool"><inject bean="jboss.mq:service=ThreadPool"/></property> <property name="threadGroup"><inject bean="jboss.mq:service=ThreadPool" property="threadGroup"/></property> <start method="startServer"/> <stop method="stopServer"/> </bean> <bean name="jboss.mq.destination:service=Queue,name=DLQ" 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">DLQ</property> </bean> <bean name="jboss.mq:service=Invoker" class="org.jboss.mq.server.JMSServerInvoker"> <property name="next"><inject bean="jboss.mq:service=DestinationManager"/></property> </bean> <bean name="jboss.mq:service=invocationlayer,type=JVM" class="org.jboss.mq.kernel.JVMIL"> <property name="jmsInvoker"><inject bean="jboss.mq:service=Invoker"/></property> <property name="connectionFactoryJNDIRef">java:/ConnectionFactory</property> <property name="XAConnectionFactoryJNDIRef">java:/XAConnectionFactory</property> <property name="pingPeriod">0</property> <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property> </bean> </deployment> 1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/microcontainer/roles.properties.vsl Index: roles.properties.vsl =================================================================== admin=USER,ADMIN user=USER 1.17 +25 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3SessionOperationFacadeLogicImpl.java Index: EJB3SessionOperationFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3SessionOperationFacadeLogicImpl.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -w -r1.16 -r1.17 --- EJB3SessionOperationFacadeLogicImpl.java 17 Jan 2007 00:50:55 -0000 1.16 +++ EJB3SessionOperationFacadeLogicImpl.java 4 Feb 2007 02:45:06 -0000 1.17 @@ -28,6 +28,10 @@ public class EJB3SessionOperationFacadeLogicImpl extends EJB3SessionOperationFacadeLogic { + /** + * The property which stores the pattern used to generate the service operation test name + */ + private static final String SERVICE_OPERATION_TEST_NAME_PATTERN = "serviceOperationTestNamePattern"; public EJB3SessionOperationFacadeLogicImpl (Object metaObject, String context) { @@ -212,6 +216,27 @@ } /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacadeLogic#handleGetTestSignature() + */ + protected String handleGetTestSignature() + { + return this.getTestName() + "()"; + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacadeLogic#handleGetTestName() + */ + protected String handleGetTestName() + { + String serviceOperationTestNamePattern = + (String)this.getConfiguredProperty(SERVICE_OPERATION_TEST_NAME_PATTERN); + + return MessageFormat.format( + serviceOperationTestNamePattern, + new Object[] {StringUtils.trimToEmpty(StringUtils.capitalize(this.getName()))}); + } + + /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacadeLogic#getCall() * * Override the default implmentation to check for timer service and 1.20 +45 -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.19 retrieving revision 1.20 diff -u -w -r1.19 ... [truncated message content] |
From: Vance K. <va...@us...> - 2007-02-04 02:44:33
|
User: vancek Date: 07/02/03 18:44:34 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/test - New directory |
From: Vance K. <va...@us...> - 2007-02-04 02:44:33
|
User: vancek Date: 07/02/03 18:44:32 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/microcontainer - New directory |
From: Vance K. <va...@us...> - 2007-02-04 02:39:15
|
User: vancek Date: 07/02/03 18:39:07 Modified: andromda-ejb3/src/main/resources/templates/ejb3 SessionBeanBase.vsl Log: remove second import of the Globals.vm Revision Changes Path 1.11 +0 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionBeanBase.vsl Index: SessionBeanBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionBeanBase.vsl,v retrieving revision 1.10 retrieving revision 1.11 diff -u -w -r1.10 -r1.11 --- SessionBeanBase.vsl 23 Jan 2007 01:22:44 -0000 1.10 +++ SessionBeanBase.vsl 4 Feb 2007 02:39:07 -0000 1.11 @@ -4,7 +4,6 @@ // Attention: Generated code! Do not modify by hand! // Generated by: SessionBeanBase.vsl in andromda-ejb3-cartridge. // -#parse("templates/ejb3/Globals.vm") #if ($stringUtils.isNotBlank($service.packageName)) package $service.packageName; #end |
From: Vance K. <va...@us...> - 2007-02-04 02:37:59
|
User: vancek Date: 07/02/03 18:38:00 Modified: andromda-ejb3/src/main/resources/templates/ejb3 ServiceLocator.vsl Added: andromda-ejb3/src/main/resources/templates/ejb3/common JNDIMacros.vm Log: extract jndi lookup into reusable macro Revision Changes Path 1.1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/common/JNDIMacros.vm Index: JNDIMacros.vm =================================================================== ## ## This macro will render the jndiName template parameter ## for the remote interface. This takes into account if ## the jndi name is explicity specified. ## #macro (remoteJndiName $service $includePrefix) #**##if ($stringUtils.isNotBlank($service.jndiNameRemote)) #* *##set ($jndiName = "${service.jndiNameRemote}") #**##else #* *##if ($stringUtils.isNotBlank($service.jndiNamePrefix) && $includePrefix) #* *##set ($jndiName = "${service.jndiNamePrefix}/${service.serviceName}/remote") #* *##else #* *##set ($jndiName = "${service.serviceName}/remote") #* *##end #**##end #end ## ## This macro will render the jndiName template parameter ## for the local interface. This takes into account if ## the jndi name is explicity specified. ## #macro (localJndiName $service $includePrefix) #**##if ($stringUtils.isNotBlank($service.jndiNameLocal)) #* *##set ($jndiName = "${service.jndiNameLocal}") #**##else #* *##if ($stringUtils.isNotBlank($service.jndiNamePrefix) && $includePrefix) #* *##set ($jndiName = "${service.jndiNamePrefix}/${service.serviceName}/local") #* *##else #* *##set ($jndiName = "${service.serviceName}/local") #* *##end #**##end #end 1.9 +3 -18 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/ServiceLocator.vsl Index: ServiceLocator.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/ServiceLocator.vsl,v retrieving revision 1.8 retrieving revision 1.9 diff -u -w -r1.8 -r1.9 --- ServiceLocator.vsl 14 Jun 2006 04:46:35 -0000 1.8 +++ ServiceLocator.vsl 4 Feb 2007 02:38:00 -0000 1.9 @@ -1,3 +1,4 @@ +#parse("templates/ejb3/common/JNDIMacros.vm") // license-header java merge-point // // Attention: Generated code! Do not modify by hand! @@ -111,15 +112,7 @@ public final $service.fullyQualifiedServiceRemoteInterfaceName get_${transform.toUnderscoreName(${service.fullyQualifiedServiceName})}_Remote(java.util.Properties env) throws javax.naming.NamingException { -#* *##if ($stringUtils.isNotBlank($service.jndiNameRemote)) -#* *##set ($jndiName = "${service.jndiNameRemote}") -#* *##else -#* *##if ($stringUtils.isNotBlank($service.jndiNamePrefix)) -#* *##set ($jndiName = "${service.jndiNamePrefix}/${service.serviceName}/remote") -#* *##else -#* *##set ($jndiName = "${service.serviceName}/remote") -#* *##end -#* *##end +#remoteJndiName($service true) return (${service.fullyQualifiedServiceRemoteInterfaceName}) getContext(env).lookup("${jndiName}"); } @@ -135,15 +128,7 @@ public final $service.fullyQualifiedServiceLocalInterfaceName get_${transform.toUnderscoreName(${service.fullyQualifiedServiceName})}_Local(java.util.Properties env) throws javax.naming.NamingException { -#* *##if ($stringUtils.isNotBlank($service.jndiNameLocal)) -#* *##set ($jndiName = "${service.jndiNameLocal}") -#* *##else -#* *##if ($stringUtils.isNotBlank($service.jndiNamePrefix)) -#* *##set ($jndiName = "${service.jndiNamePrefix}/${service.serviceName}/local") -#* *##else -#* *##set ($jndiName = "${service.serviceName}/local") -#* *##end -#* *##end +#localJndiName($service true) return (${service.fullyQualifiedServiceLocalInterfaceName}) getContext(env).lookup("${jndiName}"); } |
From: Vance K. <va...@us...> - 2007-02-04 02:37:55
|
User: vancek Date: 07/02/03 18:37:55 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/common - New directory |
From: Leif J. <le...@us...> - 2007-02-01 19:47:00
|
User: leifj Date: 07/02/01 11:46:51 Modified: andromda-jsf2/src/main/resources/templates/jsf2/configuration faces-config.xml.vsl Log: of course its the titleValue Revision Changes Path 1.5 +1 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/configuration/faces-config.xml.vsl Index: faces-config.xml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/configuration/faces-config.xml.vsl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- faces-config.xml.vsl 18 Jan 2007 12:37:13 -0000 1.4 +++ faces-config.xml.vsl 1 Feb 2007 19:46:51 -0000 1.5 @@ -69,7 +69,7 @@ <managed-bean-scope>application</managed-bean-scope> <managed-property> <property-name>label</property-name> - <value>$useCase.titleKey</value> + <value>$useCase.titleValue</value> </managed-property> <managed-property> <property-name>viewId</property-name> |
From: Vance K. <va...@us...> - 2007-02-01 14:32:15
|
User: vancek Date: 07/02/01 06:32:10 Modified: andromda-ejb3/src/site changes.xml andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3MetafacadeUtils.java Log: incorrect method attribute name causing invalid transaction type annotation for type NotSupported Revision Changes Path 1.5 +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.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- changes.xml 24 Jan 2007 04:37:55 -0000 1.4 +++ changes.xml 1 Feb 2007 14:32:10 -0000 1.5 @@ -354,6 +354,9 @@ <action dev="vancek" type="fix"> Fix DAO injection into DAO base when entity references another entity. </action> + <action dev="vancek" due-to="rajtuz" type="fix"> + Fix incorrect method name in EJB3MetafacadeUtils.convertTransactionType() for transaction type NotSupported. + </action> </release> </body> </document> \ No newline at end of file 1.9 +1 -1 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3MetafacadeUtils.java Index: EJB3MetafacadeUtils.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3MetafacadeUtils.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -w -r1.8 -r1.9 --- EJB3MetafacadeUtils.java 17 Jan 2007 00:50:55 -0000 1.8 +++ EJB3MetafacadeUtils.java 1 Feb 2007 14:32:10 -0000 1.9 @@ -250,7 +250,7 @@ } else if (StringUtils.equalsIgnoreCase(transType, EJB3Globals.TRANSACTION_TYPE_NOT_SUPPORTED)) { - transType = "NOT_SUPPORTED"; + type = "NOT_SUPPORTED"; } else if (StringUtils.equalsIgnoreCase(transType, EJB3Globals.TRANSACTION_TYPE_REQUIRED)) { |
From: Vance K. <va...@us...> - 2007-01-24 08:56:40
|
User: vancek Date: 07/01/24 00:56:41 Modified: andromda-ejb3/src/site/axdoc samples.xml Log: add timetracker-ejb3 sample docs Revision Changes Path 1.3 +34 -0 cartridges/andromda-ejb3/src/site/axdoc/samples.xml Index: samples.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/site/axdoc/samples.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- samples.xml 19 Jan 2007 13:16:57 -0000 1.2 +++ samples.xml 24 Jan 2007 08:56:40 -0000 1.3 @@ -14,6 +14,7 @@ <ul> <li><a href="samples.html#Samples_Demo_EJB3">Demo EJB3</a></li> <li><a href="samples.html#Seam_Booking">Seam Booking Example</a></li> + <li><a href="samples.html#Timetracker_EJB3">Timetracker EJB3</a></li> </ul> </p> <a name="Samples_Demo_EJB3"/> @@ -80,6 +81,39 @@ JSF with Facelets view components. </p> </subsection> + <a name="Timetracker_EJB3"/> + <subsection name="Timetracker EJB3 JSF Example"> + <p> + This sample application is located in the <code>samples/timetracker-ejb</code> directory of the + <code>andromda-plugins</code> project on SourceForge.net. + </p> + <p> + The project has the same structure as described in + <a href="http://galaxy.andromda.org/docs/samples.html">AndroMDA Samples</a>. + </p> + <p> + This sample application is a re-make of the + <a href="http://galaxy.andromda.org/index.php?option=com_content&task=category&sectionid=11&id=42&Itemid=89"> + AndroMDA Timetracker sample application</a> but + instead uses the EJB3 and the JSF cartridges. + </p> + <p> + Simply build the demo by executing <code>mvn</code> in the root of the project directory. + </p> + <p> + Once you have build the sample, you need to create the database called <code>timetracker</code>. + You can then deploy the following to JBoss. + <ul> + <li>timetracker-ejb3/app/target/timetracker-ejb3-ds.xml</li> + <li>timetracker-ejb3/app/target/timetracker-ejb3-1.0-SNAPSHOT.ear</li> + </ul> + </p> + <p> + Once you have deployed the EAR file, you can use the <code>sql.txt</code> MySQL script + to import the data into your database. This file is located in the root directory of this + project. + </p> + </subsection> </section> </body> </document> |
From: Vance K. <va...@us...> - 2007-01-24 08:56:21
|
User: vancek Date: 07/01/24 00:56:20 Modified: andromda-ejb3/src/main/resources/META-INF/andromda namespace.xml andromda-ejb3/src/site/axdoc howto6.xml Log: added criteria query docs Revision Changes Path 1.33 +2 -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.32 retrieving revision 1.33 diff -u -w -r1.32 -r1.33 --- namespace.xml 21 Jan 2007 04:17:40 -0000 1.32 +++ namespace.xml 24 Jan 2007 08:56:20 -0000 1.33 @@ -988,6 +988,8 @@ this must be set to <b>hibernate</b> such that the hibernate validator annotations are rendered. + To enable Hiberate Criteria Query, this must + be set to <b>hibernate</b>. Possible values are: <ul> <li>none</li> 1.3 +114 -1 cartridges/andromda-ejb3/src/site/axdoc/howto6.xml Index: howto6.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/site/axdoc/howto6.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- howto6.xml 19 Jan 2007 14:35:42 -0000 1.2 +++ howto6.xml 24 Jan 2007 08:56:20 -0000 1.3 @@ -107,6 +107,119 @@ set the named query, but OCL is still the preferred solution. </p> </section> + <section name="Criteria Queries"> + <p> + In some circumstance it is convenient to have the option of using Hibnerate criteria + queries. This is particularly usesful for search queries which are really on-the-fly + queries. If you are using <b>JBoss AS</b>, then most likely you are using Hibernate as + the persistence engine (unless you have changed this default behaviour). Criteria queries + are a Hibernate feature, so this is a strict requirement. + </p> + <p> + Before you can use criteria queries with the EJB3 cartridge, you must enable the + <code>persistenceProviderExtensions</code> namespace property in the <code>ejb3</code> + namespace section of your <i>andromda.xml</i> application descriptor, like so: +<source language="xml"><![CDATA[ + <namespace name="ejb3"> + <properties> + ... + <property name="persistenceProviderExtensions">hibernate</property> + ... + </properties> + </namespace> +]]></source> + </p> + <p> + You should also add the <i>hibernate</i> artifact dependency to your root project pom.xml as: +<source language="xml"><![CDATA[ + <dependencyManagement> + <dependencies> + ... + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate</artifactId> + <version>3.2.1.ga</version> + <scope>provided</scope> + </dependency> + ... + <dependencies> + <dependencyManagement> +]]></source> + </p> + <p> + Then in the <code>core</code> sub-project, add the above dependency to avoid + build errors when the <code>org.hibernate.Session</code> object is injected in the + DAO base class. + </p> + <p> + By setting the <code>persistenceProviderExtensions</code> property value to <code>hibernate</code>, + you are telling the EJB3 cartridge to use <i>Hibernate</i> add-on features and annotations. + Specifically, this will inject the <code>org.hibernate.Session</code> into the auto-generated + DAO base classes of your project like so: +<source language="java"><![CDATA[ + @javax.persistence.PersistenceContext(unitName = "timetracker") + protected org.hibernate.Session hibernateSession; +]]></source> + </p> + <p> + You can then model a <i>Classifier</i> scoped operation in your Entity such that you can + over-write the implementation in the DAOImpl (DAP implementation) and use the session object to + create the criteria and perform the query. + </p> + <p> + To further understand this usage, you can take are look at the timetracker-ejb3 + <a href="samples.html#Timetracker_EJB3">Timetracker EJB3 - JSF sample</a>. The following + segment of code is taken from this sample project showing you how similar it can be to the + standard usage under the Hibernate/Spring cartridges; only difference being that the + hibernate session is already injected into the DAO base class for you. +<source language="java"><![CDATA[ + protected java.util.List handleFindByCriteria(org.andromda.timetracker.vo.TimecardSearchCriteriaVO criteria) + { + // Create the timecard criteria + Criteria timecardCriteria = hibernateSession.createCriteria(Timecard.class); + timecardCriteria.setFetchMode("submitter", FetchMode.JOIN); + timecardCriteria.setFetchMode("approver", FetchMode.JOIN); + + // Add sumitter criteria + if (criteria.getSubmitterId() != null) + { + timecardCriteria.createCriteria("submitter").add(Restrictions.idEq(criteria.getSubmitterId())); + } + + // Add approver criteria + if (criteria.getApproverId() != null) + { + timecardCriteria.createCriteria("approver").add(Restrictions.idEq(criteria.getApproverId())); + } + + // Add status criteria + if (criteria.getStatus() != null) + { + timecardCriteria.add(Restrictions.eq("status", criteria.getStatus())); + } + + // Add startDateMin criteria + if (criteria.getStartDateMin() != null) + { + timecardCriteria.add(Restrictions.ge("startDate", criteria.getStartDateMin())); + } + + // Add startDateMax criteria + if (criteria.getStartDateMax() != null) + { + timecardCriteria.add(Restrictions.le("startDate", criteria.getStartDateMax())); + } + + List timecards = timecardCriteria.list(); + if (logger.isDebugEnabled()) + { + logger.debug(timecards.size() + " timecards found"); + } + return timecards; + } +]]></source> + </p> + </section> <section name="Nice to know"> <subsection name="A few supported query features"> <p> |
From: Vance K. <va...@us...> - 2007-01-24 06:53:07
|
User: vancek Date: 07/01/23 22:53:08 Modified: samples/timetracker-ejb3/app/src/main/application/META-INF timetracker-login-config.xml samples/timetracker-ejb3/mda/src/main/uml timetracker.xmi Added: samples/timetracker-ejb3 sql.txt Log: update schema User-UserRoles Revision Changes Path 1.2 +2 -3 plugins/samples/timetracker-ejb3/app/src/main/application/META-INF/timetracker-login-config.xml Index: timetracker-login-config.xml =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/samples/timetracker-ejb3/app/src/main/application/META-INF/timetracker-login-config.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- timetracker-login-config.xml 24 Jan 2007 04:33:38 -0000 1.1 +++ timetracker-login-config.xml 24 Jan 2007 06:53:07 -0000 1.2 @@ -14,12 +14,11 @@ select u.password as 'Password' from users u where binary u.username =? </module-option> <module-option name="rolesQuery"> - select distinct r.role as 'Roles', 'Roles' as 'RoleGroups' from users u left join users_user_role as ur on u.id = ur.users_id left join user_role as r on r.id = ur.roles_id where binary u.username =? + select distinct ur.role as 'Roles', 'Roles' as 'RoleGroups' from users u left join user_role as ur on u.id = ur.user where binary u.username =? </module-option> - <!-- uncomment to enable MD5 and BASE64 hash encoding + <!-- uncomment to enable MD5 and BASE64 hash encoding --> <module-option name="hashAlgorithm">MD5</module-option> <module-option name="hashEncoding">BASE64</module-option> - --> </login-module> </authentication> </application-policy> 1.2 +6 -6 plugins/samples/timetracker-ejb3/mda/src/main/uml/timetracker.xmi Index: timetracker.xmi =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/samples/timetracker-ejb3/mda/src/main/uml/timetracker.xmi,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- timetracker.xmi 24 Jan 2007 04:33:36 -0000 1.1 +++ timetracker.xmi 24 Jan 2007 06:53:07 -0000 1.2 @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='UTF-8'?> <!-- <!DOCTYPE XMI SYSTEM "uml14xmi12.dtd"> --> -<XMI xmi.version='1.2' timestamp='Wed Jan 24 13:07:05 GMT+08:00 2007' xmlns:UML='omg.org/UML/1.4'> +<XMI xmi.version='1.2' timestamp='Wed Jan 24 15:14:57 GMT+08:00 2007' xmlns:UML='omg.org/UML/1.4'> <XMI.header> <XMI.documentation> <XMI.exporter>MagicDraw UML</XMI.exporter> @@ -778,7 +778,7 @@ </UML:Class> <UML:Association xmi.id='_9_5_1_8c50279_1169562351546_551356_632' isRoot='false' isLeaf='false' isAbstract='false'> <UML:Association.connection> - <UML:AssociationEnd xmi.id='_9_5_1_8c50279_1169562351546_772011_630' name='user' visibility='public' isNavigable='false' ordering='unordered' aggregation='none' targetScope='instance' changeability='changeable' association='_9_5_1_8c50279_1169562351546_551356_632' participant='_9_5_1_8c50279_1169288267218_362608_214'/> + <UML:AssociationEnd xmi.id='_9_5_1_8c50279_1169562351546_772011_630' name='user' visibility='public' isNavigable='true' ordering='unordered' aggregation='none' targetScope='instance' changeability='changeable' association='_9_5_1_8c50279_1169562351546_551356_632' participant='_9_5_1_8c50279_1169288267218_362608_214'/> <UML:AssociationEnd xmi.id='_9_5_1_8c50279_1169562351546_940963_631' name='roles' visibility='public' isNavigable='true' ordering='unordered' aggregation='none' targetScope='instance' changeability='changeable' association='_9_5_1_8c50279_1169562351546_551356_632' participant='_9_5_1_8c50279_1169562315843_550874_612'> <UML:AssociationEnd.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169610631000_262917_910'> @@ -1875,10 +1875,10 @@ <zoomFactor xmi.value='1.0'/> <diagramOpened xmi.value='true'/> <diagramWindowBounds>0, 0, 936, 849</diagramWindowBounds> - <diagramScrollPositionX xmi.value='575'/> + <diagramScrollPositionX xmi.value='522'/> <diagramScrollPositionY xmi.value='0'/> <maximized xmi.value='true'/> - <active xmi.value='false'/> + <active xmi.value='true'/> <mdOwnedViews> <mdElement elementClass='ClassView' xmi.id='_9_5_1_8c50279_1169288267218_291755_215'> <elementID xmi.idref='_9_5_1_8c50279_1169288267218_362608_214'/> @@ -2264,7 +2264,7 @@ <diagramScrollPositionX xmi.value='0'/> <diagramScrollPositionY xmi.value='0'/> <maximized xmi.value='true'/> - <active xmi.value='true'/> + <active xmi.value='false'/> <mdOwnedViews> <mdElement elementClass='UseCaseView' xmi.id='_9_5_1_8c50279_1169289715765_476802_469'> <elementID xmi.idref='_9_5_1_8c50279_1169289715765_707040_468'/> @@ -3324,7 +3324,7 @@ <mdElement elementClass='StringProperty'> <propertyID>INFO_PROPERTY</propertyID> <propertyDescriptionID>INFO_PROPERTY_DESCRIPTION</propertyDescriptionID> - <value>18 2d 42 2e 31 6e 45 2f a 54 5 60 71 50 a3 6b e4 4b 7d ea 49 37 68 2c 1f 42 d 52 25 27 b7 21 18 91 a5 a9 6 ce fe 50 ff 7d f7 b7 a1 ab 60 b9 9e a7 1b 8a 22 9d 93 c7 5f 98 84 65 e1 e3 f6 3c 54 fd 28 bb a1 2b f6 5a b8 cb d6 e5 9d </value> + <value>18 2d 42 2e 31 6e 45 2f a 54 5 60 71 50 a3 6b e4 4b 7d ea 49 37 68 2a 1f 43 e 52 20 25 b7 21 18 91 a5 a9 6 ce fe 50 ff 7d f7 b7 a1 ab 60 b9 9e a7 1b 8a 22 9d 93 c7 5f 98 84 65 e1 e3 f6 3c 54 fd 28 bb a1 2b f6 5a b8 cb d6 e5 9d </value> <multiline xmi.value='false'/> </mdElement> <mdElement elementClass='ChoiceProperty'> 1.1 plugins/samples/timetracker-ejb3/sql.txt Index: sql.txt =================================================================== insert into users (ID, USERNAME, PASSWORD, FIRST_NAME, LAST_NAME, EMAIL, IS_ACTIVE, CREATION_DATE, COMMENT) values (1, 'nbhatia', '756slLjeNViurJBGI5JeqA==', 'Naresh', 'Bhatia', 'nb...@no...This email address is being protected from spam bots, you need Javascript enabled to view it', 1, '2006/01/01 09:00', null); insert into users (ID, USERNAME, PASSWORD, FIRST_NAME, LAST_NAME, EMAIL, IS_ACTIVE, CREATION_DATE, COMMENT) values (2, 'lcoude', '756slLjeNViurJBGI5JeqA==', 'Louis', 'Coude', 'lc...@no...This email address is being protected from spam bots, you need Javascript enabled to view it', 1, '2006/01/01 09:00', null); insert into users (ID, USERNAME, PASSWORD, FIRST_NAME, LAST_NAME, EMAIL, IS_ACTIVE, CREATION_DATE, COMMENT) values (3, 'ecrutchfield', '756slLjeNViurJBGI5JeqA==', 'Eric', 'Crutchfield', 'ecr...@no...This email address is being protected from spam bots, you need Javascript enabled to view it', 1, '2006/01/01 09:00', null); insert into users (ID, USERNAME, PASSWORD, FIRST_NAME, LAST_NAME, EMAIL, IS_ACTIVE, CREATION_DATE, COMMENT) values (4, 'cmicali', '756slLjeNViurJBGI5JeqA==', 'Chris', 'Micali', 'cm...@no...This email address is being protected from spam bots, you need Javascript enabled to view it', 1, '2006/01/01 09:00', null); insert into user_role (ID, ROLE, USER) values (1, 'ADMIN', 1); insert into user_role (ID, ROLE, USER) values (2, 'USER', 1); insert into user_role (ID, ROLE, USER) values (3, 'USER', 2); insert into user_role (ID, ROLE, USER) values (4, 'USER', 3); insert into user_role (ID, ROLE, USER) values (5, 'USER', 4); -- insert into users_user_role (USERS_ID, ROLES_ID) values (1, 1); -- insert into users_user_role (USERS_ID, ROLES_ID) values (1, 2); -- insert into users_user_role (USERS_ID, ROLES_ID) values (2, 2); -- insert into users_user_role (USERS_ID, ROLES_ID) values (3, 2); -- insert into users_user_role (USERS_ID, ROLES_ID) values (4, 1); -- insert into users_user_role (USERS_ID, ROLES_ID) values (4, 2); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values ( 1, 'APPROVED', '2006/05/15', 'Timecard 01', 1, 2); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values ( 2, 'APPROVED', '2006/05/15', 'Timecard 02', 2, 3); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values ( 3, 'APPROVED', '2006/05/15', 'Timecard 03', 3, 4); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values ( 4, 'APPROVED', '2006/05/15', 'Timecard 04', 4, 1); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values ( 5, 'REJECTED', '2006/05/22', 'Timecard 05', 1, 2); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values ( 6, 'REJECTED', '2006/05/22', 'Timecard 06', 2, 3); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values ( 7, 'REJECTED', '2006/05/22', 'Timecard 07', 3, 4); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values ( 8, 'REJECTED', '2006/05/22', 'Timecard 08', 4, 1); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values ( 9, 'SUBMITTED', '2006/05/29', 'Timecard 09', 1, 2); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values (10, 'SUBMITTED', '2006/05/29', 'Timecard 10', 2, 3); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values (11, 'SUBMITTED', '2006/05/29', 'Timecard 11', 3, 4); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values (12, 'SUBMITTED', '2006/05/29', 'Timecard 12', 4, 1); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values (13, 'DRAFT', '2006/06/05', 'Timecard 13', null, 2); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values (14, 'DRAFT', '2006/06/05', 'Timecard 14', null, 3); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values (15, 'DRAFT', '2006/06/05', 'Timecard 15', null, 4); insert into timecard (ID, STATUS, START_DATE, COMMENTS, APPROVER, SUBMITTER) values (16, 'DRAFT', '2006/06/05', 'Timecard 16', null, 1); |
From: Vance K. <va...@us...> - 2007-01-24 04:54:20
|
User: vancek Date: 07/01/23 20:32:50 plugins/samples/timetracker-ejb3/mda/src/main/uml - New directory |
From: Vance K. <va...@us...> - 2007-01-24 04:37:54
|
User: vancek Date: 07/01/23 20:37:55 Modified: andromda-ejb3/src/main/resources/templates/ejb3 DaoBase.vsl andromda-ejb3/src/site changes.xml Log: fix DAO injection into DAO base where entity references another entity Revision Changes Path 1.12 +12 -9 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl Index: DaoBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl,v retrieving revision 1.11 retrieving revision 1.12 diff -u -w -r1.11 -r1.12 --- DaoBase.vsl 23 Jan 2007 01:24:13 -0000 1.11 +++ DaoBase.vsl 24 Jan 2007 04:37:55 -0000 1.12 @@ -69,17 +69,20 @@ protected org.hibernate.Session hibernateSession; #end -#foreach($entityRef in $entity.entityReferences) - private $entityRef.targetElement.fullyQualifiedDaoName $entityRef.daoName; +#set ($entityReferences = $entity.entityReferences) +#if (!$entityReferences.empty) + // ------ DAO Injections ------ +#**##foreach($entityRef in $entityReferences) /** - * Sets the reference to <code>$entityRef.daoName</code>. + * Inject DAO $entityRef.targetElement.fullyQualifiedDaoName */ - public void ${entityRef.daoSetterName}($entityRef.targetElement.fullyQualifiedDaoName $entityRef.daoName) - { - this.$entityRef.daoName = $entityRef.daoName; - } + @javax.ejb.EJB + protected $entityRef.targetElement.fullyQualifiedDaoName $entityRef.daoName; +#**##end +#end +#foreach($entityRef in $entityReferences) /** * Gets the reference to <code>$entityRef.daoName</code>. */ 1.4 +7 -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.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- changes.xml 21 Jan 2007 04:17:40 -0000 1.3 +++ changes.xml 24 Jan 2007 04:37:55 -0000 1.4 @@ -347,6 +347,13 @@ Fix Entity - EntityVO conversion methods in the DAO base classes by adding the Converter template object to the cartridge.xml and the necessary namespace property to namespace.xml. </action> + <action dev="vancek" type="add"> + Inject org.hibernate.Session into DAO base class if hibernateExtensionEnabled is true. This can be used + to create Hibernate Search Criteria. + </action> + <action dev="vancek" type="fix"> + Fix DAO injection into DAO base when entity references another entity. + </action> </release> </body> </document> \ No newline at end of file |
From: Vance K. <va...@us...> - 2007-01-24 04:33:38
|
User: vancek Date: 07/01/23 20:33:39 Added: samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain TimecardDaoImpl.java UserDaoImpl.java Timecard.java UserRoleDaoImpl.java samples/timetracker-ejb3/core/src/test/resources log4j.xml testBeanRefFactory.xml testng.xml samples/timetracker-ejb3/mda/src/main/uml timetracker.xmi samples/timetracker-ejb3/core/src/test/java/org/andromda/timetracker/service TimeTrackingServiceTest.java UserServiceTest.java samples/timetracker-ejb3 pom.xml .project .classpath .cvsignore readme.txt samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/service UserServiceBean.java TimeTrackingServiceBean.java samples/timetracker-ejb3/app pom.xml .cvsignore samples/timetracker-ejb3/common .cvsignore pom.xml samples/timetracker-ejb3/mda pom.xml .cvsignore samples/timetracker-ejb3/app/src/main/config timetracker-ds.xml auth.conf samples/timetracker-ejb3/common/src/main/java/org/andromda/timetracker/vo UserVOComparator.java samples/timetracker-ejb3/client .cvsignore pom.xml samples/timetracker-ejb3/app/src/main/application/META-INF timetracker-login-config.xml jboss-app.xml timetracker-login-service.xml samples/timetracker-ejb3/web/src/main/java/org/andromda/timetracker/web/timecardsearch SearchControllerImpl.java samples/timetracker-ejb3/client/src/main/java/org/andromda/timetracker/client Client.java samples/timetracker-ejb3/mda/src/main/config/mappings WebMergeMappings.xml samples/timetracker-ejb3/core .cvsignore pom.xml samples/timetracker-ejb3/mda/src/main/config andromda.xml samples/timetracker-ejb3/web/src/main/css custom.css samples/timetracker-ejb3/web pom.xml .cvsignore samples/timetracker-ejb3/web/src/main/properties messages.properties Log: sample timetracker using EJB3 and JSF cartridges Revision Changes Path 1.1 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain/TimecardDaoImpl.java Index: TimecardDaoImpl.java =================================================================== // license-header java merge-point /** * This is only generated once! It will never be overwritten. * You can (and have to!) safely modify it by hand. */ package org.andromda.timetracker.domain; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.Criteria; import org.hibernate.FetchMode; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; /** * @see org.andromda.timetracker.domain.Timecard */ public class TimecardDaoImpl extends org.andromda.timetracker.domain.TimecardDaoBase { private Log logger = LogFactory.getLog(TimecardDaoImpl.class); /** * @see org.andromda.timetracker.domain.TimecardDao#findByCriteria(org.andromda.timetracker.vo.TimecardSearchCriteriaVO) */ protected java.util.List handleFindByCriteria(org.andromda.timetracker.vo.TimecardSearchCriteriaVO criteria) { // Create the timecard criteria Criteria timecardCriteria = hibernateSession.createCriteria(Timecard.class); timecardCriteria.setFetchMode("submitter", FetchMode.JOIN); timecardCriteria.setFetchMode("approver", FetchMode.JOIN); // Add sumitter criteria if (criteria.getSubmitterId() != null) { timecardCriteria.createCriteria("submitter").add(Restrictions.idEq(criteria.getSubmitterId())); } // Add approver criteria if (criteria.getApproverId() != null) { timecardCriteria.createCriteria("approver").add(Restrictions.idEq(criteria.getApproverId())); } // Add status criteria if (criteria.getStatus() != null) { timecardCriteria.add(Restrictions.eq("status", criteria.getStatus())); } // Add startDateMin criteria if (criteria.getStartDateMin() != null) { timecardCriteria.add(Restrictions.ge("startDate", criteria.getStartDateMin())); } // Add startDateMax criteria if (criteria.getStartDateMax() != null) { timecardCriteria.add(Restrictions.le("startDate", criteria.getStartDateMax())); } List timecards = timecardCriteria.list(); if (logger.isDebugEnabled()) { logger.debug(timecards.size() + " timecards found"); } return timecards; } /** * @see org.andromda.timetracker.domain.TimecardDao#toTimecardSummaryVO(org.andromda.timetracker.domain.Timecard, org.andromda.timetracker.vo.TimecardSummaryVO) */ public void toTimecardSummaryVO( org.andromda.timetracker.domain.Timecard sourceEntity, org.andromda.timetracker.vo.TimecardSummaryVO targetVO) { // ${toDoTag} verify behavior of toTimecardSummaryVO super.toTimecardSummaryVO(sourceEntity, targetVO); // add the related entities targetVO.setSubmitterName(sourceEntity.getSubmitter().getUsername()); if (sourceEntity.getApprover() != null) { targetVO.setApproverName(sourceEntity.getApprover().getUsername()); } } /** * @see org.andromda.timetracker.domain.TimecardDao#toTimecardSummaryVO(org.andromda.timetracker.domain.Timecard) */ public org.andromda.timetracker.vo.TimecardSummaryVO toTimecardSummaryVO(final org.andromda.timetracker.domain.Timecard entity) { // ${toDoTag} verify behavior of toTimecardSummaryVO return super.toTimecardSummaryVO(entity); } /** * Retrieves the entity object that is associated with the specified value object * from the object store. If no such entity object exists in the object store, * a new, blank entity is created */ private org.andromda.timetracker.domain.Timecard loadTimecardFromTimecardSummaryVO(org.andromda.timetracker.vo.TimecardSummaryVO timecardSummaryVO) { // ${toDoTag} implement loadTimecardFromTimecardSummaryVO throw new java.lang.UnsupportedOperationException("org.andromda.timetracker.domain.loadTimecardFromTimecardSummaryVO(org.andromda.timetracker.vo.TimecardSummaryVO) not yet implemented."); /* A typical implementation looks like this: org.andromda.timetracker.domain.Timecard timecard = this.load(timecardSummaryVO.getId()); if (timecard == null) { timecard = org.andromda.timetracker.domain.Timecard.Factory.newInstance(); } return timecard; */ } /** * @see org.andromda.timetracker.domain.TimecardDao#timecardSummaryVOToEntity(org.andromda.timetracker.vo.TimecardSummaryVO) */ public org.andromda.timetracker.domain.Timecard timecardSummaryVOToEntity(org.andromda.timetracker.vo.TimecardSummaryVO timecardSummaryVO) { // ${toDoTag} verify behavior of timecardSummaryVOToEntity org.andromda.timetracker.domain.Timecard entity = this.loadTimecardFromTimecardSummaryVO(timecardSummaryVO); this.timecardSummaryVOToEntity(timecardSummaryVO, entity, true); return entity; } /** * @see org.andromda.timetracker.domain.TimecardDao#timecardSummaryVOToEntity(org.andromda.timetracker.vo.TimecardSummaryVO, org.andromda.timetracker.domain.Timecard) */ public void timecardSummaryVOToEntity( org.andromda.timetracker.vo.TimecardSummaryVO sourceVO, org.andromda.timetracker.domain.Timecard targetEntity, boolean copyIfNull) { // ${toDoTag} verify behavior of timecardSummaryVOToEntity super.timecardSummaryVOToEntity(sourceVO, targetEntity, copyIfNull); } } 1.1 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain/UserDaoImpl.java Index: UserDaoImpl.java =================================================================== // license-header java merge-point /** * This is only generated once! It will never be overwritten. * You can (and have to!) safely modify it by hand. */ package org.andromda.timetracker.domain; import java.util.Collection; import java.util.Set; import java.util.TreeSet; import org.andromda.timetracker.vo.UserDetailsVO; import org.andromda.timetracker.vo.UserRoleVO; /** * @see org.andromda.timetracker.domain.User */ public class UserDaoImpl extends org.andromda.timetracker.domain.UserDaoBase { /** * @see org.andromda.timetracker.domain.UserDao#toUserVO(org.andromda.timetracker.domain.User, org.andromda.timetracker.vo.UserVO) */ public void toUserVO( org.andromda.timetracker.domain.User sourceEntity, org.andromda.timetracker.vo.UserVO targetVO) { // ${toDoTag} verify behavior of toUserVO super.toUserVO(sourceEntity, targetVO); // WARNING! No conversion for targetVO.id (can't convert sourceEntity.getId():java.lang.Long to java.lang.Long // WARNING! No conversion for targetVO.username (can't convert sourceEntity.getUsername():java.lang.String to java.lang.String // WARNING! No conversion for targetVO.firstName (can't convert sourceEntity.getFirstName():java.lang.String to java.lang.String // WARNING! No conversion for targetVO.lastName (can't convert sourceEntity.getLastName():java.lang.String to java.lang.String } /** * @see org.andromda.timetracker.domain.UserDao#toUserVO(org.andromda.timetracker.domain.User) */ public org.andromda.timetracker.vo.UserVO toUserVO(final org.andromda.timetracker.domain.User entity) { // ${toDoTag} verify behavior of toUserVO return super.toUserVO(entity); } /** * Retrieves the entity object that is associated with the specified value object * from the object store. If no such entity object exists in the object store, * a new, blank entity is created */ private org.andromda.timetracker.domain.User loadUserFromUserVO(org.andromda.timetracker.vo.UserVO userVO) { // ${toDoTag} implement loadUserFromUserVO throw new java.lang.UnsupportedOperationException("org.andromda.timetracker.domain.loadUserFromUserVO(org.andromda.timetracker.vo.UserVO) not yet implemented."); /* A typical implementation looks like this: org.andromda.timetracker.domain.User user = this.load(userVO.getId()); if (user == null) { user = org.andromda.timetracker.domain.User.Factory.newInstance(); } return user; */ } /** * @see org.andromda.timetracker.domain.UserDao#userVOToEntity(org.andromda.timetracker.vo.UserVO) */ public org.andromda.timetracker.domain.User userVOToEntity(org.andromda.timetracker.vo.UserVO userVO) { // ${toDoTag} verify behavior of userVOToEntity org.andromda.timetracker.domain.User entity = this.loadUserFromUserVO(userVO); this.userVOToEntity(userVO, entity, true); return entity; } /** * @see org.andromda.timetracker.domain.UserDao#userVOToEntity(org.andromda.timetracker.vo.UserVO, org.andromda.timetracker.domain.User) */ public void userVOToEntity( org.andromda.timetracker.vo.UserVO sourceVO, org.andromda.timetracker.domain.User targetEntity, boolean copyIfNull) { // ${toDoTag} verify behavior of userVOToEntity super.userVOToEntity(sourceVO, targetEntity, copyIfNull); // No conversion for targetEntity.username (can't convert sourceVO.getUsername():java.lang.String to java.lang.String // No conversion for targetEntity.firstName (can't convert sourceVO.getFirstName():java.lang.String to java.lang.String // No conversion for targetEntity.lastName (can't convert sourceVO.getLastName():java.lang.String to java.lang.String } /** * @see org.andromda.timetracker.domain.UserDao#toUserDetailsVO(org.andromda.timetracker.domain.User, org.andromda.timetracker.vo.UserDetailsVO) */ public void toUserDetailsVO( org.andromda.timetracker.domain.User sourceEntity, org.andromda.timetracker.vo.UserDetailsVO targetVO) { super.toUserDetailsVO(sourceEntity, targetVO); // Convert roles Collection srcRoles = sourceEntity.getRoles(); UserRoleVO[] targetRoles = new UserRoleVO[srcRoles.size()]; int i=0; for (Object srcRole : srcRoles) { targetRoles[i] = getUserRoleDao().toUserRoleVO((UserRole)srcRole); i++; } targetVO.setRoles(targetRoles); } /** * Retrieves the entity object that is associated with the specified value object * from the object store. If no such entity object exists in the object store, * a new, blank entity is created */ private org.andromda.timetracker.domain.User loadUserFromUserDetailsVO(org.andromda.timetracker.vo.UserDetailsVO userDetailsVO) { org.andromda.timetracker.domain.User user = null; if (userDetailsVO != null && userDetailsVO.getId() != null) { try { user = this.load(userDetailsVO.getId()); } catch (UserDaoException e) { // user id no set - OK to ignore } } if (user == null) { user = new User(); } return user; } /** * @see org.andromda.timetracker.domain.UserDao#userDetailsVOToEntity(org.andromda.timetracker.vo.UserDetailsVO) */ public User userDetailsVOToEntity(UserDetailsVO userDetailsVO) { org.andromda.timetracker.domain.User entity = this.loadUserFromUserDetailsVO(userDetailsVO); this.userDetailsVOToEntity(userDetailsVO, entity, true); return entity; } /** * @see org.andromda.timetracker.domain.UserDao#userDetailsVOToEntity(org.andromda.timetracker.vo.UserDetailsVO, org.andromda.timetracker.domain.User) */ public void userDetailsVOToEntity( org.andromda.timetracker.vo.UserDetailsVO sourceVO, org.andromda.timetracker.domain.User targetEntity, boolean copyIfNull) { // @todo verify behavior of userDetailsVOToEntity super.userDetailsVOToEntity(sourceVO, targetEntity, copyIfNull); if (sourceVO.getRoles().length > 0) { Set<UserRole> roles = new TreeSet<UserRole>(); for (UserRoleVO userRoleVO : sourceVO.getRoles()) { System.out.println(" user role : " + userRoleVO.getRole()); roles.add(this.getUserRoleDao().userRoleVOToEntity(userRoleVO)); } targetEntity.setRoles(roles); } } } 1.1 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain/Timecard.java Index: Timecard.java =================================================================== // license-header java merge-point // // Attention: Generated code! Do not modify by hand! // Generated by: Entity.vsl in andromda-ejb3-cartridge. // package org.andromda.timetracker.domain; /** * Autogenerated POJO EJB3 implementation class for Timecard. * * Add any manual implementation within this class. This class will NOT * be overwritten with incremental changes. * * * */ @javax.persistence.Entity // Uncomment to enable seam component name // @org.jboss.seam.annotations.Name("timecard") // Uncomment to set specific component scope type //@org.jboss.seam.annotations.Scope(org.jboss.seam.ScopeType.CONVERSATION) @javax.persistence.Table(name = "TIMECARD") // Uncomment to enable entity listener for Timecard // @javax.persistence.EntityListeners({org.andromda.timetracker.domain.TimecardListener.class}) // Uncomment to enable caching for Timecard // @org.hibernate.annotations.Cache(usage = org.hibernate.annotations.CacheConcurrencyStrategy.TRANSACTIONAL) @javax.persistence.NamedQuery(name = "Timecard.findAll", query = "select timecard from Timecard AS timecard") public class Timecard extends org.andromda.timetracker.domain.TimecardEmbeddable implements java.io.Serializable, Comparable<Timecard> { /** * The serial version UID of this class required for serialization. */ private static final long serialVersionUID = -2301368423761775897L; // --------------- constructors ----------------- /** * Default Timecard constructor */ public Timecard() { super(); } /** * Implementation for the constructor with all POJO attributes except auto incremented identifiers. * This method sets all POJO fields defined in this/super class to the * values provided by the parameters. * */ public Timecard(org.andromda.timetracker.domain.TimecardStatus status, java.util.Date startDate, java.lang.String comments) { super(status, startDate, comments); } /** * Constructor with all POJO attribute values and CMR relations. * * @param status Value for the status property * @param startDate Value for the startDate property * @param comments Value for the comments property * @param submitter Value for the submitter relation role * @param approver Value for the approver relation role */ public Timecard(org.andromda.timetracker.domain.TimecardStatus status, java.util.Date startDate, java.lang.String comments, org.andromda.timetracker.domain.User submitter, org.andromda.timetracker.domain.User approver) { super(status, startDate, comments, submitter, approver); } // -------------- Entity Methods ----------------- /** * */ @javax.persistence.Transient public static java.util.List findByCriteria(org.andromda.timetracker.vo.TimecardSearchCriteriaVO criteria) { // TODO put your implementation here. return null; } // --------------- Lifecycle callbacks ----------------- /** * @see java.lang.Comparable#compareTo(T) */ public int compareTo(Timecard o) { int cmp = 0; if (this.getId() != null) { cmp = this.getId().compareTo(o.getId()); } else { if (this.getStatus() != null) { cmp = (cmp != 0 ? cmp : this.getStatus().compareTo(o.getStatus())); } if (this.getStartDate() != null) { cmp = (cmp != 0 ? cmp : this.getStartDate().compareTo(o.getStartDate())); } if (this.getComments() != null) { cmp = (cmp != 0 ? cmp : this.getComments().compareTo(o.getComments())); } } return cmp; } } 1.1 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain/UserRoleDaoImpl.java Index: UserRoleDaoImpl.java =================================================================== // license-header java merge-point /** * This is only generated once! It will never be overwritten. * You can (and have to!) safely modify it by hand. */ package org.andromda.timetracker.domain; /** * @see org.andromda.timetracker.domain.UserRole */ public class UserRoleDaoImpl extends org.andromda.timetracker.domain.UserRoleDaoBase { /** * @see org.andromda.timetracker.domain.UserRoleDao#toUserRoleVO(org.andromda.timetracker.domain.UserRole, org.andromda.timetracker.vo.UserRoleVO) */ public void toUserRoleVO( org.andromda.timetracker.domain.UserRole sourceEntity, org.andromda.timetracker.vo.UserRoleVO targetVO) { // ${toDoTag} verify behavior of toUserRoleVO super.toUserRoleVO(sourceEntity, targetVO); } /** * @see org.andromda.timetracker.domain.UserRoleDao#toUserRoleVO(org.andromda.timetracker.domain.UserRole) */ public org.andromda.timetracker.vo.UserRoleVO toUserRoleVO(final org.andromda.timetracker.domain.UserRole entity) { // ${toDoTag} verify behavior of toUserRoleVO return super.toUserRoleVO(entity); } /** * Retrieves the entity object that is associated with the specified value object * from the object store. If no such entity object exists in the object store, * a new, blank entity is created */ private org.andromda.timetracker.domain.UserRole loadUserRoleFromUserRoleVO(org.andromda.timetracker.vo.UserRoleVO userRoleVO) { org.andromda.timetracker.domain.UserRole userRole = null; if (userRoleVO != null && userRoleVO.getId() != null) { try { userRole = this.load(userRoleVO.getId()); } catch (UserRoleDaoException e) { // ok to continue } } if (userRole == null) { userRole = new UserRole(); } return userRole; } /** * @see org.andromda.timetracker.domain.UserRoleDao#userRoleVOToEntity(org.andromda.timetracker.vo.UserRoleVO) */ public org.andromda.timetracker.domain.UserRole userRoleVOToEntity(org.andromda.timetracker.vo.UserRoleVO userRoleVO) { // ${toDoTag} verify behavior of userRoleVOToEntity org.andromda.timetracker.domain.UserRole entity = this.loadUserRoleFromUserRoleVO(userRoleVO); this.userRoleVOToEntity(userRoleVO, entity, true); return entity; } /** * @see org.andromda.timetracker.domain.UserRoleDao#userRoleVOToEntity(org.andromda.timetracker.vo.UserRoleVO, org.andromda.timetracker.domain.UserRole) */ public void userRoleVOToEntity( org.andromda.timetracker.vo.UserRoleVO sourceVO, org.andromda.timetracker.domain.UserRole targetEntity, boolean copyIfNull) { // ${toDoTag} verify behavior of userRoleVOToEntity super.userRoleVOToEntity(sourceVO, targetEntity, copyIfNull); } } 1.1 plugins/samples/timetracker-ejb3/core/src/test/resources/log4j.xml Index: log4j.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <!-- ****************************************************************************** * Log4j Configuration * * Logging levels (higest to lowest): * off, fatal, error, warn, info, debug, all * A logging request is enabled if its level is * higher than or equal to the level of its logger. ****************************************************************************** --> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!-- ******************************************************************* --> <!-- ConsoleAppender --> <!-- ******************************************************************* --> <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"> <param name="Threshold" value="warn"/> <layout class="org.apache.log4j.PatternLayout"> <!-- Conversion pattern: Message\n --> <param name="ConversionPattern" value="%m%n"/> </layout> </appender> <!-- ******************************************************************* --> <!-- FileAppender --> <!-- ******************************************************************* --> <appender name="FileAppender" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="timetracker-test.log"/> <param name="Append" value="false"/> <layout class="org.apache.log4j.PatternLayout"> <!-- Conversion pattern: Time Priority - Message\n --> <param name="ConversionPattern" value="%d{HH:mm:ss.SSS} %-5p - %m%n"/> <!-- Alternate Conversion pattern: Time Priority - Class[Line] - Message\n --> <!-- <param name="ConversionPattern" value="%d{HH:mm:ss.SSS} %-5p %50C[%4L] - %m%n"/> --> </layout> </appender> <!-- ******************************************************************* --> <!-- Low Level Loggers --> <!-- ******************************************************************* --> <!-- Log hibernate messages --> <logger name="org.hibernate"> <level value="warn"/> </logger> <!-- Log HQL query parser activity --> <logger name="org.hibernate.hql.ast.AST"> <level value="warn"/> </logger> <!-- Log just the SQL --> <logger name="org.hibernate.SQL"> <level value="debug"/> </logger> <!-- Log JDBC bind parameters --> <logger name="org.hibernate.type"> <level value="debug"/> </logger> <!-- Log schema export/update --> <logger name="org.hibernate.tool.hbm2ddl"> <level value="warn"/> </logger> <!-- Log HQL parse trees --> <logger name="org.hibernate.hql"> <level value="warn"/> </logger> <!-- Log cache activity --> <logger name="org.hibernate.cache"> <level value="warn"/> </logger> <!-- Log transaction activity --> <logger name="org.hibernate.transaction"> <level value="warn"/> </logger> <!-- Log JDBC resource acquisition --> <logger name="org.hibernate.jdbc"> <level value="warn"/> </logger> <!-- Track down connection leakages when using DriverManagerConnectionProvider --> <logger name="org.hibernate.connection.DriverManagerConnectionProvider"> <level value="warn"/> </logger> <!-- Log TimeTracker messages --> <logger name="org.andromda.timetracker"> <level value="debug"/> </logger> <!-- ******************************************************************* --> <!-- Root Logger --> <!-- ******************************************************************* --> <!-- Allow warning and higher messages from everyone to go to console and file --> <root> <level value="warn"/> <appender-ref ref="ConsoleAppender"/> <appender-ref ref="FileAppender"/> </root> </log4j:configuration> 1.1 plugins/samples/timetracker-ejb3/core/src/test/resources/testBeanRefFactory.xml Index: testBeanRefFactory.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="beanRefFactory" class="org.springframework.context.support.ClassPathXmlApplicationContext"> <constructor-arg> <list> <value>applicationContext.xml</value> <value>applicationContext-localDataSource.xml</value> <!-- beanRefFactory merge-point --> </list> </constructor-arg> </bean> </beans> 1.1 plugins/samples/timetracker-ejb3/core/src/test/resources/testng.xml Index: testng.xml =================================================================== <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="TimeTracker Test Suite" verbose="1"> <test name="Services Test"> <classes> <!-- <class name="org.andromda.timetracker.service.UserServiceTest" /> <class name="org.andromda.timetracker.service.TimeTrackingServiceTest" /> --> </classes> </test> </suite> 1.1 plugins/samples/timetracker-ejb3/mda/src/main/uml/timetracker.xmi Index: timetracker.xmi =================================================================== <?xml version='1.0' encoding='UTF-8'?> <!-- <!DOCTYPE XMI SYSTEM "uml14xmi12.dtd"> --> <XMI xmi.version='1.2' timestamp='Wed Jan 24 13:07:05 GMT+08:00 2007' xmlns:UML='omg.org/UML/1.4'> <XMI.header> <XMI.documentation> <XMI.exporter>MagicDraw UML</XMI.exporter> <XMI.exporterVersion>9.5</XMI.exporterVersion> </XMI.documentation> <XMI.metamodel xmi.name='UML' xmi.version='1.4'/> </XMI.header> <XMI.content> <UML:Model xmi.id='eee_1045467100313_135436_1' name='Data' isRoot='false' isLeaf='false' isAbstract='false'> <UML:ModelElement.comment> <UML:Comment xmi.id='_24400562_1092013275546_280654_0' name='Author:Administrator. Created:8/8/04 8:58 PM. Title:. Comment:. '/> </UML:ModelElement.comment> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <ignoredInModule xmi.value='true'/> </XMI.extension> <UML:Namespace.ownedElement> <UML:Package xmi.id='eee_1045467100313_365297_7' name='Component View' isRoot='false' isLeaf='false' isAbstract='false'/> <UML:Package href='andromda-profile-3.3-SNAPSHOT.xml.zip|_8a70287_1078771814628_224704_589'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='::org.andromda.profile'/> </XMI.extension> </UML:Package> <UML:Package xmi.id='_9_0_2_12ab03bf_1125323139546_169312_1' name='Data types' isRoot='false' isLeaf='false' isAbstract='false'/> <UML:Model xmi.id='_9_5_1_8c50279_1169284943593_621983_0' name='TimeTracker' isRoot='false' isLeaf='false' isAbstract='false'> <UML:Namespace.ownedElement> <UML:Package xmi.id='_9_5_1_8c50279_1169285020671_442512_1' name='org.andromda.timetracker' isRoot='false' isLeaf='false' isAbstract='false'> <UML:Namespace.ownedElement> <UML:Package xmi.id='_9_5_1_8c50279_1169285069296_549214_2' name='vo' isRoot='false' isLeaf='false' isAbstract='false'> <UML:Namespace.ownedElement> <UML:Class xmi.id='_9_5_1_8c50279_1169285116546_935256_4' name='UserVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'> <UML:ModelElement.comment> <UML:Comment xmi.id='_9_5_1_8c50279_1169285297375_133209_28' name='This class represents a value object that carries information about a TimeTracker user.'/> </UML:ModelElement.comment> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::ValueObject'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Attribute xmi.id='_9_5_1_8c50279_1169285180765_139981_20' name='id' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169285116546_935256_4'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_276612_832'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Long'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169285257984_178002_22' name='username' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169285116546_935256_4'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_386979_833'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169285269828_95519_24' name='firstName' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169285116546_935256_4'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_902312_834'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169285277593_284551_26' name='lastName' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169285116546_935256_4'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_86443_835'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> </UML:Classifier.feature> </UML:Class> <UML:Class xmi.id='_9_5_1_8c50279_1169285311500_838087_119' name='UserVO[]' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'/> <UML:Class xmi.id='_9_5_1_8c50279_1169364049578_435363_114' name='TimecardSummaryVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::ValueObject'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364076812_527125_130' name='id' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Long'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364079546_909254_132' name='status' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114' type='_9_5_1_8c50279_1169363855234_636472_0'/> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364086890_611960_134' name='startDate' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_195604_13'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Date'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364092609_869542_136' name='comments' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364096843_508570_138' name='submitterName' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364104015_862185_140' name='approverName' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> </UML:Classifier.feature> </UML:Class> <UML:Class xmi.id='_9_5_1_8c50279_1169364119234_263956_142' name='TimecardSummaryVO[]' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'/> <UML:Class xmi.id='_9_5_1_8c50279_1169364152171_496868_160' name='TimecardSearchCriteriaVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::ValueObject'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364170015_93052_176' name='submitterId' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_707081_186'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_190054_187' lower='0' upper='1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Long'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364181265_854013_178' name='approverId' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_218543_189'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_666772_190' lower='0' upper='1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Long'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364190437_16846_180' name='status' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160' type='_9_5_1_8c50279_1169363855234_636472_0'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_562937_192'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_740411_193' lower='0' upper='1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364199515_845291_182' name='startDateMin' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_170391_195'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_683169_196' lower='0' upper='1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_195604_13'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Date'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364208640_522460_184' name='startDateMax' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_59154_198'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_560927_199' lower='0' upper='1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_195604_13'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Date'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> </UML:Classifier.feature> </UML:Class> <UML:Class xmi.id='_9_5_1_8c50279_1169562456859_157459_687' name='UserDetailsVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false' generalization='_9_5_1_8c50279_1169562535046_945830_717'> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::ValueObject'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562470406_823011_703' name='password' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_795989_836'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562477031_255224_705' name='email' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_215926_837'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562481953_212399_707' name='isActive' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_655427_838'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_736816_6'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::boolean'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562489843_563027_709' name='creationDate' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_874748_839'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_195604_13'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Date'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562502531_38451_711' name='comment' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169562788046_134443_840'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169562788046_481615_841' lower='0' upper='1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_900348_842'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562512984_189574_713' name='roles' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687' type='_9_5_1_8c50279_1169562608640_540814_805'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_397077_843'/> </UML:Attribute.initialValue> </UML:Attribute> </UML:Classifier.feature> </UML:Class> <UML:Generalization xmi.id='_9_5_1_8c50279_1169562535046_945830_717' child='_9_5_1_8c50279_1169562456859_157459_687' parent='_9_5_1_8c50279_1169285116546_935256_4'/> <UML:Class xmi.id='_9_5_1_8c50279_1169562568156_910485_774' name='UserRoleVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::ValueObject'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562581812_130339_790' name='id' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562568156_910485_774'> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Long'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562587046_819984_792' name='role' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562568156_910485_774' type='_9_5_1_8c50279_1169561392937_952991_572'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_949192_844'/> </UML:Attribute.initialValue> </UML:Attribute> </UML:Classifier.feature> </UML:Class> <UML:Class xmi.id='_9_5_1_8c50279_1169562608640_540814_805' name='UserRoleVO[]' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'/> </UML:Namespace.ownedElement> </UML:Package> <UML:Package xmi.id='_9_5_1_8c50279_1169285569687_156903_153' name='service' isRoot='false' isLeaf='false' isAbstract='false'> <UML:Namespace.ownedElement> <UML:Class xmi.id='_9_5_1_8c50279_1169285587500_873918_164' name='UserService' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false' clientDependency='_9_5_1_8c50279_1169288699328_180606_363'> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-service-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119337557859_21792_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::service::Service'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Operation xmi.id='_9_5_1_8c50279_1169285605734_285967_181' name='getAllUsers' visibility='public' ownerScope='instance' isQuery='false' concurrency='sequential' isRoot='false' isLeaf='false' isAbstract='false' owner='_9_5_1_8c50279_1169285587500_873918_164'> <UML:BehavioralFeature.parameter> <UML:Parameter xmi.id='_9_5_1_8c50279_1169285668281_781419_183' kind='return' type='_9_5_1_8c50279_1169285311500_838087_119'/> </UML:BehavioralFeature.parameter> </UML:Operation> <UML:Operation xmi.id='_9_5_1_8c50279_1169607055218_374842_908' name='registerUser' visibility='public' ownerScope='instance' isQuery='false' concurrency='sequential' isRoot='false' isLeaf='false' isAbstract='false' owner='_9_5_1_8c50279_1169285587500_873918_164'> <UML:BehavioralFeature.parameter> <UML:Parameter xmi.id='_9_5_1_8c50279_1169607054031_566687_906' name='userDetailVO' kind='inout' type='_9_5_1_8c50279_1169562456859_157459_687'/> <UML:Parameter xmi.id='_9_5_1_8c50279_1169607054031_231021_907' kind='return' type='_9_5_1_8c50279_1169562456859_157459_687'/> </UML:BehavioralFeature.parameter> </UML:Operation> </UML:Classifier.feature> </UML:Class> <UML:Dependency xmi.id='_9_5_1_8c50279_1169288699328_180606_363' client='_9_5_1_8c50279_1169285587500_873918_164' supplier='_9_5_1_8c50279_1169288267218_362608_214'/> <UML:Class xmi.id='_9_5_1_8c50279_1169364265078_632331_210' name='TimeTrackingService' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false' clientDependency='_9_5_1_8c50279_1169395300312_487935_567'> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-service-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119337557859_21792_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::service::Service'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Operation xmi.id='_9_5_1_8c50279_1169364307531_927180_228' name='findTimecards' visibility='public' ownerScope='instance' isQuery='false' concurrency='sequential' isRoot='false' isLeaf='false' isAbstract='false' owner='_9_5_1_8c50279_1169364265078_632331_210'> <UML:BehavioralFeature.parameter> <UML:Parameter xmi.id='_9_5_1_8c50279_1169364306421_983235_226' name='criteria' kind='inout' type='_9_5_1_8c50279_1169364152171_496868_160'/> <UML:Parameter xmi.id='_9_5_1_8c50279_1169364306421_864968_227' kind='return' type='_9_5_1_8c50279_1169364119234_263956_142'/> </UML:BehavioralFeature.parameter> </UML:Operation> </UML:Classifier.feature> </UML:Class> <UML:Dependency xmi.id='_9_5_1_8c50279_1169395300312_487935_567' client='_9_5_1_8c50279_1169364265078_632331_210' supplier='_9_5_1_8c50279_1169393103765_703156_231'/> </UML:Namespace.ownedElement> </UML:Package> <UML:Package xmi.id='_9_5_1_8c50279_1169288239437_239811_203' name='domain' isRoot='false' isLeaf='false' isAbstract='false'> <UML:Namespace.ownedElement> <UML:Class xmi.id='_9_5_1_8c50279_1169288267218_362608_214' name='User' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'> <UML:ModelElement.clientDependency> <UML:Dependenc... [truncated message content] |
From: Vance K. <va...@us...> - 2007-01-24 04:32:58
|
User: vancek Date: 07/01/23 20:32:52 plugins/samples/timetracker-ejb3/web/src/main/properties - New directory |
From: Vance K. <va...@us...> - 2007-01-24 04:32:58
|
User: vancek Date: 07/01/23 20:32:51 plugins/samples/timetracker-ejb3/web/src/main/css - New directory |
From: Vance K. <va...@us...> - 2007-01-24 04:32:58
|
User: vancek Date: 07/01/23 20:32:51 plugins/samples/timetracker-ejb3/web/src/main/java/org/andromda - New directory |
From: Vance K. <va...@us...> - 2007-01-24 04:32:58
|
User: vancek Date: 07/01/23 20:32:50 plugins/samples/timetracker-ejb3/web - New directory |
From: Vance K. <va...@us...> - 2007-01-24 04:32:58
|
User: vancek Date: 07/01/23 20:32:49 plugins/samples/timetracker-ejb3/mda - New directory |
From: Vance K. <va...@us...> - 2007-01-24 04:32:58
|
User: vancek Date: 07/01/23 20:32:51 plugins/samples/timetracker-ejb3/web/src/main/java/org/andromda/timetracker - New directory |
From: Vance K. <va...@us...> - 2007-01-24 04:32:57
|
User: vancek Date: 07/01/23 20:32:49 plugins/samples/timetracker-ejb3/core/src/test/java/org/andromda - New directory |
From: Vance K. <va...@us...> - 2007-01-24 04:32:57
|
User: vancek Date: 07/01/23 20:32:49 plugins/samples/timetracker-ejb3/core/src/test/java/org/andromda/timetracker/service - New directory |
From: Vance K. <va...@us...> - 2007-01-24 04:32:57
|
User: vancek Date: 07/01/23 20:32:48 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/service - New directory |
From: Vance K. <va...@us...> - 2007-01-24 04:32:57
|
User: vancek Date: 07/01/23 20:32:52 plugins/samples/timetracker-ejb3/web/src/main/java/org/andromda/timetracker/web/timecardsearch - New directory |