Author: buildbot
Date: Sat Sep  7 20:36:39 2019
New Revision: 1049790

Log:
Staging update by buildbot for tomee

Added:
    
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/async-methods.html
    
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/cdi-application-scope.html
    websites/staging/tomee/trunk/content/tomee-8.0/es/examples/javamail.html
    
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/mp-custom-healthcheck.html
Modified:
    websites/staging/tomee/trunk/cgi-bin/   (props changed)
    websites/staging/tomee/trunk/content/   (props changed)
    websites/staging/tomee/trunk/content/tomee-8.0/es/examples/index.html
    
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/mp-config-example.html

Propchange: websites/staging/tomee/trunk/cgi-bin/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Sat Sep  7 20:36:39 2019
@@ -1 +1 @@
-1866567
+1866568

Propchange: websites/staging/tomee/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Sat Sep  7 20:36:39 2019
@@ -1 +1 @@
-1866567
+1866568

Added: 
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/async-methods.html
==============================================================================
--- 
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/async-methods.html 
(added)
+++ 
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/async-methods.html 
Sat Sep  7 20:36:39 2019
@@ -0,0 +1,417 @@
+<!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étodos @Asynchronous</h1>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+            
+            <div class="col-md-12">
+                <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>La annotación @Asynchronous fue introducida en EJB 3.1 como una manera 
simple
+de crear procesamiento asíncrono.</p>
+</div>
+<div class="paragraph">
+<p>Cada vez que un método anotado con <code>@Asynchronous</code> es invocado 
por cualquiera
+retornará inmediatamentesin importar cuanto tarda en realidad el método. Cada
+invocación retorna un objeto
+<a 
href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html";>Future</a>
+que esencialmente inicia <em>vacío</em> y luego se llenará con su valor por 
el
+contenedor cuando la llamada al metodo relacionado se ejecute en realidad.
+Retornar un objeto <code>Future</code> no es requerido y un método 
<code>@Asynchronous</code> puede
+por supuesto retornar <code>void</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ejemplo">Ejemplo</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Aquí, en <code>JobProcessorTest</code>,</p>
+</div>
+<div class="paragraph">
+<p><code>final Future&lt;String&gt; red = processor.addJob("red");</code> 
procede a la siguiente sentencia,</p>
+</div>
+<div class="paragraph">
+<p><code>final Future&lt;String&gt; orange = 
processor.addJob("orange");</code></p>
+</div>
+<div class="paragraph">
+<p>sin esperar por a que método <code>addJob()</code> se complete. Y luego 
podríamos
+preguntar por el resultado usando el método 
<code>Future&lt;?&gt;.get()</code> como sigue</p>
+</div>
+<div class="paragraph">
+<p><code>assertEquals("blue", blue.get());</code></p>
+</div>
+<div class="paragraph">
+<p>Espera a que el procesamiento de complete (si no se a completado aún) y
+obtiene el resultado. Si no te importa el resultado, podrías simplemente 
tener tu método asíncrono como un método <code>void</code>.</p>
+</div>
+<div class="paragraph">
+<p>Desde la documentación del Objeto <a 
href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html";>Future</a>,</p>
+</div>
+<div class="quoteblock">
+<blockquote>
+<div class="paragraph">
+<p>Un Future representa el resultado de un cómputo asíncrono. Se 
proporcionan métodos para chequear si el cómputo está completo, esperar por 
que se complete,
+y para obtener el resultado del cómputo. El resultado solo puede ser obtenido
+usando el método get cuando el cómputo se ha completado, bloqueando si es
+necesario hasta que está listo. La cancelación es ejecutada por el método
+cancel. Métodos adicionales son proporcionados para determinarsi la tarea se
+completó normalmente o fue cancelada. Una vez que un cómputo se ha 
completado,
+el cómputo no puede ser cancelado. Si quieres usar un Future solo por que se
+puede cancelar pero sin proveer un resultado usable, puedes declarar tipos de
+la forma Future&lt;?&gt; y retornar null como un resultado de la tarea 
subyacente</p>
+</div>
+</blockquote>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_el_código">El código</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">@Singleton
+public class JobProcessor {
+@Asynchronous
+@Lock(READ)
+@AccessTimeout(-1)
+public Future&lt;String&gt; addJob(String jobName) {
+
+    // Pretendamos que esta tarea tarda un tiempo
+    doSomeHeavyLifting();
+
+    // Retorna nuestro resultado
+    return new AsyncResult&lt;String&gt;(jobName);
+}
+
+private void doSomeHeavyLifting() {
+    try {
+        Thread.sleep(SECONDS.toMillis(10));
+    } catch (InterruptedException e) {
+        Thread.interrupted();
+        throw new IllegalStateException(e);
+    }
+  }
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_prueba">Prueba</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">public 
class JobProcessorTest extends TestCase {
+
+public void test() throws Exception {
+
+    final Context context = EJBContainer.createEJBContainer().getContext();
+
+    final JobProcessor processor = (JobProcessor) 
context.lookup("java:global/async-methods/JobProcessor");
+
+    final long start = System.nanoTime();
+
+    // Encola mucho trabajo
+    final Future&lt;String&gt; red = processor.addJob("red");
+    final Future&lt;String&gt; orange = processor.addJob("orange");
+    final Future&lt;String&gt; yellow = processor.addJob("yellow");
+    final Future&lt;String&gt; green = processor.addJob("green");
+    final Future&lt;String&gt; blue = processor.addJob("blue");
+    final Future&lt;String&gt; violet = processor.addJob("violet");
+
+    // Espera por el resultado -- 1 minuto de trabajo
+    assertEquals("blue", blue.get());
+    assertEquals("orange", orange.get());
+    assertEquals("green", green.get());
+    assertEquals("red", red.get());
+    assertEquals("yellow", yellow.get());
+    assertEquals("violet", violet.get());
+
+    // Cuanto tiempo tardó?
+    final long total = TimeUnit.NANOSECONDS.toSeconds(System.nanoTime() - 
start);
+
+    // Una ejecución debería tardar entre 9 y 21 seconds
+    // El tiempo de ejecución dependen en el número de threads disponibles 
para la ejecucion asíncrona.
+    // En el mejor de los casos son 10s mas un tiempo mínimo
+    assertTrue("Expected &gt; 9 but was: " + total, total &gt; 9);
+    assertTrue("Expected &lt; 21 but was: " + total, total &lt; 21);
+
+  }
+}</code></pre>
+</div>
+</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.async.JobProcessorTest
+INFO - 
********************************************************************************
+INFO - OpenEJB http://tomee.apache.org/
+INFO - Startup: Wed Feb 27 12:46:11 BRT 2019
+INFO - Copyright 1999-2018 (C) Apache OpenEJB Project, All Rights Reserved.
+INFO - Version: 8.0.0-SNAPSHOT
+INFO - Build date: 20190227
+INFO - Build time: 04:12
+INFO - 
********************************************************************************
+INFO - openejb.home = /home/soro/git/apache/tomee/examples/async-methods
+INFO - openejb.base = /home/soro/git/apache/tomee/examples/async-methods
+INFO - Created new singletonService 
org.apache.openejb.cdi.ThreadSingletonServiceImpl@22f71333
+INFO - Succeeded in installing singleton service
+INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
+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 - Found EjbModule in classpath: 
/home/soro/git/apache/tomee/examples/async-methods/target/classes
+INFO - Beginning load: 
/home/soro/git/apache/tomee/examples/async-methods/target/classes
+INFO - Configuring enterprise application: 
/home/soro/git/apache/tomee/examples/async-methods
+INFO - Auto-deploying ejb JobProcessor: 
EjbDeployment(deployment-id=JobProcessor)
+INFO - Configuring Service(id=Default Singleton Container, type=Container, 
provider-id=Default Singleton Container)
+INFO - Auto-creating a container for bean JobProcessor: 
Container(type=SINGLETON, id=Default Singleton Container)
+INFO - Creating Container(id=Default Singleton Container)
+INFO - Configuring Service(id=Default Managed Container, type=Container, 
provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean org.superbiz.async.JobProcessorTest: 
Container(type=MANAGED, id=Default Managed Container)
+INFO - Creating Container(id=Default Managed Container)
+INFO - Using directory /tmp for stateful session passivation
+INFO - Enterprise application 
"/home/soro/git/apache/tomee/examples/async-methods" loaded.
+INFO - Assembling app: /home/soro/git/apache/tomee/examples/async-methods
+INFO - 
Jndi(name="java:global/async-methods/JobProcessor!org.superbiz.async.JobProcessor")
+INFO - Jndi(name="java:global/async-methods/JobProcessor")
+INFO - Existing thread singleton service in SystemInstance(): 
org.apache.openejb.cdi.ThreadSingletonServiceImpl@22f71333
+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 316 ms.
+INFO - Created Ejb(deployment-id=JobProcessor, ejb-name=JobProcessor, 
container=Default Singleton Container)
+INFO - Started Ejb(deployment-id=JobProcessor, ejb-name=JobProcessor, 
container=Default Singleton Container)
+INFO - Deployed 
Application(path=/home/soro/git/apache/tomee/examples/async-methods)
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 23.491 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_como_funciona_esto_detrás_de_escena">Como funciona esto detrás de 
escena</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Lo que lo hace trabajar detrás de escena es:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>El <code>JobProcessor</code> quien es el llamador ve que no es de hecho una 
instancia de <code>JobProcessor</code>. Por el contrario es una subclase o 
proxy que tiene todos los métodos sobrescritos. Métodos que deben ser 
asíncronos son tratados distinto.</p>
+</li>
+<li>
+<p>Llamadas a un método asíncrono simplemente retornan un 
<code>Runnable</code> siendo creado que envuelve el método y parámetros que 
tu pasaste. Este runnable es pasado a un
+<a 
href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/Executor.html";>Executor</a>
 quien es simplemente una cola de trabajo adjuntada al conjunto de hilos 
(thread pool).</p>
+</li>
+<li>
+<p>Después de añadir el trabajo a la cola, la versión proxeada del método 
retorna una implementation de <code>Future</code> que es enlazada a el 
<code>Runnable</code> quien está ahora esperando en la cola.</p>
+</li>
+<li>
+<p>Cuando el <code>Runnable</code> finalmente ejecuta el método sobre la 
instancia <em>real</em> del <code>JobProcessor</code>, tomará el valor de 
retorno y lo asignará dentro del <code>Future</code> haciendolo disponible a 
el que llama.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Importante notar que el objeto <code>AsyncResult</code> que 
<code>JobProcessor</code> retorna no es el mismo objeto <code>Future</code> que 
el que llama contiene. Sería genial si el <code>JobProcessor</code> real 
pudiera retornar <code>String</code> y que el que la versión de 
<code>JobProcessor</code> del que llama pudiera retornar 
<code>Future&lt;String&gt;</code>, pero no encontramos una manera de hacer eso 
sin añadir mas complejidad. Entonces el <code>AsyncResult</code> es un simple 
objeto envoltorio. El contenedor sacará el <code>String</code>, descartará el 
<code>AsyncResult</code>, entonces pondrá el <code>String</code> en el 
<code>Future</code> <em>real</em> que el llamador contiene.</p>
+</div>
+<div class="paragraph">
+<p>Para obtener status del proceso, simplemente pasa un objeto thread-safe 
como <a 
href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/atomic/AtomicInteger.html";>AtomicInteger</a>
 a el método <code>@Asynchronous</code> y has que el código lo actualice 
periodicamente con el porcentaje completado.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ejemplos_relacionados">Ejemplos Relacionados</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Para procesamiento asíncrono complejo, la respuesta de JavaEE’s es 
<code>@MessageDrivenBean</code>. Échale una mirada al ejemplo
+<a href="../simple-mdb/README.html">simple-mdb</a></p>
+</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 &copy; 1999-2016 The 
Apache Software Foundation, Licensed under the Apache License, Version 2.0. 
Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE 
project logo are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners.</p>
+                               </div>
+                       </div>
+               </div>
+       </footer>
+       <!-- Holder for mobile navigation -->
+       <div class="mobile-nav">
+        <ul>
+          <li><a hef="../../../latest/docs/admin/index.html">Administrators</a>
+          <li><a hef="../../../latest/docs/developer/index.html">Developers</a>
+          <li><a hef="../../../latest/docs/advanced/index.html">Advanced</a>
+          <li><a hef="../../../community/index.html">Community</a>
+        </ul>
+               <a href="#" class="close-link"><i class="arrow_up"></i></a>
+       </div>
+       <!-- Scripts -->
+       <script src="../../../js/jquery-1.11.1.min.js"></script>
+       <script src="../../../js/owl.carousel.min.js"></script>
+       <script src="../../../js/bootstrap.min.js"></script>
+       <script src="../../../js/wow.min.js"></script>
+       <script src="../../../js/typewriter.js"></script>
+       <script src="../../../js/jquery.onepagenav.js"></script>
+       <script src="../../../js/tree.jquery.js"></script>
+       <script src="../../../js/highlight.pack.js"></script>
+    <script src="../../../js/main.js"></script>
+               </body>
+
+</html>
+

Added: 
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/cdi-application-scope.html
==============================================================================
--- 
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/cdi-application-scope.html
 (added)
+++ 
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/cdi-application-scope.html
 Sat Sep  7 20:36:39 2019
@@ -0,0 +1,355 @@
+<!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>CDI @ApplicationScoped</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 el uso de la anotacioón 
<code>@ApplicationScoped</code> para inyección de objetos.
+Un objeto deberia ser definido como <code>@ApplicationScoped</code> y se crea 
una vez durante la ejecución de la aplicación.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ejemplo">Ejemplo</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Este ejemplo muestra un escenario similar a cdi-request-scope.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>Un huésped del restaurante ordena una sopa al camarero.
+El camarero luego le devuelve la sopa al huésped.
+Otro huésped puede pedir la misma sopa que ordenó el cliente anterior.</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Aquí es donde se utiliza el alcance de la aplicación.</p>
+</div>
+<div class="sect2">
+<h3 id="_camarero">Camarero</h3>
+<div class="paragraph">
+<p>El bean de sesión <code>Waiter</code> recibe una solicitud de la clase de 
ejemplo a través del método <code>orderSoup()</code> y establece el nombre 
para el campo <code>soup</code>.</p>
+</div>
+<div class="paragraph">
+<p>El método <code>orderWhatTheOtherGuyHad()</code> devuelve el nombre del 
campo <code>soup</code>.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@Stateless
+public class Waiter {
+
+    @Inject
+    public Soup soup;
+
+    public String orderSoup(String name){
+        soup.setName(name);
+        return soup.getName();
+    }
+
+    public String orderWhatTheOtherGuyHad() {
+        String name = soup.getName();
+        return name;
+    }
+}</pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_sopa">Sopa</h3>
+<div class="paragraph">
+<p>La clase <code>Soup</code> es un POJO inyectable, definido como 
<code>@ApplicationScoped</code>.
+Esto significa que una instancia se creará solo una vez durante toda la 
aplicación.
+Ahora intente cambiar la anotación <code>@ApplicationScoped</code> a 
<code>@RequestScoped</code> y vea qué sucede.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@ApplicationScoped
+public class Soup {
+
+    private String name = "Soup of the day";
+
+    @PostConstruct
+    public void afterCreate() {
+        System.out.println("Soup created");
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name){
+        this.name = name;
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_caso_de_prueba">Caso de prueba</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Esta es la clase de entrada para este ejemplo.
+Primero se ordena una sopa a través del método <code>orderSoup()</code>.
+Esto inicia el campo <code>soup</code>.
+A continuación, el método <code>orderWhatTheOtherGuyHad()</code> devuelve la 
sopa del contexto de la aplicación.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>public class RestaurantTest {
+
+    private static String TOMATO_SOUP = "Tomato Soup";
+    private EJBContainer container;
+
+    @EJB
+    private Waiter joe;
+
+    @Before
+    public void startContainer() throws Exception {
+        container = EJBContainer.createEJBContainer();
+        container.getContext().bind("inject", this);
+    }
+
+    @Test
+    public void orderSoup(){
+        String someSoup = joe.orderSoup(TOMATO_SOUP);
+        assertEquals(TOMATO_SOUP, someSoup);
+
+        String sameSoup = joe.orderWhatTheOtherGuyHad();
+        assertEquals(TOMATO_SOUP, sameSoup);
+    }
+
+    @After
+    public void closeContainer() throws Exception {
+        container.close();
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ejecución">Ejecución</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>En el resultado de la ejecución puede ver que solo se creó una instancia 
de <code>Soup</code>, una para toda la aplicación.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.cdi.applicationscope.RestaurantTest
+Apache OpenEJB 7.0.0-SNAPSHOT    build: 20111224-11:09
+http://tomee.apache.org/
+INFO - openejb.home = 
C:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-application-scope
+INFO - openejb.base = 
C:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-application-scope
+INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
+INFO - Configuring Service(id=Default Security Service, type=SecurityService, 
provider-id=Default Security Service)
+INFO - Configuring Service(id=Default Transaction Manager, 
type=TransactionManager, provider-id=Default Transaction Manager)
+INFO - Found EjbModule in classpath: 
c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-application-scope\target\classes
+INFO - Beginning load: 
c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-application-scope\target\classes
+INFO - Configuring enterprise application: 
c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-application-scope
+INFO - Configuring Service(id=Default Managed Container, type=Container, 
provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean cdi-application-scope.Comp: 
Container(type=MANAGED, id=Default Managed Container)
+INFO - Configuring Service(id=Default Stateless Container, type=Container, 
provider-id=Default Stateless Container)
+INFO - Auto-creating a container for bean Waiter: Container(type=STATELESS, 
id=Default Stateless Container)
+INFO - Enterprise application 
"c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-application-scope" 
loaded.
+INFO - Assembling app: 
c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-application-scope
+INFO - 
Jndi(name="java:global/cdi-application-scope/Waiter!org.superbiz.cdi.applicationscope.Waiter")
+INFO - Jndi(name="java:global/cdi-application-scope/Waiter")
+INFO - Created Ejb(deployment-id=Waiter, ejb-name=Waiter, container=Default 
Stateless Container)
+INFO - Started Ejb(deployment-id=Waiter, ejb-name=Waiter, container=Default 
Stateless Container)
+INFO - Deployed 
Application(path=c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-application-scope)
+Soup created
+INFO - Undeploying app: 
c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-application-scope
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.42 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0</pre>
+</div>
+</div>
+</div>
+</div>
+            </div>
+            
+        </div>
+    </div>
+<footer>
+               <div class="container">
+                       <div class="row">
+                               <div class="col-sm-6 text-center-mobile">
+                                       <h3 class="white">Be simple.  Be 
certified. Be Tomcat.</h3>
+                                       <h5 class="light regular 
light-white">"A good application in a good server"</h5>
+                                       <ul class="social-footer">
+                                               <li><a 
href="https://www.facebook.com/ApacheTomEE/";><i class="fa 
fa-facebook"></i></a></li>
+                                               <li><a 
href="https://twitter.com/apachetomee";><i class="fa fa-twitter"></i></a></li>
+                                               <li><a 
href="https://plus.google.com/communities/105208241852045684449";><i class="fa 
fa-google-plus"></i></a></li>
+                                       </ul>
+                               </div>
+                               <div class="col-sm-6 text-center-mobile">
+                                       <div class="row opening-hours">
+                                               <div class="col-sm-3 
text-center-mobile">
+                                                       <h5><a 
href="../../../latest/docs/documentation.html" 
class="white">Documentation</a></h5>
+                                                       <ul 
class="list-unstyled">
+                                                               <li><a 
href="../../../latest/docs/admin/configuration/index.html" class="regular 
light-white">How to configure</a></li>
+                                                               <li><a 
href="../../../latest/docs/admin/file-layout.html" class="regular 
light-white">Dir. Structure</a></li>
+                                                               <li><a 
href="../../../latest/docs/developer/testing/index.html" class="regular 
light-white">Testing</a></li>
+                                                               <li><a 
href="../../../latest/docs/admin/cluster/index.html" class="regular 
light-white">Clustering</a></li>
+                                                       </ul>
+                                               </div>
+                                               <div class="col-sm-3 
text-center-mobile">
+                                                       <h5><a 
href="../../../latest/examples/" class="white">Examples</a></h5>
+                                                       <ul 
class="list-unstyled">
+                                                               <li><a 
href="../../../latest/examples/simple-cdi-interceptor.html" class="regular 
light-white">CDI Interceptor</a></li>
+                                                               <li><a 
href="../../../latest/examples/rest-cdi.html" class="regular light-white">REST 
with CDI</a></li>
+                                                               <li><a 
href="../../../latest/examples/ejb-examples.html" class="regular 
light-white">EJB</a></li>
+                                                               <li><a 
href="../../../latest/examples/jsf-managedBean-and-ejb.html" class="regular 
light-white">JSF</a></li>
+                                                       </ul>
+                                               </div>
+                                               <div class="col-sm-3 
text-center-mobile">
+                                                       <h5><a 
href="../../../community/index.html" class="white">Community</a></h5>
+                                                       <ul 
class="list-unstyled">
+                                                               <li><a 
href="../../../community/contributors.html" class="regular 
light-white">Contributors</a></li>
+                                                               <li><a 
href="../../../community/social.html" class="regular 
light-white">Social</a></li>
+                                                               <li><a 
href="../../../community/sources.html" class="regular 
light-white">Sources</a></li>
+                                                       </ul>
+                                               </div>
+                                               <div class="col-sm-3 
text-center-mobile">
+                                                       <h5><a 
href="../../../security/index.html" class="white">Security</a></h5>
+                                                       <ul 
class="list-unstyled">
+                                                               <li><a 
href="http://apache.org/security"; target="_blank" class="regular 
light-white">Apache Security</a></li>
+                                                               <li><a 
href="http://apache.org/security/projects.html"; target="_blank" class="regular 
light-white">Security Projects</a></li>
+                                                               <li><a 
href="http://cve.mitre.org"; target="_blank" class="regular 
light-white">CVE</a></li>
+                                                       </ul>
+                                               </div>
+                                       </div>
+                               </div>
+                       </div>
+                       <div class="row bottom-footer text-center-mobile">
+                               <div class="col-sm-12 light-white">
+                                       <p>Copyright &copy; 1999-2016 The 
Apache Software Foundation, Licensed under the Apache License, Version 2.0. 
Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE 
project logo are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners.</p>
+                               </div>
+                       </div>
+               </div>
+       </footer>
+       <!-- Holder for mobile navigation -->
+       <div class="mobile-nav">
+        <ul>
+          <li><a hef="../../../latest/docs/admin/index.html">Administrators</a>
+          <li><a hef="../../../latest/docs/developer/index.html">Developers</a>
+          <li><a hef="../../../latest/docs/advanced/index.html">Advanced</a>
+          <li><a hef="../../../community/index.html">Community</a>
+        </ul>
+               <a href="#" class="close-link"><i class="arrow_up"></i></a>
+       </div>
+       <!-- Scripts -->
+       <script src="../../../js/jquery-1.11.1.min.js"></script>
+       <script src="../../../js/owl.carousel.min.js"></script>
+       <script src="../../../js/bootstrap.min.js"></script>
+       <script src="../../../js/wow.min.js"></script>
+       <script src="../../../js/typewriter.js"></script>
+       <script src="../../../js/jquery.onepagenav.js"></script>
+       <script src="../../../js/tree.jquery.js"></script>
+       <script src="../../../js/highlight.pack.js"></script>
+    <script src="../../../js/main.js"></script>
+               </body>
+
+</html>
+

Modified: websites/staging/tomee/trunk/content/tomee-8.0/es/examples/index.html
==============================================================================
--- websites/staging/tomee/trunk/content/tomee-8.0/es/examples/index.html 
(original)
+++ websites/staging/tomee/trunk/content/tomee-8.0/es/examples/index.html Sat 
Sep  7 20:36:39 2019
@@ -96,36 +96,42 @@
             <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-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>
             </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 class="col-md-4">
-            <div class="group-title">Unknown</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="index.html">index</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>
         <div class="row">
           <div class="col-md-4">
-            <div class="group-title">Meta-Annotations</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-meta.html">@AccessTimeout la 
forma  Meta-Annotation</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">EJB</div>
+            <div class="group-title">CDI</div>
             <ul class="group">
-              <li class="group-item"><span class="group-item-i" ><i class="fa 
fa-angle-right"></i></span><a href="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="cdi-application-scope.html">CDI 
@ApplicationScoped</a></li>
             </ul>
           </div>
           <div class="col-md-4">
+            <div class="group-title">Meta-Annotations</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-meta.html">@AccessTimeout la 
forma  Meta-Annotation</a></li>
+            </ul>
           </div>
         </div>
 

Added: websites/staging/tomee/trunk/content/tomee-8.0/es/examples/javamail.html
==============================================================================
--- websites/staging/tomee/trunk/content/tomee-8.0/es/examples/javamail.html 
(added)
+++ websites/staging/tomee/trunk/content/tomee-8.0/es/examples/javamail.html 
Sat Sep  7 20:36:39 2019
@@ -0,0 +1,402 @@
+<!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>Javamail API</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 simple para demostrar un uso muy básico de la API 
Javamail.
+Debería ser suficiente para iniciarse en el uso de los paquetes que maneja 
java para correo.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_un_servicio_rest_simple_usando_la_api_javamail">Un servicio REST 
simple usando la API Javamail</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Aquí vemos un endpoint RESTful muy simple que puede ser llamado para 
enviar un correo. No debería ser complicado modificar la aplicación
+para generar otras opciones de configuración adicionales.</p>
+</div>
+<div class="paragraph">
+<p>Este ejemplo no enviará ningún correo, pero si se cambian los parámetros 
para que coincidan con
+su servidor de correo; entonces sí se enviará un mensaje.</p>
+</div>
+<div class="paragraph">
+<p>Puede encontrar información más detallada en:
+<a href="https://java.net/projects/javamail/pages/Home#Samples";>Javamail 
API</a></p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.rest;
+
+import javax.mail.Authenticator;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.PasswordAuthentication;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import java.util.Date;
+import java.util.Properties;
+
+@Path("/email")
+public class EmailService {
+
+    @POST
+    public String lowerCase(final String message) {
+
+        try {
+
+            //Create some properties and get the default Session
+            final Properties props = new Properties();
+            props.put("mail.smtp.host", "your.mailserver.host");
+            props.put("mail.debug", "true");
+
+            final Session session = Session.getInstance(props, new 
Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication("MyUsername", 
"MyPassword");
+                }
+            });
+
+            //Set this just to see some internal logging
+            session.setDebug(true);
+
+            //Create a message
+            final MimeMessage msg = new MimeMessage(session);
+            msg.setFrom(new InternetAddress("your@email.address"));
+            final InternetAddress[] address = {new 
InternetAddress("gene...@email.com")};
+            msg.setRecipients(Message.RecipientType.TO, address);
+            msg.setSubject("JavaMail API test");
+            msg.setSentDate(new Date());
+            msg.setText(message, "UTF-8");
+
+
+            Transport.send(msg);
+        } catch (MessagingException e) {
+            return "Failed to send message: " + e.getMessage();
+        }
+
+        return "Sent";
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_pruebas">Pruebas</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_pruebas_del_servicio_jaxrs">Pruebas del servicio JAXRS</h3>
+<div class="paragraph">
+<p>La prueba usa el ApplicationComposer de OpenEJB por facilidad.</p>
+</div>
+<div class="paragraph">
+<p>La idea es primero activar los servicios jaxrs. Esto se hace utilizando la 
anotación @EnableServices.</p>
+</div>
+<div class="paragraph">
+<p>Luego creamos la aplicación simplemente retornando un objeto que 
representa el web.xml. Aquí, simplemente se usa para definir
+la raíz del contexto, pero puede usarse para definir la aplicación REST 
también. Para completar la definición de la aplicación
+se puede añadir la anotación @Classes, para definir el conjunto de clases a 
utilizar en la aplicación.</p>
+</div>
+<div class="paragraph">
+<p>Finalmente, para hacer pruebas usamos una API cliente cxf para llamar el 
método post() del servicio REST.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.rest;
+
+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.Test;
+import org.junit.runner.RunWith;
+
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+
+@EnableServices(value = "jaxrs")
+@RunWith(ApplicationComposer.class)
+public class EmailServiceTest {
+
+    @Module
+    @Classes(EmailService.class)
+    public WebApp app() {
+        return new WebApp().contextRoot("test");
+    }
+
+    @Test
+    public void post() throws IOException {
+        final String message = 
WebClient.create("http://localhost:4204";).path("/test/email/").post("Hello 
General", String.class);
+        assertEquals("Failed to send message: Unknown SMTP host: 
your.mailserver.host", message);
+    }
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>#Ejecución</p>
+</div>
+<div class="paragraph">
+<p>Correr el ejemplo es bastante simple.  En el directorio "javamail-api" 
ejecute:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>$ mvn clean install</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Lo cual debería crear una salida como la siguiente:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>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: 
D:\github\tomee\examples\javamail\EmailServiceTest
+INFO - Configuring Service(id=Default Managed Container, type=Container, 
provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean org.superbiz.rest.EmailServiceTest: 
Container(type=MANAGED, id=Default Managed Container)
+INFO - Creating Container(id=Default Managed Container)
+INFO - Using directory D:\windows\tmp for stateful session passivation
+INFO - Configuring Service(id=comp/DefaultManagedExecutorService, 
type=Resource, provider-id=Default Executor Service)
+INFO - Auto-creating a Resource with id 'comp/DefaultManagedExecutorService' 
of type 'javax.enterprise.concurrent.ManagedExecutorService for 'test'.
+INFO - Configuring Service(id=comp/DefaultManagedScheduledExecutorService, 
type=Resource, provider-id=Default Scheduled Executor Service)
+INFO - Auto-creating a Resource with id 
'comp/DefaultManagedScheduledExecutorService' of type 
'javax.enterprise.concurrent.ManagedScheduledExecutorService for 'test'.
+INFO - Configuring Service(id=comp/DefaultManagedThreadFactory, type=Resource, 
provider-id=Default Managed Thread Factory)
+INFO - Auto-creating a Resource with id 'comp/DefaultManagedThreadFactory' of 
type 'javax.enterprise.concurrent.ManagedThreadFactory for 'test'.
+INFO - Enterprise application 
"D:\github\tomee\examples\javamail\EmailServiceTest" loaded.
+INFO - Creating dedicated application classloader for EmailServiceTest
+INFO - Assembling app: D:\github\tomee\examples\javamail\EmailServiceTest
+INFO - Using providers:
+INFO -      org.apache.johnzon.jaxrs.JohnzonProvider@2687f956
+INFO -      org.apache.cxf.jaxrs.provider.JAXBElementProvider@1ded7b14
+INFO -      org.apache.johnzon.jaxrs.JsrProvider@29be7749
+INFO -      org.apache.johnzon.jaxrs.WadlDocumentMessageBodyWriter@5f84abe8
+INFO -      org.apache.openejb.server.cxf.rs.EJBAccessExceptionMapper@4650a407
+INFO -      org.apache.cxf.jaxrs.validation.ValidationExceptionMapper@30135202
+INFO - REST Application: http://127.0.0.1:4204/test/       -&gt; 
org.apache.openejb.server.rest.InternalApplication
+INFO -      Service URI: http://127.0.0.1:4204/test/email  -&gt; Pojo 
org.superbiz.rest.EmailService
+INFO -              POST http://127.0.0.1:4204/test/email/ -&gt;      String 
lowerCase(String)
+INFO - Deployed 
Application(path=D:\github\tomee\examples\javamail\EmailServiceTest)
+DEBUG: JavaMail version 1.4ea
+DEBUG: java.io.FileNotFoundException: D:\java\jdk8\jre\lib\javamail.providers 
(The system cannot find the file specified)
+DEBUG: !anyLoaded
+DEBUG: not loading resource: /META-INF/javamail.providers
+DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
+DEBUG: Tables of loaded providers
+DEBUG: Providers Listed By Class Name: 
{com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun
 Microsystems, Inc], 
com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun
 Microsystems, Inc], 
com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun
 Microsystems, Inc], 
com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun
 Microsystems, Inc], 
com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun
 Microsystems, Inc], 
com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun
 Microsystems, Inc]}
+DEBUG: Providers Listed By Protocol: 
{imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun 
Microsystems, Inc], 
imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun 
Microsystems, Inc], 
smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun
 Microsystems, Inc], 
pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun 
Microsystems, Inc], 
pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun 
Microsystems, Inc], 
smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun 
Microsystems, Inc]}
+DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
+DEBUG: !anyLoaded
+DEBUG: not loading resource: /META-INF/javamail.address.map
+DEBUG: java.io.FileNotFoundException: 
D:\java\jdk8\jre\lib\javamail.address.map (The system cannot find the file 
specified)
+DEBUG: setDebug: JavaMail version 1.4ea
+DEBUG: getProvider() returning 
javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun 
Microsystems, Inc]
+DEBUG SMTP: useEhlo true, useAuth false
+DEBUG SMTP: trying to connect to host "your.mailserver.host", port 25, isSSL 
false
+INFO - Undeploying app: D:\github\tomee\examples\javamail\EmailServiceTest
+INFO - Stopping network services
+INFO - Stopping server services</pre>
+</div>
+</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 &copy; 1999-2016 The 
Apache Software Foundation, Licensed under the Apache License, Version 2.0. 
Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE 
project logo are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners.</p>
+                               </div>
+                       </div>
+               </div>
+       </footer>
+       <!-- Holder for mobile navigation -->
+       <div class="mobile-nav">
+        <ul>
+          <li><a hef="../../../latest/docs/admin/index.html">Administrators</a>
+          <li><a hef="../../../latest/docs/developer/index.html">Developers</a>
+          <li><a hef="../../../latest/docs/advanced/index.html">Advanced</a>
+          <li><a hef="../../../community/index.html">Community</a>
+        </ul>
+               <a href="#" class="close-link"><i class="arrow_up"></i></a>
+       </div>
+       <!-- Scripts -->
+       <script src="../../../js/jquery-1.11.1.min.js"></script>
+       <script src="../../../js/owl.carousel.min.js"></script>
+       <script src="../../../js/bootstrap.min.js"></script>
+       <script src="../../../js/wow.min.js"></script>
+       <script src="../../../js/typewriter.js"></script>
+       <script src="../../../js/jquery.onepagenav.js"></script>
+       <script src="../../../js/tree.jquery.js"></script>
+       <script src="../../../js/highlight.pack.js"></script>
+    <script src="../../../js/main.js"></script>
+               </body>
+
+</html>
+

Modified: 
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/mp-config-example.html
==============================================================================
--- 
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/mp-config-example.html
 (original)
+++ 
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/mp-config-example.html
 Sat Sep  7 20:36:39 2019
@@ -113,6 +113,14 @@
 </div>
 </div>
 <div class="sect1">
+<h2 id="_microprofile_config_properties">microprofile-config.properties</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Este es el archivo que contiene los valores a ser interpretados por MP 
Config.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
 <h2 id="_api">API</h2>
 <div class="sectionbody">
 <div class="paragraph">

Added: 
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/mp-custom-healthcheck.html
==============================================================================
--- 
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/mp-custom-healthcheck.html
 (added)
+++ 
websites/staging/tomee/trunk/content/tomee-8.0/es/examples/mp-custom-healthcheck.html
 Sat Sep  7 20:36:39 2019
@@ -0,0 +1,342 @@
+<!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>MicroProfile Custom Health Check</h1>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+            
+            <div class="col-md-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>
+<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>
+</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>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-json" 
data-lang="json">{"checks":[],"outcome":"UP","status":"UP"}</code></pre>
+</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>
+</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>
+</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>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">@Health
+@ApplicationScoped
+public class WeatherServiceHealthCheck implements HealthCheck {
+
+    @Inject WeatherGateway weatherGateway;
+
+    @Override
+    public HealthCheckResponse call() {
+        HealthCheckResponseBuilder responseBuilder = 
HealthCheckResponse.named("OpenWeatherMap");
+        try {
+            WeatherApiStatus status = weatherGateway.getApiStatus();
+            return responseBuilder.withData("weatherServiceApiUrl", 
status.getUrl())
+                    .withData("weatherServiceApiVersion", status.getVersion())
+                    .withData("weatherServiceMessage", status.getMessage())
+                    .up().build();
+        } catch (WeatherException e) {
+            return responseBuilder.withData("weatherServiceErrorMessage", 
e.getMessage()).down().build();
+        }
+    }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>En el anterior ejemplo, el enlace de estado es: <a 
href="https://openweathermap.org/appid";>OpenWeatherMap</a> (<em>solamente 
ilustrativo</em>) que proporciona una suscripción al plan para acceder los 
servicios y si el limite de llamadas a la API se excede no estará disponible 
hasta que se renueve las suscripción.</p>
+</div>
+<h3 id="_ejemplos" class="discrete">Ejemplos</h3>
+<div class="listingblock">
+<div class="title">Ejecutando la aplicación</div>
+<div class="content">
+<pre>    mvn clean install tomee:run</pre>
+</div>
+</div>
+<h4 id="_ejemplo_1" class="discrete">Ejemplo 1</h4>
+<div class="paragraph">
+<p>Cuando se accede al enlace /health , OpenWeatherMap nos dice que nuestras 
llamadas disponibles se están acabando y que deberíamos tomar acción antes 
de que se agoten.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>curl http://localhost:8080/mp-custom-healthcheck/health</pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-json" data-lang="json">{
+   "checks":[
+      {
+         "data":{
+            "weatherServiceApiVersion":"2.5",
+            "weatherServiceMessage":"Your account will become unavailable soon 
due to limitation of your
+                                    subscription type. Remaining API calls are 
1",
+            "weatherServiceApiUrl":"http://api.openweathermap.org/data/2.5/";
+         },
+         "name":"OpenWeatherMap",
+         "state":"UP"
+      }
+   ],
+   "outcome":"UP",
+   "status":"UP"
+}</code></pre>
+</div>
+</div>
+<h4 id="_ejemplo_2" class="discrete">Ejemplo 2</h4>
+<div class="paragraph">
+<p>La API del clima continua funcionando bien.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>curl http://localhost:8080/mp-custom-healthcheck/weather/day/status</pre>
+</div>
+</div>
+<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>
+<h4 id="_ejemplo_3" class="discrete">Ejemplo 3</h4>
+<div class="paragraph">
+<p>Si accedemos una vez más al enlace /health, OpenWeatherMap nos dice que 
nuestra cuenta se encuentra temporalmente  bloqueada y el servicio se reporta 
como caído (DOWN).</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>curl http://localhost:8080/mp-custom-healthcheck/health</pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-json" data-lang="json">{
+   "checks":[
+      {
+         "data":{
+            "weatherServiceErrorMessage":"Your account is temporary blocked 
due to exceeding of
+            requests limitation of your subscription type. Please choose the 
proper subscription
+            http://openweathermap.org/price";
+         },
+         "name":"weatherservice",
+         "state":"DOWN"
+      }
+   ],
+   "outcome":"DOWN",
+   "status":"DOWN"
+}</code></pre>
+</div>
+</div>
+<h4 id="_ejemplo_4" class="discrete">Ejemplo 4</h4>
+<div class="paragraph">
+<p>La API del clima se ha detenido.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>curl http://localhost:8080/mp-custom-healthcheck/weather/day/status</pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-text" data-lang="text">Weather 
Service is unavailable at moment, retry later.</code></pre>
+</div>
+</div>
+<h5 id="_ejecutando_los_tests" class="discrete">Ejecutando los tests</h5>
+<div class="paragraph">
+<p>Se puede probar usando el enlace <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>mvn clean test</pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>[INFO] Results:
+[INFO]
+[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped:</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 &copy; 1999-2016 The 
Apache Software Foundation, Licensed under the Apache License, Version 2.0. 
Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE 
project logo are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners.</p>
+                               </div>
+                       </div>
+               </div>
+       </footer>
+       <!-- Holder for mobile navigation -->
+       <div class="mobile-nav">
+        <ul>
+          <li><a hef="../../../latest/docs/admin/index.html">Administrators</a>
+          <li><a hef="../../../latest/docs/developer/index.html">Developers</a>
+          <li><a hef="../../../latest/docs/advanced/index.html">Advanced</a>
+          <li><a hef="../../../community/index.html">Community</a>
+        </ul>
+               <a href="#" class="close-link"><i class="arrow_up"></i></a>
+       </div>
+       <!-- Scripts -->
+       <script src="../../../js/jquery-1.11.1.min.js"></script>
+       <script src="../../../js/owl.carousel.min.js"></script>
+       <script src="../../../js/bootstrap.min.js"></script>
+       <script src="../../../js/wow.min.js"></script>
+       <script src="../../../js/typewriter.js"></script>
+       <script src="../../../js/jquery.onepagenav.js"></script>
+       <script src="../../../js/tree.jquery.js"></script>
+       <script src="../../../js/highlight.pack.js"></script>
+    <script src="../../../js/main.js"></script>
+               </body>
+
+</html>
+


Reply via email to