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 [13/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/master/pt/examples/mp-config-source-database.html
URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/master/pt/examples/mp-config-source-database.html?rev=1879513&view=auto
==============================================================================
--- tomee/site/trunk/content/master/pt/examples/mp-config-source-database.html (added)
+++ tomee/site/trunk/content/master/pt/examples/mp-config-source-database.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>Banco de dados ConfigSource da configuração do MicroProfile</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 sobre como implementar um <code>ConfigSource</code> para a configuração personalizada de MicroProfile.
+O ConfigSource personalizado lê os valores de configuração de uma base de dados.</p>
+</div>
+<h4 id="_configsource_feature" class="discrete">ConfigSource Feature</h4>
+<div class="paragraph">
+<p>Para proporcionar um ConfigSource personalizado de uma base de dados, devemos começar com uma classe que implemente a interface <code>ConfigSource</code>, sobrescrevendo 3 métodos: <code>getProperties</code>, <code>getValue</code>, e <code>getName</code>.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">public class DatabaseConfigSource implements ConfigSource {
+    private DataSource dataSource;
+
+    public DatabaseConfigSource() {
+        try {
+            dataSource = (DataSource) new InitialContext().lookup("openejb:Resource/config-source-database");
+        } catch (final NamingException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    @Override
+    public Map&lt;String, String&gt; getProperties() {
+        final Map&lt;String, String&gt; properties = new HashMap&lt;&gt;();
+
+        try {
+            final Connection connection = dataSource.getConnection();
+            final PreparedStatement query = connection.prepareStatement("SELECT NAME, VALUE FROM CONFIGURATIONS");
+            final ResultSet names = query.executeQuery();
+
+            while (names.next()) {
+                properties.put(names.getString(0), names.getString(1));
+            }
+
+            DbUtils.closeQuietly(names);
+            DbUtils.closeQuietly(query);
+            DbUtils.closeQuietly(connection);
+        } catch (final SQLException e) {
+            e.printStackTrace();
+        }
+
+        return properties;
+    }
+
+    @Override
+    public String getValue(final String propertyName) {
+        try {
+            final Connection connection = dataSource.getConnection();
+            final PreparedStatement query =
+                    connection.prepareStatement("SELECT VALUE FROM CONFIGURATIONS WHERE NAME = ?");
+            query.setString(1, propertyName);
+            final ResultSet value = query.executeQuery();
+
+            if (value.next()) {
+                return value.getString(1);
+            }
+
+            DbUtils.closeQuietly(value);
+            DbUtils.closeQuietly(query);
+            DbUtils.closeQuietly(connection);
+        } catch (final SQLException e) {
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+
+    @Override
+    public String getName() {
+        return DatabaseConfigSource.class.getSimpleName();
+    }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Para simplificar, no exemplo anterior, a definição da base de dados e os dados utilizados para a configuração correspondem a um <code>Resource</code>, declarado em um arquivo de configuração <code>tomee.xml</code> como <code>Resource</code> do tipo: <code>DataSource</code> da seguinte maneira:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;tomee&gt;
+  &lt;Resource id="config-source-database" type="DataSource"&gt;
+
+  &lt;/Resource&gt;
+&lt;/tomee&gt;</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>e está vinculado a um conjunto de instruções SQL, definidas no script <code>import-config-source-database.sql</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-sql" data-lang="sql">CREATE TABLE CONFIGURATIONS (NAME VARCHAR (255) NOT NULL PRIMARY KEY, VALUE VARCHAR(255) NOT NULL);
+INSERT INTO CONFIGURATIONS(NAME, VALUE) VALUES('application.currency', 'Euro');
+INSERT INTO CONFIGURATIONS(NAME, VALUE) VALUES('application.country', 'PT');</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_executando_a_aplicação">Executando a aplicação:</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">mvn clean install tomee:run</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.microprofile.config.source.database.DatabaseConfigSourceTest
+23-May-2020 00:34:50.330 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke Server version name:   Apache Tomcat (TomEE)/9.0.35 (8.0.2-SNAPSHOT)
+23-May-2020 00:34:50.331 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke Server built:          May 5 2020 20:36:20 UTC
+23-May-2020 00:34:50.331 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke Server version number: 9.0.35.0
+23-May-2020 00:34:50.332 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke OS Name:               Linux
+23-May-2020 00:34:50.332 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke OS Version:            5.0.0-23-generic
+23-May-2020 00:34:50.332 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke Architecture:          amd64
+23-May-2020 00:34:50.333 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke Java Home:             /home/daniel/desenvolvimento/jdk8u162-b12_openj9-0.8.0/jre
+23-May-2020 00:34:50.333 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke JVM Version:           1.8.0_162-b12
+23-May-2020 00:34:50.334 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke JVM Vendor:            Eclipse OpenJ9
+23-May-2020 00:34:50.334 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke CATALINA_BASE:         /home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT
+23-May-2020 00:34:50.335 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke CATALINA_HOME:         /home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT
+23-May-2020 00:34:50.346 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke Command line argument: -Xoptionsfile=/home/daniel/desenvolvimento/jdk8u162-b12_openj9-0.8.0/jre/lib/amd64/compressedrefs/options.default
+23-May-2020 00:34:50.346 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke Command line argument: -Xlockword:mode=default,noLockword=java/lang/String,noLockword=java/util/MapEntry,noLockword=java/util/HashMap$Entry,noLockword=org/apache/harmony/luni/util/ModifiedMap$Entry,noLockword=java/util/Hashtable$Entry,noLockword=java/lang/invoke/MethodType,noLockword=java/lang/invoke/MethodHandle,noLockword=java/lang/invoke/CollectHandle,noLockword=java/lang/invoke/ConstructorHandle,noLockword=java/lang/invoke/ConvertHandle,noLockword=java/lang/invoke/ArgumentConversionHandle,noLockword=java/lang/invoke/AsTypeHandle,noLockword=java/lang/invoke/ExplicitCastHandle,noLockword=java/lang/invoke/FilterReturnHandle,noLockword=java/lang/invoke/DirectHandle,noLockword=java/lang/invoke/ReceiverBoundHandle,noLockword=java/lang/invoke/DynamicInvokerHandle,noLockword=java/lang/invoke/FieldHandle,noLockword=java/lang/invoke/FieldGetterHandle,noLockword=java/lang/invoke/FieldSetterHandle,
 noLockword=java/lang/invoke/StaticFieldGetterHandle,noLockword=java/lang/invoke/StaticFieldSetterHandle,noLockword=java/lang/invoke/IndirectHandle,noLockword=java/lang/invoke/InterfaceHandle,noLockword=java/lang/invoke/VirtualHandle,noLockword=java/lang/invoke/PrimitiveHandle,noLockword=java/lang/invoke/InvokeExactHandle,noLockword=java/lang/invoke/InvokeGenericHandle,noLockword=java/lang/invoke/VarargsCollectorHandle,noLockword=java/lang/invoke/ThunkTuple
+23-May-2020 00:34:50.346 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke Command line argument: -Xjcl:jclse7b_29
+23-May-2020 00:34:50.347 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke Command line argument: -Dcom.ibm.oti.vm.bootstrap.library.path=/home/daniel/desenvolvimento/jdk8u162-b12_openj9-0.8.0/jre/lib/amd64/compressedrefs:/home/daniel/desenvolvimento/jdk8u162-b12_openj9-0.8.0/jre/lib/amd64
+23-May-2020 00:34:50.348 INFORMAÇÕES [main] sun.reflect.NativeMethodAccessorImpl.invoke Command line argument: -Dsun.boot.library.path=/home/daniel/desenvolvimento/jdk8u162-b12_openj9-0.8.0/jre/lib/amd64/compressedrefs:/home/daniel/desenvolvimento/jdk8u162-b12_openj9-0.8.0/jre/lib/amd64
+23-May-2020 00:34:50.348 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Djava.library.path=/home/daniel/desenvolvimento/jdk8u162-b12_openj9-0.8.0/jre/lib/amd64/compressedrefs:/home/daniel/desenvolvimento/jdk8u162-b12_openj9-0.8.0/jre/lib/amd64:/usr/lib64:/usr/lib
+23-May-2020 00:34:50.348 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Djava.home=/home/daniel/desenvolvimento/jdk8u162-b12_openj9-0.8.0/jre
+23-May-2020 00:34:50.348 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Djava.ext.dirs=/home/daniel/desenvolvimento/jdk8u162-b12_openj9-0.8.0/jre/lib/ext
+23-May-2020 00:34:50.349 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Duser.dir=/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT
+23-May-2020 00:34:50.349 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Djava.class.path=.
+23-May-2020 00:34:50.349 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -XX:+HeapDumpOnOutOfMemoryError
+23-May-2020 00:34:50.349 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Xmx512m
+23-May-2020 00:34:50.349 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Xms256m
+23-May-2020 00:34:50.350 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -XX:ReservedCodeCacheSize=64m
+23-May-2020 00:34:50.350 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dtomee.httpPort=40273
+23-May-2020 00:34:50.350 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false
+23-May-2020 00:34:50.350 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dorg.apache.openejb.servlet.filters=org.apache.openejb.arquillian.common.ArquillianFilterRunner=/ArquillianServletRunner
+23-May-2020 00:34:50.350 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dopenejb.system.apps=true
+23-May-2020 00:34:50.351 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dtomee.remote.support=true
+23-May-2020 00:34:50.351 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Djava.util.logging.config.file=/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/conf/logging.properties
+23-May-2020 00:34:50.351 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -javaagent:/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/lib/openejb-javaagent.jar
+23-May-2020 00:34:50.351 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
+23-May-2020 00:34:50.351 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Djava.io.tmpdir=/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/temp
+23-May-2020 00:34:50.352 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dcatalina.base=/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT
+23-May-2020 00:34:50.352 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dcatalina.home=/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT
+23-May-2020 00:34:50.352 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dcatalina.ext.dirs=/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/lib
+23-May-2020 00:34:50.352 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dorg.apache.tomcat.util.http.ServerCookie.ALLOW_HTTP_SEPARATORS_IN_V0=true
+23-May-2020 00:34:50.353 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -ea
+23-May-2020 00:34:50.353 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Djava.class.path=/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/bin/bootstrap.jar:/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/bin/tomcat-juli.jar
+23-May-2020 00:34:50.353 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dsun.java.command=org.apache.catalina.startup.Bootstrap start
+23-May-2020 00:34:50.353 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dsun.java.launcher=SUN_STANDARD
+23-May-2020 00:34:50.353 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dsun.java.launcher.pid=21434
+23-May-2020 00:34:50.354 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/home/daniel/desenvolvimento/jdk8u162-b12_openj9-0.8.0/jre/lib/amd64/compressedrefs:/home/daniel/desenvolvimento/jdk8u162-b12_openj9-0.8.0/jre/lib/amd64:/usr/lib64:/usr/lib]
+23-May-2020 00:34:51.272 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Initializing ProtocolHandler ["http-nio-40273"]
+23-May-2020 00:34:52.125 INFORMAÇÕES [main] org.apache.openejb.util.OptionsLog.info Using 'tomee.remote.support=true'
+23-May-2020 00:34:52.189 INFORMAÇÕES [main] org.apache.openejb.util.OptionsLog.info Using 'openejb.jdbc.datasource-creator=org.apache.tomee.jdbc.TomEEDataSourceCreator'
+23-May-2020 00:34:52.556 INFORMAÇÕES [main] org.apache.openejb.OpenEJB$Instance.&lt;init&gt; ********************************************************************************
+23-May-2020 00:34:52.558 INFORMAÇÕES [main] org.apache.openejb.OpenEJB$Instance.&lt;init&gt; OpenEJB http://tomee.apache.org/
+23-May-2020 00:34:52.561 INFORMAÇÕES [main] org.apache.openejb.OpenEJB$Instance.&lt;init&gt; Startup: Sat May 23 00:34:52 BRT 2020
+23-May-2020 00:34:52.561 INFORMAÇÕES [main] org.apache.openejb.OpenEJB$Instance.&lt;init&gt; Copyright 1999-2018 (C) Apache OpenEJB Project, All Rights Reserved.
+23-May-2020 00:34:52.563 INFORMAÇÕES [main] org.apache.openejb.OpenEJB$Instance.&lt;init&gt; Version: 8.0.2-SNAPSHOT
+23-May-2020 00:34:52.564 INFORMAÇÕES [main] org.apache.openejb.OpenEJB$Instance.&lt;init&gt; Build date: 20200513
+23-May-2020 00:34:52.567 INFORMAÇÕES [main] org.apache.openejb.OpenEJB$Instance.&lt;init&gt; Build time: 04:10
+23-May-2020 00:34:52.567 INFORMAÇÕES [main] org.apache.openejb.OpenEJB$Instance.&lt;init&gt; ********************************************************************************
+23-May-2020 00:34:52.567 INFORMAÇÕES [main] org.apache.openejb.OpenEJB$Instance.&lt;init&gt; openejb.home = /home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT
+23-May-2020 00:34:52.568 INFORMAÇÕES [main] org.apache.openejb.OpenEJB$Instance.&lt;init&gt; openejb.base = /home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT
+23-May-2020 00:34:52.578 INFORMAÇÕES [main] org.apache.openejb.cdi.CdiBuilder.initializeOWB Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@e293a2b2
+23-May-2020 00:34:52.584 INFORMAÇÕES [main] org.apache.openejb.cdi.CdiBuilder.initializeOWB Succeeded in installing singleton service
+23-May-2020 00:34:52.665 INFORMAÇÕES [main] org.apache.openejb.config.ConfigurationFactory.init TomEE configuration file is '/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/conf/tomee.xml'
+23-May-2020 00:34:52.831 INFORMAÇÕES [main] org.apache.openejb.config.ConfigurationFactory.configureService Configuring Service(id=Tomcat Security Service, type=SecurityService, provider-id=Tomcat Security Service)
+23-May-2020 00:34:52.839 INFORMAÇÕES [main] org.apache.openejb.config.ConfigurationFactory.configureService Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
+23-May-2020 00:34:52.848 INFORMAÇÕES [main] org.apache.openejb.config.ConfigurationFactory.configureService Configuring Service(id=config-source-database, type=Resource, provider-id=Default JDBC Database)
+23-May-2020 00:34:52.855 INFORMAÇÕES [main] org.apache.openejb.util.OptionsLog.info Using 'openejb.system.apps=true'
+23-May-2020 00:34:52.861 INFORMAÇÕES [main] org.apache.openejb.config.ConfigurationFactory.configureService Configuring Service(id=Default Singleton Container, type=Container, provider-id=Default Singleton Container)
+23-May-2020 00:34:52.872 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.createRecipe Creating TransactionManager(id=Default Transaction Manager)
+23-May-2020 00:34:52.990 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.createRecipe Creating SecurityService(id=Tomcat Security Service)
+23-May-2020 00:34:53.025 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.createRecipe Creating Resource(id=config-source-database)
+23-May-2020 00:34:53.742 INFORMAÇÕES [main] org.hsqldb.persist.Logger.logInfoEvent Checkpoint start
+23-May-2020 00:34:53.754 INFORMAÇÕES [main] org.hsqldb.persist.Logger.logInfoEvent checkpointClose start
+23-May-2020 00:34:53.782 INFORMAÇÕES [main] org.hsqldb.persist.Logger.logInfoEvent checkpointClose end
+23-May-2020 00:34:53.784 INFORMAÇÕES [main] org.hsqldb.persist.Logger.logInfoEvent Checkpoint end - txts: 1
+23-May-2020 00:34:53.944 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.ImportSql.doImport importing file:/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/lib/import-config-source-database.sql
+23-May-2020 00:34:54.047 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.createRecipe Creating Container(id=Default Singleton Container)
+23-May-2020 00:34:54.124 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.createApplication Assembling app: openejb
+23-May-2020 00:34:54.354 INFORMAÇÕES [main] org.apache.openejb.util.OptionsLog.info Using 'openejb.jndiname.format={deploymentId}{interfaceType.openejbLegacyName}'
+23-May-2020 00:34:54.388 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.JndiBuilder.bind Jndi(name=openejb/DeployerBusinessRemote) --&gt; Ejb(deployment-id=openejb/Deployer)
+23-May-2020 00:34:54.394 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.JndiBuilder.bind Jndi(name=global/openejb/openejb/openejb/Deployer!org.apache.openejb.assembler.Deployer) --&gt; Ejb(deployment-id=openejb/Deployer)
+23-May-2020 00:34:54.401 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.JndiBuilder.bind Jndi(name=global/openejb/openejb/openejb/Deployer) --&gt; Ejb(deployment-id=openejb/Deployer)
+23-May-2020 00:34:54.410 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.JndiBuilder.bind Jndi(name=openejb/ConfigurationInfoBusinessRemote) --&gt; Ejb(deployment-id=openejb/ConfigurationInfo)
+23-May-2020 00:34:54.415 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.JndiBuilder.bind Jndi(name=global/openejb/openejb/openejb/Deployer!org.apache.openejb.assembler.classic.cmd.ConfigurationInfo) --&gt; Ejb(deployment-id=openejb/ConfigurationInfo)
+23-May-2020 00:34:54.427 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.JndiBuilder.bind Jndi(name=MEJB) --&gt; Ejb(deployment-id=MEJB)
+23-May-2020 00:34:54.433 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.JndiBuilder.bind Jndi(name=global/openejb/openejb/openejb/Deployer!javax.management.j2ee.ManagementHome) --&gt; Ejb(deployment-id=MEJB)
+23-May-2020 00:34:54.467 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.startEjbs Created Ejb(deployment-id=MEJB, ejb-name=openejb/Deployer, container=Default Singleton Container)
+23-May-2020 00:34:54.481 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.startEjbs Created Ejb(deployment-id=openejb/ConfigurationInfo, ejb-name=openejb/Deployer, container=Default Singleton Container)
+23-May-2020 00:34:54.499 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.startEjbs Created Ejb(deployment-id=openejb/Deployer, ejb-name=openejb/Deployer, container=Default Singleton Container)
+23-May-2020 00:34:54.504 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.startEjbs Started Ejb(deployment-id=MEJB, ejb-name=openejb/Deployer, container=Default Singleton Container)
+23-May-2020 00:34:54.509 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.startEjbs Started Ejb(deployment-id=openejb/ConfigurationInfo, ejb-name=openejb/Deployer, container=Default Singleton Container)
+23-May-2020 00:34:54.514 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.startEjbs Started Ejb(deployment-id=openejb/Deployer, ejb-name=openejb/Deployer, container=Default Singleton Container)
+23-May-2020 00:34:54.529 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.deployMBean Deployed MBean(openejb.user.mbeans:application=openejb,group=org.apache.openejb.assembler.monitoring,name=JMXDeployer)
+23-May-2020 00:34:54.535 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.createApplication Deployed Application(path=openejb)
+23-May-2020 00:34:54.630 INFORMAÇÕES [main] org.apache.openejb.server.ServiceManager.initServer Creating ServerService(id=cxf)
+23-May-2020 00:34:55.024 INFORMAÇÕES [main] org.apache.openejb.server.ServiceManager.initServer Creating ServerService(id=cxf-rs)
+23-May-2020 00:34:55.133 INFORMAÇÕES [main] org.apache.openejb.server.SimpleServiceManager.start   ** Bound Services **
+23-May-2020 00:34:55.133 INFORMAÇÕES [main] org.apache.openejb.server.SimpleServiceManager.printRow   NAME                 IP              PORT
+23-May-2020 00:34:55.134 INFORMAÇÕES [main] org.apache.openejb.server.SimpleServiceManager.start -------
+23-May-2020 00:34:55.134 INFORMAÇÕES [main] org.apache.openejb.server.SimpleServiceManager.start Ready!
+23-May-2020 00:34:55.137 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Server initialization in [5.233] milliseconds
+23-May-2020 00:34:55.176 INFORMAÇÕES [main] org.apache.tomee.catalina.OpenEJBNamingContextListener.bindResource Importing a Tomcat Resource with id 'UserDatabase' of type 'org.apache.catalina.UserDatabase'.
+23-May-2020 00:34:55.179 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.createRecipe Creating Resource(id=UserDatabase)
+23-May-2020 00:34:55.199 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Starting service [Catalina]
+23-May-2020 00:34:55.201 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Starting Servlet engine: [Apache Tomcat (TomEE)/9.0.35 (8.0.2-SNAPSHOT)]
+23-May-2020 00:34:55.284 INFORMAÇÕES [main] org.apache.catalina.core.StandardContext.setClassLoaderProperty Unable to set the web application class loader property [clearReferencesRmiTargets] to [true] as the property does not exist.
+23-May-2020 00:34:55.285 INFORMAÇÕES [main] org.apache.catalina.core.StandardContext.setClassLoaderProperty Unable to set the web application class loader property [clearReferencesObjectStreamClassCaches] to [true] as the property does not exist.
+23-May-2020 00:34:55.286 INFORMAÇÕES [main] org.apache.catalina.core.StandardContext.setClassLoaderProperty Unable to set the web application class loader property [clearReferencesObjectStreamClassCaches] to [true] as the property does not exist.
+23-May-2020 00:34:55.289 INFORMAÇÕES [main] org.apache.catalina.core.StandardContext.setClassLoaderProperty Unable to set the web application class loader property [clearReferencesThreadLocals] to [true] as the property does not exist.
+23-May-2020 00:34:55.330 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Starting ProtocolHandler ["http-nio-40273"]
+23-May-2020 00:34:55.347 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Server startup in [208] milliseconds
+23-May-2020 00:34:56.103 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.util.JarExtractor.extract Extracting jar: /home/daniel/git/apache/tomee/examples/mp-config-source-database/target/workdir/0/test.war
+23-May-2020 00:34:56.144 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.util.JarExtractor.extract Extracted path: /home/daniel/git/apache/tomee/examples/mp-config-source-database/target/workdir/0/test
+23-May-2020 00:34:56.145 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.tomee.catalina.TomcatWebAppBuilder.deployWebApps using default host: localhost
+23-May-2020 00:34:56.146 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.tomee.catalina.TomcatWebAppBuilder.init ------------------------- localhost -&gt; /test
+23-May-2020 00:34:56.149 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.util.OptionsLog.info Using 'openejb.session.manager=org.apache.tomee.catalina.session.QuickSessionManager'
+23-May-2020 00:34:56.283 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.util.OptionsLog.info Using 'tomee.mp.scan=all'
+23-May-2020 00:34:57.009 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.config.ConfigurationFactory.configureApplication Configuring enterprise application: /home/daniel/git/apache/tomee/examples/mp-config-source-database/target/workdir/0/test
+23-May-2020 00:34:57.384 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.config.ConfigurationFactory.configureService Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
+23-May-2020 00:34:57.385 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.config.AutoConfig.createContainer Auto-creating a container for bean test.Comp-1457185299: Container(type=MANAGED, id=Default Managed Container)
+23-May-2020 00:34:57.385 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.assembler.classic.Assembler.createRecipe Creating Container(id=Default Managed Container)
+23-May-2020 00:34:57.394 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.core.managed.SimplePassivater.init Using directory /home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/temp for stateful session passivation
+23-May-2020 00:34:57.413 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.config.AppInfoBuilder.build Enterprise application "/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/workdir/0/test" loaded.
+23-May-2020 00:34:57.413 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.assembler.classic.Assembler.createApplication Assembling app: /home/daniel/git/apache/tomee/examples/mp-config-source-database/target/workdir/0/test
+23-May-2020 00:34:57.455 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.cdi.CdiBuilder.initSingleton Existing thread singleton service in SystemInstance(): org.apache.openejb.cdi.ThreadSingletonServiceImpl@e293a2b2
+23-May-2020 00:34:57.558 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.cdi.OpenEJBLifecycle.startApplication OpenWebBeans Container is starting...
+23-May-2020 00:34:57.564 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.webbeans.plugins.PluginLoader.startUp Adding OpenWebBeansPlugin : [CdiPlugin]
+23-May-2020 00:34:57.741 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.cdi.CdiScanner.handleBda Using annotated mode for jar:file:/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/lib/geronimo-config-impl-1.2.1.jar!/META-INF/beans.xml looking all classes to find CDI beans, maybe think to add a beans.xml if not there or add the jar to exclusions.list
+23-May-2020 00:34:57.860 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.cdi.CdiScanner.handleBda Using annotated mode for file:/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/workdir/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
+23-May-2020 00:34:58.103 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.util.OptionsLog.info Using 'tomee.mp.scan=all'
+23-May-2020 00:34:59.104 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.webbeans.config.BeansDeployer.validateInjectionPoints All injection points were validated successfully.
+23-May-2020 00:34:59.137 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.cdi.OpenEJBLifecycle.startApplication OpenWebBeans Container has started, it took 1579 ms.
+23-May-2020 00:34:59.188 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.assembler.classic.Assembler.createApplication Deployed Application(path=/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/workdir/0/test)
+23-May-2020 00:34:59.300 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.ee.MyFacesContainerInitializer.onStartup Using org.apache.myfaces.ee.MyFacesContainerInitializer
+23-May-2020 00:34:59.325 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.ee.MyFacesContainerInitializer.onStartup Added FacesServlet with mappings=[/faces/*, *.jsf, *.faces, *.xhtml]
+23-May-2020 00:34:59.363 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.jasper.servlet.TldScanner.scanJars 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.
+23-May-2020 00:34:59.375 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.tomee.myfaces.TomEEMyFacesContainerInitializer.addListener Installing &lt;listener&gt;org.apache.myfaces.webapp.StartupServletContextListener&lt;/listener&gt;
+23-May-2020 00:34:59.452 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.config.DefaultFacesConfigurationProvider.getStandardFacesConfig Reading standard config META-INF/standard-faces-config.xml
+23-May-2020 00:34:59.758 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.config.DefaultFacesConfigurationProvider.getClassloaderFacesConfig Reading config : jar:file:/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/lib/openwebbeans-jsf-2.0.12.jar!/META-INF/faces-config.xml
+23-May-2020 00:34:59.762 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.config.DefaultFacesConfigurationProvider.getClassloaderFacesConfig Reading config : jar:file:/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/lib/openwebbeans-el22-2.0.12.jar!/META-INF/faces-config.xml
+23-May-2020 00:35:00.022 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.config.LogMetaInfUtils.logArtifact Artifact 'myfaces-api' was found in version '2.3.6' from path 'file:/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/lib/myfaces-api-2.3.6.jar'
+23-May-2020 00:35:00.022 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.config.LogMetaInfUtils.logArtifact Artifact 'myfaces-impl' was found in version '2.3.6' from path 'file:/home/daniel/git/apache/tomee/examples/mp-config-source-database/target/tomee/apache-tomee-microprofile-8.0.2-SNAPSHOT/lib/myfaces-impl-2.3.6.jar'
+23-May-2020 00:35:00.035 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.util.ExternalSpecifications.isCDIAvailable MyFaces CDI support enabled
+23-May-2020 00:35:00.037 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.spi.impl.DefaultInjectionProviderFactory.getInjectionProvider Using InjectionProvider org.apache.myfaces.spi.impl.CDIAnnotationDelegateInjectionProvider
+23-May-2020 00:35:00.096 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.util.ExternalSpecifications.isBeanValidationAvailable MyFaces Bean Validation support enabled
+23-May-2020 00:35:00.134 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.application.ApplicationImpl.getProjectStage Couldn't discover the current project stage, using Production
+23-May-2020 00:35:00.135 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.config.FacesConfigurator.handleSerialFactory Serialization provider : class org.apache.myfaces.shared_impl.util.serial.DefaultSerialFactory
+23-May-2020 00:35:00.141 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.config.annotation.DefaultLifecycleProviderFactory.getLifecycleProvider Using LifecycleProvider org.apache.myfaces.config.annotation.Tomcat7AnnotationLifecycleProvider
+23-May-2020 00:35:00.179 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.webapp.AbstractFacesInitializer.initFaces ServletContext initialized.
+23-May-2020 00:35:00.185 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.view.facelets.ViewPoolProcessor.initialize org.apache.myfaces.CACHE_EL_EXPRESSIONS web config parameter is set to "noCache". To enable view pooling this param must be set to "alwaysRecompile". View Pooling disabled.
+23-May-2020 00:35:00.206 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.myfaces.webapp.StartupServletContextListener.contextInitialized MyFaces Core has started, it took [818] ms.
+23-May-2020 00:35:00.921 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication Using readers:
+23-May-2020 00:35:00.922 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.PrimitiveTextProvider@e4a5eaa7
+23-May-2020 00:35:00.923 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.FormEncodingProvider@5e634b27
+23-May-2020 00:35:00.924 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.MultipartProvider@22f2dce9
+23-May-2020 00:35:00.924 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.SourceProvider@837a58b0
+23-May-2020 00:35:00.926 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.JAXBElementTypedProvider@53d93293
+23-May-2020 00:35:00.926 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.JAXBElementProvider@6df684b0
+23-May-2020 00:35:00.927 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.openejb.server.cxf.rs.johnzon.TomEEJsonbProvider@170bdab4
+23-May-2020 00:35:00.928 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.openejb.server.cxf.rs.johnzon.TomEEJsonpProvider@25e7bfe7
+23-May-2020 00:35:00.928 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.StringTextProvider@163ac130
+23-May-2020 00:35:00.929 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.BinaryDataProvider@cbe54303
+23-May-2020 00:35:00.930 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.DataSourceProvider@426e0f35
+23-May-2020 00:35:00.931 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication Using writers:
+23-May-2020 00:35:00.931 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.johnzon.jaxrs.WadlDocumentMessageBodyWriter@34d8d554
+23-May-2020 00:35:00.932 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.nio.NioMessageBodyWriter@7af29c85
+23-May-2020 00:35:00.933 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.StringTextProvider@163ac130
+23-May-2020 00:35:00.933 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.JAXBElementTypedProvider@53d93293
+23-May-2020 00:35:00.934 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.PrimitiveTextProvider@e4a5eaa7
+23-May-2020 00:35:00.935 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.FormEncodingProvider@5e634b27
+23-May-2020 00:35:00.935 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.MultipartProvider@22f2dce9
+23-May-2020 00:35:00.936 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.geronimo.microprofile.openapi.jaxrs.JacksonOpenAPIYamlBodyWriter@19eda297
+23-May-2020 00:35:00.937 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.SourceProvider@837a58b0
+23-May-2020 00:35:00.937 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.JAXBElementProvider@6df684b0
+23-May-2020 00:35:00.938 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.openejb.server.cxf.rs.johnzon.TomEEJsonbProvider@170bdab4
+23-May-2020 00:35:00.939 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.openejb.server.cxf.rs.johnzon.TomEEJsonpProvider@25e7bfe7
+23-May-2020 00:35:00.940 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.BinaryDataProvider@cbe54303
+23-May-2020 00:35:00.940 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.provider.DataSourceProvider@426e0f35
+23-May-2020 00:35:00.941 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication Using exception mappers:
+23-May-2020 00:35:00.942 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper@90891f49
+23-May-2020 00:35:00.943 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.tomee.microprofile.jwt.MPJWTFilter$MPJWTExceptionMapper@a24f88d5
+23-May-2020 00:35:00.943 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.openejb.server.cxf.rs.EJBExceptionMapper@4c71062c
+23-May-2020 00:35:00.944 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployApplication      org.apache.cxf.jaxrs.validation.ValidationExceptionMapper@5e9cb606
+23-May-2020 00:35:00.949 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints REST Application: http://localhost:40273/test/                            -&gt; org.apache.openejb.server.rest.InternalApplication@d226e0d8
+23-May-2020 00:35:00.956 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints      Service URI: http://localhost:40273/test/health                      -&gt; Pojo org.apache.geronimo.microprofile.impl.health.cdi.CdiHealthChecksEndpoint
+23-May-2020 00:35:00.957 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               GET http://localhost:40273/test/health                      -&gt;      Response getChecks()
+23-May-2020 00:35:00.958 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints      Service URI: http://localhost:40273/test/metrics                     -&gt; Pojo org.apache.geronimo.microprofile.metrics.jaxrs.CdiMetricsEndpoints
+23-May-2020 00:35:00.959 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               GET http://localhost:40273/test/metrics                     -&gt;      Object getJson(SecurityContext, UriInfo)
+23-May-2020 00:35:00.959 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               GET http://localhost:40273/test/metrics                     -&gt;      String getText(SecurityContext, UriInfo)
+23-May-2020 00:35:00.960 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               GET http://localhost:40273/test/metrics/{registry}          -&gt;      Object getJson(String, SecurityContext, UriInfo)
+23-May-2020 00:35:00.960 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               GET http://localhost:40273/test/metrics/{registry}          -&gt;      String getText(String, SecurityContext, UriInfo)
+23-May-2020 00:35:00.960 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               GET http://localhost:40273/test/metrics/{registry}/{metric} -&gt;      Object getJson(String, String, SecurityContext, UriInfo)
+23-May-2020 00:35:00.961 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               GET http://localhost:40273/test/metrics/{registry}/{metric} -&gt;      String getText(String, String, SecurityContext, UriInfo)
+23-May-2020 00:35:00.961 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints           OPTIONS http://localhost:40273/test/metrics/{registry}          -&gt;      Object getMetadata(String, SecurityContext, UriInfo)
+23-May-2020 00:35:00.962 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints           OPTIONS http://localhost:40273/test/metrics/{registry}/{metric} -&gt;      Object getMetadata(String, String, SecurityContext, UriInfo)
+23-May-2020 00:35:00.963 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints      Service URI: http://localhost:40273/test/openapi                     -&gt; Pojo org.apache.geronimo.microprofile.openapi.jaxrs.OpenAPIEndpoint
+23-May-2020 00:35:00.963 INFORMAÇÕES [http-nio-40273-exec-2] org.apache.openejb.server.cxf.rs.CxfRsHttpListener.logEndpoints               GET http://localhost:40273/test/openapi                     -&gt;      OpenAPI get()
+applicationCurrrency = Euro
+applicationCountry = PT
+23-May-2020 00:35:01.677 INFORMAÇÕES [http-nio-40273-exec-7] org.apache.openejb.assembler.classic.Assembler.destroyApplication Undeploying app: /home/daniel/git/apache/tomee/examples/mp-config-source-database/target/workdir/0/test
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 15.831 sec
+23-May-2020 00:35:01.848 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke A valid shutdown command was received via the shutdown port. Stopping the Server instance.
+23-May-2020 00:35:01.849 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Pausing ProtocolHandler ["http-nio-40273"]
+23-May-2020 00:35:01.862 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Stopping service [Catalina]
+23-May-2020 00:35:01.865 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Stopping ProtocolHandler ["http-nio-40273"]
+23-May-2020 00:35:01.867 INFORMAÇÕES [main] org.apache.openejb.server.SimpleServiceManager.stop Stopping server services
+23-May-2020 00:35:01.876 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.destroyApplication Undeploying app: openejb
+23-May-2020 00:35:01.880 GRAVE [main] org.apache.openejb.core.singleton.SingletonInstanceManager.undeploy Unable to unregister MBean openejb.management:J2EEServer=openejb,J2EEApplication=&lt;empty&gt;,EJBModule=openejb,SingletonSessionBean=openejb/Deployer,name=openejb/Deployer,j2eeType=Invocations
+23-May-2020 00:35:01.881 GRAVE [main] org.apache.openejb.core.singleton.SingletonInstanceManager.undeploy Unable to unregister MBean openejb.management:J2EEServer=openejb,J2EEApplication=&lt;empty&gt;,EJBModule=openejb,SingletonSessionBean=openejb/Deployer,name=openejb/Deployer,j2eeType=Invocations
+23-May-2020 00:35:01.908 INFORMAÇÕES [main] org.apache.openejb.assembler.classic.Assembler.doResourceDestruction Closing DataSource: config-source-database
+23-May-2020 00:35:01.920 INFORMAÇÕES [main] sun.reflect.DelegatingMethodAccessorImpl.invoke Destroying ProtocolHandler ["http-nio-40273"]
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0</code></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/master/pt/examples/mp-jsonb-configuration.html
URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/master/pt/examples/mp-jsonb-configuration.html?rev=1879513&view=auto
==============================================================================
--- tomee/site/trunk/content/master/pt/examples/mp-jsonb-configuration.html (added)
+++ tomee/site/trunk/content/master/pt/examples/mp-jsonb-configuration.html Sun Jul  5 01:39:45 2020
@@ -0,0 +1,524 @@
+<!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>Configurando 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 personalizar jsonb para uma aplicação JAX-RS.
+JSONB é o novo padrão <code>javaee-api: 8.0</code> para serialização/desserialização de json.
+Poucas anotações são necessárias e o <code>JsonbConfig</code> 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>A aplicação pode ser executada com <code>mvn clean install tomee: run</code> e se a porta 8080 estiver disponível, pode invocar o seguinte endpoint:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">$ curl -X GET http://localhost:8080/mp-jsonb-configuration/api/users</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>que deve responder com o seguinte json:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">[
+  {
+    "Id":1,
+    "Name":"user 1",
+    "Registration":"2018 - 12 - 28"
+  },
+  {
+    "Id":2,
+    "Name":"user 2",
+    "Registration":"2018 - 12 - 28"
+  }
+]</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="__applicationpath">@ApplicationPath</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A classe de ponto de partida JAX-RS</p>
+</div>
+<div class="paragraph">
+<p>A classe de ponto de entrada JAXRS, da seguinte forma, os jaxrs carregarão todas as classes e métodos anotados com <code>@Path</code> sem especificá-los.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.core.Application;
+
+@ApplicationPath("api")
+public class JAXRSApplication extends Application {
+
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="__path_recurso_rest">@Path Recurso Rest</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Classe jaxrs simples com um método GET</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">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;
+    }
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_configurando_jsonb">Configurando JSONB</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A implementação de <code>ContextResolver&lt;&gt;</code> pode personalizar os padrões de jaxrs; neste exemplo, vamos personalizar a serialização/desserialização JSONB</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">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 offers a lot of configurations.
+        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;
+    }
+
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p><code>JsonbConfig</code> oferece muitas configurações.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_acessando_o_recurso_rest">Acessando o Recurso Rest</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>O teste ativa um aplicativo da web openejb e invoca o endpoint <code>/users</code></p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">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");
+
+        // test withDateFormat("yyyy - MM - dd")
+        Assert.assertTrue(message.contains(sdf.format(new Date())));
+        // test withFormatting(true)
+        Assert.assertTrue(message.contains(System.getProperty("line.separator")));
+    }
+
+}</code></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 a partir do maven com um simples comando <code>mvn clean install</code>, executando no diretorio <code>mp-jsonb-configuration</code>.</p>
+</div>
+<div class="paragraph">
+<p>Quando executado, você deve ver uma saída semelhante à seguinte:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">-------------------------------------------------------
+ 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/mp-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/mp-jsonb-configuration/UserServiceTest" loaded.
+INFO - Creating dedicated application classloader for UserServiceTest
+INFO - Assembling app: /home/federico/Documents/PRIVATO/Apache/tomee/examples/mp-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/mp-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/mp-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</code></pre>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_dentro_do_jar">Dentro do jar</h3>
+<div class="paragraph">
+<p><code>javaee-api: 8.0</code> ele incorpora todas as dependências necessárias para ativar um aplicativo REST em funcionamento.</p>
+</div>
+<div class="paragraph">
+<p>Se olharmos para o jar construído pelo maven, veremos que o aplicativo em si é bem pequeno:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">$ jar tvf target/mp-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/mp-jsonb-configuration/
+  1791 Fri Dec 28 19:10:44 CET 2018 META-INF/maven/org.superbiz/mp-jsonb-configuration/pom.xml
+   128 Fri Dec 28 19:36:08 CET 2018 META-INF/maven/org.superbiz/mp-jsonb-configuration/pom.properties</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Esse jar individual pode ser implantado em qualquer implementação Java EE que atenda aos requisitos. 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>
+