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<String, String> getProperties() {
+ final Map<String, String> properties = new HashMap<>();
+
+ 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"><tomee>
+ <Resource id="config-source-database" type="DataSource">
+
+ </Resource>
+</tomee></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.<init> ********************************************************************************
+23-May-2020 00:34:52.558 INFORMAÃÃES [main] org.apache.openejb.OpenEJB$Instance.<init> OpenEJB http://tomee.apache.org/
+23-May-2020 00:34:52.561 INFORMAÃÃES [main] org.apache.openejb.OpenEJB$Instance.<init> Startup: Sat May 23 00:34:52 BRT 2020
+23-May-2020 00:34:52.561 INFORMAÃÃES [main] org.apache.openejb.OpenEJB$Instance.<init> 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.<init> Version: 8.0.2-SNAPSHOT
+23-May-2020 00:34:52.564 INFORMAÃÃES [main] org.apache.openejb.OpenEJB$Instance.<init> Build date: 20200513
+23-May-2020 00:34:52.567 INFORMAÃÃES [main] org.apache.openejb.OpenEJB$Instance.<init> Build time: 04:10
+23-May-2020 00:34:52.567 INFORMAÃÃES [main] org.apache.openejb.OpenEJB$Instance.<init> ********************************************************************************
+23-May-2020 00:34:52.567 INFORMAÃÃES [main] org.apache.openejb.OpenEJB$Instance.<init> 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.<init> 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) --> 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) --> 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) --> 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) --> 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) --> 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) --> 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) --> 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 -> /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 <listener>org.apache.myfaces.webapp.StartupServletContextListener</listener>
+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/ -> 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 -> 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 -> 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 -> 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 -> 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 -> 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} -> 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} -> 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} -> 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} -> 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} -> 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} -> 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 -> 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 -> 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=<empty>,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=<empty>,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 © 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<User> users() {
+ List<User> users = new ArrayList<>();
+ 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<></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<Jsonb> {
+
+ 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<?> 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) --> Ejb(deployment-id=UserService)
+INFO - Jndi(name=global/test/UserService!org.superbiz.rest.UserService) --> Ejb(deployment-id=UserService)
+INFO - Jndi(name=global/test/UserService) --> 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 -> org.superbiz.JAXRSApplication@5af28b27
+INFO - Service URI: http://127.0.0.1:4204/test/api/users -> EJB org.superbiz.rest.UserService
+INFO - GET http://127.0.0.1:4204/test/api/users -> List<User> 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 © 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>
+