Author: dblevins
Date: Sun Sep 15 22:59:06 2019
New Revision: 1866975
URL: http://svn.apache.org/viewvc?rev=1866975&view=rev
Log:
site regeneration
Added:
tomee/site/trunk/content/tomee-8.0/es/examples/groovy-jpa.html
tomee/site/trunk/content/tomee-8.0/es/examples/mp-faulttolerance-timeout.html
tomee/site/trunk/content/tomee-8.0/es/examples/mp-jsonb-configuration.html
tomee/site/trunk/content/tomee-8.0/es/examples/mp-metrics-counted.html
tomee/site/trunk/content/tomee-8.0/es/examples/mp-metrics-histogram.html
tomee/site/trunk/content/tomee-8.0/es/examples/mp-metrics-metered.html
tomee/site/trunk/content/tomee-8.0/es/examples/mp-metrics-timed.html
tomee/site/trunk/content/tomee-8.0/examples/groovy-jpa.html
tomee/site/trunk/content/tomee-8.0/pt/examples/mp-custom-healthcheck.html
tomee/site/trunk/content/tomee-8.0/pt/examples/mp-faulttolerance-retry.html
Modified:
tomee/site/trunk/content/tomee-8.0/es/examples/index.html
tomee/site/trunk/content/tomee-8.0/es/examples/mp-custom-healthcheck.html
tomee/site/trunk/content/tomee-8.0/examples/index.html
tomee/site/trunk/content/tomee-8.0/examples/mp-faulttolerance-timeout.html
tomee/site/trunk/content/tomee-8.0/examples/mp-jsonb-configuration.html
tomee/site/trunk/content/tomee-8.0/examples/mp-metrics-counted.html
tomee/site/trunk/content/tomee-8.0/examples/mp-metrics-histogram.html
tomee/site/trunk/content/tomee-8.0/examples/mp-metrics-metered.html
tomee/site/trunk/content/tomee-8.0/examples/mp-metrics-timed.html
tomee/site/trunk/content/tomee-8.0/pt/examples/index.html
Added: tomee/site/trunk/content/tomee-8.0/es/examples/groovy-jpa.html
URL:
http://svn.apache.org/viewvc/tomee/site/trunk/content/tomee-8.0/es/examples/groovy-jpa.html?rev=1866975&view=auto
==============================================================================
--- tomee/site/trunk/content/tomee-8.0/es/examples/groovy-jpa.html (added)
+++ tomee/site/trunk/content/tomee-8.0/es/examples/groovy-jpa.html Sun Sep 15
22:59:06 2019
@@ -0,0 +1,308 @@
+<!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>Groovy Project with Persistence JPA</h1>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+
+ <div class="col-md-12">
+ <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Este ejemplo es desarrollado con <a href="http://groovy-lang.org">Groovy
Lang</a> con persistencia de datos de JPA.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ejemplo">Ejemplo</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>En este ejemplo, una persona es creada y consultada más tarde.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_código_de_ejemplo">Código de ejemplo</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_entidad">Entidad</h3>
+<div class="paragraph">
+<p>Cree una clase <code>Persona</code> con la anotación
<code>@Entidad</code>.</p>
+</div>
+<div class="paragraph">
+<p>En la clase, cree la propiedad <code>name</code> de tipo
<code>String</code>.
+En la clase, cree la propiedad <code>id</code> del tipo <code>long</code>.</p>
+</div>
+<div class="paragraph">
+<p>El identificador de la entidad <code>Persona</code> es la propiedad
<code>id</code> con la anotación <code>@Id</code>.</p>
+</div>
+<div class="paragraph">
+<p>Para generar automáticamente el secuencial, agregue la anotación
<code>@GeneratedValue</code>.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">Unresolved
directive in <stdin> -
include::src/main/groovy/org/superbiz/groovy/Person.groovy[]</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_persistencia">Persistencia</h3>
+<div class="paragraph">
+<p>En la persistencia se agrega la entidad <code>Persona</code> con
<code><class> org.superbiz.groovy.Person </class></code></p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">Unresolved
directive in <stdin> -
include::src/main/resources/META-INF/persistence.xml[]</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ejecutando_el_ejemplo">Ejecutando el ejemplo</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Ejecutar el ejemplo es bastante simple. En el directorio
<code>/tomee/examples/groovy-jpa</code> ejecute:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>$ mvn clean install</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Lo que deberÃa crear un resultado como el siguiente:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>[INFO] Running org.superbiz.groovy.GroovyJPATest
+INFO -
********************************************************************************
+INFO - OpenEJB http://tomee.apache.org/
+INFO - Startup: Sat Sep 07 18:29:58 ECT 2019
+INFO - Copyright 1999-2018 (C) Apache OpenEJB Project, All Rights Reserved.
+INFO - Version: 8.0.0-SNAPSHOT
+INFO - Build date: 20190907
+INFO - Build time: 04:10
+INFO -
********************************************************************************
+INFO - openejb.home = /Users/sergio/workspace/git/tomee/examples/groovy-jpa
+INFO - openejb.base = /Users/sergio/workspace/git/tomee/examples/groovy-jpa
+INFO - Created new singletonService
org.apache.openejb.cdi.ThreadSingletonServiceImpl@71c8becc
+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 - Using 'openejb.deployments.classpath=false'
+INFO - Creating TransactionManager(id=Default Transaction Manager)
+INFO - Creating SecurityService(id=Default Security Service)
+INFO - Configuring enterprise application:
/Users/sergio/workspace/git/tomee/examples/groovy-jpa/0db140ef-9d71-4f1a-8ddb-1d0e3feae256.war
+INFO - Configuring Service(id=Default Managed Container, type=Container,
provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean
0db140ef-9d71-4f1a-8ddb-1d0e3feae256_org.superbiz.groovy.GroovyJPATest:
Container(type=MANAGED, id=Default Managed Container)
+INFO - Creating Container(id=Default Managed Container)
+INFO - Using directory /var/folders/3j/qhs78rln3y9bl0c279f2j13m0000gn/T for
stateful session passivation
+INFO - Configuring PersistenceUnit(name=groovy)
+INFO - Configuring Service(id=Default Unmanaged JDBC Database, type=Resource,
provider-id=Default Unmanaged JDBC Database)
+INFO - Auto-creating a Resource with id 'Default Unmanaged JDBC Database' of
type 'DataSource for 'groovy'.
+INFO - Creating Resource(id=Default Unmanaged JDBC Database)
+INFO - Adjusting PersistenceUnit groovy <non-jta-data-source> to
Resource ID 'Default Unmanaged JDBC Database' from 'jdbc/groovy'
+INFO - Enterprise application
"/Users/sergio/workspace/git/tomee/examples/groovy-jpa/0db140ef-9d71-4f1a-8ddb-1d0e3feae256.war"
loaded.
+INFO - Assembling app:
/Users/sergio/workspace/git/tomee/examples/groovy-jpa/0db140ef-9d71-4f1a-8ddb-1d0e3feae256.war
+INFO - JAVA AGENT NOT INSTALLED. The JPA Persistence Provider requested
installation of a ClassFileTransformer which requires a JavaAgent. See
http://tomee.apache.org/javaagent.html
+INFO - OpenJPA dynamically loaded a validation provider.
+INFO - PersistenceUnit(name=groovy,
provider=org.apache.openjpa.persistence.PersistenceProviderImpl) - provider
time 1142ms
+INFO - Existing thread singleton service in SystemInstance():
org.apache.openejb.cdi.ThreadSingletonServiceImpl@71c8becc
+INFO - Some Principal APIs could not be loaded:
org.eclipse.microprofile.jwt.JsonWebToken out of
org.eclipse.microprofile.jwt.JsonWebToken not found
+INFO - OpenWebBeans Container is starting...
+INFO - Adding OpenWebBeansPlugin : [CdiPlugin]
+INFO - All injection points were validated successfully.
+INFO - OpenWebBeans Container has started, it took 574 ms.
+INFO - Deployed
Application(path=/Users/sergio/workspace/git/tomee/examples/groovy-jpa/0db140ef-9d71-4f1a-8ddb-1d0e3feae256.war)
+INFO - Starting OpenJPA 3.1.0
+INFO - Using dictionary class "org.apache.openjpa.jdbc.sql.HSQLDictionary"
(HSQL Database Engine 2.3.2 ,HSQL Database Engine Driver 2.3.2).
+INFO - Connected to HSQL Database Engine version 2.2 using JDBC driver HSQL
Database Engine Driver version 2.3.2.
+INFO - Creating subclass and redefining methods for "[class
org.superbiz.groovy.Person]". This means that your application will be less
efficient than it would if you ran the OpenJPA enhancer.
+INFO - Undeploying app:
/Users/sergio/workspace/git/tomee/examples/groovy-jpa/0db140ef-9d71-4f1a-8ddb-1d0e3feae256.war
+[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 13.304
s - in org.superbiz.groovy.GroovyJPATest
+INFO - Destroying container system
+INFO - Closing DataSource: Default Unmanaged JDBC Database
+[INFO]
+[INFO] Results:
+[INFO]
+[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0</pre>
+</div>
+</div>
+</div>
+</div>
+ </div>
+
+ </div>
+ </div>
+<footer>
+ <div class="container">
+ <div class="row">
+ <div class="col-sm-6 text-center-mobile">
+ <h3 class="white">Be simple. Be
certified. Be Tomcat.</h3>
+ <h5 class="light regular
light-white">"A good application in a good server"</h5>
+ <ul class="social-footer">
+ <li><a
href="https://www.facebook.com/ApacheTomEE/"><i class="fa
fa-facebook"></i></a></li>
+ <li><a
href="https://twitter.com/apachetomee"><i class="fa fa-twitter"></i></a></li>
+ <li><a
href="https://plus.google.com/communities/105208241852045684449"><i class="fa
fa-google-plus"></i></a></li>
+ </ul>
+ </div>
+ <div class="col-sm-6 text-center-mobile">
+ <div class="row opening-hours">
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../latest/docs/documentation.html"
class="white">Documentation</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="../../../latest/docs/admin/configuration/index.html" class="regular
light-white">How to configure</a></li>
+ <li><a
href="../../../latest/docs/admin/file-layout.html" class="regular
light-white">Dir. Structure</a></li>
+ <li><a
href="../../../latest/docs/developer/testing/index.html" class="regular
light-white">Testing</a></li>
+ <li><a
href="../../../latest/docs/admin/cluster/index.html" class="regular
light-white">Clustering</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../latest/examples/" class="white">Examples</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="../../../latest/examples/simple-cdi-interceptor.html" class="regular
light-white">CDI Interceptor</a></li>
+ <li><a
href="../../../latest/examples/rest-cdi.html" class="regular light-white">REST
with CDI</a></li>
+ <li><a
href="../../../latest/examples/ejb-examples.html" class="regular
light-white">EJB</a></li>
+ <li><a
href="../../../latest/examples/jsf-managedBean-and-ejb.html" class="regular
light-white">JSF</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../community/index.html" class="white">Community</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="../../../community/contributors.html" class="regular
light-white">Contributors</a></li>
+ <li><a
href="../../../community/social.html" class="regular
light-white">Social</a></li>
+ <li><a
href="../../../community/sources.html" class="regular
light-white">Sources</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../security/index.html" class="white">Security</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="http://apache.org/security" target="_blank" class="regular
light-white">Apache Security</a></li>
+ <li><a
href="http://apache.org/security/projects.html" target="_blank" class="regular
light-white">Security Projects</a></li>
+ <li><a
href="http://cve.mitre.org" target="_blank" class="regular
light-white">CVE</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row bottom-footer text-center-mobile">
+ <div class="col-sm-12 light-white">
+ <p>Copyright © 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>
+
Modified: tomee/site/trunk/content/tomee-8.0/es/examples/index.html
URL:
http://svn.apache.org/viewvc/tomee/site/trunk/content/tomee-8.0/es/examples/index.html?rev=1866975&r1=1866974&r2=1866975&view=diff
==============================================================================
--- tomee/site/trunk/content/tomee-8.0/es/examples/index.html (original)
+++ tomee/site/trunk/content/tomee-8.0/es/examples/index.html Sun Sep 15
22:59:06 2019
@@ -95,30 +95,37 @@
<div class="col-md-4">
<div class="group-title">MicroProfile</div>
<ul class="group">
+ <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="mp-custom-healthcheck.html">Control de
Estado Personalizado (Custom Health Check) de MicroProfile</a></li>
<li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="mp-config-example.html">MicroProfile
Config</a></li>
- <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="mp-custom-healthcheck.html">MicroProfile
Custom Health Check</a></li>
<li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a
href="mp-faulttolerance-fallback.html">MicroProfile Fault Tolerance -
Fallback</a></li>
+ <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="mp-metrics-counted.html">Métricas con
MicroProfile <code>@Counted</code> (Contado)</a></li>
+ <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="mp-metrics-histogram.html">Métricas con
MicroProfile <code>@Histogram</code></a></li>
+ <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="mp-metrics-metered.html">Métricas con
MicroProfile <code>@Metered</code></a></li>
+ <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="mp-metrics-timed.html">Métricas con
MicroProfile <code>@Timed</code></a></li>
+ <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="mp-faulttolerance-timeout.html">Tolerancia
a fallos (Fault Tolerance) en MicroProfile - Timeout (Tiempo de espera)</a></li>
</ul>
</div>
<div class="col-md-4">
- <div class="group-title">EJB</div>
+ <div class="group-title">Unrevised</div>
<ul class="group">
- <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="access-timeout.html">@AccessTimeout
Annotation</a></li>
- <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="async-methods.html">Métodos
@Asynchronous</a></li>
+ <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="mp-jsonb-configuration.html">Configurando
JSON-B</a></li>
+ <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="groovy-jpa.html">Groovy Project with
Persistence JPA</a></li>
+ <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="javamail.html">Javamail API</a></li>
</ul>
</div>
<div class="col-md-4">
- <div class="group-title">Testing Techniques</div>
+ <div class="group-title">EJB</div>
<ul class="group">
- <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="alternate-descriptors.html">Descriptores
alternos</a></li>
+ <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="access-timeout.html">@AccessTimeout
Annotation</a></li>
+ <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="async-methods.html">Métodos
@Asynchronous</a></li>
</ul>
</div>
</div>
<div class="row">
<div class="col-md-4">
- <div class="group-title">Unrevised</div>
+ <div class="group-title">Testing Techniques</div>
<ul class="group">
- <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="javamail.html">Javamail API</a></li>
+ <li class="group-item"><span class="group-item-i" ><i class="fa
fa-angle-right"></i></span><a href="alternate-descriptors.html">Descriptores
alternos</a></li>
</ul>
</div>
<div class="col-md-4">
Modified:
tomee/site/trunk/content/tomee-8.0/es/examples/mp-custom-healthcheck.html
URL:
http://svn.apache.org/viewvc/tomee/site/trunk/content/tomee-8.0/es/examples/mp-custom-healthcheck.html?rev=1866975&r1=1866974&r2=1866975&view=diff
==============================================================================
--- tomee/site/trunk/content/tomee-8.0/es/examples/mp-custom-healthcheck.html
(original)
+++ tomee/site/trunk/content/tomee-8.0/es/examples/mp-custom-healthcheck.html
Sun Sep 15 22:59:06 2019
@@ -88,7 +88,7 @@
<div class="col-md-12">
<div class='page-header'>
- <h1>MicroProfile Custom Health Check</h1>
+ <h1>Control de Estado Personalizado (Custom Health Check) de
MicroProfile</h1>
</div>
</div>
</div>
@@ -98,12 +98,12 @@
<div class="paragraph">
<p>Este es un ejemplo sobre cómo usar el MicroProfile Custom Health Check en
TomEE.</p>
</div>
-<h4 id="_health_feature" class="discrete">Health Feature</h4>
+<h4 id="_funcionalidad_de_estado" class="discrete">Funcionalidad de Estado</h4>
<div class="paragraph">
-<p>Los Enlaces de Estado (Health checks) se usan para probar el estado de los
servicios y los recursos de los que una aplicación depende, incluso para
exponer su estado. Por ejemplo, en un ambiente de clúster, donde un nodo
inestable requiere ser descartado y eventualmente ser remplazado por una
instancia estable.</p>
+<p>Los Controles de Estado (Health checks) se usan para probar el estado de
los servicios y los recursos de los que una aplicación depende, asà como
también para exponer su estado. Por ejemplo, en un ambiente de clúster, donde
un nodo inestable requiere ser descartado y eventualmente ser remplazado por
una instancia estable.</p>
</div>
<div class="paragraph">
-<p>Por defecto, <a
href="https://github.com/eclipse/microprofile-health">microprofile-health-api</a>
proporciona la salida de un nodo, simplemente accediendo el end point <a
href="http://host:port/health" class="bare">http://host:port/health</a>.</p>
+<p>Por defecto, <a
href="https://github.com/eclipse/microprofile-health">microprofile-health-api</a>
proporciona la salida de un nodo, simplemente accediendo el enlace <a
href="http://host:port/health" class="bare">http://host:port/health</a>.</p>
</div>
<div class="listingblock">
<div class="content">
@@ -111,10 +111,10 @@
</div>
</div>
<div class="paragraph">
-<p>Para proporcionar una salida a la medida , por ejemplo, si tenemos una
aplicación que usa un API de clima, y el servicio se cae, podemos reportar que
el servicio esta caÃdo (DOWN).</p>
+<p>Para proporcionar una salida a la medida, por ejemplo, si tenemos una
aplicación que usa una API de clima, y el servicio se cae, podemos reportar
que el servicio esta caÃdo (DOWN).</p>
</div>
<div class="paragraph">
-<p>Es necesario implementar la interface <a
href="https://github.com/eclipse/microprofile-health/blob/master/api/src/main/java/org/eclipse/microprofile/health/HealthCheck.java">HealthCheck</a>,
en una clase con la anotación <code>@ApplicationScoped</code> y la
anotación`@Health` para proporcionar la salida a la medida.</p>
+<p>Es necesario implementar la interface <a
href="https://github.com/eclipse/microprofile-health/blob/master/api/src/main/java/org/eclipse/microprofile/health/HealthCheck.java">HealthCheck</a>,
en una clase con la anotación <code>@ApplicationScoped</code> y la anotación
<code>@Health</code> para proporcionar la salida personalizada.</p>
</div>
<div class="paragraph">
<p>Se pueden ver más detalles aquÃ: <a
href="https://github.com/apache/geronimo-health/blob/master/geronimo-health/src/main/java/org/apache/geronimo/microprofile/impl/health/cdi/GeronimoHealthExtension.java">GeronimoHealthExtension.java</a></p>
Added:
tomee/site/trunk/content/tomee-8.0/es/examples/mp-faulttolerance-timeout.html
URL:
http://svn.apache.org/viewvc/tomee/site/trunk/content/tomee-8.0/es/examples/mp-faulttolerance-timeout.html?rev=1866975&view=auto
==============================================================================
---
tomee/site/trunk/content/tomee-8.0/es/examples/mp-faulttolerance-timeout.html
(added)
+++
tomee/site/trunk/content/tomee-8.0/es/examples/mp-faulttolerance-timeout.html
Sun Sep 15 22:59:06 2019
@@ -0,0 +1,292 @@
+<!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>Tolerancia a fallos (Fault Tolerance) en MicroProfile -
Timeout (Tiempo de espera)</h1>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+
+ <div class="col-md-12">
+ <div class="paragraph">
+<p>Este es un ejemplo de como usar Microprofile <code>@Timeout</code> en
TomEE.</p>
+</div>
+<h2 id="_funcionalidad_de_tiempo_de_espera_timeout"
class="discrete">Funcionalidad de tiempo de espera (Timeout)</h2>
+<div class="paragraph">
+<p><code>Fault Tolerance Timeout</code> permite especificar cuánto tiempo
puede tomar una tarea en completar su ejecución y abortarla en caso que tarde
más del tiempo especificado. La funcionalidad de Timeout puede ser usada en
conjunto con otras anotaciones para guiar la ejecución y resultado de una
tarea. Mira la
+<a
href="https://download.eclipse.org/microprofile/microprofile-fault-tolerance-1.1/microprofile-fault-tolerance-spec.html#_timeout_usage">especificación</a>
+para mas detalles.</p>
+</div>
+<div class="paragraph">
+<p>La anotación <code>@Timeout</code> permite configurar:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>value:</strong> el valor del tiempo de espera</p>
+</li>
+<li>
+<p><strong>unit:</strong> la unidad del tiempo de espera</p>
+</li>
+</ul>
+</div>
+<h2 id="_ejemplo" class="discrete">Ejemplo</h2>
+<h3 id="_ejecuta_la_aplicación" class="discrete">Ejecuta la aplicación</h3>
+<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>
+<h3 id="_como_funciona_esto" class="discrete">Como funciona esto?</h3>
+<div class="paragraph">
+<p>El método <code>statusOfDayByAccuWeather</code> falla cuando se alcanza el
umbral de la
+anotación <code>@Timeout</code> debido a una larga ejecución del método
+<code>longProcessingTask</code>. Para responder bien a la solicitud, se
ejecutará un
+método alternativo para completar la solicitud exitosamente. El método
+alternativo está determinado por la anotación <code>@Fallback</code>.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java"
data-lang="java">@RequestScoped
+public class WeatherGateway {
+
+ private static final Logger LOGGER =
Logger.getLogger(WeatherGateway.class.getName());
+
+ @Timeout(50)
+ @Fallback(fallbackMethod = "statusOfWeekByMetEireann")
+ public String statusOfDayByAccuWeather(){
+ return longProcessingTask();
+ }
+
+ public String statusOfWeekByMetEireann(){
+ LOGGER.log(Level.WARNING, "MetEireann backup service has been
requested due to AccuWeather timeout");
+ return "Beautiful day";
+ }
+
+ private String longProcessingTask(){
+ try {
+ Thread.sleep(80);
+ } catch (InterruptedException e) {
+ LOGGER.log(Level.WARNING,"AccuWeather task has been interrupted.");
+ }
+ return null;
+ }
+ ...
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Llamada al estado del dÃa</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-text" data-lang="text">GET
http://localhost:8080/mp-faulttolerance-timeout/weather/day/status</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Logs en el Servidor</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-text" data-lang="text">WARNING
AccuWeather task has been interrupted.
+WARNING MetEireann fallback service has been requested due to AccuWeather
timeout.</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Respuesta HTTP</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-text" data-lang="text">Beautiful
day!</code></pre>
+</div>
+</div>
+<h3 id="_ejecutando_las_pruebas" class="discrete">Ejecutando las pruebas</h3>
+<div class="paragraph">
+<p>También puedes probarlo usando el
+<a
href="src/test/java/org/superbiz/rest/WeatherServiceTest.java">WeatherServiceTest.java</a>
disponible en el proyecto.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-text" data-lang="text">mvn clean
test</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>[INFO] Results:
+[INFO]
+[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0</pre>
+</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/documentation.html"
class="white">Documentation</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="../../../latest/docs/admin/configuration/index.html" class="regular
light-white">How to configure</a></li>
+ <li><a
href="../../../latest/docs/admin/file-layout.html" class="regular
light-white">Dir. Structure</a></li>
+ <li><a
href="../../../latest/docs/developer/testing/index.html" class="regular
light-white">Testing</a></li>
+ <li><a
href="../../../latest/docs/admin/cluster/index.html" class="regular
light-white">Clustering</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../latest/examples/" class="white">Examples</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="../../../latest/examples/simple-cdi-interceptor.html" class="regular
light-white">CDI Interceptor</a></li>
+ <li><a
href="../../../latest/examples/rest-cdi.html" class="regular light-white">REST
with CDI</a></li>
+ <li><a
href="../../../latest/examples/ejb-examples.html" class="regular
light-white">EJB</a></li>
+ <li><a
href="../../../latest/examples/jsf-managedBean-and-ejb.html" class="regular
light-white">JSF</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../community/index.html" class="white">Community</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="../../../community/contributors.html" class="regular
light-white">Contributors</a></li>
+ <li><a
href="../../../community/social.html" class="regular
light-white">Social</a></li>
+ <li><a
href="../../../community/sources.html" class="regular
light-white">Sources</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../security/index.html" class="white">Security</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="http://apache.org/security" target="_blank" class="regular
light-white">Apache Security</a></li>
+ <li><a
href="http://apache.org/security/projects.html" target="_blank" class="regular
light-white">Security Projects</a></li>
+ <li><a
href="http://cve.mitre.org" target="_blank" class="regular
light-white">CVE</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row bottom-footer text-center-mobile">
+ <div class="col-sm-12 light-white">
+ <p>Copyright © 1999-2016 The
Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE
project logo are trademarks of The Apache Software Foundation. All other marks
mentioned may be trademarks or registered trademarks of their respective
owners.</p>
+ </div>
+ </div>
+ </div>
+ </footer>
+ <!-- Holder for mobile navigation -->
+ <div class="mobile-nav">
+ <ul>
+ <li><a hef="../../../latest/docs/admin/index.html">Administrators</a>
+ <li><a hef="../../../latest/docs/developer/index.html">Developers</a>
+ <li><a hef="../../../latest/docs/advanced/index.html">Advanced</a>
+ <li><a hef="../../../community/index.html">Community</a>
+ </ul>
+ <a href="#" class="close-link"><i class="arrow_up"></i></a>
+ </div>
+ <!-- Scripts -->
+ <script src="../../../js/jquery-1.11.1.min.js"></script>
+ <script src="../../../js/owl.carousel.min.js"></script>
+ <script src="../../../js/bootstrap.min.js"></script>
+ <script src="../../../js/wow.min.js"></script>
+ <script src="../../../js/typewriter.js"></script>
+ <script src="../../../js/jquery.onepagenav.js"></script>
+ <script src="../../../js/tree.jquery.js"></script>
+ <script src="../../../js/highlight.pack.js"></script>
+ <script src="../../../js/main.js"></script>
+ </body>
+
+</html>
+
Added:
tomee/site/trunk/content/tomee-8.0/es/examples/mp-jsonb-configuration.html
URL:
http://svn.apache.org/viewvc/tomee/site/trunk/content/tomee-8.0/es/examples/mp-jsonb-configuration.html?rev=1866975&view=auto
==============================================================================
--- tomee/site/trunk/content/tomee-8.0/es/examples/mp-jsonb-configuration.html
(added)
+++ tomee/site/trunk/content/tomee-8.0/es/examples/mp-jsonb-configuration.html
Sun Sep 15 22:59:06 2019
@@ -0,0 +1,526 @@
+<!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 ejemplo muestra cómo personalizar jsonb para una aplicación JAX-RS.
+JSONB es el nuevo estándar <code>javaee-api: 8.0</code> para la
serialización /
+deserialización de json. Se necesitan pocas anotaciones y
<code>JsonbConfig</code>
+ofrece muchas configuraciones.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ejecuta_y_prueba_el_endpoint">Ejecuta y prueba el Endpoint</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>la aplicación se puede ejecutar con <code>mvn clean install tomee:
run</code> si el puerto
+8080 está disponible, puede invocar el siguiente 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 deberÃa responder con el siguiente 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>La clase de punto de entrada JAXRS, de la siguiente manera los jaxrs
cargarán
+todos las clases y métodos anotados con <code>@ Path</code> sin
especificarlos.</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>Clase jaxrs simple con un 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="_configuració_jsonb">Configuració JSONB</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Implementando <code>ContextResolver <></code> puede personalizar los
valores
+predeterminados de jaxrs, en este ejemplo, vamos a personalizar la
+serialización / deserialización 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> ofrece muchas configuraciones.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_accediendo_al_recurso_rest">Accediendo al recurso Rest</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>La prueba activa una aplicación web openejb e invoca el recurso rest
<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="_ejecutando">Ejecutando</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Ejecutando el ejemplo se puede hacer desde maven con un simple comando
<code>mvn clean install</code> ejecutado desde el directorio
<code>mp-jsonb-configuration</code>.</p>
+</div>
+<div class="paragraph">
+<p>Cuando se ejecute, deberÃa ver una salida similar a la siguiente:</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_del_jar">Dentro del jar</h3>
+<div class="paragraph">
+<p><code>javaee-api: 8.0</code> incorpora todas las dependencias necesarias
para activar una aplicación REST que funcione.</p>
+</div>
+<div class="paragraph">
+<p>Si miramos el jar construido por maven, veremos que la aplicación en sÃ
es bastante pequeña:</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>Este jar individual podrÃa desplegarse en cualquier implementación Java
EE que cumpla con los requisitos. En TomEE simplemente lo colocarÃa en el
directorio <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/documentation.html"
class="white">Documentation</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="../../../latest/docs/admin/configuration/index.html" class="regular
light-white">How to configure</a></li>
+ <li><a
href="../../../latest/docs/admin/file-layout.html" class="regular
light-white">Dir. Structure</a></li>
+ <li><a
href="../../../latest/docs/developer/testing/index.html" class="regular
light-white">Testing</a></li>
+ <li><a
href="../../../latest/docs/admin/cluster/index.html" class="regular
light-white">Clustering</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../latest/examples/" class="white">Examples</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="../../../latest/examples/simple-cdi-interceptor.html" class="regular
light-white">CDI Interceptor</a></li>
+ <li><a
href="../../../latest/examples/rest-cdi.html" class="regular light-white">REST
with CDI</a></li>
+ <li><a
href="../../../latest/examples/ejb-examples.html" class="regular
light-white">EJB</a></li>
+ <li><a
href="../../../latest/examples/jsf-managedBean-and-ejb.html" class="regular
light-white">JSF</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../community/index.html" class="white">Community</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="../../../community/contributors.html" class="regular
light-white">Contributors</a></li>
+ <li><a
href="../../../community/social.html" class="regular
light-white">Social</a></li>
+ <li><a
href="../../../community/sources.html" class="regular
light-white">Sources</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../security/index.html" class="white">Security</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="http://apache.org/security" target="_blank" class="regular
light-white">Apache Security</a></li>
+ <li><a
href="http://apache.org/security/projects.html" target="_blank" class="regular
light-white">Security Projects</a></li>
+ <li><a
href="http://cve.mitre.org" target="_blank" class="regular
light-white">CVE</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row bottom-footer text-center-mobile">
+ <div class="col-sm-12 light-white">
+ <p>Copyright © 1999-2016 The
Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE
project logo are trademarks of The Apache Software Foundation. All other marks
mentioned may be trademarks or registered trademarks of their respective
owners.</p>
+ </div>
+ </div>
+ </div>
+ </footer>
+ <!-- Holder for mobile navigation -->
+ <div class="mobile-nav">
+ <ul>
+ <li><a hef="../../../latest/docs/admin/index.html">Administrators</a>
+ <li><a hef="../../../latest/docs/developer/index.html">Developers</a>
+ <li><a hef="../../../latest/docs/advanced/index.html">Advanced</a>
+ <li><a hef="../../../community/index.html">Community</a>
+ </ul>
+ <a href="#" class="close-link"><i class="arrow_up"></i></a>
+ </div>
+ <!-- Scripts -->
+ <script src="../../../js/jquery-1.11.1.min.js"></script>
+ <script src="../../../js/owl.carousel.min.js"></script>
+ <script src="../../../js/bootstrap.min.js"></script>
+ <script src="../../../js/wow.min.js"></script>
+ <script src="../../../js/typewriter.js"></script>
+ <script src="../../../js/jquery.onepagenav.js"></script>
+ <script src="../../../js/tree.jquery.js"></script>
+ <script src="../../../js/highlight.pack.js"></script>
+ <script src="../../../js/main.js"></script>
+ </body>
+
+</html>
+
Added: tomee/site/trunk/content/tomee-8.0/es/examples/mp-metrics-counted.html
URL:
http://svn.apache.org/viewvc/tomee/site/trunk/content/tomee-8.0/es/examples/mp-metrics-counted.html?rev=1866975&view=auto
==============================================================================
--- tomee/site/trunk/content/tomee-8.0/es/examples/mp-metrics-counted.html
(added)
+++ tomee/site/trunk/content/tomee-8.0/es/examples/mp-metrics-counted.html Sun
Sep 15 22:59:06 2019
@@ -0,0 +1,431 @@
+<!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>Métricas con MicroProfile <code>@Counted</code>
(Contado)</h1>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+
+ <div class="col-md-12">
+ <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Este es un ejemplo sobre cómo utilizar las métricas de microperfil en
TomEE. El
+proyecto incluye un perfil de Docker que se puede usar para crear una imagen de
+Docker.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ejecute_la_aplicación">Ejecute la aplicación:</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="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Alternativamente, compile y ejecute la aplicación a través de Docker
+(tenga en cuenta el uso del perfil de docker):
+</td>
+</tr>
+</table>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">$ mvn
-Pdocker docker:build</code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">$ docker
run -it --rm -p 8080:8080 --name=tomee-mp-metrics-counted
tomee/mp-metrics-counted</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Dentro de la aplicación, hay un endpoint que te dará el estado del clima
para
+el dÃa y la semana.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_obtenga_el_clima_para_la_semana">Obtenga el clima para la semana:</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">$ curl -X
GET http://localhost:8080/mp-metrics-counted/weather/week/status</code></pre>
+</div>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Si ejecuta usando Docker, debido a que la aplicación está instalada
+como la aplicación ROOT, elimine el nombre de la aplicación de la URL:
+</td>
+</tr>
+</table>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">$ curl -X
GET http://localhost:8080/weather/week/status</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_response">Response:</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-text" data-lang="text">Hi, today
is a sunny day!</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_usando_code_counted_code">Usando <code>@Counted</code></h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Las métricas de MicroProfile tienen una función que se puede usar para
contar
+solicitudes a un servicio.</p>
+</div>
+<div class="paragraph">
+<p>Para utilizar esta función, debe anotar los métodos de los recursos
JAX-RS con
+<code>@Counted</code>.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java"
data-lang="java">@Path("/weather")
+@Produces(MediaType.APPLICATION_JSON)
+@Consumes(MediaType.APPLICATION_JSON)
+@ApplicationScoped
+public class WeatherService {
+
+ @Path("/day/status")
+ @Counted(monotonic = true, name = "weather_day_status", absolute = true)
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String dayStatus() {
+ return "Hi, today is a sunny day!";
+ }
+...
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Hay algunas configuraciones, como parte de <code>@Counted</code>, que
necesita saber:</p>
+</div>
+<div class="paragraph">
+<p><strong>String name</strong> Opcional. Establece el nombre de la métrica.
Si no se proporciona
+explÃcitamente, se utiliza el nombre del objeto anotado.</p>
+</div>
+<div class="paragraph">
+<p><strong>boolean absolute</strong> Si es verdadero, usa el nombre dado como
el nombre absoluto
+de la métrica. Si es falso, antepone el nombre del paquete y el nombre de la
+clase antes del nombre dado. El valor predeterminado es falso.</p>
+</div>
+<div class="paragraph">
+<p><strong>String displayName</strong> Opcional. Un nombre para mostrar
legible para los
+metadatos.</p>
+</div>
+<div class="paragraph">
+<p><strong>String description</strong> Opcional. Una descripción de la
métrica.</p>
+</div>
+<div class="paragraph">
+<p><strong>String[] tags</strong> Opcional. Matriz de cadenas en el formato =
para suministrar
+etiquetas especiales a una métrica.</p>
+</div>
+<div class="paragraph">
+<p><strong>boolean reusable</strong> Indica si una métrica con un nombre
determinado se puede
+registrar en más de un lugar. No se aplica a <code>@Gauges</code>
(medidores).</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_datos_de_la_métrica">Datos de la Métrica</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Verifique la métrica del contador haciendo una solicitud <em>GET</em>:</p>
+</div>
+<div class="sect2">
+<h3 id="_formato_prometheus">Formato Prometheus:</h3>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">$ curl -X
GET
http://localhost:8080/mp-metrics-counted/metrics/application/weather_day_status</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_respuesta_prometheus">Respuesta Prometheus:</h3>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-text" data-lang="text"># TYPE
application:weather_day_status counter
+application:weather_day_status 1.0</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_formato_json">Formato JSON:</h3>
+<div class="paragraph">
+<p>Para el formato json, agregue el encabezado <code>Accept:
application/json</code> a la
+solicitud HTTP.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">$ curl -X
GET -H "Accept: application/json"
http://localhost:8080/mp-metrics-counted/metrics/application/weather_day_status</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_respuesta_json">Respuesta JSON:</h3>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-javascript"
data-lang="javascript">{
+ "weather_day_status": {
+ "delegate": {},
+ "unit": "none",
+ "count": 1
+ }
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_metadatos_métrica">Metadatos Métrica</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Una métrica tendrá metadatos para que pueda conocer más información al
+respecto, como <code>displayName</code>,<code>description</code>,
<code>tags</code>, etc.</p>
+</div>
+<div class="paragraph">
+<p>Verifique los metadatos de la métrica haciendo una solicitud HTTP
<em>OPTIONS</em>:</p>
+</div>
+<div class="sect2">
+<h3 id="_solicitud_http_em_options_em">Solicitud HTTP <em>OPTIONS</em></h3>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-bash" data-lang="bash">$ curl -X
OPTIONS
http://localhost:8080/mp-metrics-counted/metrics/application/weather_day_status</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_respuesta">Respuesta:</h3>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-javascript"
data-lang="javascript">{
+ "weather_day_status": {
+ "unit": "none",
+ "displayName": "Weather Day Status",
+ "name": "weather_day_status",
+ "typeRaw": "COUNTER",
+ "description": "This metric shows the weather status of the day.",
+ "type": "counter",
+ "value": {
+ "unit": "none",
+ "displayName": "Weather Day Status",
+ "name": "weather_day_status",
+ "tagsAsString": "",
+ "typeRaw": "COUNTER",
+ "description": "This metric shows the weather status of the day.",
+ "type": "counter",
+ "reusable": false,
+ "tags": {}
+ },
+ "reusable": false,
+ "tags": ""
+ }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>También puede probarlo utilizando WeatherServiceTest.java disponible en el
+proyecto.</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/documentation.html"
class="white">Documentation</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="../../../latest/docs/admin/configuration/index.html" class="regular
light-white">How to configure</a></li>
+ <li><a
href="../../../latest/docs/admin/file-layout.html" class="regular
light-white">Dir. Structure</a></li>
+ <li><a
href="../../../latest/docs/developer/testing/index.html" class="regular
light-white">Testing</a></li>
+ <li><a
href="../../../latest/docs/admin/cluster/index.html" class="regular
light-white">Clustering</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../latest/examples/" class="white">Examples</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="../../../latest/examples/simple-cdi-interceptor.html" class="regular
light-white">CDI Interceptor</a></li>
+ <li><a
href="../../../latest/examples/rest-cdi.html" class="regular light-white">REST
with CDI</a></li>
+ <li><a
href="../../../latest/examples/ejb-examples.html" class="regular
light-white">EJB</a></li>
+ <li><a
href="../../../latest/examples/jsf-managedBean-and-ejb.html" class="regular
light-white">JSF</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../community/index.html" class="white">Community</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="../../../community/contributors.html" class="regular
light-white">Contributors</a></li>
+ <li><a
href="../../../community/social.html" class="regular
light-white">Social</a></li>
+ <li><a
href="../../../community/sources.html" class="regular
light-white">Sources</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="../../../security/index.html" class="white">Security</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="http://apache.org/security" target="_blank" class="regular
light-white">Apache Security</a></li>
+ <li><a
href="http://apache.org/security/projects.html" target="_blank" class="regular
light-white">Security Projects</a></li>
+ <li><a
href="http://cve.mitre.org" target="_blank" class="regular
light-white">CVE</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row bottom-footer text-center-mobile">
+ <div class="col-sm-12 light-white">
+ <p>Copyright © 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>
+