You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2018/12/25 04:39:00 UTC

svn commit: r1849711 [6/11] - in /tomee/site/trunk/content: ./ community/ community/contributing/ latest/docs/ latest/docs/application-composer/ latest/docs/developer/json/ latest/docs/developer/testing/applicationcomposer/ latest/docs/developer/testin...

Modified: tomee/site/trunk/content/master/examples/access-timeout-meta.html
URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/master/examples/access-timeout-meta.html?rev=1849711&r1=1849710&r2=1849711&view=diff
==============================================================================
--- tomee/site/trunk/content/master/examples/access-timeout-meta.html (original)
+++ tomee/site/trunk/content/master/examples/access-timeout-meta.html Tue Dec 25 04:38:58 2018
@@ -95,16 +95,55 @@
         <div class="row">
             
             <div class="col-md-12">
-                <p>Any annotation that takes parameters can benefit from meta-annotations. Here we see how <code>@AccessTimeout</code> can be far more understandable and manageable through meta-annotations. We'll use the <a href="../access-timeout/README.html">access-timeout</a> example as our use-case.</p>
-<p>The value of the parameters supplied to <code>@AccessTimeout</code> have a dramatic affect on what that annotation actually does. Moreover, <code>@AccessTimeout</code> has one of those designs where <code>-1</code> and <code>0</code> have signifcantly different meanings. One means "wait forever", the other means "never wait". Only a lucky few can remember which is which on a daily basis. For the rest of us it is a constant source of bugs.</p>
-<p>Meta-Annotations to the rescue!</p>
-<h1>Creating the Meta-Annotations</h1>
-<p>As a matter of best-practices, we will put our meta-annotations in a package called <code>api</code>, for this example that gives us <code>org.superbiz.accesstimeout.api</code>. The package <code>org.superbiz.api</code> would work just as well.</p>
-<p>The basic idea is to have a package where "approved' annotations are used and to prohibit usage of the non-meta versions of the annotations. All the real configuration will then be centralized in the <code>api</code> package and changes to timeout values will be localized to that package and automatically be reflected throuhout the application.</p>
-<p>An interesting side-effect of this approach is that if the <code>api</code> package where the meta-annotation definitions exist is kept in a separate jar as well, then one can effectively change the configuration of an entire application by simply replacing the <code>api</code> jar.</p>
-<h2>@Metatype <small>The "root" Meta-Annotation</small></h2>
-<p>As with all meta-annotation usage, you first need to create your own "root" meta-annotation. This is as easy as creating an annotation named <code>Metatype</code> that is annotated with itself and has <code>ElementType.ANNOTATION_TYPE</code> as its target.</p>
-<pre><code>package org.superbiz.accesstimeout.api;
+                <div class="sect1">
+<h2 id="_introduction">Introduction</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Any annotation that takes parameters can benefit from meta-annotations.  Here we see how <code>@AccessTimeout</code> can be far more understandable and manageable through meta-annotations.
+We&#8217;ll use the [access-timeout](../access-timeout/README.html) example as our use-case.</p>
+</div>
+<div class="paragraph">
+<p>The value of the parameters supplied to <code>@AccessTimeout</code> have a dramatic affect on what that annotation actually does.  Moreover, <code>@AccessTimeout</code> has one of those designs
+where <code>-1</code> and <code>0</code> have signifcantly different meanings.  One means "wait forever", the other means "never wait".  Only a lucky few can remember which is which on a daily basis.
+For the rest of us it is a constant source of bugs.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Meta-Annotations to the rescue!
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="__strong_em_creating_the_meta_annotations_em_strong"><strong><em>Creating the Meta-Annotations</em></strong></h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>As a matter of best-practices, we will put our meta-annotations in a package called <code>api</code>, for this example that gives us <code>org.superbiz.accesstimeout.api</code>.  The package <code>org.superbiz.api</code> would work just as well.</p>
+</div>
+<div class="paragraph">
+<p>The basic idea is to have a package where "approved' annotations are used and to prohibit usage of the non-meta versions of the annotations.  All the real configuration will
+then be centralized in the <code>api</code> package and changes to timeout values will be localized to that package and automatically be reflected throuhout the application.</p>
+</div>
+<div class="paragraph">
+<p>An interesting side-effect of this approach is that if the <code>api</code> package where the meta-annotation definitions exist is kept in a separate jar as well, then one can effectively
+change the configuration of an entire application by simply replacing the <code>api</code> jar.</p>
+</div>
+<div class="sect2">
+<h3 id="__metatype_span_class_small_the_root_meta_annotation_span">@Metatype <span class="small">The "root" Meta-Annotation</span></h3>
+<div class="paragraph">
+<p>As with all meta-annotation usage, you first need to create your own "root" meta-annotation.  This is as easy as creating an annotation
+named <code>Metatype</code> that is annotated with itself and has <code>ElementType.ANNOTATION_TYPE</code> as its target.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.accesstimeout.api;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -115,12 +154,23 @@ import java.lang.annotation.Target;
 @Retention(RetentionPolicy.RUNTIME)
 @Target(ElementType.ANNOTATION_TYPE)
 public @interface Metatype {
-}
-</code></pre>
-<h2>@AwaitNever</h2>
-<p>When the <code>@AccessTimeout</code> annotation has the value of <code>0</code> that has the implication that one should never wait to access the bean. If the bean is busy, the caller will immediately receive an <code>ConcurrentAccessException</code>. This is hard to remember and definitely not self-documenting for those that never knew the details.</p>
-<p>To create a meta-annotation version of <code>@AccessTimeout(0)</code> we simply need to think of a good annotation name, create that annotation, and annotate it with both <code>@AccessTimeout</code> and <code>@Metatype</code></p>
-<pre><code>package org.superbiz.accesstimeout.api;
+}</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__awaitnever">@AwaitNever</h3>
+<div class="paragraph">
+<p>When the <code>@AccessTimeout</code> annotation has the value of <code>0</code> that has the implication that one should never wait to access the bean.  If the bean is busy, the caller will immediately
+receive an <code>ConcurrentAccessException</code>.  This is hard to remember and definitely not self-documenting for those that never knew the details.</p>
+</div>
+<div class="paragraph">
+<p>To create a meta-annotation version of <code>@AccessTimeout(0)</code> we simply need to think of a good annotation name, create that annotation, and annotate it with both <code>@AccessTimeout</code>
+and <code>@Metatype</code></p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.accesstimeout.api;
 
 import javax.ejb.AccessTimeout;
 import java.lang.annotation.ElementType;
@@ -134,13 +184,26 @@ import java.lang.annotation.Target;
 
 @AccessTimeout(0)
 public @interface AwaitNever {
-}
-</code></pre>
-<h2>@AwaitForever</h2>
+}</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__awaitforever">@AwaitForever</h3>
+<div class="paragraph">
 <p>Just as <code>0</code> carries the special meaning of "never wait", a value of <code>-1</code> means "wait forever."</p>
-<p>As long as we're being picky, which we can be with meta-annotations, Technically "wait forever" is not the best description. The actual methods of the <code>javax.util.concurrent</code> APIs use "await" rather than "wait". One (wait) perphaps implies a command to wait, which this is not, and the other (await) perhaps better implies that waiting is possible but not a certainty. So we will use "await" in our annotation names.</p>
+</div>
+<div class="paragraph">
+<p>As long as we&#8217;re being picky, which we can be with meta-annotations,
+Technically "wait forever" is not the best description.  The actual methods of the <code>javax.util.concurrent</code> APIs use "await" rather than "wait".  One (wait) perphaps implies a
+command to wait, which this is not, and the other (await) perhaps better implies that waiting is possible but not a certainty.  So we will use "await" in our annotation names.</p>
+</div>
+<div class="paragraph">
 <p>We make our own <code>@AwaitForever</code> and annotate it with <code>@AccessTimeout(0)</code> and <code>@Metatype</code></p>
-<pre><code>package org.superbiz.accesstimeout.api;
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.accesstimeout.api;
 
 import javax.ejb.AccessTimeout;
 import java.lang.annotation.ElementType;
@@ -154,42 +217,101 @@ import java.lang.annotation.Target;
 
 @AccessTimeout(-1)
 public @interface AwaitForever {
-}
-</code></pre>
-<h2>@AwaitBriefly</h2>
-<p>Non <code>-1</code> and <code>0</code> values to <code>@AccessTimeout</code> actually involve the full breadth of the annotation. Here is where you get to specify the maximum number minutes, seconds, milliseconds, etc. where one might await access to the bean instance.</p>
-<pre><code>@Metatype
+}</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="__awaitbriefly">@AwaitBriefly</h3>
+<div class="paragraph">
+<p>Non <code>-1</code> and <code>0</code> values to <code>@AccessTimeout</code> actually involve the full breadth of the annotation.  Here is where you get to specify the maximum number minutes, seconds,
+milliseconds, etc. where one might await access to the bean instance.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">@Metatype
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.METHOD, ElementType.TYPE})
 
 @AccessTimeout(value = 5, unit = TimeUnit.SECONDS)
 public @interface AwaitBriefly {
-}
-</code></pre>
-<h1>Configuration vs Operation</h1>
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_configuration_vs_operation">Configuration vs Operation</h2>
+<div class="sectionbody">
+<div class="paragraph">
 <p>Once you create a few meta-annotations and the fun becomes common-place, questoins start to raise in your mind on how to best get the benefits of meta-annotations.</p>
-<p>You have to really start thinking about how you want to approach your usage of meta-annotation and really put your designer hat on. The fundamental question is<br/><strong>configuration vs operation</strong> and the answer is subjective; how much flexibility do you want to design into your applications and where?</p>
-<h2>Configuration names <small>describing the configuration</small></h2>
-<p>The simplest approach is to name your meta-annotations after the <strong>configuration</strong> they encapsulate. We've been following that format so far with <code>@AwaitNever</code> and <code>@AwaitForever</code> to clearly reflect the contents of each meta-annotation (<code>@AccessTimeout(-1)</code> and <code>@AccessTimeout(0)</code> respectively).</p>
-<p>The <strong>cons</strong> of this approach is that should you want to change the configuration of the application by only changing the meta-annotations -- this is one of the potential benefits of meta-annotations -- but this may change the meaning of the annotation. Certainly, the <code>@AwaitNever</code> meta-annotation can have no other value than <code>0</code> if it is to live up to its name.</p>
-<h2>Operation names <small>describing the code</small></h2>
-<p>The alternate approach is to name your meta-annotations after the <strong>operations</strong> they apply to. In short, to describe the code itself and not the configuration. So, names like<br/><code>@OrderCheckTimeout</code> or <code>@TwitterUpdateTimeout</code>. These names are configuration-change-proof. They would not change if the configuration changes and in fact they can facilitate<br/>finder-grained control over the configuration of an application.</p>
-<p>The <strong>cons</strong> of this approach is that requires far more deliberation and consideration, not to mention more annotations. Your skills as an architect, designer and ability to think as a administrator will be challenged. You must be good at wearing your dev-opts hat.</p>
-<h2>Pragmatism <small>best of both worlds</small></h2>
-<p>Fortunately, meta-annotations are recursive. You can do a little of both.</p>
-<pre><code>@Metatype
+</div>
+<div class="paragraph">
+<p>You have to really start thinking about how you want to approach your usage of meta-annotation and really put your designer hat on.  The fundamental question is
+<strong>configuration vs operation</strong> and the answer is subjective; how much flexibility do you want to design into your applications and where?</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_configuration_names_span_class_small_describing_the_configuration_span">Configuration names <span class="small">describing the configuration</span></h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The simplest approach is to name your meta-annotations after the <strong>configuration</strong> they encapsulate. We&#8217;ve been following that format so far with <code>@AwaitNever</code> and <code>@AwaitForever</code>
+to clearly reflect the contents of each meta-annotation (<code>@AccessTimeout(-1)</code> and <code>@AccessTimeout(0)</code> respectively).</p>
+</div>
+<div class="paragraph">
+<p>The <strong>cons</strong> of this approach is that should you want to change the configuration of the application by only changing the meta-annotations&#8201;&#8212;&#8201;this is one of the potential benefits
+of meta-annotations&#8201;&#8212;&#8201;but this may change the meaning of the annotation.  Certainly, the <code>@AwaitNever</code> meta-annotation can have no other value than <code>0</code> if it is to live up to its name.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_operation_names_span_class_small_describing_the_code_span">Operation names <span class="small">describing the code</span></h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The alternate approach is to name your meta-annotations after the <strong>operations</strong> they apply to.  In short, to describe the code itself and not the configuration.  So, names like
+<code>@OrderCheckTimeout</code> or <code>@TwitterUpdateTimeout</code>.  These names are configuration-change-proof.  They would not change if the configuration changes and in fact they can facilitate
+finder-grained control over the configuration of an application.</p>
+</div>
+<div class="paragraph">
+<p>The <strong>cons</strong> of this approach is that requires far more deliberation and consideration, not to mention more annotations.  Your skills as an architect, designer and ability to think as
+a administrator will be challenged.  You must be good at wearing your dev-opts hat.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_pragmatism_span_class_small_best_of_both_worlds_span">Pragmatism  <span class="small">best of both worlds</span></h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Fortunately, meta-annotations are recursive.  You can do a little of both.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">@Metatype
 @Retention(RetentionPolicy.RUNTIME)
 @Target(ElementType.METHOD)
 
 @AwaitBriefly
 public @interface TwitterUpdateTimeout {
-}
-</code></pre>
-<p>Of course you still need to be very deliberate on how your annotations are used. When using a "configuration" named meta-annotation in code it can help to say to yourself,<br/>"I do not want to reconfigure this later." If that doesn't feel quite right, put the extra effort into creating an operation named annotation and use in that code.</p>
-<h1>Applying the Meta-Annotations</h1>
-<p>Putting it all together, here's how we might apply our meta-annotations to the <a href="../access-timeout/README.html">access-timeout</a> example.</p>
-<h2>Before</h2>
-<pre><code>package org.superbiz.accesstimeout;
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Of course you still need to be very deliberate on how your annotations are used.  When using a "configuration" named meta-annotation in code it can help to say to yourself,
+"I do not want to reconfigure this later."  If that doesn&#8217;t feel quite right, put the extra effort into creating an operation named annotation and use in that code.</p>
+</div>
+</div>
+</div>
+<h1 id="_applying_the_meta_annotations" class="sect0">Applying the Meta-Annotations</h1>
+<div class="paragraph">
+<p>Putting it all together, here&#8217;s how we might apply our meta-annotations to the [access-timeout](../access-timeout/README.html) example.</p>
+</div>
+<div class="sect2">
+<h3 id="_before">Before</h3>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.accesstimeout;
 
 import javax.ejb.AccessTimeout;
 import javax.ejb.Asynchronous;
@@ -202,8 +324,8 @@ import java.util.concurrent.TimeUnit;
 import static javax.ejb.LockType.WRITE;
 
 /**
- * @version $Revision$ $Date$
- */
+    * @version $Revision$ $Date$
+    */
 @Singleton
 @Lock(WRITE)
 public class BusyBee {
@@ -236,10 +358,15 @@ public class BusyBee {
         // do something
     }
 
-}
-</code></pre>
-<h2>After</h2>
-<pre><code>package org.superbiz.accesstimeout;
+}</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_after">After</h3>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">package org.superbiz.accesstimeout;
 
 import org.superbiz.accesstimeout.api.AwaitBriefly;
 import org.superbiz.accesstimeout.api.AwaitForever;
@@ -254,8 +381,8 @@ import java.util.concurrent.Future;
 import static javax.ejb.LockType.WRITE;
 
 /**
- * @version $Revision$ $Date$
- */
+    * @version $Revision$ $Date$
+    */
 @Singleton
 @Lock(WRITE)
 public class BusyBee {
@@ -288,8 +415,10 @@ public class BusyBee {
         // do something
     }
 
-}
-</code></pre>
+}</code></pre>
+</div>
+</div>
+</div>
             </div>
             
         </div>

Modified: tomee/site/trunk/content/master/examples/access-timeout.html
URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/master/examples/access-timeout.html?rev=1849711&r1=1849710&r2=1849711&view=diff
==============================================================================
--- tomee/site/trunk/content/master/examples/access-timeout.html (original)
+++ tomee/site/trunk/content/master/examples/access-timeout.html Tue Dec 25 04:38:58 2018
@@ -88,58 +88,147 @@
           <div class="col-md-12">
             <div class='page-header'>
               
-              <h1>@AccessTimeout annotation</h1>
+              <h1>@AccessTimeout Annotation</h1>
             </div>
           </div>
         </div>
         <div class="row">
             
             <div class="col-md-12">
-                <p>Before taking a look at <code>@AccessTimeout</code>, it might help to see when a caller might have to "wait"</p>
-<h2>Waiting</h2>
-<h3>Stateful Bean</h3>
-<blockquote>
-  <p>By default, clients are allowed to make concurrent calls to a stateful session object and the container is required to serialize such concurrent requests. Note that the container never permits multi-threaded access to the actual stateful session bean instance. For this reason, Read/Write method locking metadata, as well as the bean-managed concurrency mode, are not applicable to stateful session beans and must not be used.</p>
-</blockquote>
+                <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Before taking a look at <code>@AccessTimeout</code>, it might help to see when a caller might have to "wait"</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_waiting">Waiting</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_stateful_bean">Stateful Bean</h3>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+By default, clients are allowed to make concurrent calls to a stateful session object and the container is required to serialize such concurrent requests. The container never permits multi-threaded access to the stateful session bean instance. For this reason, Read/Write method locking metadata, as well as the bean-managed concurrency mode, are not applicable to stateful session beans and must not be used.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
 <p>This means that when a method <code>foo()</code> of a stateful bean instance is being executed and a second request comes in for that method or another method, EJB container would serialize the second request. It would not let the method be executed concurrently but wait until the first request is processed.</p>
+</div>
+<div class="paragraph">
 <p>The client would wait also when <code>@Stateful</code> bean is in a transaction and the client is invoking it from outside that transaction.</p>
-<h3>Stateless Bean</h3>
-<p>Say there are 20 instances of a bean in the pool and all of them are busy. Now when the next request comes in, the processing <em>might wait</em> for a bean to be available in the pool. (Note: Pooling sematics, if any, are not covered by the spec. The vendor's pooling semantics might or might not involve a wait condition)</p>
-<h3>Singleton Bean</h3>
-<p>The container enforces a single-threaded access by default to singleton beans. That's the equivalent of annotating with <code>@Lock(Write)</code>. So when a <code>@Lock(Write)</code> method is executing, all other <code>@Lock(READ)</code> and <code>@Lock(WRITE)</code> method invocations would have to wait.</p>
-<h3>Summary</h3>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_stateless_bean">Stateless Bean</h3>
+<div class="paragraph">
+<p>If there are 20 instances of a bean in the pool and all of them are busy.  When the next request comes in, the processing <strong>might wait</strong> for a bean to be available in the pool. (Note: Pooling sematics, if any, are not covered by the spec. The vendor&#8217;s pooling semantics might or might not involve a wait condition)</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_singleton_bean">Singleton Bean</h3>
+<div class="paragraph">
+<p>The container enforces a single-threaded access by default to singleton beans. That&#8217;s the equivalent of annotating with <code>@Lock(Write)</code>. So when a <code>@Lock(Write)</code> method is executing, all other <code>@Lock(READ)</code> and <code>@Lock(WRITE)</code> method invocations would have to wait.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_summary">Summary</h3>
+<div class="ulist">
 <ul>
-  <li><code>@Singleton</code> - an <code>@Lock(WRITE)</code> method is being invoked and container-managed concurrency is being used. All methods are <code>@Lock(WRITE)</code> by default.</li>
-  <li><code>@Stateful</code> - any method of the instance is being invoked and a second invocation occurs. OR the <code>@Stateful</code> bean is in a transaction and the caller is invoking it from outside that transaction.</li>
-  <li><code>@Stateless</code> - no instances are available in the pool. As noted, however, pooling sematics, if any, are not covered by the spec. If the vendor's pooling semantics do involve a wait condition, the @AccessTimeout should apply.</li>
+<li>
+<p><code>@Singleton</code> - an <code>@Lock(WRITE)</code> method is being invoked and container-managed concurrency is being used.  All methods are <code>@Lock(WRITE)</code> by default.</p>
+</li>
+<li>
+<p><code>@Stateful</code> - any method of the instance is being invoked and a second invocation occurs.  OR the <code>@Stateful</code> bean is in a transaction and the caller is invoking it from outside that transaction.</p>
+</li>
+<li>
+<p><code>@Stateless</code> - no instances are available in the pool. As noted, however, pooling sematics, if any, are not covered by the spec.  If the vendor&#8217;s pooling semantics do involve a wait condition, the @AccessTimeout should apply.</p>
+</li>
 </ul>
-<h1>@AccessTimeout</h1>
+</div>
+</div>
+</div>
+</div>
+<h1 id="__accesstimeout" class="sect0">@AccessTimeout</h1>
+<div class="paragraph">
 <p>The <code>@AccessTimeout</code> is simply a convenience wrapper around the <code>long</code> and <code>TimeUnit</code> tuples commonly used in the <code>java.util.concurrent</code> API.</p>
-<pre><code>import java.util.concurrent.TimeUnit;
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">import java.util.concurrent.TimeUnit;
 @Target({METHOD, TYPE})
 @Retention(RUNTIME)
 public @interface AccessTimeout {
     long value();
     TimeUnit unit() default TimeUnit.MILLISECONDS;
-}
-</code></pre>
-<h2>Usage</h2>
-<p>A method or class can be annotated with @AccessTimeout to specify the maximum time a call might wait for access to the bean should a wait condition occur.</p>
+}</code></pre>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_usage">Usage</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A method or class can be annotated with <code>@AccessTimeout</code> to specify the maximum time a call might wait for access to the bean should a wait condition occur.</p>
+</div>
+<div class="paragraph">
 <p>The semantics of the value element are as follows:</p>
+</div>
+<div class="ulist">
 <ul>
-  <li>A <code>value</code> &gt; 0 indicates a timeout value in the units specified by the <code>unit</code> element.</li>
-  <li>A <code>value</code> of 0 means concurrent access is not permitted.</li>
-  <li>A <code>value</code> of -1 indicates that the client request will block indefinitely until forward progress can proceed.</li>
+<li>
+<p>A <code>value</code> &gt; 0 indicates a timeout value in the units specified by the <code>unit</code> element.</p>
+</li>
+<li>
+<p>A <code>value</code> of 0 means concurrent access is not permitted.</p>
+</li>
+<li>
+<p>A <code>value</code> of -1 indicates that the client request will block indefinitely until forward progress can proceed.</p>
+</li>
 </ul>
+</div>
+<div class="paragraph">
 <p>Just as simple as that !</p>
-<h3>What exception would the client receive, with a timeout ?</h3>
-<p>Quoting from the spec, "if a client-invoked business method is in progress on an instance when another client-invoked call, from the same or different client, arrives at the same instance of a stateful session bean, if the second client is a client of the bean�s business interface or no-interface view, the concurrent invocation must result in the second client receiving a javax.ejb.ConcurrentAccessException[15]. If the EJB 2.1 client view is used, the container must throw a java.rmi.RemoteException if the second client is a remote client, or a javax.ejb.EJBException if the second client is a local client"</p>
-<h3>No standard default</h3>
-<p>Note that the <code>value</code> attribute has no default. This was intentional and intended to communicate that if <code>@AccessTimeout</code> is not explicitly used, the behavior you get is vendor-specific.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+What exception would the client receive, with a timeout ?
+Quoting from the spec, "if a client-invoked business method is in progress on an instance when another client-invoked call, from the same or different client, arrives at the same instance of a stateful session bean, if the second client is a client of the bean&#8217;s business interface or no-interface view, the concurrent invocation must result in the second client receiving a javax.ejb.ConcurrentAccessException[15]. If the EJB 2.1 client view is used, the container must throw a java.rmi.RemoteException if the second client is a remote client, or a javax.ejb.EJBException if the second client is a local client"
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_no_standard_default">No standard default</h3>
+<div class="paragraph">
+<p>Note that the <code>value</code> attribute has no default.  This was intentional and intended to communicate that if <code>@AccessTimeout</code> is not explicitly used, the behavior you get is vendor-specific.</p>
+</div>
+<div class="paragraph">
 <p>Some vendors will wait for a preconfigured time and throw <code>javax.ejb.ConcurrentAccessException</code>, some vendors will throw it immediately.</p>
-<h1>Example</h1>
-<p>Here we have a simple @Singleton bean that has three synchronous methods and one <code>@Asynchronous</code> method. The bean itself is annotated <code>@Lock(WRITE)</code> so that only one thread may access the <code>@Singleton</code> at a time. This is the default behavior of an <code>@Singleton</code> bean, so explicit usage of <code>@Lock(WRITE)</code> is not needed but is rather nice for clarity as the single-threaded nature of the bean is important to the example.</p>
-<pre><code>@Singleton
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example">Example</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Here we have a simple @Singleton bean that has three synchronous methods and one <code>@Asynchronous</code> method.  The bean itself is annotated <code>@Lock(WRITE)</code> so that only one thread may access the <code>@Singleton</code> at a time.  This is the default behavior of an <code>@Singleton</code> bean, so explicit usage of <code>@Lock(WRITE)</code> is not needed but is rather nice for clarity as the single-threaded nature of the bean is important to the example.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">@Singleton
 @Lock(WRITE)
 public class BusyBee {
 
@@ -170,11 +259,15 @@ public class BusyBee {
     public void justDoIt() {
         // do something
     }
-
-}
-</code></pre>
-<p>The <code>@Asynchronous</code> method is not a critical part of <code>@AccessTimeout</code>, but serves as a simple way to "lock" the bean for testing purposes. It allows us to easily test the concurrent behavior of the bean.</p>
-<pre><code>public class BusyBeeTest extends TestCase {
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The <code>@Asynchronous</code> method is not a critical part of <code>@AccessTimeout</code>, but serves as a simple way to "lock" the bean for testing purposes.  It allows us to easily test the concurrent behavior of the bean.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">public class BusyBeeTest extends TestCase {
 
     public void test() throws Exception {
 
@@ -182,7 +275,7 @@ public class BusyBee {
 
         final CountDownLatch ready = new CountDownLatch(1);
 
-        final BusyBee busyBee = (BusyBee) context.lookup(&quot;java:global/access-timeout/BusyBee&quot;);
+        final BusyBee busyBee = (BusyBee) context.lookup("java:global/access-timeout/BusyBee");
 
         // This asynchronous method will never exit
         busyBee.stayBusy(ready);
@@ -200,7 +293,7 @@ public class BusyBee {
             try {
                 busyBee.doItNow();
 
-                fail(&quot;The bee should be busy&quot;);
+                fail("The bee should be busy");
             } catch (Exception e) {
                 // the bee is still too busy as expected
             }
@@ -214,7 +307,7 @@ public class BusyBee {
             try {
                 busyBee.doItSoon();
 
-                fail(&quot;The bee should be busy&quot;);
+                fail("The bee should be busy");
             } catch (Exception e) {
                 // the bee is still too busy as expected
             }
@@ -229,18 +322,32 @@ public class BusyBee {
     private long seconds(long start) {
         return TimeUnit.NANOSECONDS.toSeconds(System.nanoTime() - start);
     }
-}
-</code></pre>
-<h1>Running</h1>
-<pre><code>-------------------------------------------------------
- T E S T S
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_running">Running</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">mvn clean test</code></pre>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_output">Output</h3>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">-------------------------------------------------------
+    T E S T S
 -------------------------------------------------------
 Running org.superbiz.accesstimeout.BusyBeeTest
 Apache OpenEJB 4.0.0-beta-1    build: 20111002-04:06
 http://tomee.apache.org/
 INFO - openejb.home = /Users/dblevins/examples/access-timeout
 INFO - openejb.base = /Users/dblevins/examples/access-timeout
-INFO - Using &#39;javax.ejb.embeddable.EJBContainer=true&#39;
+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/access-timeout/target/classes
@@ -250,12 +357,12 @@ INFO - Configuring Service(id=Default Si
 INFO - Auto-creating a container for bean BusyBee: Container(type=SINGLETON, id=Default Singleton Container)
 INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
 INFO - Auto-creating a container for bean org.superbiz.accesstimeout.BusyBeeTest: Container(type=MANAGED, id=Default Managed Container)
-INFO - Enterprise application &quot;/Users/dblevins/examples/access-timeout&quot; loaded.
+INFO - Enterprise application "/Users/dblevins/examples/access-timeout" loaded.
 INFO - Assembling app: /Users/dblevins/examples/access-timeout
-INFO - Jndi(name=&quot;java:global/access-timeout/BusyBee!org.superbiz.accesstimeout.BusyBee&quot;)
-INFO - Jndi(name=&quot;java:global/access-timeout/BusyBee&quot;)
-INFO - Jndi(name=&quot;java:global/EjbModule748454644/org.superbiz.accesstimeout.BusyBeeTest!org.superbiz.accesstimeout.BusyBeeTest&quot;)
-INFO - Jndi(name=&quot;java:global/EjbModule748454644/org.superbiz.accesstimeout.BusyBeeTest&quot;)
+INFO - Jndi(name="java:global/access-timeout/BusyBee!org.superbiz.accesstimeout.BusyBee")
+INFO - Jndi(name="java:global/access-timeout/BusyBee")
+INFO - Jndi(name="java:global/EjbModule748454644/org.superbiz.accesstimeout.BusyBeeTest!org.superbiz.accesstimeout.BusyBeeTest")
+INFO - Jndi(name="java:global/EjbModule748454644/org.superbiz.accesstimeout.BusyBeeTest")
 INFO - Created Ejb(deployment-id=org.superbiz.accesstimeout.BusyBeeTest, ejb-name=org.superbiz.accesstimeout.BusyBeeTest, container=Default Managed Container)
 INFO - Created Ejb(deployment-id=BusyBee, ejb-name=BusyBee, container=Default Singleton Container)
 INFO - Started Ejb(deployment-id=org.superbiz.accesstimeout.BusyBeeTest, ejb-name=org.superbiz.accesstimeout.BusyBeeTest, container=Default Managed Container)
@@ -265,8 +372,12 @@ Tests run: 1, Failures: 0, Errors: 0, Sk
 
 Results :
 
-Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
-</code></pre>
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
             </div>
             
         </div>

Modified: tomee/site/trunk/content/master/examples/index.html
URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/master/examples/index.html?rev=1849711&r1=1849710&r2=1849711&view=diff
==============================================================================
--- tomee/site/trunk/content/master/examples/index.html (original)
+++ tomee/site/trunk/content/master/examples/index.html Tue Dec 25 04:38:58 2018
@@ -93,20 +93,6 @@
         </div>
                 <div class="row">
           <div class="col-md-4">
-            <div class="group-title">Misc</div>
-            <ul class="group">
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="applet.html">Applet</a></li>
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="ejb-examples.html">EJB Examples</a></li>
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="ejb-webservice.html">EJB Webservice</a></li>
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="helloworld-weblogic.html">Helloworld Weblogic</a></li>
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="jsf-managedBean-and-ejb.html">JSF Application that uses managed-bean and ejb</a></li>
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="jsf-cdi-and-ejb.html">JSF-CDI-EJB</a></li>
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="moviefun.html">Movies Complete</a></li>
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="mvc-cxf.html">MVC-CXF</a></li>
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="polling-parent.html">polling-parent</a></li>
-            </ul>
-          </div>
-          <div class="col-md-4">
             <div class="group-title">CDI</div>
             <ul class="group">
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="cdi-application-scope.html">CDI @ApplicationScoped</a></li>
@@ -130,12 +116,10 @@
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="webservice-ws-security.html">Webservice Ws Security</a></li>
             </ul>
           </div>
-        </div>
-        <div class="row">
           <div class="col-md-4">
             <div class="group-title">EJB</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.html">@AccessTimeout annotation</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="access-timeout.html">@AccessTimeout Annotation</a></li>
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="async-postconstruct.html">@Asynchronous @PostConstruct</a></li>
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="async-methods.html">@Asynchronous Methods</a></li>
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="interceptors.html">Interceptors</a></li>
@@ -143,6 +127,28 @@
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="schedule-methods.html">Schedule Methods</a></li>
             </ul>
           </div>
+        </div>
+        <div class="row">
+          <div class="col-md-4">
+            <div class="group-title">REST</div>
+            <ul class="group">
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="moviefun-rest.html">MovieFun REST</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="rest-example.html">REST Example</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="rest-example-with-application.html">REST Example with Application</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="rest-on-ejb.html">REST on EJB</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="simple-rest.html">Simple REST</a></li>
+            </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="java-modules.html">Java modules example with a simple REST resource</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="mp-custom-healthcheck.html">MicroProfile Custom Health Check</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="mp-faulttolerance-fallback.html">Microprofile Fault Tolerance - Fallback</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="mp-opentracing-traced.html">mp-opentracing-traced</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="mp-rest-client.html">mp-rest-client</a></li>
+            </ul>
+          </div>
           <div class="col-md-4">
             <div class="group-title">Meta-Annotations</div>
             <ul class="group">
@@ -153,6 +159,8 @@
               <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">
@@ -162,8 +170,6 @@
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="simple-stateless-with-descriptor.html">Simple Stateless with Descriptor</a></li>
             </ul>
           </div>
-        </div>
-        <div class="row">
           <div class="col-md-4">
             <div class="group-title">Testing Techniques</div>
             <ul class="group">
@@ -174,15 +180,6 @@
             </ul>
           </div>
           <div class="col-md-4">
-            <div class="group-title">REST</div>
-            <ul class="group">
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="rest-example.html">REST Example</a></li>
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="rest-example-with-application.html">REST Example with Application</a></li>
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="rest-on-ejb.html">REST on EJB</a></li>
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="simple-rest.html">Simple REST</a></li>
-            </ul>
-          </div>
-          <div class="col-md-4">
             <div class="group-title">DataSources</div>
             <ul class="group">
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="datasource-ciphered-password.html">DataSource Ciphered Password</a></li>
@@ -264,21 +261,14 @@
             </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="java-modules.html">Java modules example with a simple REST resource</a></li>
-              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="mp-faulttolerance-retry.html">mp-faulttolerance-retry</a></li>
-            </ul>
-          </div>
-        </div>
-        <div class="row">
-          <div class="col-md-4">
             <div class="group-title">Environment Entries</div>
             <ul class="group">
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="custom-injection.html">Custom Injection</a></li>
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="injection-of-env-entry.html">Using EnvEntries</a></li>
             </ul>
           </div>
+        </div>
+        <div class="row">
           <div class="col-md-4">
             <div class="group-title">EJB Legacy</div>
             <ul class="group">
@@ -287,6 +277,12 @@
             </ul>
           </div>
           <div class="col-md-4">
+            <div class="group-title">Histogram</div>
+            <ul class="group">
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="mp-metrics-histogram.html">mp-metrics-histogram</a></li>
+            </ul>
+          </div>
+          <div class="col-md-4">
             <div class="group-title">Java EE Connectors</div>
             <ul class="group">
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="quartz-app.html">Quartz Resource Adapter usage</a></li>
@@ -295,6 +291,35 @@
         </div>
         <div class="row">
           <div class="col-md-12">
+            <div class="group-title large">Misc</div>
+          </div>
+        </div>
+        <div class="row">
+          <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="applet.html">Applet</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="ejb-examples.html">EJB Examples</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="ejb-webservice.html">EJB Webservice</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="helloworld-weblogic.html">Helloworld Weblogic</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="jsf-managedBean-and-ejb.html">JSF Application that uses managed-bean and ejb</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="jsf-cdi-and-ejb.html">JSF-CDI-EJB</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="moviefun.html">Movies Complete</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="mvc-cxf.html">MVC-CXF</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="mvc-resteasy.html">MVC-RestEasy</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="polling-parent.html">polling-parent</a></li>
+            </ul>
+          </div>
+        </div>
+        <div class="row">
+          <div class="col-md-12">
             <div class="group-title large">Unrevised</div>
           </div>
         </div>
@@ -316,19 +341,21 @@
           <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="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="mp-config-example.html">Microprofile Config</a></li>
               <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="mp-faulttolerance-retry.html">mp-faulttolerance-retry</a></li>
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="mp-metrics-counted.html">mp-metrics-counted</a></li>
               <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="mp-metrics-timed.html">mp-metrics-timed</a></li>
+              <li class="group-item"><span class="group-item-i" ><i class="fa fa-angle-right"></i></span><a href="mp-rest-jwt.html">mp-rest-jwt</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="rest-mp-jwt.html">rest-mp-jwt</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>
             </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="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>
               <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>

Modified: tomee/site/trunk/content/master/examples/jpa-hibernate.html
URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/master/examples/jpa-hibernate.html?rev=1849711&r1=1849710&r2=1849711&view=diff
==============================================================================
--- tomee/site/trunk/content/master/examples/jpa-hibernate.html (original)
+++ tomee/site/trunk/content/master/examples/jpa-hibernate.html Tue Dec 25 04:38:58 2018
@@ -95,8 +95,9 @@
         <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>This example shows the persist, remove and creation a query in JPA Hibernate. The Java Persistence API (JPA) is a Java specification for accessing, persisting, and managing data between Java objects / classes and a relational database.</p>
 <h2>Movie</h2>
+<p>Define the class Movie as an entity with de annotation @Entity</p>
 <pre><code>package org.superbiz.injection.h3jpa;
 
 import javax.persistence.Entity;
@@ -151,6 +152,7 @@ public class Movie {
 }
 </code></pre>
 <h2>Movies</h2>
+<p>@PersistenceContext A persistence context is a set of entities such that for any persistent identity there is a unique entity instance.<br/>@EntityManager is associated with a persistence context. Is at the core of JPA, supported by some methods: persist, remove,merge, find,</p>
 <pre><code>package org.superbiz.injection.h3jpa;
 
 import javax.ejb.Stateful;
@@ -236,6 +238,9 @@ public class MoviesTest extends TestCase
 }
 </code></pre>
 <h1>Running</h1>
+<p>To run the example via maven:</p>
+<p>cd jpa-hibernate mvn clean install</p>
+<p>Which will generate output similar to the following:</p>
 <pre><code>-------------------------------------------------------
  T E S T S
 -------------------------------------------------------

Added: tomee/site/trunk/content/master/examples/moviefun-rest.html
URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/master/examples/moviefun-rest.html?rev=1849711&view=auto
==============================================================================
--- tomee/site/trunk/content/master/examples/moviefun-rest.html (added)
+++ tomee/site/trunk/content/master/examples/moviefun-rest.html Tue Dec 25 04:38:58 2018
@@ -0,0 +1,557 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+	<meta charset="UTF-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<title>Apache TomEE</title>
+	<meta name="description"
+		  content="Apache TomEE is a lightweight, yet powerful, JavaEE Application server with feature rich tooling." />
+	<meta name="keywords" content="tomee,asf,apache,javaee,jee,shade,embedded,test,junit,applicationcomposer,maven,arquillian" />
+	<meta name="author" content="Luka Cvetinovic for Codrops" />
+	<link rel="icon" href="../../favicon.ico">
+	<link rel="icon"  type="image/png" href="../../favicon.png">
+	<meta name="msapplication-TileColor" content="#80287a">
+	<meta name="theme-color" content="#80287a">
+	<link rel="stylesheet" type="text/css" href="../../css/normalize.css">
+	<link rel="stylesheet" type="text/css" href="../../css/bootstrap.css">
+	<link rel="stylesheet" type="text/css" href="../../css/owl.css">
+	<link rel="stylesheet" type="text/css" href="../../css/animate.css">
+	<link rel="stylesheet" type="text/css" href="../../fonts/font-awesome-4.1.0/css/font-awesome.min.css">
+	<link rel="stylesheet" type="text/css" href="../../fonts/eleganticons/et-icons.css">
+	<link rel="stylesheet" type="text/css" href="../../css/jqtree.css">
+	<link rel="stylesheet" type="text/css" href="../../css/idea.css">
+	<link rel="stylesheet" type="text/css" href="../../css/cardio.css">
+
+	<script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-2717626-1']);
+      _gaq.push(['_setDomainName', 'apache.org']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+</head>
+
+<body>
+    <div class="preloader">
+		<img src="../../img/loader.gif" alt="Preloader image">
+	</div>
+	    <nav class="navbar">
+		<div class="container">
+		  <div class="row">          <div class="col-md-12">
+
+			<!-- Brand and toggle get grouped for better mobile display -->
+			<div class="navbar-header">
+				<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+					<span class="sr-only">Toggle navigation</span>
+					<span class="icon-bar"></span>
+					<span class="icon-bar"></span>
+					<span class="icon-bar"></span>
+				</button>
+				<a class="navbar-brand" href="/">
+				    <span>
+
+				    
+                        <img src="../../img/logo-active.png">
+                    
+
+                    </span>
+				    Apache TomEE
+                </a>
+			</div>
+			<!-- Collect the nav links, forms, and other content for toggling -->
+			<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+				<ul class="nav navbar-nav navbar-right main-nav">
+					<li><a href="../../docs.html">Documentation</a></li>
+					<li><a href="../../community/index.html">Community</a></li>
+					<li><a href="../../security/index.html">Security</a></li>
+					<li><a href="../../download-ng.html">Downloads</a></li>
+				</ul>
+			</div>
+			<!-- /.navbar-collapse -->
+		   </div></div>
+		</div>
+		<!-- /.container-fluid -->
+	</nav>
+
+
+    <div id="main-block" class="container main-block">
+        <div class="row title">
+          <div class="col-md-12">
+            <div class='page-header'>
+              
+              <h1>MovieFun REST</h1>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+            
+            <div class="col-md-12">
+                <p>This example shows the CRUD of a movie funny application. The web client is built using backbone and the backend is built with JAX-RS, JPA for the persistence in a H2 database.</p>
+<h1>The Code</h1>
+<h2>ApplicationConfig</h2>
+<p>Here use JAX-RS annotations to create resources. @ApplicationPath identifies the application path that serves as the base URI for all resources. The implementation of method getClasses will be called by the JAX-RS framework to get information about this application. In the following example, it defines two resources: LoadRest and MoviesRest.</p>
+<pre><code>package org.superbiz.moviefun.rest;
+
+import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.core.Application;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+@ApplicationPath(&quot;/rest&quot;)
+public class ApplicationConfig extends Application {
+
+    @Override
+    @SuppressWarnings(&quot;unchecked&quot;)
+    public Set&lt;Class&lt;?&gt;&gt; getClasses() {
+        return new HashSet&lt;Class&lt;?&gt;&gt;(Arrays.asList(LoadRest.class, MoviesRest.class));
+    }
+}
+</code></pre>
+<h2>LoadRest</h2>
+<p>It is a POJO which is mapped to a root URL ("load") with the annotation @Path and has Java methods for serving requests to this root URL and its sub-URLs. In this case, only have a POST request where use an EJB (MoviesBean) injected to it class<br/> for do an initial load of data in the database. </p>
+<pre><code>package org.superbiz.moviefun.rest;
+
+import org.superbiz.moviefun.Movie;
+import org.superbiz.moviefun.MoviesBean;
+
+import javax.ejb.EJB;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+@Path(&quot;load&quot;)
+public class LoadRest {
+    @EJB
+    private MoviesBean moviesBean;
+
+    @POST
+    public void load() {
+        moviesBean.addMovie(new Movie(&quot;Wedding Crashers&quot;, &quot;David Dobkin&quot;, &quot;Comedy&quot;, 7, 2005));
+        moviesBean.addMovie(new Movie(&quot;Starsky &amp; Hutch&quot;, &quot;Todd Phillips&quot;, &quot;Action&quot;, 6, 2004));
+        moviesBean.addMovie(new Movie(&quot;Shanghai Knights&quot;, &quot;David Dobkin&quot;, &quot;Action&quot;, 6, 2003));
+        moviesBean.addMovie(new Movie(&quot;I-Spy&quot;, &quot;Betty Thomas&quot;, &quot;Adventure&quot;, 5, 2002));
+        moviesBean.addMovie(new Movie(&quot;The Royal Tenenbaums&quot;, &quot;Wes Anderson&quot;, &quot;Comedy&quot;, 8, 2001));
+        moviesBean.addMovie(new Movie(&quot;Zoolander&quot;, &quot;Ben Stiller&quot;, &quot;Comedy&quot;, 6, 2001));
+        moviesBean.addMovie(new Movie(&quot;Shanghai Noon&quot;, &quot;Tom Dey&quot;, &quot;Comedy&quot;, 7, 2000));
+    }
+
+}
+</code></pre>
+<h2>MovieRest</h2>
+<p>It is a POJO which is mapped to a root URL ("movies") with the annotation @Path and has Java methods for serving requests of entities movies in JSON format according to the @Produces annotation. Here has a method for each HTTP method (GET, POST, PUT, DELETE).</p>
+<pre><code>package org.superbiz.moviefun.rest;
+
+import org.superbiz.moviefun.Movie;
+import org.superbiz.moviefun.MoviesBean;
+
+import javax.ejb.EJB;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import java.util.List;
+
+@Path(&quot;movies&quot;)
+@Produces({&quot;application/json&quot;})
+public class MoviesRest {
+
+    @EJB
+    private MoviesBean service;
+
+    @GET
+    @Path(&quot;{id}&quot;)
+    public Movie find(@PathParam(&quot;id&quot;) Long id) {
+        return service.find(id);
+    }
+
+    @GET
+    public List&lt;Movie&gt; getMovies(@QueryParam(&quot;first&quot;) Integer first, @QueryParam(&quot;max&quot;) Integer max,
+                                 @QueryParam(&quot;field&quot;) String field, @QueryParam(&quot;searchTerm&quot;) String searchTerm) {
+        return service.getMovies(first, max, field, searchTerm);
+    }
+
+    @POST
+    @Consumes(&quot;application/json&quot;)
+    public Movie addMovie(Movie movie) {
+        service.addMovie(movie);
+        return movie;
+    }
+
+    @PUT
+    @Path(&quot;{id}&quot;)
+    @Consumes(&quot;application/json&quot;)
+    public Movie editMovie(Movie movie) {
+        service.editMovie(movie);
+        return movie;
+    }
+
+    @DELETE
+    @Path(&quot;{id}&quot;)
+    public void deleteMovie(@PathParam(&quot;id&quot;) long id) {
+        service.deleteMovie(id);
+    }
+
+    @GET
+    @Path(&quot;count&quot;)
+    @Produces(MediaType.TEXT_PLAIN)
+    public int count(@QueryParam(&quot;field&quot;) String field, @QueryParam(&quot;searchTerm&quot;) String searchTerm) {
+        return service.count(field, searchTerm);
+    }
+
+}
+</code></pre>
+<h2>Movie</h2>
+<p>This is the entity Movie that will be persisted by JPA. </p>
+<pre><code>package org.superbiz.moviefun;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Entity
+@XmlRootElement(name = &quot;movie&quot;)
+public class Movie {
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private long id;
+
+    private String director;
+    private String title;
+    private int year;
+    private String genre;
+    private int rating;
+
+    public Movie() {
+    }
+
+    public Movie(String title, String director, String genre, int rating, int year) {
+        this.director = director;
+        this.title = title;
+        this.year = year;
+        this.genre = genre;
+        this.rating = rating;
+    }
+
+    public Movie(String director, String title, int year) {
+        this.director = director;
+        this.title = title;
+        this.year = year;
+    }
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public String getDirector() {
+        return director;
+    }
+
+    public void setDirector(String director) {
+        this.director = director;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public int getYear() {
+        return year;
+    }
+
+    public void setYear(int year) {
+        this.year = year;
+    }
+
+    public String getGenre() {
+        return genre;
+    }
+
+    public void setGenre(String genre) {
+        this.genre = genre;
+    }
+
+    public int getRating() {
+        return rating;
+    }
+
+    public void setRating(int rating) {
+        this.rating = rating;
+    }
+}
+</code></pre>
+<h2>MoviesBean</h2>
+<pre><code>This is the EJB according to the @Stateless annotation. It uses the unit persistence &quot;movie-unit&quot; for persist 
+entities movie.
+
+package org.superbiz.moviefun;
+
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Path;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import javax.persistence.metamodel.EntityType;
+import java.util.List;
+
+@Stateless
+public class MoviesBean {
+
+    @PersistenceContext(unitName = &quot;movie-unit&quot;)
+    private EntityManager entityManager;
+
+    public Movie find(Long id) {
+        return entityManager.find(Movie.class, id);
+    }
+
+    public void addMovie(Movie movie) {
+        entityManager.persist(movie);
+    }
+
+    public void editMovie(Movie movie) {
+        entityManager.merge(movie);
+    }
+
+    public void deleteMovie(long id) {
+        Movie movie = entityManager.find(Movie.class, id);
+        entityManager.remove(movie);
+    }
+
+    public List&lt;Movie&gt; getMovies(Integer firstResult, Integer maxResults, String field, String searchTerm) {
+        CriteriaBuilder qb = entityManager.getCriteriaBuilder();
+        CriteriaQuery&lt;Movie&gt; cq = qb.createQuery(Movie.class);
+        Root&lt;Movie&gt; root = cq.from(Movie.class);
+        EntityType&lt;Movie&gt; type = entityManager.getMetamodel().entity(Movie.class);
+        if (field != null &amp;&amp; searchTerm != null &amp;&amp; !&quot;&quot;.equals(field.trim()) &amp;&amp; !&quot;&quot;.equals(searchTerm.trim())) {
+            Path&lt;String&gt; path = root.get(type.getDeclaredSingularAttribute(field.trim(), String.class));
+            Predicate condition = qb.like(path, &quot;%&quot; + searchTerm.trim() + &quot;%&quot;);
+            cq.where(condition);
+        }
+        TypedQuery&lt;Movie&gt; q = entityManager.createQuery(cq);
+        if (maxResults != null) {
+            q.setMaxResults(maxResults);
+        }
+        if (firstResult != null) {
+            q.setFirstResult(firstResult);
+        }
+        return q.getResultList();
+    }
+
+    public int count(String field, String searchTerm) {
+        CriteriaBuilder qb = entityManager.getCriteriaBuilder();
+        CriteriaQuery&lt;Long&gt; cq = qb.createQuery(Long.class);
+        Root&lt;Movie&gt; root = cq.from(Movie.class);
+        EntityType&lt;Movie&gt; type = entityManager.getMetamodel().entity(Movie.class);
+        cq.select(qb.count(root));
+        if (field != null &amp;&amp; searchTerm != null &amp;&amp; !&quot;&quot;.equals(field.trim()) &amp;&amp; !&quot;&quot;.equals(searchTerm.trim())) {
+            Path&lt;String&gt; path = root.get(type.getDeclaredSingularAttribute(field.trim(), String.class));
+            Predicate condition = qb.like(path, &quot;%&quot; + searchTerm.trim() + &quot;%&quot;);
+            cq.where(condition);
+        }
+        return entityManager.createQuery(cq).getSingleResult().intValue();
+    }
+
+    public void clean() {
+        entityManager.createQuery(&quot;delete from Movie&quot;).executeUpdate();
+    }
+}
+</code></pre>
+<h1>Running</h1>
+<p>Running the example is fairly simple. In the "moviefun-rest" directory run:</p>
+<p>$ mvn clean install</p>
+<p>Which should create output like the following.</p>
+<pre><code>INFO: OpenJPA dynamically loaded a validation provider.
+Dec 18, 2018 1:31:44 PM org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory createDelegate
+INFO: PersistenceUnit(name=movie-unit, provider=org.apache.openjpa.persistence.PersistenceProviderImpl) - provider time 36ms
+Dec 18, 2018 1:31:44 PM org.apache.openejb.assembler.classic.JndiBuilder bind
+INFO: Jndi(name=MoviesBeanLocalBean) --&gt; Ejb(deployment-id=MoviesBean)
+Dec 18, 2018 1:31:44 PM org.apache.openejb.assembler.classic.JndiBuilder bind
+INFO: Jndi(name=global/test/MoviesBean!org.superbiz.moviefun.MoviesBean) --&gt; Ejb(deployment-id=MoviesBean)
+Dec 18, 2018 1:31:44 PM org.apache.openejb.assembler.classic.JndiBuilder bind
+INFO: Jndi(name=global/test/MoviesBean) --&gt; Ejb(deployment-id=MoviesBean)
+Dec 18, 2018 1:31:44 PM org.apache.openejb.util.LogStreamAsync run
+INFO: Existing thread singleton service in SystemInstance(): org.apache.openejb.cdi.ThreadSingletonServiceImpl@94f6bfb
+Dec 18, 2018 1:31:44 PM org.apache.openejb.cdi.ManagedSecurityService &lt;init&gt;
+INFO: Some Principal APIs could not be loaded: org.eclipse.microprofile.jwt.JsonWebToken out of org.eclipse.microprofile.jwt.JsonWebToken not found
+Dec 18, 2018 1:31:44 PM org.apache.openejb.util.LogStreamAsync run
+INFO: OpenWebBeans Container is starting...
+Dec 18, 2018 1:31:44 PM org.apache.webbeans.plugins.PluginLoader startUp
+INFO: Adding OpenWebBeansPlugin : [CdiPlugin]
+Dec 18, 2018 1:31:44 PM org.apache.openejb.cdi.CdiScanner handleBda
+INFO: Using annotated mode for file:/Users/josediaz/Projects/tomitribe/tomee/examples/moviefun-rest/target/arquillian-test-working-dir/0/test/WEB-INF/classes/ looking all classes to find CDI beans, maybe think to add a beans.xml if not there or add the jar to exclusions.list
+Dec 18, 2018 1:31:44 PM org.apache.webbeans.config.BeansDeployer validateInjectionPoints
+INFO: All injection points were validated successfully.
+Dec 18, 2018 1:31:44 PM org.apache.openejb.util.LogStreamAsync run
+INFO: OpenWebBeans Container has started, it took 466 ms.
+Dec 18, 2018 1:31:44 PM org.apache.openejb.assembler.classic.Assembler startEjbs
+INFO: Created Ejb(deployment-id=MoviesBean, ejb-name=MoviesBean, container=Default Stateless Container)
+Dec 18, 2018 1:31:44 PM org.apache.openejb.assembler.classic.Assembler startEjbs
+INFO: Started Ejb(deployment-id=MoviesBean, ejb-name=MoviesBean, container=Default Stateless Container)
+Dec 18, 2018 1:31:45 PM org.apache.openejb.assembler.classic.Assembler createApplication
+INFO: Deployed Application(path=/Users/josediaz/Projects/tomitribe/tomee/examples/moviefun-rest/target/arquillian-test-working-dir/0/test)
+Dec 18, 2018 1:31:45 PM org.apache.myfaces.ee.MyFacesContainerInitializer onStartup
+INFO: Using org.apache.myfaces.ee.MyFacesContainerInitializer
+Dec 18, 2018 1:31:45 PM org.apache.myfaces.ee.MyFacesContainerInitializer onStartup
+INFO: Added FacesServlet with mappings=[/faces/*, *.jsf, *.faces, *.xhtml]
+Dec 18, 2018 1:31:45 PM org.apache.jasper.servlet.TldScanner scanJars
+INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
+Dec 18, 2018 1:31:45 PM org.apache.tomee.myfaces.TomEEMyFacesContainerInitializer addListener
+INFO: Installing &lt;listener&gt;org.apache.myfaces.webapp.StartupServletContextListener&lt;/listener&gt;
+Dec 18, 2018 1:31:45 PM org.apache.myfaces.config.DefaultFacesConfigurationProvider getStandardFacesConfig
+INFO: Reading standard config META-INF/standard-faces-config.xml
+Dec 18, 2018 1:31:46 PM org.apache.myfaces.config.DefaultFacesConfigurationProvider getClassloaderFacesConfig
+INFO: Reading config : jar:file:/Users/josediaz/.m2/repository/org/apache/openwebbeans/openwebbeans-el22/2.0.8/openwebbeans-el22-2.0.8.jar!/META-INF/faces-config.xml
+Dec 18, 2018 1:31:46 PM org.apache.myfaces.config.DefaultFacesConfigurationProvider getClassloaderFacesConfig
+INFO: Reading config : jar:file:/Users/josediaz/.m2/repository/org/apache/openwebbeans/openwebbeans-jsf/2.0.8/openwebbeans-jsf-2.0.8.jar!/META-INF/faces-config.xml
+Dec 18, 2018 1:31:46 PM org.apache.myfaces.config.LogMetaInfUtils logArtifact
+INFO: Artifact &#39;myfaces-api&#39; was found in version &#39;2.3.2&#39; from path &#39;file:/Users/josediaz/.m2/repository/org/apache/myfaces/core/myfaces-api/2.3.2/myfaces-api-2.3.2.jar&#39;
+Dec 18, 2018 1:31:46 PM org.apache.myfaces.config.LogMetaInfUtils logArtifact
+INFO: Artifact &#39;myfaces-impl&#39; was found in version &#39;2.3.2&#39; from path &#39;file:/Users/josediaz/.m2/repository/org/apache/myfaces/core/myfaces-impl/2.3.2/myfaces-impl-2.3.2.jar&#39;
+Dec 18, 2018 1:31:46 PM org.apache.myfaces.util.ExternalSpecifications isCDIAvailable
+INFO: MyFaces CDI support enabled
+Dec 18, 2018 1:31:46 PM org.apache.myfaces.spi.impl.DefaultInjectionProviderFactory getInjectionProvider
+INFO: Using InjectionProvider org.apache.myfaces.spi.impl.CDIAnnotationDelegateInjectionProvider
+Dec 18, 2018 1:31:47 PM org.apache.myfaces.util.ExternalSpecifications isBeanValidationAvailable
+INFO: MyFaces Bean Validation support enabled
+Dec 18, 2018 1:31:47 PM org.apache.myfaces.application.ApplicationImpl getProjectStage
+INFO: Couldn&#39;t discover the current project stage, using Production
+Dec 18, 2018 1:31:47 PM org.apache.myfaces.config.FacesConfigurator handleSerialFactory
+INFO: Serialization provider : class org.apache.myfaces.shared_impl.util.serial.DefaultSerialFactory
+Dec 18, 2018 1:31:47 PM org.apache.myfaces.config.annotation.DefaultLifecycleProviderFactory getLifecycleProvider
+INFO: Using LifecycleProvider org.apache.myfaces.config.annotation.Tomcat7AnnotationLifecycleProvider
+Dec 18, 2018 1:31:47 PM org.apache.myfaces.webapp.AbstractFacesInitializer initFaces
+INFO: ServletContext initialized.
+Dec 18, 2018 1:31:47 PM org.apache.myfaces.view.facelets.ViewPoolProcessor initialize
+INFO: org.apache.myfaces.CACHE_EL_EXPRESSIONS web config parameter is set to &quot;noCache&quot;. To enable view pooling this param must be set to &quot;alwaysRecompile&quot;. View Pooling disabled.
+Dec 18, 2018 1:31:47 PM org.apache.myfaces.webapp.StartupServletContextListener contextInitialized
+INFO: MyFaces Core has started, it took [1867] ms.
+Dec 18, 2018 1:31:47 PM null
+INFO: Starting OpenJPA 3.0.0
+Dec 18, 2018 1:31:47 PM null
+INFO: Using dictionary class &quot;org.apache.openjpa.jdbc.sql.HSQLDictionary&quot; (HSQL Database Engine 2.3.2 ,HSQL Database Engine Driver 2.3.2).
+Dec 18, 2018 1:31:47 PM null
+INFO: Connected to HSQL Database Engine version 2.2 using JDBC driver HSQL Database Engine Driver version 2.3.2. 
+Dec 18, 2018 1:31:53 PM null
+INFO: Creating subclass and redefining methods for &quot;[class org.superbiz.moviefun.Movie]&quot;. This means that your application will be less efficient than it would if you ran the OpenJPA enhancer.
+Dec 18, 2018 1:31:54 PM org.apache.openejb.assembler.classic.Assembler destroyApplication
+INFO: Undeploying app: /Users/josediaz/Projects/tomitribe/tomee/examples/moviefun-rest/target/arquillian-test-working-dir/0/test
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 16.77 sec - in org.superbiz.moviefun.MoviesEJBTest
+
+Results :
+
+Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
+</code></pre>
+            </div>
+            
+        </div>
+    </div>
+<footer>
+		<div class="container">
+			<div class="row">
+				<div class="col-sm-6 text-center-mobile">
+					<h3 class="white">Be simple.  Be certified. Be Tomcat.</h3>
+					<h5 class="light regular light-white">"A good application in a good server"</h5>
+					<ul class="social-footer">
+						<li><a href="https://www.facebook.com/ApacheTomEE/"><i class="fa fa-facebook"></i></a></li>
+						<li><a href="https://twitter.com/apachetomee"><i class="fa fa-twitter"></i></a></li>
+						<li><a href="https://plus.google.com/communities/105208241852045684449"><i class="fa fa-google-plus"></i></a></li>
+					</ul>
+				</div>
+				<div class="col-sm-6 text-center-mobile">
+					<div class="row opening-hours">
+						<div class="col-sm-3 text-center-mobile">
+							<h5><a href="../../latest/docs/documentation.html" class="white">Documentation</a></h5>
+							<ul class="list-unstyled">
+								<li><a href="../../latest/docs/admin/configuration/index.html" class="regular light-white">How to configure</a></li>
+								<li><a href="../../latest/docs/admin/file-layout.html" class="regular light-white">Dir. Structure</a></li>
+								<li><a href="../../latest/docs/developer/testing/index.html" class="regular light-white">Testing</a></li>
+								<li><a href="../../latest/docs/admin/cluster/index.html" class="regular light-white">Clustering</a></li>
+							</ul>
+						</div>
+						<div class="col-sm-3 text-center-mobile">
+							<h5><a href="../../latest/examples/" class="white">Examples</a></h5>
+							<ul class="list-unstyled">
+								<li><a href="../../latest/examples/simple-cdi-interceptor.html" class="regular light-white">CDI Interceptor</a></li>
+								<li><a href="../../latest/examples/rest-cdi.html" class="regular light-white">REST with CDI</a></li>
+								<li><a href="../../latest/examples/ejb-examples.html" class="regular light-white">EJB</a></li>
+								<li><a href="../../latest/examples/jsf-managedBean-and-ejb.html" class="regular light-white">JSF</a></li>
+							</ul>
+						</div>
+						<div class="col-sm-3 text-center-mobile">
+							<h5><a href="../../community/index.html" class="white">Community</a></h5>
+							<ul class="list-unstyled">
+								<li><a href="../../community/contributors.html" class="regular light-white">Contributors</a></li>
+								<li><a href="../../community/social.html" class="regular light-white">Social</a></li>
+								<li><a href="../../community/sources.html" class="regular light-white">Sources</a></li>
+							</ul>
+						</div>
+						<div class="col-sm-3 text-center-mobile">
+							<h5><a href="../../security/index.html" class="white">Security</a></h5>
+							<ul class="list-unstyled">
+								<li><a href="http://apache.org/security" target="_blank" class="regular light-white">Apache Security</a></li>
+								<li><a href="http://apache.org/security/projects.html" target="_blank" class="regular light-white">Security Projects</a></li>
+								<li><a href="http://cve.mitre.org" target="_blank" class="regular light-white">CVE</a></li>
+							</ul>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="row bottom-footer text-center-mobile">
+				<div class="col-sm-12 light-white">
+					<p>Copyright &copy; 1999-2016 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
+				</div>
+			</div>
+		</div>
+	</footer>
+	<!-- Holder for mobile navigation -->
+	<div class="mobile-nav">
+        <ul>
+          <li><a hef="../../latest/docs/admin/index.html">Administrators</a>
+          <li><a hef="../../latest/docs/developer/index.html">Developers</a>
+          <li><a hef="../../latest/docs/advanced/index.html">Advanced</a>
+          <li><a hef="../../community/index.html">Community</a>
+        </ul>
+		<a href="#" class="close-link"><i class="arrow_up"></i></a>
+	</div>
+	<!-- Scripts -->
+	<script src="../../js/jquery-1.11.1.min.js"></script>
+	<script src="../../js/owl.carousel.min.js"></script>
+	<script src="../../js/bootstrap.min.js"></script>
+	<script src="../../js/wow.min.js"></script>
+	<script src="../../js/typewriter.js"></script>
+	<script src="../../js/jquery.onepagenav.js"></script>
+	<script src="../../js/tree.jquery.js"></script>
+	<script src="../../js/highlight.pack.js"></script>
+    <script src="../../js/main.js"></script>
+		</body>
+
+</html>
+