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 2020/07/05 01:39:46 UTC

svn commit: r1879513 [19/24] - in /tomee/site/trunk/content: ./ jakartaee-8.0/javadoc/java/ jakartaee-8.0/javadoc/javax/ws/ jakartaee-8.0/javadoc/org/ latest/es/examples/ latest/javadoc/org/apache/tomee/microprofile/config/ latest/pt/examples/ master/e...

Added: tomee/site/trunk/content/tomee-8.0/pt/examples/injection-of-env-entry.html
URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/tomee-8.0/pt/examples/injection-of-env-entry.html?rev=1879513&view=auto
==============================================================================
--- tomee/site/trunk/content/tomee-8.0/pt/examples/injection-of-env-entry.html (added)
+++ tomee/site/trunk/content/tomee-8.0/pt/examples/injection-of-env-entry.html Sun Jul  5 01:39:45 2020
@@ -0,0 +1,518 @@
+<!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/security.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>Usando EnvEntries</h1>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+            
+            <div class="col-md-12">
+                <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>A anotação <code>@Resource</code> pode ser usada para injetar várias coisas, incluindo fontes de dados, tópicos, filas etc. A maioria delas são objetos fornecidos por contêiner.</p>
+</div>
+<div class="paragraph">
+<p>É possível, no entanto, fornecer seus próprios valores para serem injetados através de um
+<code>&lt;env-entry&gt;</code> no seu descritor de implementação <code>ejb-jar.xml</code> ou <code>web.xml</code>.
+Os tipos <code>&lt;env-entry&gt;</code> suportados pelo Java EE 6 são limitados ao seguinte:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>java.lang.String</p>
+</li>
+<li>
+<p>java.lang.Integer</p>
+</li>
+<li>
+<p>java.lang.Short</p>
+</li>
+<li>
+<p>java.lang.Float</p>
+</li>
+<li>
+<p>java.lang.Double</p>
+</li>
+<li>
+<p>java.lang.Byte</p>
+</li>
+<li>
+<p>java.lang.Character</p>
+</li>
+<li>
+<p>java.lang.Boolean</p>
+</li>
+<li>
+<p>java.lang.Class</p>
+</li>
+<li>
+<p>java.lang.Enum (any enum)</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Consulte também o <a href="../custom-injection">Injeção personalizada</a> exemplo para um
+recurso TomEE e OpenEJB permitem que você use mais do que apenas os tipos acima, além de declarar itens <code>&lt;env-entry&gt;</code> com um arquivo de propriedades simples.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_usando_resource_para_propriedades_básicas">Usando @Resource para propriedades básicas</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>O uso da anotação <code>@Resource</code> não se limita aos setters.
+Por exemplo, esta anotação poderia ter sido usada no correspondente
+<em>campo</em> assim:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@Resource
+private int maxLineItems;</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Um exemplo mais completo pode ser assim:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.injection.enventry;
+
+import javax.annotation.Resource;
+import javax.ejb.Singleton;
+import java.util.Date;
+
+@Singleton
+public class Configuration {
+
+    @Resource
+    private String color;
+
+    @Resource
+    private Shape shape;
+
+    @Resource
+    private Class strategy;
+
+    @Resource(name = "date")
+    private long date;
+
+    public String getColor() {
+        return color;
+    }
+
+    public Shape getShape() {
+        return shape;
+    }
+
+    public Class getStrategy() {
+        return strategy;
+    }
+
+    public Date getDate() {
+        return new Date(date);
+    }
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Aqui temos um bean <code>@Singleton</code> chamado <code>Configuration</code> que possui as seguintes propriedades (itens `&lt;env-entry&gt; `)</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>String color</p>
+</li>
+<li>
+<p>Shape shape</p>
+</li>
+<li>
+<p>Class strategy</p>
+</li>
+<li>
+<p>long date</p>
+</li>
+</ul>
+</div>
+<div class="sect2">
+<h3 id="_fornecendo_valores_resource_para_itens_em_ejb_jar_xml">Fornecendo valores @Resource para itens em ejb-jar.xml</h3>
+<div class="paragraph">
+<p>Os valores para nossas propriedades <code>color</code>,<code>shape</code>, <code>strategy</code> e <code>date</code>
+são fornecidos através dos elementos <code>&lt;env-entry&gt;</code> no arquivo <code>ejb-jar.xml</code> ou no arquivo
+arquivo <code>web.xml</code> da seguinte forma:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>&lt;ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.0" metadata-complete="false"&gt;
+  &lt;enterprise-beans&gt;
+    &lt;session&gt;
+      &lt;ejb-name&gt;Configuration&lt;/ejb-name&gt;
+      &lt;env-entry&gt;
+        &lt;env-entry-name&gt;org.superbiz.injection.enventry.Configuration/color&lt;/env-entry-name&gt;
+        &lt;env-entry-type&gt;java.lang.String&lt;/env-entry-type&gt;
+        &lt;env-entry-value&gt;orange&lt;/env-entry-value&gt;
+      &lt;/env-entry&gt;
+      &lt;env-entry&gt;
+        &lt;env-entry-name&gt;org.superbiz.injection.enventry.Configuration/shape&lt;/env-entry-name&gt;
+        &lt;env-entry-type&gt;org.superbiz.injection.enventry.Shape&lt;/env-entry-type&gt;
+        &lt;env-entry-value&gt;TRIANGLE&lt;/env-entry-value&gt;
+      &lt;/env-entry&gt;
+      &lt;env-entry&gt;
+        &lt;env-entry-name&gt;org.superbiz.injection.enventry.Configuration/strategy&lt;/env-entry-name&gt;
+        &lt;env-entry-type&gt;java.lang.Class&lt;/env-entry-type&gt;
+        &lt;env-entry-value&gt;org.superbiz.injection.enventry.Widget&lt;/env-entry-value&gt;
+      &lt;/env-entry&gt;
+      &lt;env-entry&gt;
+        &lt;description&gt;The name was explicitly set in the annotation so the classname prefix isn't required&lt;/description&gt;
+        &lt;env-entry-name&gt;date&lt;/env-entry-name&gt;
+        &lt;env-entry-type&gt;java.lang.Long&lt;/env-entry-type&gt;
+        &lt;env-entry-value&gt;123456789&lt;/env-entry-value&gt;
+      &lt;/env-entry&gt;
+    &lt;/session&gt;
+  &lt;/enterprise-beans&gt;
+&lt;/ejb-jar&gt;</pre>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_usando_o_atributo_resource_name">Usando o atributo @Resource `name'</h4>
+<div class="paragraph">
+<p>Note que <code>date</code> foi referenciado por <code>name</code> como:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@Resource(name = "date")
+private long date;</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Quando o <code>@Resource (name)</code> é usado, você não precisa especificar o nome completo da classe do bean e pode fazê-lo brevemente da seguinte maneira:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>  &lt;env-entry&gt;
+    &lt;description&gt;The name was explicitly set in the annotation so the classname prefix isn't required&lt;/description&gt;
+    &lt;env-entry-name&gt;date&lt;/env-entry-name&gt;
+    &lt;env-entry-type&gt;java.lang.Long&lt;/env-entry-type&gt;
+    &lt;env-entry-value&gt;123456789&lt;/env-entry-value&gt;
+  &lt;/env-entry&gt;</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Por outro lado, <code>color</code> não foi referenciado por <code>name</code></p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@Resource
+private String color;</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Quando algo não é referenciado por <code>name</code> na anotação <code>@Resource</code>, um nome padrão é criado. O formato é essencialmente este:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>bean.getClass() + "/" + field.getName()</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Portanto, o <code>name</code> padrão da propriedade <code>color</code> acima acaba sendo
+<code>org.superbiz.injection.enventry.Configuration/color</code>. Esse é o nome
+devemos usar quando tentamos decalcar um valor para ele em xml.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>  &lt;env-entry&gt;
+    &lt;env-entry-name&gt;org.superbiz.injection.enventry.Configuration/color&lt;/env-entry-name&gt;
+    &lt;env-entry-type&gt;java.lang.String&lt;/env-entry-type&gt;
+    &lt;env-entry-value&gt;orange&lt;/env-entry-value&gt;
+  &lt;/env-entry&gt;</pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="__resource_e_enum_enumerações">@Resource e Enum (enumerações)</h4>
+<div class="paragraph">
+<p>O campo <code>shape</code> é realmente um tipo Java Enum personalizado</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.injection.enventry;
+
+public enum Shape {
+
+    CIRCLE,
+    TRIANGLE,
+    SQUARE
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>No Java EE 6, os tipos java.lang.Enum são permitidos como <code>&lt;ententent&gt;</code>
+Itens. A declaração de um em xml é feita usando o nome da classe da enumeração real:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>      &lt;env-entry&gt;
+        &lt;env-entry-name&gt;org.superbiz.injection.enventry.Configuration/shape&lt;/env-entry-name&gt;
+        &lt;env-entry-type&gt;org.superbiz.injection.enventry.Shape&lt;/env-entry-type&gt;
+        &lt;env-entry-value&gt;TRIANGLE&lt;/env-entry-value&gt;
+      &lt;/env-entry&gt;</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Não use <code>&lt;env-entry-type&gt;java.lang.Enum&lt;/env-entry-type&gt;</code> ou não funcionará!</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_configurationtest">ConfigurationTest</h3>
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.injection.enventry;
+
+import junit.framework.TestCase;
+
+import javax.ejb.embeddable.EJBContainer;
+import javax.naming.Context;
+import java.util.Date;
+
+public class ConfigurationTest extends TestCase {
+
+
+    public void test() throws Exception {
+        final Context context = EJBContainer.createEJBContainer().getContext();
+
+        final Configuration configuration = (Configuration) context.lookup("java:global/injection-of-env-entry/Configuration");
+
+        assertEquals("orange", configuration.getColor());
+
+        assertEquals(Shape.TRIANGLE, configuration.getShape());
+
+        assertEquals(Widget.class, configuration.getStrategy());
+
+        assertEquals(new Date(123456789), configuration.getDate());
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_executando">Executando</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.injection.enventry.ConfigurationTest
+Apache OpenEJB 4.0.0-beta-1    build: 20111002-04:06
+http://tomee.apache.org/
+INFO - openejb.home = /Users/dblevins/examples/injection-of-env-entry
+INFO - openejb.base = /Users/dblevins/examples/injection-of-env-entry
+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/injection-of-env-entry/target/classes
+INFO - Beginning load: /Users/dblevins/examples/injection-of-env-entry/target/classes
+INFO - Configuring enterprise application: /Users/dblevins/examples/injection-of-env-entry
+WARN - Method 'lookup' is not available for 'javax.annotation.Resource'. Probably using an older Runtime.
+INFO - Configuring Service(id=Default Singleton Container, type=Container, provider-id=Default Singleton Container)
+INFO - Auto-creating a container for bean Configuration: 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.injection.enventry.ConfigurationTest: Container(type=MANAGED, id=Default Managed Container)
+INFO - Enterprise application "/Users/dblevins/examples/injection-of-env-entry" loaded.
+INFO - Assembling app: /Users/dblevins/examples/injection-of-env-entry
+INFO - Jndi(name="java:global/injection-of-env-entry/Configuration!org.superbiz.injection.enventry.Configuration")
+INFO - Jndi(name="java:global/injection-of-env-entry/Configuration")
+INFO - Jndi(name="java:global/EjbModule1355224018/org.superbiz.injection.enventry.ConfigurationTest!org.superbiz.injection.enventry.ConfigurationTest")
+INFO - Jndi(name="java:global/EjbModule1355224018/org.superbiz.injection.enventry.ConfigurationTest")
+INFO - Created Ejb(deployment-id=org.superbiz.injection.enventry.ConfigurationTest, ejb-name=org.superbiz.injection.enventry.ConfigurationTest, container=Default Managed Container)
+INFO - Created Ejb(deployment-id=Configuration, ejb-name=Configuration, container=Default Singleton Container)
+INFO - Started Ejb(deployment-id=org.superbiz.injection.enventry.ConfigurationTest, ejb-name=org.superbiz.injection.enventry.ConfigurationTest, container=Default Managed Container)
+INFO - Started Ejb(deployment-id=Configuration, ejb-name=Configuration, container=Default Singleton Container)
+INFO - Deployed Application(path=/Users/dblevins/examples/injection-of-env-entry)
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.664 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0</pre>
+</div>
+</div>
+</div>
+</div>
+            </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/" 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>
+

Added: tomee/site/trunk/content/tomee-8.0/pt/examples/jaxrs-filter.html
URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/tomee-8.0/pt/examples/jaxrs-filter.html?rev=1879513&view=auto
==============================================================================
--- tomee/site/trunk/content/tomee-8.0/pt/examples/jaxrs-filter.html (added)
+++ tomee/site/trunk/content/tomee-8.0/pt/examples/jaxrs-filter.html Sun Jul  5 01:39:45 2020
@@ -0,0 +1,258 @@
+<!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/security.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>JAX-RS Filter</h1>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+            
+            <div class="col-md-12">
+                <div class="sect1">
+<h2 id="_containerrequestfilter_e_containerresponsefilter">ContainerRequestFilter e ContainerResponseFilter</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Os filtros podem ser utilizados no seu projeto através da implementação das interfaces ContainerRequestFilter ou ContainerResponseFilter. Cada interface lida com um cenário de filtro separado - entrada ou saída - com parâmetros de função exclusivos para o método *filter * substituído. Note: a anotação <strong>@Provider</strong> na classe é necessária para executar o mapeamento do servlet independente do web.xml.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+É possível fazer redirecionamentos usando o argumento ContextRequestFilter fornecido. O método abortWith(Response response) permite que o desenvolvedor altere o destino da solicitação conforme ele é recebido, de acordo com a lógica de filtro fornecida. O código incluído neste exemplo pode ser executado no servidor de aplicação TomEE. As etapas para replicar estão abaixo do snippet de código.
+</td>
+</tr>
+</table>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">@Provider
+public class GenericServletFilter implements ContainerRequestFilter, ContainerResponseFilter {
+
+	/**
+	 * Incoming (request) filter
+	 */
+	@Override
+	public void filter(ContainerRequestContext ctx) {
+	    // your filter logic
+	}
+
+	/**
+	 * Outbound (response) filter
+	 */
+	@Override
+	public void filter(ContainerRequestContext requestCtx,
+		ContainerResponseContext responseCtx) {
+	    // your filter logic
+	}
+
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Etapas para replicar:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Deploy do application e jaxrs-filter.war no diretório webapps.</p>
+</li>
+<li>
+<p>Servidor de inicialização e vá para <a href="http://localhost:8080/jaxrs-filter/test" class="bare">http://localhost:8080/jaxrs-filter/test</a></p>
+<div class="ulist">
+<ul>
+<li>
+<p>Aqui você deve ser redirecionado para uma página dizendo 401 Unauthorized</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>Anexe o parâmetro de consulta app_session_id=foobarbaz à mesma URL(<a href="http://localhost:8080/jaxrs-filter/test?app_session_id=foobarbaz" class="bare">http://localhost:8080/jaxrs-filter/test?app_session_id=foobarbaz</a>)</p>
+<div class="ulist">
+<ul>
+<li>
+<p>Aqui você deve obter acesso. O filtro permite que a solicitação continue e você deve ver algumas informações HTTP básicas sobre a solicitação.</p>
+</li>
+</ul>
+</div>
+</li>
+</ol>
+</div>
+</div>
+</div>
+            </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/" 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>
+

Added: tomee/site/trunk/content/tomee-8.0/pt/examples/jaxrs-json-provider-jettison.html
URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/tomee-8.0/pt/examples/jaxrs-json-provider-jettison.html?rev=1879513&view=auto
==============================================================================
--- tomee/site/trunk/content/tomee-8.0/pt/examples/jaxrs-json-provider-jettison.html (added)
+++ tomee/site/trunk/content/tomee-8.0/pt/examples/jaxrs-json-provider-jettison.html Sun Jul  5 01:39:45 2020
@@ -0,0 +1,358 @@
+<!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/security.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>Provedor JAX-RS JSON com Jettison</h1>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+            
+            <div class="col-md-12">
+                <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Este é um exemplo de como configurar no TomEE 7.x ou posterior o provedor JSON herdado, Jettison, usado pelo TomEE 1.7.x.</p>
+</div>
+<div class="paragraph">
+<p>Este cenário é util quando aplicações REST são migradas de TomEE 1.7.x para TomEE 7.x ou posterior e você quer manter a saída JSON herdada do Jettison 1.3.7.</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_executando_os_testes">Executando os testes</h3>
+<div class="paragraph">
+<p>Este exemplo contém 2 casos de teste, um usando o Jettison e outro sem ele para fins de comparação.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>mvn clean test</pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_habilitando_o_jettison_como_provedor_json">Habilitando o Jettison como provedor Json</h3>
+<div class="paragraph">
+<p>Você precisa fornecer os 2 arquivos a seguir na pasta <code>WEB-INF</code>:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>openejb-jar.xml</p>
+</li>
+</ul>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1"&gt;
+    &lt;pojo-deployment class-name="org.superbiz.JAXRSApplication"&gt;
+        &lt;properties&gt;
+            cxf.jaxrs.providers = json
+        &lt;/properties&gt;
+    &lt;/pojo-deployment&gt;
+&lt;/openejb-jar&gt;</pre>
+</div>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>resources.xml</p>
+</li>
+</ul>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;resources&gt;
+    &lt;Service id="json" class-name="org.apache.cxf.jaxrs.provider.json.JSONProvider"&gt;
+        SkipJaxbChecks = true
+        DropRootElement = false
+        SupportUnwrapped = true
+        SingleJaxbContext = true
+    &lt;/Service&gt;
+&lt;/resources&gt;</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>E, finalmente, verifique se o Jettison JAR 1.3.7 está disponível na pasta TomEE /lib.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_comparando_saídas">Comparando saídas</h3>
+<div class="paragraph">
+<p><code>Item.java</code> é o POJO que vamos processar:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz;
+
+import javax.xml.bind.annotation.*;
+
+@XmlRootElement(name = "book")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class Item {
+
+    @XmlValue
+    private String name;
+
+    @XmlAttribute
+    private int id;
+
+    @XmlAttribute
+    private String availableSince;
+
+    @XmlAttribute
+    private boolean available = false;
+
+    public Item() {
+    }
+
+    public Item(String name, int id, String availableSince, boolean available) {
+        this.name = name;
+        this.id = id;
+        this.availableSince = availableSince;
+        this.available = available;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getAvailableSince() {
+        return availableSince;
+    }
+
+    public void setAvailableSince(String availableSince) {
+        this.availableSince = availableSince;
+    }
+
+    public boolean isAvailable() {
+        return available;
+    }
+
+    public void setAvailable(boolean available) {
+        this.available = available;
+    }
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Saída JSON herdada usando o Jettison 1.3.7:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>{"book":{"@id":"134","@availableSince":"2019-05-27 15:27:16.878","@available":"false","$":"TomEE Tutorial"}}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Saída JSON atual:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>{"available":false,"availableSince":"2019-05-27 15:27:16.878","id":134,"name":"TomEE Tutorial"}</pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_sobre_a_arquitetura_de_teste">Sobre a arquitetura de teste</h3>
+<div class="paragraph">
+<p>Os casos de teste deste projeto são construídos usando Arquillian e TomEE
+Controlo remoto. A configuração arquilliana pode ser encontrada em <code>src/test/resources/arquillian.xml</code></p>
+</div>
+<div class="paragraph">
+<p>Uma parte importante dessa configuração é a inclusão do jar do Jettison durante a execução do teste:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>&lt;property name="additionalLibs"&gt;mvn:org.codehaus.jettison:jettison:1.3.7&lt;/property&gt;</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Se uma versão&gt; 1.3.7 for usada, a saída JSON começará a mudar para um formato padrão moderno: valores booleanos e numéricos não são mais cercados por aspas duplas.</p>
+</div>
+</div>
+            </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/" 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>
+

Added: tomee/site/trunk/content/tomee-8.0/pt/examples/jsonb-configuration.html
URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/tomee-8.0/pt/examples/jsonb-configuration.html?rev=1879513&view=auto
==============================================================================
--- tomee/site/trunk/content/tomee-8.0/pt/examples/jsonb-configuration.html (added)
+++ tomee/site/trunk/content/tomee-8.0/pt/examples/jsonb-configuration.html Sun Jul  5 01:39:45 2020
@@ -0,0 +1,513 @@
+<!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/security.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>Configuração JSON-B</h1>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+            
+            <div class="col-md-12">
+                <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Este exemplo mostra como customizar jsonb para uma aplicaçao JAX-RS.
+JSONB é o novo padrão javaee-api: 8.0 para json serialização/desserialização.
+São necessárias poucas anotações e o JsonbConfig oferece muitas configurações.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_executando_e_testando_o_endpoint">Executando e testando o Endpoint</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>O aplicativo pode ser executado com `mvn clean install tomee:run' se a porta
+8080 está disponível, você pode chamar o seguinte terminal:(GET)
+<a href="http://localhost:8080/jsonb-configuration/api/users" class="bare">http://localhost:8080/jsonb-configuration/api/users</a> que deve responder com o seguinte json:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>[
+   {
+      "Id":1,
+      "Name":"user 1",
+      "Registration":"2018-12-28"
+   },
+   {
+      "Id":2,
+      "Name":"user 2",
+      "Registration":"2018-12-28"
+   }
+]</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="__applicationpath">@ApplicationPath</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Classe de ponto de entrada JAXRS, da seguinte maneira jaxrs carregará todas as classes e métodos @Path anotados sem especificá-los.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.core.Application;
+
+@ApplicationPath("api")
+public class JAXRSApplication extends Application {
+
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_recurso_path_rest">Recurso @Path Rest</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Classe jaxrs simples com um endpoint GET</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>import java.util.ArrayList;
+import java.util.List;
+
+import javax.ejb.Stateless;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.superbiz.model.User;
+
+@Path("users")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@Stateless
+public class UserService {
+
+    @GET
+    public List&lt;User&gt; users() {
+        List&lt;User&gt; users = new ArrayList&lt;&gt;();
+        User user1 = new User(1, "user 1");
+        User user2 = new User(2, "user 2");
+        users.add(user1);
+        users.add(user2);
+
+        return users;
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_configuração_jsonb">Configuração JSONB</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Implementando ContextResolver&lt;&gt;, você pode personalizar os padrões jaxrs; neste exemplo, vamos personalizar a serialização/desserialização JSONB</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>import javax.json.bind.Jsonb;
+import javax.json.bind.JsonbBuilder;
+import javax.json.bind.JsonbConfig;
+import javax.json.bind.config.PropertyNamingStrategy;
+import javax.ws.rs.ext.ContextResolver;
+import javax.ws.rs.ext.Provider;
+
+@Provider
+public class JSONBConfiguration implements ContextResolver&lt;Jsonb&gt; {
+
+    private Jsonb jsonb;
+
+    public JSONBConfiguration() {
+        // jsonbConfig oferece muitas configurações.
+        JsonbConfig config = new JsonbConfig().withFormatting(true)
+                .withPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE)
+                .withDateFormat("yyyy - MM - dd", Locale.ENGLISH);
+
+        jsonb = JsonbBuilder.create(config);
+    }
+
+    @Override
+    public Jsonb getContext(Class&lt;?&gt; type) {
+        return jsonb;
+    }
+
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_acessando_o_endpoint_rest">Acessando o endpoint rest</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>O teste gera uma aplicação web openejb e chama o endpoint do usuário</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.openejb.jee.WebApp;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.EnableServices;
+import org.apache.openejb.testing.Module;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.superbiz.JAXRSApplication;
+import org.superbiz.JSONBConfiguration;
+
+@EnableServices(value = "jaxrs")
+@RunWith(ApplicationComposer.class)
+public class UserServiceTest {
+
+    @Module
+    @Classes({ UserService.class, JAXRSApplication.class, JSONBConfiguration.class })
+    public WebApp app() {
+        return new WebApp().contextRoot("test");
+    }
+
+    @Test
+    public void get() throws IOException {
+        final String message = WebClient.create("http://localhost:4204").path("/test/api/users").get(String.class);
+        System.out.println(message);
+
+        final SimpleDateFormat sdf = new SimpleDateFormat("yyyy - MM - dd");
+
+        // teste withDateFormat("yyyy - MM - dd")
+        Assert.assertTrue(message.contains(sdf.format(new Date())));
+        // teste withFormatting(true)
+        Assert.assertTrue(message.contains(System.getProperty("line.separator")));
+    }
+
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_executando">Executando</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A execução do exemplo pode ser feita no maven com um simples comando `mvn clean install', executado no diretório `jsonb-configuration'.</p>
+</div>
+<div class="paragraph">
+<p>Ao executar, você verá uma saída semelhante à seguinte.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.rest.UserServiceTest
+INFO - Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@7823a2f9
+INFO - Succeeded in installing singleton service
+INFO - Cannot find the configuration file [conf/openejb.xml].  Will attempt to create one for the beans deployed.
+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 - Creating TransactionManager(id=Default Transaction Manager)
+INFO - Creating SecurityService(id=Default Security Service)
+INFO - Initializing network services
+INFO - Creating ServerService(id=cxf-rs)
+INFO - Creating ServerService(id=httpejbd)
+INFO - Created ServicePool 'httpejbd' with (10) core threads, limited to (200) threads with a queue of (9)
+INFO - Initializing network services
+INFO -   ** Bound Services **
+INFO -   NAME                 IP              PORT
+INFO -   httpejbd             127.0.0.1       4204
+INFO - -------
+INFO - Ready!
+INFO - Configuring enterprise application: /home/federico/Documents/PRIVATO/Apache/tomee/examples/jsonb-configuration/UserServiceTest
+INFO - Auto-deploying ejb UserService: EjbDeployment(deployment-id=UserService)
+INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean org.superbiz.rest.UserServiceTest: Container(type=MANAGED, id=Default Managed Container)
+INFO - Creating Container(id=Default Managed Container)
+INFO - Using directory /tmp for stateful session passivation
+INFO - Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container)
+INFO - Auto-creating a container for bean UserService: Container(type=STATELESS, id=Default Stateless Container)
+INFO - Creating Container(id=Default Stateless Container)
+INFO - Enterprise application "/home/federico/Documents/PRIVATO/Apache/tomee/examples/jsonb-configuration/UserServiceTest" loaded.
+INFO - Creating dedicated application classloader for UserServiceTest
+INFO - Assembling app: /home/federico/Documents/PRIVATO/Apache/tomee/examples/jsonb-configuration/UserServiceTest
+INFO - Jndi(name=UserServiceLocalBean) --&gt; Ejb(deployment-id=UserService)
+INFO - Jndi(name=global/test/UserService!org.superbiz.rest.UserService) --&gt; Ejb(deployment-id=UserService)
+INFO - Jndi(name=global/test/UserService) --&gt; Ejb(deployment-id=UserService)
+INFO - Created Ejb(deployment-id=UserService, ejb-name=UserService, container=Default Stateless Container)
+INFO - Started Ejb(deployment-id=UserService, ejb-name=UserService, container=Default Stateless Container)
+INFO - Using readers:
+INFO -      org.apache.cxf.jaxrs.provider.PrimitiveTextProvider@2f94c4db
+INFO -      org.apache.cxf.jaxrs.provider.FormEncodingProvider@6b5966e1
+INFO -      org.apache.cxf.jaxrs.provider.MultipartProvider@65e61854
+INFO -      org.apache.cxf.jaxrs.provider.SourceProvider@1568159
+INFO -      org.apache.cxf.jaxrs.provider.JAXBElementTypedProvider@4fcee388
+INFO -      org.apache.cxf.jaxrs.provider.JAXBElementProvider@6f80fafe
+INFO -      org.apache.openejb.server.cxf.rs.johnzon.TomEEJsonbProvider@63cd604c
+INFO -      org.apache.openejb.server.cxf.rs.johnzon.TomEEJsonpProvider@593e824f
+INFO -      org.apache.cxf.jaxrs.provider.StringTextProvider@72ccd81a
+INFO -      org.apache.cxf.jaxrs.provider.BinaryDataProvider@6d8792db
+INFO -      org.apache.cxf.jaxrs.provider.DataSourceProvider@64bc21ac
+INFO - Using writers:
+INFO -      org.apache.johnzon.jaxrs.WadlDocumentMessageBodyWriter@493dfb8e
+INFO -      org.apache.cxf.jaxrs.nio.NioMessageBodyWriter@5d25e6bb
+INFO -      org.apache.cxf.jaxrs.provider.StringTextProvider@72ccd81a
+INFO -      org.apache.cxf.jaxrs.provider.JAXBElementTypedProvider@4fcee388
+INFO -      org.apache.cxf.jaxrs.provider.PrimitiveTextProvider@2f94c4db
+INFO -      org.apache.cxf.jaxrs.provider.FormEncodingProvider@6b5966e1
+INFO -      org.apache.cxf.jaxrs.provider.MultipartProvider@65e61854
+INFO -      org.apache.cxf.jaxrs.provider.SourceProvider@1568159
+INFO -      org.apache.cxf.jaxrs.provider.JAXBElementProvider@6f80fafe
+INFO -      org.apache.openejb.server.cxf.rs.johnzon.TomEEJsonbProvider@63cd604c
+INFO -      org.apache.openejb.server.cxf.rs.johnzon.TomEEJsonpProvider@593e824f
+INFO -      org.apache.cxf.jaxrs.provider.BinaryDataProvider@6d8792db
+INFO -      org.apache.cxf.jaxrs.provider.DataSourceProvider@64bc21ac
+INFO - Using exception mappers:
+INFO -      org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper@361c294e
+INFO -      org.apache.openejb.server.cxf.rs.EJBExceptionMapper@6fff253c
+INFO -      org.apache.cxf.jaxrs.validation.ValidationExceptionMapper@7859e786
+INFO -      org.apache.openejb.server.cxf.rs.CxfRsHttpListener$CxfResponseValidationExceptionMapper@285d851a
+INFO - REST Application: http://127.0.0.1:4204/test/api       -&gt; org.superbiz.JAXRSApplication@5af28b27
+INFO -      Service URI: http://127.0.0.1:4204/test/api/users -&gt;  EJB org.superbiz.rest.UserService
+INFO -               GET http://127.0.0.1:4204/test/api/users -&gt;      List&lt;User&gt; users()
+INFO - Deployed Application(path=/home/federico/Documents/PRIVATO/Apache/tomee/examples/jsonb-configuration/UserServiceTest)
+[
+  {
+    "Id":1,
+    "Name":"user 1",
+    "Registration":"2018 - 12 - 28"
+  },
+  {
+    "Id":2,
+    "Name":"user 2",
+    "Registration":"2018 - 12 - 28"
+  }
+]
+INFO - Undeploying app: /home/federico/Documents/PRIVATO/Apache/tomee/examples/jsonb-configuration/UserServiceTest
+INFO - Stopping network services
+INFO - Stopping server services
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.203 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0</pre>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_dentro_do_jar">Dentro do jar</h3>
+<div class="paragraph">
+<p>javaee-api:8.0 traz todas as dependências necessárias para iniciar
+um aplicativo REST que esteja funcionando.</p>
+</div>
+<div class="paragraph">
+<p>Se olharmos para o jar construído por maven, veremos que o aplicativo em si é bem pequeno:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>$ jar tvf target/jsonb-configuration-8.0.0-SNAPSHOT.war
+     0 Fri Dec 28 19:36:10 CET 2018 META-INF/
+   134 Fri Dec 28 19:36:08 CET 2018 META-INF/MANIFEST.MF
+     0 Fri Dec 28 19:36:08 CET 2018 WEB-INF/
+     0 Fri Dec 28 19:36:08 CET 2018 WEB-INF/classes/
+     0 Fri Dec 28 19:36:08 CET 2018 WEB-INF/classes/org/
+     0 Fri Dec 28 19:36:08 CET 2018 WEB-INF/classes/org/superbiz/
+     0 Fri Dec 28 19:36:08 CET 2018 WEB-INF/classes/org/superbiz/model/
+     0 Fri Dec 28 19:36:08 CET 2018 WEB-INF/classes/org/superbiz/rest/
+  1165 Fri Dec 28 19:36:06 CET 2018 WEB-INF/classes/org/superbiz/model/User.class
+   402 Fri Dec 28 19:36:06 CET 2018 WEB-INF/classes/org/superbiz/JAXRSApplication.class
+  1194 Fri Dec 28 19:36:06 CET 2018 WEB-INF/classes/org/superbiz/rest/UserService.class
+  1701 Fri Dec 28 19:36:06 CET 2018 WEB-INF/classes/org/superbiz/JSONBConfiguration.class
+  1224 Fri Dec 28 18:28:32 CET 2018 WEB-INF/web.xml
+     0 Fri Dec 28 19:36:10 CET 2018 META-INF/maven/
+     0 Fri Dec 28 19:36:10 CET 2018 META-INF/maven/org.superbiz/
+     0 Fri Dec 28 19:36:10 CET 2018 META-INF/maven/org.superbiz/jsonb-configuration/
+  1791 Fri Dec 28 19:10:44 CET 2018 META-INF/maven/org.superbiz/jsonb-configuration/pom.xml
+   128 Fri Dec 28 19:36:08 CET 2018 META-INF/maven/org.superbiz/jsonb-configuration/pom.properties</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Esse jar único pode ser implantado em qualquer Java EE compatível implementação. No TomEE, basta colocá-lo no diretório <code>tomee.home/webapps/</code>.</p>
+</div>
+</div>
+</div>
+</div>
+            </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/" 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>
+