Added: tomee/site/trunk/content/master/pt/examples/cdi-produces-disposes.html
URL: 
http://svn.apache.org/viewvc/tomee/site/trunk/content/master/pt/examples/cdi-produces-disposes.html?rev=1866555&view=auto
==============================================================================
--- tomee/site/trunk/content/master/pt/examples/cdi-produces-disposes.html 
(added)
+++ tomee/site/trunk/content/master/pt/examples/cdi-produces-disposes.html Sat 
Sep  7 14:25:49 2019
@@ -0,0 +1,532 @@
+<!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 Produces Disposes</h1>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+            
+            <div class="col-md-12">
+                <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Esté exemplo demostra como as anotações @Produces e @Disposes trabalham. 
Um LogFactory cria uma instância do LogHandler
+dependendo de um atributo "type". Para o propósito deste exemplo, o type é 
hard-coded para especificar um valor.
+Uma implementação Logger deve conter uma lista de LogHandlers.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>Teremos três implementações da interface LogHandler:</pre>
+</div>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Uma DatabaseHandler</p>
+</li>
+<li>
+<p>Uma FileHandler</p>
+</li>
+<li>
+<p>Uma ConsoleHandler</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>O DatabaseHandler aparentemente gravaria os logs em um banco de dados.</p>
+</div>
+<div class="paragraph">
+<p>O FileHandler gravaria os logs em um arquivo.</p>
+</div>
+<div class="paragraph">
+<p>O ConsoleHandler apenas imprimiria os logs para um console (saída 
padrão).</p>
+</div>
+<div class="paragraph">
+<p>Esté exemplo é apenas uma ilustração de como os conceitos dentro do CDI 
funcionam e não destina-se a fornecer uma implementação/design de um 
framework de log.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_consolehandler">ConsoleHandler</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.disposes;
+
+public class ConsoleHandler implements LogHandler {
+
+    private String name;
+
+    public ConsoleHandler(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public void writeLog(String s) {
+        System.out.printf("##### Handler: %s, Writing to the console!\n", 
getName());
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_databasehandler">DatabaseHandler</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.disposes;
+
+public class DatabaseHandler implements LogHandler {
+
+    private String name;
+
+    public DatabaseHandler(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public void writeLog(String s) {
+        System.out.printf("##### Handler: %s, Writing to the database!\n", 
getName());
+        // Use conexão para gravar log no banco de dados
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_filehandler">FileHandler</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.disposes;
+
+public class FileHandler implements LogHandler {
+
+    private String name;
+
+    public FileHandler(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public void writeLog(String s) {
+        System.out.printf("##### Handler: %s, Writing to the file!\n", 
getName());
+        // Escreva para o arquivo de log
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_logfactory">LogFactory</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.disposes;
+
+import javax.enterprise.inject.Disposes;
+import javax.enterprise.inject.Produces;
+
+public class LogFactory {
+
+    private int type = 2;
+
+    @Produces
+    public LogHandler getLogHandler() {
+        switch (type) {
+            case 1:
+                return new FileHandler("@Produces created FileHandler!");
+            case 2:
+                return new DatabaseHandler("@Produces created 
DatabaseHandler!");
+            case 3:
+            default:
+                return new ConsoleHandler("@Produces created ConsoleHandler!");
+        }
+    }
+
+    public void closeLogHandler(@Disposes LogHandler handler) {
+        switch (type) {
+            case 1:
+                System.out.println("Closing File handler!");
+                break;
+            case 2:
+                System.out.println("Closing DB handler!");
+                break;
+            case 3:
+            default:
+                System.out.println("Closing Console handler!");
+        }
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_logger">Logger</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.disposes;
+
+public interface Logger {
+
+    public void log(String s);
+
+    public LogHandler getHandler();
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_loggerimpl">LoggerImpl</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.disposes;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+@Named("logger")
+public class LoggerImpl implements Logger {
+
+    @Inject
+    private LogHandler handler;
+
+    @Override
+    public void log(String s) {
+        getHandler().writeLog(s);
+    }
+
+    public LogHandler getHandler() {
+        return handler;
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_loghandler">LogHandler</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.disposes;
+
+public interface LogHandler {
+
+    public String getName();
+
+    public void writeLog(String s);
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_beans_xml">beans.xml</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>&lt;beans xmlns="http://java.sun.com/xml/ns/javaee"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+                            
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"&gt;
+
+&lt;/beans&gt;</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_loggertest">LoggerTest</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.disposes;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.ejb.embeddable.EJBContainer;
+import javax.inject.Inject;
+import javax.naming.Context;
+
+import static junit.framework.Assert.assertNotNull;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class LoggerTest {
+
+    @Inject
+    Logger logger;
+
+    private Context ctxt;
+
+    @Before
+    public void setUp() {
+        try {
+            ctxt = EJBContainer.createEJBContainer().getContext();
+            ctxt.bind("inject", this);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @After
+    public void cleanUp() {
+        try {
+            ctxt.unbind("inject");
+            ctxt.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Test
+    public void testLogHandler() {
+        assertNotNull(logger);
+        assertFalse("Handler should not be a ConsoleHandler", 
logger.getHandler() instanceof ConsoleHandler);
+        assertFalse("Handler should not be a FileHandler", logger.getHandler() 
instanceof FileHandler);
+        assertTrue("Handler should be a DatabaseHandler", logger.getHandler() 
instanceof DatabaseHandler);
+        logger.log("##### Testing write\n");
+        logger = null;
+    }
+
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<h1 id="_executando" class="sect0">Executando</h1>
+<div class="literalblock">
+<div class="content">
+<pre>-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.cdi.produces.disposes.LoggerTest
+Apache OpenEJB 4.0.0-beta-1    build: 20111002-04:06
+http://tomee.apache.org/
+INFO - openejb.home = /Users/dblevins/examples/cdi-produces-disposes
+INFO - openejb.base = /Users/dblevins/examples/cdi-produces-disposes
+INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
+INFO - Configuring Service(id=Default Security Service, type=SecurityService, 
provider-id=Default Security Service)
+INFO - Configuring Service(id=Default Transaction Manager, 
type=TransactionManager, provider-id=Default Transaction Manager)
+INFO - Found EjbModule in classpath: 
/Users/dblevins/examples/cdi-produces-disposes/target/classes
+INFO - Beginning load: 
/Users/dblevins/examples/cdi-produces-disposes/target/classes
+INFO - Configuring enterprise application: 
/Users/dblevins/examples/cdi-produces-disposes
+INFO - Configuring Service(id=Default Managed Container, type=Container, 
provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean cdi-produces-disposes.Comp: 
Container(type=MANAGED, id=Default Managed Container)
+INFO - Enterprise application "/Users/dblevins/examples/cdi-produces-disposes" 
loaded.
+INFO - Assembling app: /Users/dblevins/examples/cdi-produces-disposes
+INFO - 
Jndi(name="java:global/cdi-produces-disposes/cdi-produces-disposes.Comp!org.apache.openejb.BeanContext$Comp")
+INFO - 
Jndi(name="java:global/cdi-produces-disposes/cdi-produces-disposes.Comp")
+INFO - 
Jndi(name="java:global/EjbModule10202458/org.superbiz.cdi.produces.disposes.LoggerTest!org.superbiz.cdi.produces.disposes.LoggerTest")
+INFO - 
Jndi(name="java:global/EjbModule10202458/org.superbiz.cdi.produces.disposes.LoggerTest")
+INFO - Created Ejb(deployment-id=cdi-produces-disposes.Comp, 
ejb-name=cdi-produces-disposes.Comp, container=Default Managed Container)
+INFO - Created 
Ejb(deployment-id=org.superbiz.cdi.produces.disposes.LoggerTest, 
ejb-name=org.superbiz.cdi.produces.disposes.LoggerTest, container=Default 
Managed Container)
+INFO - Started Ejb(deployment-id=cdi-produces-disposes.Comp, 
ejb-name=cdi-produces-disposes.Comp, container=Default Managed Container)
+INFO - Started 
Ejb(deployment-id=org.superbiz.cdi.produces.disposes.LoggerTest, 
ejb-name=org.superbiz.cdi.produces.disposes.LoggerTest, container=Default 
Managed Container)
+INFO - Deployed 
Application(path=/Users/dblevins/examples/cdi-produces-disposes)
+##### Handler: @Produces created DatabaseHandler!, Writing to the database!
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.02 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0</pre>
+</div>
+</div>
+            </div>
+            
+        </div>
+    </div>
+<footer>
+               <div class="container">
+                       <div class="row">
+                               <div class="col-sm-6 text-center-mobile">
+                                       <h3 class="white">Be simple.  Be 
certified. Be Tomcat.</h3>
+                                       <h5 class="light regular 
light-white">"A good application in a good server"</h5>
+                                       <ul class="social-footer">
+                                               <li><a 
href="https://www.facebook.com/ApacheTomEE/";><i class="fa 
fa-facebook"></i></a></li>
+                                               <li><a 
href="https://twitter.com/apachetomee";><i class="fa fa-twitter"></i></a></li>
+                                               <li><a 
href="https://plus.google.com/communities/105208241852045684449";><i class="fa 
fa-google-plus"></i></a></li>
+                                       </ul>
+                               </div>
+                               <div class="col-sm-6 text-center-mobile">
+                                       <div class="row opening-hours">
+                                               <div class="col-sm-3 
text-center-mobile">
+                                                       <h5><a 
href="../../../latest/docs/documentation.html" 
class="white">Documentation</a></h5>
+                                                       <ul 
class="list-unstyled">
+                                                               <li><a 
href="../../../latest/docs/admin/configuration/index.html" class="regular 
light-white">How to configure</a></li>
+                                                               <li><a 
href="../../../latest/docs/admin/file-layout.html" class="regular 
light-white">Dir. Structure</a></li>
+                                                               <li><a 
href="../../../latest/docs/developer/testing/index.html" class="regular 
light-white">Testing</a></li>
+                                                               <li><a 
href="../../../latest/docs/admin/cluster/index.html" class="regular 
light-white">Clustering</a></li>
+                                                       </ul>
+                                               </div>
+                                               <div class="col-sm-3 
text-center-mobile">
+                                                       <h5><a 
href="../../../latest/examples/" class="white">Examples</a></h5>
+                                                       <ul 
class="list-unstyled">
+                                                               <li><a 
href="../../../latest/examples/simple-cdi-interceptor.html" class="regular 
light-white">CDI Interceptor</a></li>
+                                                               <li><a 
href="../../../latest/examples/rest-cdi.html" class="regular light-white">REST 
with CDI</a></li>
+                                                               <li><a 
href="../../../latest/examples/ejb-examples.html" class="regular 
light-white">EJB</a></li>
+                                                               <li><a 
href="../../../latest/examples/jsf-managedBean-and-ejb.html" class="regular 
light-white">JSF</a></li>
+                                                       </ul>
+                                               </div>
+                                               <div class="col-sm-3 
text-center-mobile">
+                                                       <h5><a 
href="../../../community/index.html" class="white">Community</a></h5>
+                                                       <ul 
class="list-unstyled">
+                                                               <li><a 
href="../../../community/contributors.html" class="regular 
light-white">Contributors</a></li>
+                                                               <li><a 
href="../../../community/social.html" class="regular 
light-white">Social</a></li>
+                                                               <li><a 
href="../../../community/sources.html" class="regular 
light-white">Sources</a></li>
+                                                       </ul>
+                                               </div>
+                                               <div class="col-sm-3 
text-center-mobile">
+                                                       <h5><a 
href="../../../security/index.html" class="white">Security</a></h5>
+                                                       <ul 
class="list-unstyled">
+                                                               <li><a 
href="http://apache.org/security"; target="_blank" class="regular 
light-white">Apache Security</a></li>
+                                                               <li><a 
href="http://apache.org/security/projects.html"; target="_blank" class="regular 
light-white">Security Projects</a></li>
+                                                               <li><a 
href="http://cve.mitre.org"; target="_blank" class="regular 
light-white">CVE</a></li>
+                                                       </ul>
+                                               </div>
+                                       </div>
+                               </div>
+                       </div>
+                       <div class="row bottom-footer text-center-mobile">
+                               <div class="col-sm-12 light-white">
+                                       <p>Copyright &copy; 1999-2016 The 
Apache Software Foundation, Licensed under the Apache License, Version 2.0. 
Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE 
project logo are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners.</p>
+                               </div>
+                       </div>
+               </div>
+       </footer>
+       <!-- Holder for mobile navigation -->
+       <div class="mobile-nav">
+        <ul>
+          <li><a hef="../../../latest/docs/admin/index.html">Administrators</a>
+          <li><a hef="../../../latest/docs/developer/index.html">Developers</a>
+          <li><a hef="../../../latest/docs/advanced/index.html">Advanced</a>
+          <li><a hef="../../../community/index.html">Community</a>
+        </ul>
+               <a href="#" class="close-link"><i class="arrow_up"></i></a>
+       </div>
+       <!-- Scripts -->
+       <script src="../../../js/jquery-1.11.1.min.js"></script>
+       <script src="../../../js/owl.carousel.min.js"></script>
+       <script src="../../../js/bootstrap.min.js"></script>
+       <script src="../../../js/wow.min.js"></script>
+       <script src="../../../js/typewriter.js"></script>
+       <script src="../../../js/jquery.onepagenav.js"></script>
+       <script src="../../../js/tree.jquery.js"></script>
+       <script src="../../../js/highlight.pack.js"></script>
+    <script src="../../../js/main.js"></script>
+               </body>
+
+</html>
+

Added: tomee/site/trunk/content/master/pt/examples/cdi-produces-field.html
URL: 
http://svn.apache.org/viewvc/tomee/site/trunk/content/master/pt/examples/cdi-produces-field.html?rev=1866555&view=auto
==============================================================================
--- tomee/site/trunk/content/master/pt/examples/cdi-produces-field.html (added)
+++ tomee/site/trunk/content/master/pt/examples/cdi-produces-field.html Sat Sep 
 7 14:25:49 2019
@@ -0,0 +1,526 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+       <meta charset="UTF-8">
+       <meta http-equiv="X-UA-Compatible" content="IE=edge">
+       <meta name="viewport" content="width=device-width, initial-scale=1">
+       <title>Apache TomEE</title>
+       <meta name="description"
+                 content="Apache TomEE is a lightweight, yet powerful, JavaEE 
Application server with feature rich tooling." />
+       <meta name="keywords" 
content="tomee,asf,apache,javaee,jee,shade,embedded,test,junit,applicationcomposer,maven,arquillian"
 />
+       <meta name="author" content="Luka Cvetinovic for Codrops" />
+       <link rel="icon" href="../../../favicon.ico">
+       <link rel="icon"  type="image/png" href="../../../favicon.png">
+       <meta name="msapplication-TileColor" content="#80287a">
+       <meta name="theme-color" content="#80287a">
+       <link rel="stylesheet" type="text/css" 
href="../../../css/normalize.css">
+       <link rel="stylesheet" type="text/css" 
href="../../../css/bootstrap.css">
+       <link rel="stylesheet" type="text/css" href="../../../css/owl.css">
+       <link rel="stylesheet" type="text/css" href="../../../css/animate.css">
+       <link rel="stylesheet" type="text/css" 
href="../../../fonts/font-awesome-4.1.0/css/font-awesome.min.css">
+       <link rel="stylesheet" type="text/css" 
href="../../../fonts/eleganticons/et-icons.css">
+       <link rel="stylesheet" type="text/css" href="../../../css/jqtree.css">
+       <link rel="stylesheet" type="text/css" href="../../../css/idea.css">
+       <link rel="stylesheet" type="text/css" href="../../../css/cardio.css">
+
+       <script type="text/javascript">
+
+      var _gaq = _gaq || [];
+      _gaq.push(['_setAccount', 'UA-2717626-1']);
+      _gaq.push(['_setDomainName', 'apache.org']);
+      _gaq.push(['_trackPageview']);
+
+      (function() {
+        var ga = document.createElement('script'); ga.type = 
'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+      })();
+
+    </script>
+</head>
+
+<body>
+    <div class="preloader">
+               <img src="../../../img/loader.gif" alt="Preloader image">
+       </div>
+           <nav class="navbar">
+               <div class="container">
+                 <div class="row">          <div class="col-md-12">
+
+                       <!-- Brand and toggle get grouped for better mobile 
display -->
+                       <div class="navbar-header">
+                               <button type="button" class="navbar-toggle 
collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+                                       <span class="sr-only">Toggle 
navigation</span>
+                                       <span class="icon-bar"></span>
+                                       <span class="icon-bar"></span>
+                                       <span class="icon-bar"></span>
+                               </button>
+                               <a class="navbar-brand" href="/">
+                                   <span>
+
+                                   
+                        <img src="../../../img/logo-active.png">
+                    
+
+                    </span>
+                                   Apache TomEE
+                </a>
+                       </div>
+                       <!-- Collect the nav links, forms, and other content 
for toggling -->
+                       <div class="collapse navbar-collapse" 
id="bs-example-navbar-collapse-1">
+                               <ul class="nav navbar-nav navbar-right 
main-nav">
+                                       <li><a 
href="../../../docs.html">Documentation</a></li>
+                                       <li><a 
href="../../../community/index.html">Community</a></li>
+                                       <li><a 
href="../../../security/security.html">Security</a></li>
+                                       <li><a 
href="../../../download-ng.html">Downloads</a></li>
+                               </ul>
+                       </div>
+                       <!-- /.navbar-collapse -->
+                  </div></div>
+               </div>
+               <!-- /.container-fluid -->
+       </nav>
+
+
+    <div id="main-block" class="container main-block">
+        <div class="row title">
+          <div class="col-md-12">
+            <div class='page-header'>
+              
+              <h1>CDI Field Producer</h1>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+            
+            <div class="col-md-12">
+                <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Este exemplo mostra o uso da anotação <code>@Produces</code>. 
<code>@Produces</code> é um mecanismo do CDI que permite definir uma fonte 
para injeção. Este exemplo mostra uma das duas formas de declarar um 
producer. Ao invés de um produces method (veja no exemplo 
CDI-produces-disposes), um producer field pode ser usado. Um producer field 
pode ser usado ao invés de um simples método getter. Isso pode ser usado para 
injetar recursos como, contexto de persistência. Uma ressalva para o uso de 
produces fields sobre produces method é que um método <code>@Disposes</code> 
não pode ser usado junto de um <code>@Produces</code> field.</p>
+</div>
+<div class="paragraph">
+<p>Para o proposito deste exemplo, <code>type</code> é hard-coded em um valor 
especifico. Uma implementação de Logger deve conter uma lista de LogHandlers. 
Nós devemos ter três implementações da interface LogHandler.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Uma DatabaseHandler</p>
+</li>
+<li>
+<p>Uma FileHandler</p>
+</li>
+<li>
+<p>Uma ConsoleHandler</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>A implementação DatabaseHandler aparentemente gravaria os logs em um 
banco de dados. O FileHandler gravaria os mesmos logs em um arquivo. E o 
ConsoleHandler apenas imprimiria os logs no console. Este exemplo é apenas uma 
ilustração de como os conceitos dentro do CDI funcionam e não tem a 
intenção de fornecer uma implementação/design de estrutura de log.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_consolehandler">ConsoleHandler</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.field;
+
+public class ConsoleHandler implements LogHandler {
+
+    private String name;
+
+    public ConsoleHandler(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public void writeLog(String s) {
+        System.out.printf("##### Handler: %s, Writing to the console!\n", 
getName());
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_databasehandler">DatabaseHandler</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.field;
+
+public class DatabaseHandler implements LogHandler {
+
+    private String name;
+
+    public DatabaseHandler(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public void writeLog(String s) {
+        System.out.printf("##### Handler: %s, Writing to the database!\n", 
getName());
+        // Use connection to write log to database
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_filehandler">FileHandler</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.field;
+
+public class FileHandler implements LogHandler {
+
+    private String name;
+
+    public FileHandler(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public void writeLog(String s) {
+        System.out.printf("##### Handler: %s, Writing to the file!\n", 
getName());
+        // Escreve para o arquivo de log
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_logfactory">LogFactory</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.field;
+
+import javax.enterprise.inject.Produces;
+
+public class LogFactory {
+
+    private int type = 2;
+
+    @Produces
+    LogHandler handler;
+
+    public LogFactory(){
+       handler = getLogHandler();
+    }
+
+    public LogHandler getLogHandler() {
+        switch (type) {
+            case 1:
+                return new FileHandler("@Produces created FileHandler!");
+            case 2:
+                return new DatabaseHandler("@Produces created 
DatabaseHandler!");
+            case 3:
+            default:
+                return new ConsoleHandler("@Produces created ConsoleHandler!");
+        }
+
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_logger">Logger</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.field;
+
+public interface Logger {
+
+    public void log(String s);
+
+    public LogHandler getHandler();
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_loggerimpl">LoggerImpl</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.field;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+@Named("logger")
+public class LoggerImpl implements Logger {
+
+    @Inject
+    private LogHandler handler;
+
+    @Override
+    public void log(String s) {
+        getHandler().writeLog(s);
+    }
+
+    public LogHandler getHandler() {
+        return handler;
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_loghandler">LogHandler</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.field;
+
+public interface LogHandler {
+
+    public String getName();
+
+    public void writeLog(String s);
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_beans_xml">beans.xml</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>&lt;beans xmlns="http://java.sun.com/xml/ns/javaee"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+                            
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"&gt;
+
+&lt;/beans&gt;</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_loggertest">LoggerTest</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>package org.superbiz.cdi.produces.field;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.ejb.embeddable.EJBContainer;
+import javax.inject.Inject;
+import javax.naming.Context;
+
+import static junit.framework.Assert.assertNotNull;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class LoggerTest {
+
+    @Inject
+    Logger logger;
+
+    private Context ctxt;
+
+    @Before
+    public void setUp() {
+        try {
+            ctxt = EJBContainer.createEJBContainer().getContext();
+            ctxt.bind("inject", this);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @After
+    public void cleanUp() {
+        try {
+            ctxt.unbind("inject");
+            ctxt.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Test
+    public void testLogHandler() {
+        assertNotNull(logger);
+        assertFalse("Handler should not be a ConsoleHandler", 
logger.getHandler() instanceof ConsoleHandler);
+        assertFalse("Handler should not be a FileHandler", logger.getHandler() 
instanceof FileHandler);
+        assertTrue("Handler should be a DatabaseHandler", logger.getHandler() 
instanceof DatabaseHandler);
+        logger.log("##### Testing write\n");
+        logger = null;
+    }
+
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<h1 id="_executando" class="sect0">Executando</h1>
+<div class="literalblock">
+<div class="content">
+<pre>-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.cdi.produces.field.LoggerTest
+INFO - 
********************************************************************************
+INFO - OpenEJB http://tomee.apache.org/
+INFO - Startup: Thu May 10 01:28:19 CDT 2012
+INFO - Copyright 1999-2012 (C) Apache OpenEJB Project, All Rights Reserved.
+INFO - Version: 7.0.0-SNAPSHOT
+INFO - Build date: 20120510
+INFO - Build time: 04:06
+INFO - 
********************************************************************************
+INFO - openejb.home = 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
+INFO - openejb.base = 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
+INFO - Created new singletonService 
org.apache.openejb.cdi.ThreadSingletonServiceImpl@a81b1fb
+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 - Inspecting classpath for applications: 26 urls. Consider adjusting your 
exclude/include.  Current settings: openejb.deployments.classpath.exclude='', 
openejb.deployments.classpath.include='.*'
+INFO - Searched 26 classpath urls in 2015 milliseconds.  Average 77 
milliseconds per url.
+INFO - Beginning load: 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field/target/classes
+INFO - Configuring enterprise application: 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
+INFO - Auto-deploying ejb cdi-produces-field.Comp: 
EjbDeployment(deployment-id=cdi-produces-field.Comp)
+INFO - Configuring Service(id=Default Managed Container, type=Container, 
provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean cdi-produces-field.Comp: 
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/daniel/projects/openejb/source/openejb/examples/cdi-produces-field" 
loaded.
+INFO - Assembling app: 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
+INFO - ignoreXmlConfiguration == true
+INFO - ignoreXmlConfiguration == true
+INFO - existing thread singleton service in SystemInstance() 
org.apache.openejb.cdi.ThreadSingletonServiceImpl@a81b1fb
+INFO - OpenWebBeans Container is starting...
+INFO - Adding OpenWebBeansPlugin : [CdiPlugin]
+INFO - All injection points were validated successfully.
+INFO - OpenWebBeans Container has started, it took [69] ms.
+INFO - Deployed 
Application(path=/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field)
+##### Handler: @Produces created DatabaseHandler!, Writing to the database!
+INFO - Undeploying app: 
/home/daniel/projects/openejb/source/openejb/examples/cdi-produces-field
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.79 sec
+
+Results :
+
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0</pre>
+</div>
+</div>
+            </div>
+            
+        </div>
+    </div>
+<footer>
+               <div class="container">
+                       <div class="row">
+                               <div class="col-sm-6 text-center-mobile">
+                                       <h3 class="white">Be simple.  Be 
certified. Be Tomcat.</h3>
+                                       <h5 class="light regular 
light-white">"A good application in a good server"</h5>
+                                       <ul class="social-footer">
+                                               <li><a 
href="https://www.facebook.com/ApacheTomEE/";><i class="fa 
fa-facebook"></i></a></li>
+                                               <li><a 
href="https://twitter.com/apachetomee";><i class="fa fa-twitter"></i></a></li>
+                                               <li><a 
href="https://plus.google.com/communities/105208241852045684449";><i class="fa 
fa-google-plus"></i></a></li>
+                                       </ul>
+                               </div>
+                               <div class="col-sm-6 text-center-mobile">
+                                       <div class="row opening-hours">
+                                               <div class="col-sm-3 
text-center-mobile">
+                                                       <h5><a 
href="../../../latest/docs/documentation.html" 
class="white">Documentation</a></h5>
+                                                       <ul 
class="list-unstyled">
+                                                               <li><a 
href="../../../latest/docs/admin/configuration/index.html" class="regular 
light-white">How to configure</a></li>
+                                                               <li><a 
href="../../../latest/docs/admin/file-layout.html" class="regular 
light-white">Dir. Structure</a></li>
+                                                               <li><a 
href="../../../latest/docs/developer/testing/index.html" class="regular 
light-white">Testing</a></li>
+                                                               <li><a 
href="../../../latest/docs/admin/cluster/index.html" class="regular 
light-white">Clustering</a></li>
+                                                       </ul>
+                                               </div>
+                                               <div class="col-sm-3 
text-center-mobile">
+                                                       <h5><a 
href="../../../latest/examples/" class="white">Examples</a></h5>
+                                                       <ul 
class="list-unstyled">
+                                                               <li><a 
href="../../../latest/examples/simple-cdi-interceptor.html" class="regular 
light-white">CDI Interceptor</a></li>
+                                                               <li><a 
href="../../../latest/examples/rest-cdi.html" class="regular light-white">REST 
with CDI</a></li>
+                                                               <li><a 
href="../../../latest/examples/ejb-examples.html" class="regular 
light-white">EJB</a></li>
+                                                               <li><a 
href="../../../latest/examples/jsf-managedBean-and-ejb.html" class="regular 
light-white">JSF</a></li>
+                                                       </ul>
+                                               </div>
+                                               <div class="col-sm-3 
text-center-mobile">
+                                                       <h5><a 
href="../../../community/index.html" class="white">Community</a></h5>
+                                                       <ul 
class="list-unstyled">
+                                                               <li><a 
href="../../../community/contributors.html" class="regular 
light-white">Contributors</a></li>
+                                                               <li><a 
href="../../../community/social.html" class="regular 
light-white">Social</a></li>
+                                                               <li><a 
href="../../../community/sources.html" class="regular 
light-white">Sources</a></li>
+                                                       </ul>
+                                               </div>
+                                               <div class="col-sm-3 
text-center-mobile">
+                                                       <h5><a 
href="../../../security/index.html" class="white">Security</a></h5>
+                                                       <ul 
class="list-unstyled">
+                                                               <li><a 
href="http://apache.org/security"; target="_blank" class="regular 
light-white">Apache Security</a></li>
+                                                               <li><a 
href="http://apache.org/security/projects.html"; target="_blank" class="regular 
light-white">Security Projects</a></li>
+                                                               <li><a 
href="http://cve.mitre.org"; target="_blank" class="regular 
light-white">CVE</a></li>
+                                                       </ul>
+                                               </div>
+                                       </div>
+                               </div>
+                       </div>
+                       <div class="row bottom-footer text-center-mobile">
+                               <div class="col-sm-12 light-white">
+                                       <p>Copyright &copy; 1999-2016 The 
Apache Software Foundation, Licensed under the Apache License, Version 2.0. 
Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE 
project logo are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners.</p>
+                               </div>
+                       </div>
+               </div>
+       </footer>
+       <!-- Holder for mobile navigation -->
+       <div class="mobile-nav">
+        <ul>
+          <li><a hef="../../../latest/docs/admin/index.html">Administrators</a>
+          <li><a hef="../../../latest/docs/developer/index.html">Developers</a>
+          <li><a hef="../../../latest/docs/advanced/index.html">Advanced</a>
+          <li><a hef="../../../community/index.html">Community</a>
+        </ul>
+               <a href="#" class="close-link"><i class="arrow_up"></i></a>
+       </div>
+       <!-- Scripts -->
+       <script src="../../../js/jquery-1.11.1.min.js"></script>
+       <script src="../../../js/owl.carousel.min.js"></script>
+       <script src="../../../js/bootstrap.min.js"></script>
+       <script src="../../../js/wow.min.js"></script>
+       <script src="../../../js/typewriter.js"></script>
+       <script src="../../../js/jquery.onepagenav.js"></script>
+       <script src="../../../js/tree.jquery.js"></script>
+       <script src="../../../js/highlight.pack.js"></script>
+    <script src="../../../js/main.js"></script>
+               </body>
+
+</html>
+

Added: tomee/site/trunk/content/master/pt/examples/cdi-qualifier.html
URL: 
http://svn.apache.org/viewvc/tomee/site/trunk/content/master/pt/examples/cdi-qualifier.html?rev=1866555&view=auto
==============================================================================
--- tomee/site/trunk/content/master/pt/examples/cdi-qualifier.html (added)
+++ tomee/site/trunk/content/master/pt/examples/cdi-qualifier.html Sat Sep  7 
14:25:49 2019
@@ -0,0 +1,295 @@
+<!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 @Qualifier</h1>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+            
+            <div class="col-md-12">
+                <div class="sect1">
+<h2 id="_introdução">Introdução</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>As vezes precisamos escrever várias implementações para uma interface de 
regras de negócios, para aumentar o desacoplamento vamos injetar apenas a 
interface e o CDI vai escolher a implementação correta, para ajudar o CDI com 
esta escolha nós criamos os <strong>qualificadores</strong>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_exemplo">Exemplo</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Neste exemplo, temos uma interface <code>Payment</code> e suas 
implementações:
+* Cash
+* CreditCard</p>
+</div>
+<div class="paragraph">
+<p>Em nosso teste (Payment Test) nós injetamos somente a interface Payment, 
sem o recurso Qualificador, o CDI não saberia qual implementação injetar no 
teste.</p>
+</div>
+<div class="paragraph">
+<p>Nós criamos um <strong>qualificador</strong> chamado 
<code>PaymentQualifier</code> um único qualificador com uma diferença, a 
anotação <code>@Qualifier</code>.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@Retention(RUNTIME)
+@Target({ TYPE, FIELD, METHOD })
+@Qualifier
+public @interface PaymentQualifier {
+
+       PaymentType type();
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Este qualificador tem um método chamado <code>type()</code>, esse método 
ajudará o CDI a injetar corretamente a implementação. veja este enum:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>public enum PaymentType {
+
+       CASH,
+       CREDITCARD
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>agora veja uma implementação</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@PaymentQualifier(type=PaymentType.CASH)
+public class Cash implements Payment {
+
+       @Override
+       public String pay() {
+
+               return "cash";
+       }
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Cada implementação deve ser marcada com este qualificador.</p>
+</div>
+<div class="paragraph">
+<p>Como injetar ? veja a simplicidade</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>public class PaymentTest {
+
+    private static EJBContainer container;
+
+    @Inject
+    @PaymentQualifier(type=PaymentType.CREDITCARD) //qualificador informando o 
CDI sobre a implementação correta
+    private Payment paymentCreditCard;
+
+    @Inject
+    @PaymentQualifier(type=PaymentType.CASH) //qualificador informando o CDI 
sobre a implementação correta
+    private Payment paymentCash;
+
+    @BeforeClass
+    public static void start() {
+        container = EJBContainer.createEJBContainer();
+    }
+
+    @Before
+    public void setUp() throws Exception {
+        container.getContext().bind("inject", this);
+    }
+
+    @Test
+    public void mustReturnCreditCard() {
+
+        assertEquals(paymentCreditCard.pay(), "creditCard");
+    }
+
+    @Test
+    public void mustReturnCash() {
+
+        assertEquals(paymentCash.pay(), "cash");
+    }
+
+    @AfterClass
+    public static void stop() {
+        container.close();
+    }
+}</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>
+

Added: tomee/site/trunk/content/master/pt/examples/cdi-realm.html
URL: 
http://svn.apache.org/viewvc/tomee/site/trunk/content/master/pt/examples/cdi-realm.html?rev=1866555&view=auto
==============================================================================
--- tomee/site/trunk/content/master/pt/examples/cdi-realm.html (added)
+++ tomee/site/trunk/content/master/pt/examples/cdi-realm.html Sat Sep  7 
14:25:49 2019
@@ -0,0 +1,393 @@
+<!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 Realm</h1>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+            
+            <div class="col-md-12">
+                <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Este exemplo mostra como proteger o acesso a um web resource fornecido por 
um servlet. Para isso,
+usaremos realms.</p>
+</div>
+<div class="paragraph">
+<p>Um <a 
href="https://javaee.github.io/tutorial/security-intro005.html#BNBXJ";>realm</a>,
 no ecossistema JavaEE, é
+um domínio de politica de segurança definido para um web server ou um 
application server. Um realm
+contém uma coleção de usuários, que podem ou não ser atribuídos a um 
grupo.</p>
+</div>
+<div class="paragraph">
+<p>Um realm, basicamente, especifica uma lista de usuários e funções. É um 
"banco de dados" de usuários
+com senhas associadas e possíveis papeis. A especificação de servlet não 
especifica uma API para
+definir uma lista de usuários e funções para um determinado aplicativo. Por 
essa razão, o Tomcat
+servlet container define uma interface, 
<code>org.apache.catalina.Realm</code>. Mais informações podem ser
+encontradas <a 
href="https://tomcat.apache.org/tomcat-9.0-doc/realm-howto.html";>aqui</a>.</p>
+</div>
+<div class="paragraph">
+<p>No servidor de aplicação TomEE, o mecanismo usado pelo Tomcat para 
definir um realm para um servlet
+é reutilizado e aprimorado. Mais informações podem ser encontradas <a 
href="https://www.tomitribe.com/blog/tomee-security-episode-1-apache-tomcat-and-apache-tomee-security-under-the-covers";>aqui</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_exemplo">Exemplo</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Este exemplo mostra um secured servlet (servlet seguro/protegido) usando um 
realm. O secured servlet
+tem uma funcionalidade simples, apenas ilustrar os conceitos aqui 
explicados:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@WebServlet("/servlet")
+public class SecuredServlet extends HttpServlet {
+    @Override
+    protected void service(final HttpServletRequest req, final 
HttpServletResponse resp) throws ServletException, IOException {
+        resp.getWriter().write("Servlet!");
+    }
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Para proteger este servlet, adicionaremos a seguinte classe:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>import javax.enterprise.context.RequestScoped;
+import java.security.Principal;
+
+@RequestScoped // just to show we can be bound to the request but 
@ApplicationScoped is what makes sense
+public class AuthBean {
+    public Principal authenticate(final String username, String password) {
+        if (("userA".equals(username) || "userB".equals(username)) &amp;&amp; 
"test".equals(password)) {
+            return new Principal() {
+                @Override
+                public String getName() {
+                    return username;
+                }
+
+                @Override
+                public String toString() {
+                    return username;
+                }
+            };
+        }
+        return null;
+    }
+
+    public boolean hasRole(final Principal principal, final String role) {
+        return principal != null &amp;&amp; (
+                principal.getName().equals("userA") &amp;&amp; 
(role.equals("admin")
+                        || role.equals("user"))
+                        || principal.getName().equals("userB") &amp;&amp; 
(role.equals("user"))
+        );
+    }
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>A classe define dois métodos: <code>authenticate</code> e 
<code>hasRole</code>.
+Ambos métodos vão ser utilizados pela classe <code>LazyRealm</code>, 
implementada no servidor de aplicação TomEE.
+Este realm é configurado no arquivo 
<code>webapp/META-INF/context.xml</code>:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>&lt;Context preemptiveAuthentication="true"&gt;
+  &lt;Valve className="org.apache.catalina.authenticator.BasicAuthenticator" 
/&gt;
+  &lt;Realm className="org.apache.tomee.catalina.realm.LazyRealm"
+         cdi="true" realmClass="org.superbiz.AuthBean"/&gt;
+&lt;/Context&gt;</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>A classe <code>AuthBean</code> define um "banco de dados" com dois 
usuários: userA (papel de admin) e
+userB (papel de usuário), ambos possuem a senha test.
+A classe <code>org.apache.tomee.catalina.realm.LazyRealm</code> vai carregar 
nossa classe <code>AuthBean</code> e vai usa-la
+para verificar se um usuário tem acesso ao conteúdo fornecido pelo nosso 
servlet.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_testes">Testes</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre>import org.apache.http.HttpHost;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.AuthCache;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.impl.auth.BasicScheme;
+import org.apache.http.impl.client.BasicAuthCache;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+import org.apache.openejb.arquillian.common.IO;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.asset.FileAsset;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+
+import static org.hamcrest.CoreMatchers.startsWith;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+
+@RunWith(Arquillian.class)
+public class AuthBeanTest {
+    @Deployment(testable = false)
+    public static WebArchive createDeployment() {
+        return ShrinkWrap.create(WebArchive.class, "low-typed-realm.war")
+                .addClasses(SecuredServlet.class, AuthBean.class)
+                .addAsManifestResource(new FileAsset(new 
File("src/main/webapp/META-INF/context.xml")), "context.xml")
+                .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
+    }
+
+    @ArquillianResource
+    private URL webapp;
+
+    @Test
+    public void success() throws IOException {
+        assertEquals("200 Servlet!", get("userA", "test"));
+    }
+
+    @Test
+    public void failure() throws IOException {
+        assertThat(get("userA", "oops, wrong password"), startsWith("401"));
+    }
+
+    private String get(final String user, final String password) {
+        final BasicCredentialsProvider basicCredentialsProvider = new 
BasicCredentialsProvider();
+        basicCredentialsProvider.setCredentials(AuthScope.ANY, new 
UsernamePasswordCredentials(user, password));
+        final CloseableHttpClient client = HttpClients.custom()
+                
.setDefaultCredentialsProvider(basicCredentialsProvider).build();
+
+        final HttpHost httpHost = new HttpHost(webapp.getHost(), 
webapp.getPort(), webapp.getProtocol());
+        final AuthCache authCache = new BasicAuthCache();
+        final BasicScheme basicAuth = new BasicScheme();
+        authCache.put(httpHost, basicAuth);
+        final HttpClientContext context = HttpClientContext.create();
+        context.setAuthCache(authCache);
+
+        final HttpGet get = new HttpGet(webapp.toExternalForm() + "servlet");
+        CloseableHttpResponse response = null;
+        try {
+            response = client.execute(httpHost, get, context);
+            return response.getStatusLine().getStatusCode() + " " + 
EntityUtils.toString(response.getEntity());
+        } catch (final IOException e) {
+            throw new IllegalStateException(e);
+        } finally {
+            try {
+                IO.close(response);
+            } catch (final IOException e) {
+                // no-op
+            }
+        }
+    }
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>O teste usa o Arquillian para iniciar o servidor de aplicação e carregar 
o servlet.
+Existem dois métodos de teste: <code>success</code>, onde nosso servlet é 
acessado com o usuário e senha corretos,
+e <code>failure</code>, onde nosso servlet é acessado com uma senha 
incorreta.</p>
+</div>
+<div class="paragraph">
+<p>O exemplo completo pode ser encontrado <a 
href="https://github.com/apache/tomee/tree/master/examples/cdi-realm";>aqui</a>.
+É um projeto Maven, e o teste pode ser executado com o comando <code>mvn 
clean install</code>.</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: tomee/site/trunk/content/master/pt/examples/cdi-request-scope.html
URL: 
http://svn.apache.org/viewvc/tomee/site/trunk/content/master/pt/examples/cdi-request-scope.html?rev=1866555&view=auto
==============================================================================
--- tomee/site/trunk/content/master/pt/examples/cdi-request-scope.html (added)
+++ tomee/site/trunk/content/master/pt/examples/cdi-request-scope.html Sat Sep  
7 14:25:49 2019
@@ -0,0 +1,368 @@
+<!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 @RequestScoped</h1>
+            </div>
+          </div>
+        </div>
+        <div class="row">
+            
+            <div class="col-md-12">
+                <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Este exemplo mostra o uso da anotação <code>@RequestScoped</code> para 
objetos injetados. Um objeto que é
+definido como <code>@RequestScoped</code> é criado uma vez para cada 
requisição e é compartilhado por todos os
+beans que o injetam através do mesmo request.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_exemplo">Exemplo</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Este exemplo retrata um cenário similar ao cdi-application-scope. O 
visitante de um restaurante
+pede uma sopa ao garçom. O pedido é passado para o chefe que prepara o prato 
e o devolve ao garçom
+que entrega para o visitante.</p>
+</div>
+<div class="sect2">
+<h3 id="_waiter_garçom">Waiter (garçom)</h3>
+<div class="paragraph">
+<p>O <code>Waiter</code> session bean recebe uma requisição através do 
método <code>orderSoup()</code> da classe de teste.
+Uma instância de <code>Soup</code> será criada nesse método e ela será 
compartilhada em toda a requisição com o
+bean <code>Chef</code>. O método passa o request para o bean 
<code>Chef</code>. Ele então retorna o nome da sopa para a
+classe de teste.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@Stateless
+public class Waiter {
+
+    @Inject
+    private Soup soup;
+
+    @EJB
+    private Chef chef;
+
+    public String orderSoup(String name){
+        soup.setName(name);
+        return chef.prepareSoup().getName();
+    }
+}</pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_soup_sopa">Soup (sopa)</h3>
+<div class="paragraph">
+<p>A classe <code>Soup</code> é um POJO injetável, definida como 
<code>@RequestScoped</code>. Isso significa que uma instância
+será criada apenas uma vez para cada request e será compartilhada por todos 
os beans que a injetam.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@RequestScoped
+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 class="sect2">
+<h3 id="_chef">Chef</h3>
+<div class="paragraph">
+<p>A classe <code>Chef</code> é um simples session bean com um campo 
<code>Soup</code> injetado. Normalmente, o parâmetro soup
+seria passado para o <code>prepareSoup()</code> como argumento, mas para as 
necessidades deste exemplo será
+passado pelo contexto da requisição.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>@Stateless
+public class Chef {
+
+    @Inject
+    private Soup soup;
+
+    public Soup prepareSoup() {
+        return soup;
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_caso_de_teste">Caso de teste</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Esta é a classe de entrada para este exemplo.</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 soup = joe.orderSoup(TOMATO_SOUP);
+        assertEquals(TOMATO_SOUP, soup);
+        soup = joe.orderSoup(POTATO_SOUP);
+        assertEquals(POTATO_SOUP, soup);
+    }
+
+    @After
+    public void closeContainer() throws Exception {
+        container.close();
+    }
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_executando">Executando</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Na saida você pode ver que existem duas instâncias de <code>Soup</code> 
criadas - uma para cada requisição.</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.cdi.requestscope.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-request-scope
+INFO - openejb.base = 
C:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-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-request-scope\target\classes
+INFO - Beginning load: 
c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope\target\classes
+INFO - Configuring enterprise application: 
c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope
+INFO - Configuring Service(id=Default Managed Container, type=Container, 
provider-id=Default Managed Container)
+INFO - Auto-creating a container for bean cdi-request-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 Chef: Container(type=STATELESS, 
id=Default Stateless Container)
+INFO - Enterprise application 
"c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope" loaded.
+INFO - Assembling app: 
c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope
+INFO - 
Jndi(name="java:global/cdi-request-scope/Chef!org.superbiz.cdi.requestscope.Chef")
+INFO - Jndi(name="java:global/cdi-request-scope/Chef")
+INFO - 
Jndi(name="java:global/cdi-request-scope/Waiter!org.superbiz.cdi.requestscope.Waiter")
+INFO - Jndi(name="java:global/cdi-request-scope/Waiter")
+INFO - Created Ejb(deployment-id=Chef, ejb-name=Chef, container=Default 
Stateless Container)
+INFO - Created Ejb(deployment-id=Waiter, ejb-name=Waiter, container=Default 
Stateless Container)
+INFO - Started Ejb(deployment-id=Chef, ejb-name=Chef, 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-request-scope)
+Soup created
+Soup created
+INFO - Undeploying app: 
c:\Users\Daniel\workspaces\openejb\openejb\examples\cdi-request-scope
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.412 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>
+


Reply via email to