Author: buildbot Date: Sun Dec 30 21:48:16 2018 New Revision: 1038305 Log: Staging update by buildbot for tomee
Modified: websites/staging/tomee/trunk/cgi-bin/ (props changed) websites/staging/tomee/trunk/content/ (props changed) websites/staging/tomee/trunk/content/community/contributors.html websites/staging/tomee/trunk/content/latest/examples/connector-war.html websites/staging/tomee/trunk/content/latest/examples/decorators.html websites/staging/tomee/trunk/content/latest/examples/index.html websites/staging/tomee/trunk/content/master/examples/connector-war.html websites/staging/tomee/trunk/content/master/examples/decorators.html websites/staging/tomee/trunk/content/master/examples/index.html websites/staging/tomee/trunk/content/tomee-8.0/examples/connector-war.html websites/staging/tomee/trunk/content/tomee-8.0/examples/decorators.html websites/staging/tomee/trunk/content/tomee-8.0/examples/index.html Propchange: websites/staging/tomee/trunk/cgi-bin/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Sun Dec 30 21:48:16 2018 @@ -1 +1 @@ -1850004 +1850005 Propchange: websites/staging/tomee/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Sun Dec 30 21:48:16 2018 @@ -1 +1 @@ -1850004 +1850005 Modified: websites/staging/tomee/trunk/content/community/contributors.html ============================================================================== --- websites/staging/tomee/trunk/content/community/contributors.html (original) +++ websites/staging/tomee/trunk/content/community/contributors.html Sun Dec 30 21:48:16 2018 @@ -97,11 +97,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Jason van Zyl" src="http://www.gravatar.com/avatar/dd2ab408381395402fb0b183d002165c?s=140" style="width:140px"> + <img alt="Andy" src="http://www.gravatar.com/avatar/fea00dfa5f55664b225d9c072d9c6766?s=140" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Jason van Zyl</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Andy</h3> <p></p> <ul class="list-inline"> @@ -110,11 +110,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Andy" src="http://www.gravatar.com/avatar/fea00dfa5f55664b225d9c072d9c6766?s=140" style="width:140px"> + <img alt="Dain Sundstrom" src="http://www.gravatar.com/avatar/9b67307a606e8dbc311c449cd4cae2aa?s=140" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Andy</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Dain Sundstrom</h3> <p></p> <ul class="list-inline"> @@ -123,11 +123,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Dain Sundstrom" src="http://www.gravatar.com/avatar/9b67307a606e8dbc311c449cd4cae2aa?s=140" style="width:140px"> + <img alt="Jason van Zyl" src="http://www.gravatar.com/avatar/dd2ab408381395402fb0b183d002165c?s=140" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Dain Sundstrom</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Jason van Zyl</h3> <p></p> <ul class="list-inline"> @@ -157,11 +157,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Jeremy Whitlock" src="http://www.gravatar.com/avatar/34820bca697fbf1598774b393c5ca4fe?s=140" style="width:140px"> + <img alt="Mark Struberg" src="http://www.gravatar.com/avatar/30fae5bce90608fb3df5c018c586aea6?s=140" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Jeremy Whitlock</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Mark Struberg</h3> <p></p> <ul class="list-inline"> @@ -170,11 +170,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Mark Struberg" src="http://www.gravatar.com/avatar/30fae5bce90608fb3df5c018c586aea6?s=140" style="width:140px"> + <img alt="Thiago Veronezi" src="http://www.gravatar.com/avatar/a02777ec107dbbdaa723f4115397dbb0?s=140" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Mark Struberg</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Thiago Veronezi</h3> <p></p> <ul class="list-inline"> @@ -208,11 +208,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Thiago Veronezi" src="http://www.gravatar.com/avatar/a02777ec107dbbdaa723f4115397dbb0?s=140" style="width:140px"> + <img alt="Jeremy Whitlock" src="http://www.gravatar.com/avatar/34820bca697fbf1598774b393c5ca4fe?s=140" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Thiago Veronezi</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Jeremy Whitlock</h3> <p></p> <ul class="list-inline"> @@ -221,11 +221,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Haihong Xu" src="../img/xuhaihong.jpg" style="width:140px"> + <img alt="Vishwanath" src="https://twitter.com/stratwine/profile_image?size=bigger" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Haihong Xu</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Vishwanath</h3> <p></p> <ul class="list-inline"> @@ -234,11 +234,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Vishwanath" src="https://twitter.com/stratwine/profile_image?size=bigger" style="width:140px"> + <img alt="Haihong Xu" src="../img/xuhaihong.jpg" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Vishwanath</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Haihong Xu</h3> <p></p> <ul class="list-inline"> @@ -247,11 +247,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Manu George" src="../img/manugeorge.jpg" style="width:140px"> + <img alt="Lajos Moczar" src="../img/noimg.png" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Manu George</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Lajos Moczar</h3> <p></p> <ul class="list-inline"> @@ -260,11 +260,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Karan Singh Malhi" src="https://twitter.com/KrnMal/profile_image?size=bigger" style="width:140px"> + <img alt="Mohammad Nour El-Din" src="../img/mnour.jpg" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Karan Singh Malhi</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Mohammad Nour El-Din</h3> <p></p> <ul class="list-inline"> @@ -273,11 +273,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Rick McGuire" src="../img/rickmcguire.jpg" style="width:140px"> + <img alt="Karan Singh Malhi" src="https://twitter.com/KrnMal/profile_image?size=bigger" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Rick McGuire</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Karan Singh Malhi</h3> <p></p> <ul class="list-inline"> @@ -286,11 +286,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Lajos Moczar" src="../img/noimg.png" style="width:140px"> + <img alt="Rick McGuire" src="../img/rickmcguire.jpg" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Lajos Moczar</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Rick McGuire</h3> <p></p> <ul class="list-inline"> @@ -299,11 +299,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Mohammad Nour El-Din" src="../img/mnour.jpg" style="width:140px"> + <img alt="Kevan Lee Miller" src="https://twitter.com/kevanmiller/profile_image?size=bigger" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Mohammad Nour El-Din</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Kevan Lee Miller</h3> <p></p> <ul class="list-inline"> @@ -312,11 +312,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Kevan Lee Miller" src="https://twitter.com/kevanmiller/profile_image?size=bigger" style="width:140px"> + <img alt="Manu George" src="../img/manugeorge.jpg" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Kevan Lee Miller</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Manu George</h3> <p></p> <ul class="list-inline"> @@ -325,11 +325,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Alan Cabrera" src="https://twitter.com/maguro/profile_image?size=bigger" style="width:140px"> + <img alt="Jonathan Gallimore" src="https://twitter.com/jongallimore/profile_image?size=bigger" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Alan Cabrera</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Jonathan Gallimore</h3> <p></p> <ul class="list-inline"> @@ -338,11 +338,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Jonathan Gallimore" src="https://twitter.com/jongallimore/profile_image?size=bigger" style="width:140px"> + <img alt="Alan Cabrera" src="https://twitter.com/maguro/profile_image?size=bigger" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Jonathan Gallimore</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Alan Cabrera</h3> <p></p> <ul class="list-inline"> @@ -351,11 +351,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Jeff Genender" src="../img/jgenender.jpg" style="width:140px"> + <img alt="Lin Quan Jiang" src="../img/genspring.jpg" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Jeff Genender</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Lin Quan Jiang</h3> <p></p> <ul class="list-inline"> @@ -364,11 +364,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Daniel Stefan Haischt" src="https://twitter.com/uebermodean/profile_image?size=bigger" style="width:140px"> + <img alt="Jeff Genender" src="../img/jgenender.jpg" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Daniel Stefan Haischt</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Jeff Genender</h3> <p></p> <ul class="list-inline"> @@ -390,11 +390,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Jarek Gawor" src="https://twitter.com/jgawor/profile_image?size=bigger" style="width:140px"> + <img alt="Jean-Louis Monteiro" src="https://twitter.com/JLouisMonteiro/profile_image?size=bigger" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Jarek Gawor</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Jean-Louis Monteiro</h3> <p></p> <ul class="list-inline"> @@ -403,11 +403,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Gianny Damour" src="../img/gdamour.jpg" style="width:140px"> + <img alt="David Jencks" src="../img/noimg.png" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Gianny Damour</h3> + <h3 class="contributor-name" style="font-size:1.4em;">David Jencks</h3> <p></p> <ul class="list-inline"> @@ -416,11 +416,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Lin Quan Jiang" src="../img/genspring.jpg" style="width:140px"> + <img alt="Jacek Laskowski" src="https://twitter.com/jaceklaskowski/profile_image?size=bigger" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Lin Quan Jiang</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Jacek Laskowski</h3> <p></p> <ul class="list-inline"> @@ -429,11 +429,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="David Jencks" src="../img/noimg.png" style="width:140px"> + <img alt="Jarek Gawor" src="https://twitter.com/jgawor/profile_image?size=bigger" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">David Jencks</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Jarek Gawor</h3> <p></p> <ul class="list-inline"> @@ -442,11 +442,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Matt Richard Hogstrom" src="https://twitter.com/hogstrom/profile_image?size=bigger" style="width:140px"> + <img alt="Daniel Stefan Haischt" src="https://twitter.com/uebermodean/profile_image?size=bigger" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Matt Richard Hogstrom</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Daniel Stefan Haischt</h3> <p></p> <ul class="list-inline"> @@ -455,11 +455,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Jacek Laskowski" src="https://twitter.com/jaceklaskowski/profile_image?size=bigger" style="width:140px"> + <img alt="Matt Richard Hogstrom" src="https://twitter.com/hogstrom/profile_image?size=bigger" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Jacek Laskowski</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Matt Richard Hogstrom</h3> <p></p> <ul class="list-inline"> @@ -468,11 +468,11 @@ <div class="col-sm-4"> <div class="photo col-sm-5"> - <img alt="Jean-Louis Monteiro" src="https://twitter.com/JLouisMonteiro/profile_image?size=bigger" style="width:140px"> + <img alt="Gianny Damour" src="../img/gdamour.jpg" style="width:140px"> <i class="pull-right fa fa-star-o" style="color:#F38F24;"></i> </div> <div class="col-sm-7"> - <h3 class="contributor-name" style="font-size:1.4em;">Jean-Louis Monteiro</h3> + <h3 class="contributor-name" style="font-size:1.4em;">Gianny Damour</h3> <p></p> <ul class="list-inline"> Modified: websites/staging/tomee/trunk/content/latest/examples/connector-war.html ============================================================================== --- websites/staging/tomee/trunk/content/latest/examples/connector-war.html (original) +++ websites/staging/tomee/trunk/content/latest/examples/connector-war.html Sun Dec 30 21:48:16 2018 @@ -88,17 +88,25 @@ <div class="col-md-12"> <div class='page-header'> - <h1>Movies Complete</h1> + <h1>null</h1> </div> </div> </div> <div class="row"> <div class="col-md-12"> - <p><em>Help us document this example! Click the blue pencil icon in the upper right to edit this page.</em></p> -<p><a href="https://codenvy.com/f?id=9er0fn1kh832sa35"><img src="https://tomitribe.github.io/codenvy/tryitout.svg" alt="Try it out in Codenvy" /></a></p> -<h2>AddInterceptor</h2> -<pre><code>package org.superbiz.injection.tx; + <div class="paragraph"> +<p>index-group=Java EE Connectors +type=page +status=published</p> +</div> +<h1 id="_connectors_in_war_files" class="sect0">Connectors in WAR Files</h1> +<div class="sect1"> +<h2 id="_addinterceptor">AddInterceptor</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.injection.tx; import javax.interceptor.AroundInvoke; import javax.interceptor.InvocationContext; @@ -113,10 +121,17 @@ public class AddInterceptor { // Log Add return context.proceed(); } -} -</code></pre> -<h2>DeleteInterceptor</h2> -<pre><code>package org.superbiz.injection.tx; +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_deleteinterceptor">DeleteInterceptor</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.injection.tx; import javax.interceptor.AroundInvoke; import javax.interceptor.InvocationContext; @@ -131,10 +146,17 @@ public class DeleteInterceptor { // Log Delete return context.proceed(); } -} -</code></pre> -<h2>Movie</h2> -<pre><code>package org.superbiz.injection.tx; +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_movie">Movie</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.injection.tx; import javax.persistence.Entity; @@ -178,10 +200,17 @@ public class Movie { this.year = year; } -} -</code></pre> -<h2>Movies</h2> -<pre><code>package org.superbiz.injection.tx; +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_movies">Movies</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.injection.tx; import javax.annotation.security.PermitAll; import javax.annotation.security.RolesAllowed; @@ -199,17 +228,17 @@ import java.util.List; @Stateful public class Movies { - @PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.TRANSACTION) + @PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.TRANSACTION) private EntityManager entityManager; - @RolesAllowed({"Employee", "Manager"}) + @RolesAllowed({"Employee", "Manager"}) @TransactionAttribute(TransactionAttributeType.REQUIRED) @Interceptors(AddInterceptor.class) public void addMovie(Movie movie) throws Exception { entityManager.persist(movie); } - @RolesAllowed({"Manager"}) + @RolesAllowed({"Manager"}) @TransactionAttribute(TransactionAttributeType.MANDATORY) @Interceptors(DeleteInterceptor.class) public void deleteMovie(Movie movie) throws Exception { @@ -219,13 +248,20 @@ public class Movies { @PermitAll @TransactionAttribute(TransactionAttributeType.SUPPORTS) public List<Movie> getMovies() throws Exception { - Query query = entityManager.createQuery("SELECT m from Movie as m"); + Query query = entityManager.createQuery("SELECT m from Movie as m"); return query.getResultList(); } -} -</code></pre> -<h2>ReadInterceptor</h2> -<pre><code>package org.superbiz.injection.tx; +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_readinterceptor">ReadInterceptor</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.injection.tx; import javax.interceptor.AroundInvoke; import javax.interceptor.InvocationContext; @@ -241,27 +277,48 @@ public class ReadInterceptor { return context.proceed(); } } -</code></pre> -<h2>persistence.xml</h2> -<pre><code><persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> - - <persistence-unit name="movie-unit"> - <jta-data-source>movieDatabase</jta-data-source> - <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source> - <class>org.superbiz.injection.tx.Movie</class> +.... + +== persistence.xml - <properties> - <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/> +[source,xml]</code></pre> +</div> +</div> +<div class="paragraph"> +<p><persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"></p> +</div> +<div class="literalblock"> +<div class="content"> +<pre><persistence-unit name="movie-unit"> + <jta-data-source>movieDatabase</jta-data-source> + <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source> + <class>org.superbiz.injection.tx.Movie</class></pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre> <properties> + <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/> </properties> </persistence-unit> -</persistence> -</code></pre> -<h2>MoviesTest</h2> -<pre><code>package org.superbiz.injection.tx; - -import junit.framework.TestCase; - -import javax.annotation.security.RunAs; +</persistence></pre> +</div> +</div> +<div class="listingblock"> +<div class="content"> +<pre>== MoviesTest + +[source,java]</pre> +</div> +</div> +<div class="paragraph"> +<p>package org.superbiz.injection.tx;</p> +</div> +<div class="paragraph"> +<p>import junit.framework.TestCase;</p> +</div> +<div class="paragraph"> +<p>import javax.annotation.security.RunAs; import javax.ejb.EJB; import javax.ejb.Stateless; import javax.ejb.TransactionAttribute; @@ -269,114 +326,172 @@ import javax.ejb.TransactionAttributeTyp import javax.ejb.embeddable.EJBContainer; import java.util.List; import java.util.Properties; -import java.util.concurrent.Callable; - -import static javax.ejb.TransactionAttributeType.REQUIRES_NEW; - -/** +import java.util.concurrent.Callable;</p> +</div> +<div class="paragraph"> +<p>import static javax.ejb.TransactionAttributeType.REQUIRES_NEW;</p> +</div> +<div class="paragraph"> +<p>/** * See the transaction-rollback example as it does the same thing - * via UserTransaction and shows more techniques for rollback + * via UserTransaction and shows more techniques for rollback */ -//START SNIPPET: code -public class MoviesTest extends TestCase { - - @EJB - private Movies movies; - - @EJB(beanName = "TransactionBean") - private Caller transactionalCaller; - - @EJB(beanName = "NoTransactionBean") - private Caller nonTransactionalCaller; - - protected void setUp() throws Exception { - final Properties p = new Properties(); - p.put("movieDatabase", "new://Resource?type=DataSource"); - p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver"); - p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb"); - - EJBContainer.createEJBContainer(p).getContext().bind("inject", this); - } - - private void doWork() throws Exception { - - movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992)); - movies.addMovie(new Movie("Joel Coen", "Fargo", 1996)); - movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998)); - - List<Movie> list = movies.getMovies(); - assertEquals("List.size()", 3, list.size()); - - for (Movie movie : list) { - movies.deleteMovie(movie); +public class MoviesTest extends TestCase {</p> +</div> +<div class="literalblock"> +<div class="content"> +<pre>@EJB +private Movies movies;</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>@EJB(beanName = "TransactionBean") +private Caller transactionalCaller;</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>@EJB(beanName = "NoTransactionBean") +private Caller nonTransactionalCaller;</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>protected void setUp() throws Exception { + final Properties p = new Properties(); + p.put("movieDatabase", "new://Resource?type=DataSource"); + p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver"); + p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre> EJBContainer.createEJBContainer(p).getContext().bind("inject", this); +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>private void doWork() throws Exception {</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992)); +movies.addMovie(new Movie("Joel Coen", "Fargo", 1996)); +movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998));</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>List<Movie> list = movies.getMovies(); +assertEquals("List.size()", 3, list.size());</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>for (Movie movie : list) { + movies.deleteMovie(movie); +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre> assertEquals("Movies.getMovies()", 0, movies.getMovies().size()); +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>public void testWithTransaction() throws Exception { + transactionalCaller.call(new Callable() { + public Object call() throws Exception { + doWork(); + return null; } - - assertEquals("Movies.getMovies()", 0, movies.getMovies().size()); - } - - public void testWithTransaction() throws Exception { - transactionalCaller.call(new Callable() { + }); +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>public void testWithoutTransaction() throws Exception { + try { + nonTransactionalCaller.call(new Callable() { public Object call() throws Exception { doWork(); return null; } }); - } - - public void testWithoutTransaction() throws Exception { - try { - nonTransactionalCaller.call(new Callable() { - public Object call() throws Exception { - doWork(); - return null; - } - }); - fail("The Movies bean should be using TransactionAttributeType.MANDATORY"); - } catch (javax.ejb.EJBException e) { - // good, our Movies bean is using TransactionAttributeType.MANDATORY as we want - } - } - - - public static interface Caller { - public <V> V call(Callable<V> callable) throws Exception; - } - - /** - * This little bit of magic allows our test code to execute in - * the scope of a container controlled transaction. - */ - @Stateless - @RunAs("Manager") - @TransactionAttribute(REQUIRES_NEW) - public static class TransactionBean implements Caller { - - public <V> V call(Callable<V> callable) throws Exception { - return callable.call(); - } - } - - @Stateless - @RunAs("Manager") - @TransactionAttribute(TransactionAttributeType.NEVER) - public static class NoTransactionBean implements Caller { - - public <V> V call(Callable<V> callable) throws Exception { + fail("The Movies bean should be using TransactionAttributeType.MANDATORY"); + } catch (javax.ejb.EJBException e) { + // good, our Movies bean is using TransactionAttributeType.MANDATORY as we want + } +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>public static interface Caller { + public <V> V call(Callable<V> callable) throws Exception; +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>/** + * This little bit of magic allows our test code to execute in + * the scope of a container controlled transaction. + */ +@Stateless +@RunAs("Manager") +@TransactionAttribute(REQUIRES_NEW) +public static class TransactionBean implements Caller {</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre> public <V> V call(Callable<V> callable) throws Exception { + return callable.call(); + } +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>@Stateless +@RunAs("Manager") +@TransactionAttribute(TransactionAttributeType.NEVER) +public static class NoTransactionBean implements Caller {</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre> public <V> V call(Callable<V> callable) throws Exception { return callable.call(); } } -} -</code></pre> -<h1>Running</h1> -<pre><code>------------------------------------------------------- - T E S T S -------------------------------------------------------- -Running org.superbiz.injection.tx.MoviesTest +}</pre> +</div> +</div> +<div class="listingblock"> +<div class="content"> +<pre>== Running</pre> +</div> +</div> +<div class="listingblock"> +<div class="content"> +<pre> T E S T S</pre> +</div> +</div> +<div class="paragraph"> +<p>Running org.superbiz.injection.tx.MoviesTest Apache OpenEJB 4.0.0-beta-1 build: 20111002-04:06 -http://tomee.apache.org/ +<a href="http://tomee.apache.org/" class="bare">http://tomee.apache.org/</a> INFO - openejb.home = /Users/dblevins/examples/movies-complete INFO - openejb.base = /Users/dblevins/examples/movies-complete -INFO - Using 'javax.ejb.embeddable.EJBContainer=true' +INFO - Using 'javax.ejb.embeddable.EJBContainer=true' INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service) INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager) INFO - Configuring Service(id=movieDatabase, type=Resource, provider-id=Default JDBC Database) @@ -392,20 +507,20 @@ INFO - Auto-creating a container for bea INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container) INFO - Auto-creating a container for bean org.superbiz.injection.tx.MoviesTest: Container(type=MANAGED, id=Default Managed Container) INFO - Configuring PersistenceUnit(name=movie-unit) -INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'. +INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'. INFO - Configuring Service(id=movieDatabaseNonJta, type=Resource, provider-id=movieDatabase) -INFO - Adjusting PersistenceUnit movie-unit <non-jta-data-source> to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged' -INFO - Enterprise application "/Users/dblevins/examples/movies-complete" loaded. +INFO - Adjusting PersistenceUnit movie-unit <non-jta-data-source> to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged' +INFO - Enterprise application "/Users/dblevins/examples/movies-complete" loaded. INFO - Assembling app: /Users/dblevins/examples/movies-complete INFO - PersistenceUnit(name=movie-unit, provider=org.apache.openjpa.persistence.PersistenceProviderImpl) - provider time 402ms -INFO - Jndi(name="java:global/movies-complete/Movies!org.superbiz.injection.tx.Movies") -INFO - Jndi(name="java:global/movies-complete/Movies") -INFO - Jndi(name="java:global/movies-complete/TransactionBean!org.superbiz.injection.tx.MoviesTest$Caller") -INFO - Jndi(name="java:global/movies-complete/TransactionBean") -INFO - Jndi(name="java:global/movies-complete/NoTransactionBean!org.superbiz.injection.tx.MoviesTest$Caller") -INFO - Jndi(name="java:global/movies-complete/NoTransactionBean") -INFO - Jndi(name="java:global/EjbModule1013462002/org.superbiz.injection.tx.MoviesTest!org.superbiz.injection.tx.MoviesTest") -INFO - Jndi(name="java:global/EjbModule1013462002/org.superbiz.injection.tx.MoviesTest") +INFO - Jndi(name="java:global/movies-complete/Movies!org.superbiz.injection.tx.Movies") +INFO - Jndi(name="java:global/movies-complete/Movies") +INFO - Jndi(name="java:global/movies-complete/TransactionBean!org.superbiz.injection.tx.MoviesTest$Caller") +INFO - Jndi(name="java:global/movies-complete/TransactionBean") +INFO - Jndi(name="java:global/movies-complete/NoTransactionBean!org.superbiz.injection.tx.MoviesTest$Caller") +INFO - Jndi(name="java:global/movies-complete/NoTransactionBean") +INFO - Jndi(name="java:global/EjbModule1013462002/org.superbiz.injection.tx.MoviesTest!org.superbiz.injection.tx.MoviesTest") +INFO - Jndi(name="java:global/EjbModule1013462002/org.superbiz.injection.tx.MoviesTest") INFO - Created Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container) INFO - Created Ejb(deployment-id=NoTransactionBean, ejb-name=NoTransactionBean, container=Default Stateless Container) INFO - Created Ejb(deployment-id=TransactionBean, ejb-name=TransactionBean, container=Default Stateless Container) @@ -416,12 +531,21 @@ INFO - Started Ejb(deployment-id=Transac INFO - Started Ejb(deployment-id=org.superbiz.injection.tx.MoviesTest, ejb-name=org.superbiz.injection.tx.MoviesTest, container=Default Managed Container) INFO - Deployed Application(path=/Users/dblevins/examples/movies-complete) INFO - EJBContainer already initialized. Call ejbContainer.close() to allow reinitialization -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.418 sec - -Results : - -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 -</code></pre> +Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.418 sec</p> +</div> +<div class="paragraph"> +<p>Results :</p> +</div> +<div class="paragraph"> +<p>Tests run: 2, Failures: 0, Errors: 0, Skipped: 0</p> +</div> +<div class="literalblock"> +<div class="content"> +<pre></pre> +</div> +</div> +</div> +</div> </div> </div> Modified: websites/staging/tomee/trunk/content/latest/examples/decorators.html ============================================================================== --- websites/staging/tomee/trunk/content/latest/examples/decorators.html (original) +++ websites/staging/tomee/trunk/content/latest/examples/decorators.html Sun Dec 30 21:48:16 2018 @@ -88,16 +88,25 @@ <div class="col-md-12"> <div class='page-header'> - <h1>Decorators</h1> + <h1>null</h1> </div> </div> </div> <div class="row"> <div class="col-md-12"> - <p><em>Help us document this example! Click the blue pencil icon in the upper right to edit this page.</em></p> -<h2>AccessDeniedException</h2> -<pre><code>package org.superbiz.cdi.decorators; + <div class="paragraph"> +<p>index-group=CDI +type=page +status=published</p> +</div> +<h1 id="_decorators" class="sect0">Decorators</h1> +<div class="sect1"> +<h2 id="_accessdeniedexception">AccessDeniedException</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.cdi.decorators; import javax.ejb.ApplicationException; @@ -109,10 +118,17 @@ public class AccessDeniedException exten public AccessDeniedException(String s) { super(s); } -} -</code></pre> -<h2>Calculator</h2> -<pre><code>package org.superbiz.cdi.decorators; +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_calculator">Calculator</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.cdi.decorators; /** * @version $Revision$ $Date$ @@ -128,10 +144,17 @@ public interface Calculator { public int divide(int a, int b); public int remainder(int a, int b); -} -</code></pre> -<h2>CalculatorBean</h2> -<pre><code>package org.superbiz.cdi.decorators; +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_calculatorbean">CalculatorBean</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.cdi.decorators; import javax.annotation.Resource; import javax.ejb.SessionContext; @@ -164,10 +187,17 @@ public class CalculatorBean implements C public int remainder(int a, int b) { return a % b; } -} -</code></pre> -<h2>CalculatorLogging</h2> -<pre><code>package org.superbiz.cdi.decorators; +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_calculatorlogging">CalculatorLogging</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.cdi.decorators; import javax.decorator.Decorator; import javax.decorator.Delegate; @@ -177,7 +207,7 @@ import java.util.logging.Logger; @Decorator public class CalculatorLogging implements Calculator { - private Logger logger = Logger.getLogger("Calculator"); + private Logger logger = Logger.getLogger("Calculator"); @Inject @Delegate @@ -185,7 +215,7 @@ public class CalculatorLogging implement @Override public int add(int a, int b) { - logger.fine(String.format("add(%s, %s)", a, b)); + logger.fine(String.format("add(%s, %s)", a, b)); return calculator.add(a, b); } @@ -196,7 +226,7 @@ public class CalculatorLogging implement @Override public int multiply(int a, int b) { - logger.finest(String.format("multiply(%s, %s)", a, b)); + logger.finest(String.format("multiply(%s, %s)", a, b)); return calculator.multiply(a, b); } @@ -207,13 +237,20 @@ public class CalculatorLogging implement @Override public int remainder(int a, int b) { - logger.info(String.format("remainder(%s, %s)", a, b)); + logger.info(String.format("remainder(%s, %s)", a, b)); return calculator.remainder(a, b); } -} -</code></pre> -<h2>CalculatorSecurity</h2> -<pre><code>package org.superbiz.cdi.decorators; +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_calculatorsecurity">CalculatorSecurity</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.cdi.decorators; import javax.decorator.Decorator; import javax.decorator.Delegate; @@ -238,7 +275,7 @@ public class CalculatorSecurity implemen @Override public int subtract(int a, int b) { // Caller must pass a security check to call subtract - if (!sessionContext.isCallerInRole("Manager")) throw new AccessDeniedException(sessionContext.getCallerPrincipal().getName()); + if (!sessionContext.isCallerInRole("Manager")) throw new AccessDeniedException(sessionContext.getCallerPrincipal().getName()); return calculator.subtract(a, b); } @@ -257,10 +294,17 @@ public class CalculatorSecurity implemen public int remainder(int a, int b) { return calculator.remainder(a, b); } -} -</code></pre> -<h2>beans.xml</h2> -<pre><code><beans> +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_beans_xml">beans.xml</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java"><beans> <!-- Explicitly declaring decorators is required by the CDI specification. The order decorators are listed in the xml is the order in which they are invoked. @@ -269,10 +313,17 @@ public class CalculatorSecurity implemen <class>org.superbiz.cdi.decorators.CalculatorSecurity</class> <class>org.superbiz.cdi.decorators.CalculatorLogging</class> </decorators> -</beans> -</code></pre> -<h2>CalculatorTest</h2> -<pre><code>package org.superbiz.cdi.decorators; +</beans></code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_calculatortest">CalculatorTest</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.cdi.decorators; import junit.framework.TestCase; @@ -296,7 +347,7 @@ public class CalculatorTest extends Test * @throws Exception */ protected void setUp() throws Exception { - EJBContainer.createEJBContainer().getContext().bind("inject", this); + EJBContainer.createEJBContainer().getContext().bind("inject", this); } /** @@ -315,7 +366,7 @@ public class CalculatorTest extends Test try { calculator.subtract(4, 6); - fail("AccessDeniedException should have been thrown for unauthenticated access"); + fail("AccessDeniedException should have been thrown for unauthenticated access"); } catch (AccessDeniedException expected) { // pass } @@ -354,7 +405,7 @@ public class CalculatorTest extends Test } @Stateless - @RunAs("Manager") + @RunAs("Manager") public static class ManagerBean { public <V> V call(Callable<V> callable) { @@ -365,10 +416,17 @@ public class CalculatorTest extends Test } } } -} -</code></pre> -<h1>Running</h1> -<pre><code>------------------------------------------------------- +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_running">Running</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre>------------------------------------------------------- T E S T S ------------------------------------------------------- Running org.superbiz.cdi.decorators.CalculatorTest @@ -376,7 +434,7 @@ Apache OpenEJB 4.0.0-beta-1 build: 20 http://tomee.apache.org/ INFO - openejb.home = /Users/dblevins/examples/decorators INFO - openejb.base = /Users/dblevins/examples/decorators -INFO - Using 'javax.ejb.embeddable.EJBContainer=true' +INFO - Using 'javax.ejb.embeddable.EJBContainer=true' INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service) INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager) INFO - Found EjbModule in classpath: /Users/dblevins/examples/decorators/target/classes @@ -384,21 +442,21 @@ INFO - Found EjbModule in classpath: /Us INFO - Beginning load: /Users/dblevins/examples/decorators/target/classes INFO - Beginning load: /Users/dblevins/examples/decorators/target/test-classes INFO - Configuring enterprise application: /Users/dblevins/examples/decorators -WARN - Method 'lookup' is not available for 'javax.annotation.Resource'. Probably using an older Runtime. +WARN - Method 'lookup' is not available for 'javax.annotation.Resource'. Probably using an older Runtime. INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container) INFO - Auto-creating a container for bean decorators.Comp: Container(type=MANAGED, id=Default Managed Container) INFO - Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container) INFO - Auto-creating a container for bean CalculatorBean: Container(type=STATELESS, id=Default Stateless Container) -INFO - Enterprise application "/Users/dblevins/examples/decorators" loaded. +INFO - Enterprise application "/Users/dblevins/examples/decorators" loaded. INFO - Assembling app: /Users/dblevins/examples/decorators -INFO - Jndi(name="java:global/decorators/decorators.Comp!org.apache.openejb.BeanContext$Comp") -INFO - Jndi(name="java:global/decorators/decorators.Comp") -INFO - Jndi(name="java:global/decorators/CalculatorBean!org.superbiz.cdi.decorators.Calculator") -INFO - Jndi(name="java:global/decorators/CalculatorBean") -INFO - Jndi(name="java:global/decorators/ManagerBean!org.superbiz.cdi.decorators.CalculatorTest$ManagerBean") -INFO - Jndi(name="java:global/decorators/ManagerBean") -INFO - Jndi(name="java:global/EjbModule628834558/org.superbiz.cdi.decorators.CalculatorTest!org.superbiz.cdi.decorators.CalculatorTest") -INFO - Jndi(name="java:global/EjbModule628834558/org.superbiz.cdi.decorators.CalculatorTest") +INFO - Jndi(name="java:global/decorators/decorators.Comp!org.apache.openejb.BeanContext$Comp") +INFO - Jndi(name="java:global/decorators/decorators.Comp") +INFO - Jndi(name="java:global/decorators/CalculatorBean!org.superbiz.cdi.decorators.Calculator") +INFO - Jndi(name="java:global/decorators/CalculatorBean") +INFO - Jndi(name="java:global/decorators/ManagerBean!org.superbiz.cdi.decorators.CalculatorTest$ManagerBean") +INFO - Jndi(name="java:global/decorators/ManagerBean") +INFO - Jndi(name="java:global/EjbModule628834558/org.superbiz.cdi.decorators.CalculatorTest!org.superbiz.cdi.decorators.CalculatorTest") +INFO - Jndi(name="java:global/EjbModule628834558/org.superbiz.cdi.decorators.CalculatorTest") INFO - Created Ejb(deployment-id=CalculatorBean, ejb-name=CalculatorBean, container=Default Stateless Container) INFO - Created Ejb(deployment-id=decorators.Comp, ejb-name=decorators.Comp, container=Default Managed Container) INFO - Created Ejb(deployment-id=ManagerBean, ejb-name=ManagerBean, container=Default Stateless Container) @@ -470,7 +528,11 @@ Tests run: 5, Failures: 0, Errors: 0, Sk Results : Tests run: 5, Failures: 0, Errors: 0, Skipped: 0 -</code></pre> +....</pre> +</div> +</div> +</div> +</div> </div> </div> Modified: websites/staging/tomee/trunk/content/latest/examples/index.html ============================================================================== --- websites/staging/tomee/trunk/content/latest/examples/index.html (original) +++ websites/staging/tomee/trunk/content/latest/examples/index.html Sun Dec 30 21:48:16 2018 @@ -102,7 +102,6 @@ <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="cdi-produces-field.html">CDI Field Producer</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="cdi-interceptors.html">CDI Interceptors</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="cdi-produces-disposes.html">CDI Produces Disposes</a></li> - <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="decorators.html">Decorators</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="simple-cdi-interceptor.html">Simple CDI Interceptor</a></li> </ul> </div> @@ -153,6 +152,18 @@ </ul> </div> <div class="col-md-4"> + <div class="group-title">Unknown</div> + <ul class="group"> + <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="cdi-alternative-and-stereotypes.html">cdi-alternative-and-stereotypes</a></li> + <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="cdi-session-scope.html">cdi-session-scope</a></li> + <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="connector-war.html">connector-war</a></li> + <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="decorators.html">decorators</a></li> + <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="java-modules.html">Java modules example with a simple REST resource</a></li> + </ul> + </div> + </div> + <div class="row"> + <div class="col-md-4"> <div class="group-title">Meta-Annotations</div> <ul class="group"> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="access-timeout-meta.html">@AccessTimeout the Meta-Annotation Way</a></li> @@ -162,8 +173,6 @@ <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="testing-security-meta.html">Testing Security Meta</a></li> </ul> </div> - </div> - <div class="row"> <div class="col-md-4"> <div class="group-title">Session Beans</div> <ul class="group"> @@ -182,6 +191,8 @@ <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="resources-declared-in-webapp.html">Resources Declared in Webapp</a></li> </ul> </div> + </div> + <div class="row"> <div class="col-md-4"> <div class="group-title">Other Features</div> <ul class="group"> @@ -191,8 +202,6 @@ <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="troubleshooting.html">Troubleshooting</a></li> </ul> </div> - </div> - <div class="row"> <div class="col-md-4"> <div class="group-title">EntityManagers</div> <ul class="group"> @@ -210,6 +219,8 @@ <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="lookup-of-ejbs-with-descriptor.html">Lookup Of Ejbs with Descriptor</a></li> </ul> </div> + </div> + <div class="row"> <div class="col-md-4"> <div class="group-title">Security</div> <ul class="group"> @@ -218,8 +229,6 @@ <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="testing-security-3.html">Testing Security 3</a></li> </ul> </div> - </div> - <div class="row"> <div class="col-md-4"> <div class="group-title">JMS and MDBs</div> <ul class="group"> @@ -236,6 +245,8 @@ <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="transaction-rollback.html">Transaction Rollback</a></li> </ul> </div> + </div> + <div class="row"> <div class="col-md-4"> <div class="group-title">Proxy Beans</div> <ul class="group"> @@ -244,16 +255,6 @@ <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="dynamic-proxy-to-access-mbean.html">Dynamic Proxy to Access MBean</a></li> </ul> </div> - </div> - <div class="row"> - <div class="col-md-4"> - <div class="group-title">Unknown</div> - <ul class="group"> - <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="cdi-alternative-and-stereotypes.html">cdi-alternative-and-stereotypes</a></li> - <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="cdi-session-scope.html">cdi-session-scope</a></li> - <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="java-modules.html">Java modules example with a simple REST resource</a></li> - </ul> - </div> <div class="col-md-4"> <div class="group-title">Frameworks</div> <ul class="group"> @@ -365,23 +366,22 @@ <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="resources-jmx-example.html">Custom resources in an EAR archive</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="datasource-versioning.html">DataSource Versioning</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="realm-in-tomee.html">DataSourceRealm and TomEE DataSource</a></li> - <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="javamail.html">Javamail API</a></li> </ul> </div> <div class="col-md-4"> <ul class="group"> - <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="connector-war.html">Movies Complete</a></li> + <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="javamail.html">Javamail API</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="mtom.html">mtom</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="myfaces-codi-demo.html">MyFaces CODI Demo</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="persistence-fragment.html">Persistence Fragment</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="reload-persistence-unit-properties.html">Reload Persistence Unit Properties</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="schedule-events.html">Schedule CDI Events</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="simple-mdb-and-cdi.html">Simple MDB and CDI</a></li> - <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="rest-xml-json.html">Simple REST</a></li> </ul> </div> <div class="col-md-4"> <ul class="group"> + <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="rest-xml-json.html">Simple REST</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="rest-cdi.html">Simple REST with CDI</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="simple-stateful-callbacks.html">Simple Stateful with callback methods</a></li> <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="simple-stateless-callbacks.html">Simple Stateless with callback methods</a></li> Modified: websites/staging/tomee/trunk/content/master/examples/connector-war.html ============================================================================== --- websites/staging/tomee/trunk/content/master/examples/connector-war.html (original) +++ websites/staging/tomee/trunk/content/master/examples/connector-war.html Sun Dec 30 21:48:16 2018 @@ -88,17 +88,25 @@ <div class="col-md-12"> <div class='page-header'> - <h1>Movies Complete</h1> + <h1>null</h1> </div> </div> </div> <div class="row"> <div class="col-md-12"> - <p><em>Help us document this example! Click the blue pencil icon in the upper right to edit this page.</em></p> -<p><a href="https://codenvy.com/f?id=9er0fn1kh832sa35"><img src="https://tomitribe.github.io/codenvy/tryitout.svg" alt="Try it out in Codenvy" /></a></p> -<h2>AddInterceptor</h2> -<pre><code>package org.superbiz.injection.tx; + <div class="paragraph"> +<p>index-group=Java EE Connectors +type=page +status=published</p> +</div> +<h1 id="_connectors_in_war_files" class="sect0">Connectors in WAR Files</h1> +<div class="sect1"> +<h2 id="_addinterceptor">AddInterceptor</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.injection.tx; import javax.interceptor.AroundInvoke; import javax.interceptor.InvocationContext; @@ -113,10 +121,17 @@ public class AddInterceptor { // Log Add return context.proceed(); } -} -</code></pre> -<h2>DeleteInterceptor</h2> -<pre><code>package org.superbiz.injection.tx; +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_deleteinterceptor">DeleteInterceptor</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.injection.tx; import javax.interceptor.AroundInvoke; import javax.interceptor.InvocationContext; @@ -131,10 +146,17 @@ public class DeleteInterceptor { // Log Delete return context.proceed(); } -} -</code></pre> -<h2>Movie</h2> -<pre><code>package org.superbiz.injection.tx; +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_movie">Movie</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.injection.tx; import javax.persistence.Entity; @@ -178,10 +200,17 @@ public class Movie { this.year = year; } -} -</code></pre> -<h2>Movies</h2> -<pre><code>package org.superbiz.injection.tx; +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_movies">Movies</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.injection.tx; import javax.annotation.security.PermitAll; import javax.annotation.security.RolesAllowed; @@ -199,17 +228,17 @@ import java.util.List; @Stateful public class Movies { - @PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.TRANSACTION) + @PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.TRANSACTION) private EntityManager entityManager; - @RolesAllowed({"Employee", "Manager"}) + @RolesAllowed({"Employee", "Manager"}) @TransactionAttribute(TransactionAttributeType.REQUIRED) @Interceptors(AddInterceptor.class) public void addMovie(Movie movie) throws Exception { entityManager.persist(movie); } - @RolesAllowed({"Manager"}) + @RolesAllowed({"Manager"}) @TransactionAttribute(TransactionAttributeType.MANDATORY) @Interceptors(DeleteInterceptor.class) public void deleteMovie(Movie movie) throws Exception { @@ -219,13 +248,20 @@ public class Movies { @PermitAll @TransactionAttribute(TransactionAttributeType.SUPPORTS) public List<Movie> getMovies() throws Exception { - Query query = entityManager.createQuery("SELECT m from Movie as m"); + Query query = entityManager.createQuery("SELECT m from Movie as m"); return query.getResultList(); } -} -</code></pre> -<h2>ReadInterceptor</h2> -<pre><code>package org.superbiz.injection.tx; +}</code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_readinterceptor">ReadInterceptor</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.injection.tx; import javax.interceptor.AroundInvoke; import javax.interceptor.InvocationContext; @@ -241,27 +277,48 @@ public class ReadInterceptor { return context.proceed(); } } -</code></pre> -<h2>persistence.xml</h2> -<pre><code><persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> - - <persistence-unit name="movie-unit"> - <jta-data-source>movieDatabase</jta-data-source> - <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source> - <class>org.superbiz.injection.tx.Movie</class> +.... + +== persistence.xml - <properties> - <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/> +[source,xml]</code></pre> +</div> +</div> +<div class="paragraph"> +<p><persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"></p> +</div> +<div class="literalblock"> +<div class="content"> +<pre><persistence-unit name="movie-unit"> + <jta-data-source>movieDatabase</jta-data-source> + <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source> + <class>org.superbiz.injection.tx.Movie</class></pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre> <properties> + <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/> </properties> </persistence-unit> -</persistence> -</code></pre> -<h2>MoviesTest</h2> -<pre><code>package org.superbiz.injection.tx; - -import junit.framework.TestCase; - -import javax.annotation.security.RunAs; +</persistence></pre> +</div> +</div> +<div class="listingblock"> +<div class="content"> +<pre>== MoviesTest + +[source,java]</pre> +</div> +</div> +<div class="paragraph"> +<p>package org.superbiz.injection.tx;</p> +</div> +<div class="paragraph"> +<p>import junit.framework.TestCase;</p> +</div> +<div class="paragraph"> +<p>import javax.annotation.security.RunAs; import javax.ejb.EJB; import javax.ejb.Stateless; import javax.ejb.TransactionAttribute; @@ -269,114 +326,172 @@ import javax.ejb.TransactionAttributeTyp import javax.ejb.embeddable.EJBContainer; import java.util.List; import java.util.Properties; -import java.util.concurrent.Callable; - -import static javax.ejb.TransactionAttributeType.REQUIRES_NEW; - -/** +import java.util.concurrent.Callable;</p> +</div> +<div class="paragraph"> +<p>import static javax.ejb.TransactionAttributeType.REQUIRES_NEW;</p> +</div> +<div class="paragraph"> +<p>/** * See the transaction-rollback example as it does the same thing - * via UserTransaction and shows more techniques for rollback + * via UserTransaction and shows more techniques for rollback */ -//START SNIPPET: code -public class MoviesTest extends TestCase { - - @EJB - private Movies movies; - - @EJB(beanName = "TransactionBean") - private Caller transactionalCaller; - - @EJB(beanName = "NoTransactionBean") - private Caller nonTransactionalCaller; - - protected void setUp() throws Exception { - final Properties p = new Properties(); - p.put("movieDatabase", "new://Resource?type=DataSource"); - p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver"); - p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb"); - - EJBContainer.createEJBContainer(p).getContext().bind("inject", this); - } - - private void doWork() throws Exception { - - movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992)); - movies.addMovie(new Movie("Joel Coen", "Fargo", 1996)); - movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998)); - - List<Movie> list = movies.getMovies(); - assertEquals("List.size()", 3, list.size()); - - for (Movie movie : list) { - movies.deleteMovie(movie); +public class MoviesTest extends TestCase {</p> +</div> +<div class="literalblock"> +<div class="content"> +<pre>@EJB +private Movies movies;</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>@EJB(beanName = "TransactionBean") +private Caller transactionalCaller;</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>@EJB(beanName = "NoTransactionBean") +private Caller nonTransactionalCaller;</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>protected void setUp() throws Exception { + final Properties p = new Properties(); + p.put("movieDatabase", "new://Resource?type=DataSource"); + p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver"); + p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre> EJBContainer.createEJBContainer(p).getContext().bind("inject", this); +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>private void doWork() throws Exception {</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992)); +movies.addMovie(new Movie("Joel Coen", "Fargo", 1996)); +movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998));</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>List<Movie> list = movies.getMovies(); +assertEquals("List.size()", 3, list.size());</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>for (Movie movie : list) { + movies.deleteMovie(movie); +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre> assertEquals("Movies.getMovies()", 0, movies.getMovies().size()); +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>public void testWithTransaction() throws Exception { + transactionalCaller.call(new Callable() { + public Object call() throws Exception { + doWork(); + return null; } - - assertEquals("Movies.getMovies()", 0, movies.getMovies().size()); - } - - public void testWithTransaction() throws Exception { - transactionalCaller.call(new Callable() { + }); +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>public void testWithoutTransaction() throws Exception { + try { + nonTransactionalCaller.call(new Callable() { public Object call() throws Exception { doWork(); return null; } }); - } - - public void testWithoutTransaction() throws Exception { - try { - nonTransactionalCaller.call(new Callable() { - public Object call() throws Exception { - doWork(); - return null; - } - }); - fail("The Movies bean should be using TransactionAttributeType.MANDATORY"); - } catch (javax.ejb.EJBException e) { - // good, our Movies bean is using TransactionAttributeType.MANDATORY as we want - } - } - - - public static interface Caller { - public <V> V call(Callable<V> callable) throws Exception; - } - - /** - * This little bit of magic allows our test code to execute in - * the scope of a container controlled transaction. - */ - @Stateless - @RunAs("Manager") - @TransactionAttribute(REQUIRES_NEW) - public static class TransactionBean implements Caller { - - public <V> V call(Callable<V> callable) throws Exception { - return callable.call(); - } - } - - @Stateless - @RunAs("Manager") - @TransactionAttribute(TransactionAttributeType.NEVER) - public static class NoTransactionBean implements Caller { - - public <V> V call(Callable<V> callable) throws Exception { + fail("The Movies bean should be using TransactionAttributeType.MANDATORY"); + } catch (javax.ejb.EJBException e) { + // good, our Movies bean is using TransactionAttributeType.MANDATORY as we want + } +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>public static interface Caller { + public <V> V call(Callable<V> callable) throws Exception; +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>/** + * This little bit of magic allows our test code to execute in + * the scope of a container controlled transaction. + */ +@Stateless +@RunAs("Manager") +@TransactionAttribute(REQUIRES_NEW) +public static class TransactionBean implements Caller {</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre> public <V> V call(Callable<V> callable) throws Exception { + return callable.call(); + } +}</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre>@Stateless +@RunAs("Manager") +@TransactionAttribute(TransactionAttributeType.NEVER) +public static class NoTransactionBean implements Caller {</pre> +</div> +</div> +<div class="literalblock"> +<div class="content"> +<pre> public <V> V call(Callable<V> callable) throws Exception { return callable.call(); } } -} -</code></pre> -<h1>Running</h1> -<pre><code>------------------------------------------------------- - T E S T S -------------------------------------------------------- -Running org.superbiz.injection.tx.MoviesTest +}</pre> +</div> +</div> +<div class="listingblock"> +<div class="content"> +<pre>== Running</pre> +</div> +</div> +<div class="listingblock"> +<div class="content"> +<pre> T E S T S</pre> +</div> +</div> +<div class="paragraph"> +<p>Running org.superbiz.injection.tx.MoviesTest Apache OpenEJB 4.0.0-beta-1 build: 20111002-04:06 -http://tomee.apache.org/ +<a href="http://tomee.apache.org/" class="bare">http://tomee.apache.org/</a> INFO - openejb.home = /Users/dblevins/examples/movies-complete INFO - openejb.base = /Users/dblevins/examples/movies-complete -INFO - Using 'javax.ejb.embeddable.EJBContainer=true' +INFO - Using 'javax.ejb.embeddable.EJBContainer=true' INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service) INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager) INFO - Configuring Service(id=movieDatabase, type=Resource, provider-id=Default JDBC Database) @@ -392,20 +507,20 @@ INFO - Auto-creating a container for bea INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container) INFO - Auto-creating a container for bean org.superbiz.injection.tx.MoviesTest: Container(type=MANAGED, id=Default Managed Container) INFO - Configuring PersistenceUnit(name=movie-unit) -INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'. +INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'. INFO - Configuring Service(id=movieDatabaseNonJta, type=Resource, provider-id=movieDatabase) -INFO - Adjusting PersistenceUnit movie-unit <non-jta-data-source> to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged' -INFO - Enterprise application "/Users/dblevins/examples/movies-complete" loaded. +INFO - Adjusting PersistenceUnit movie-unit <non-jta-data-source> to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged' +INFO - Enterprise application "/Users/dblevins/examples/movies-complete" loaded. INFO - Assembling app: /Users/dblevins/examples/movies-complete INFO - PersistenceUnit(name=movie-unit, provider=org.apache.openjpa.persistence.PersistenceProviderImpl) - provider time 402ms -INFO - Jndi(name="java:global/movies-complete/Movies!org.superbiz.injection.tx.Movies") -INFO - Jndi(name="java:global/movies-complete/Movies") -INFO - Jndi(name="java:global/movies-complete/TransactionBean!org.superbiz.injection.tx.MoviesTest$Caller") -INFO - Jndi(name="java:global/movies-complete/TransactionBean") -INFO - Jndi(name="java:global/movies-complete/NoTransactionBean!org.superbiz.injection.tx.MoviesTest$Caller") -INFO - Jndi(name="java:global/movies-complete/NoTransactionBean") -INFO - Jndi(name="java:global/EjbModule1013462002/org.superbiz.injection.tx.MoviesTest!org.superbiz.injection.tx.MoviesTest") -INFO - Jndi(name="java:global/EjbModule1013462002/org.superbiz.injection.tx.MoviesTest") +INFO - Jndi(name="java:global/movies-complete/Movies!org.superbiz.injection.tx.Movies") +INFO - Jndi(name="java:global/movies-complete/Movies") +INFO - Jndi(name="java:global/movies-complete/TransactionBean!org.superbiz.injection.tx.MoviesTest$Caller") +INFO - Jndi(name="java:global/movies-complete/TransactionBean") +INFO - Jndi(name="java:global/movies-complete/NoTransactionBean!org.superbiz.injection.tx.MoviesTest$Caller") +INFO - Jndi(name="java:global/movies-complete/NoTransactionBean") +INFO - Jndi(name="java:global/EjbModule1013462002/org.superbiz.injection.tx.MoviesTest!org.superbiz.injection.tx.MoviesTest") +INFO - Jndi(name="java:global/EjbModule1013462002/org.superbiz.injection.tx.MoviesTest") INFO - Created Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container) INFO - Created Ejb(deployment-id=NoTransactionBean, ejb-name=NoTransactionBean, container=Default Stateless Container) INFO - Created Ejb(deployment-id=TransactionBean, ejb-name=TransactionBean, container=Default Stateless Container) @@ -416,12 +531,21 @@ INFO - Started Ejb(deployment-id=Transac INFO - Started Ejb(deployment-id=org.superbiz.injection.tx.MoviesTest, ejb-name=org.superbiz.injection.tx.MoviesTest, container=Default Managed Container) INFO - Deployed Application(path=/Users/dblevins/examples/movies-complete) INFO - EJBContainer already initialized. Call ejbContainer.close() to allow reinitialization -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.418 sec - -Results : - -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 -</code></pre> +Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.418 sec</p> +</div> +<div class="paragraph"> +<p>Results :</p> +</div> +<div class="paragraph"> +<p>Tests run: 2, Failures: 0, Errors: 0, Skipped: 0</p> +</div> +<div class="literalblock"> +<div class="content"> +<pre></pre> +</div> +</div> +</div> +</div> </div> </div>