You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@tomee.apache.org by bu...@apache.org on 2012/05/14 02:39:51 UTC

svn commit: r817528 - in /websites/staging/openejb/trunk: cgi-bin/ content/ content/examples-trunk/ content/examples-trunk/cdi-produces-field/ content/examples-trunk/cdi-produces-field/src/ content/examples-trunk/cdi-produces-field/src/main/ content/ex...

Author: buildbot
Date: Mon May 14 00:39:50 2012
New Revision: 817528

Log:
Staging update by buildbot for openejb

Added:
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/README.html
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/cdi-produces-field.iml   (with props)
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/pom.xml   (with props)
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/ConsoleHandler.java
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/DatabaseHandler.java
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/FileHandler.java
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogFactory.java
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogHandler.java
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/Logger.java
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LoggerImpl.java
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/resources/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/resources/META-INF/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/resources/META-INF/beans.xml   (with props)
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/test/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/test/java/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/test/java/org/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/test/java/org/superbiz/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/test/java/org/superbiz/cdi/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/field/
    websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/field/LoggerTest.java
Modified:
    websites/staging/openejb/trunk/cgi-bin/   (props changed)
    websites/staging/openejb/trunk/content/   (props changed)
    websites/staging/openejb/trunk/content/examples-trunk/pom.xml

Propchange: websites/staging/openejb/trunk/cgi-bin/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon May 14 00:39:50 2012
@@ -1 +1 @@
-1337239
+1338013

Propchange: websites/staging/openejb/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon May 14 00:39:50 2012
@@ -1 +1 @@
-1337239
+1338013

Added: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/README.html
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/README.html (added)
+++ websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/README.html Mon May 14 00:39:50 2012
@@ -0,0 +1,454 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+
+    <meta charset="utf-8">
+      <title>CDI field producer
</title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="./../../bootstrap.css" rel="stylesheet">
+    <link href="./../../prettify.css" rel="stylesheet">
+    <link href="./../../bootstrap-mods.css" rel="stylesheet">
+
+    <style type="text/css">
+        body {
+          padding-top: 60px;
+        }
+        .sprite {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../images/sprites.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .fb-share {
+            background-position: 0px -40px;
+        }
+        .gp-share {
+            background-position: 0px 0px;
+        }
+        .tw-share {
+            background-position: 0px -80px;
+        }
+    </style>
+    <script type="text/javascript">
+      function fbshare () {
+          window.open(
+                  "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+                  'Share on Facebook',
+                  'width=640,height=426');
+      };
+      function gpshare () {
+          window.open(
+                  "https://plus.google.com/share?url="+document.URL,
+                  'Share on Google+',
+                  'width=584,height=385');
+      };
+      function twshare () {
+          window.open(
+                  "https://twitter.com/intent/tweet?url="+document.URL+"&text=CDI field producer
",
+                  'Share on Twitter',
+                  'width=800,height=526');
+      };
+    </script>
+
+
+    <!-- Le fav and touch icons -->
+    <link rel="shortcut icon" href="./../../images/favicon.ico">
+    <link rel="apple-touch-icon" href="./../../images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="./../../images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="./../../images/apple-touch-icon-114x114.png">
+
+    <script src="./../../javascript/prettify.js" type="text/javascript"></script>
+    <script src="./../../javascript/jquery-latest.js"></script>
+    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+    <script src="./../../javascript/common.js"></script>
+    <script src="./../../javascript/prettyprint.js"></script>
+
+    <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="topbar">
+      <div class="fill">
+        <div class="container">
+          <a class="brand" href="./../../index.html">Apache TomEE</a>
+          <ul class="nav">
+            <li><a href="./../../index.html">Home</a></li>
+            <li><a href="./../../downloads.html">Downloads</a></li>
+            <li><a href="./../../documentation.html">Documentation</a></li>
+            <li><a href="./../../support.html">Support</a></li>
+          </ul>
+
+            <!-- Google CSE Search Box Begins  -->
+            <FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
+                <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
+                <INPUT type="hidden" name="cof" value="FORID:0">
+                <INPUT name="q" type="text" placeholder="Search">
+            </FORM>
+            <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
+            <!-- Google CSE Search Box Ends -->
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+
+    
+
+<div class="row">
+    <div class="span8">
+        <small><a href="./../../index.html">Home</a>&nbsp;&raquo&nbsp;<a href="./../../examples-trunk/">Examples Trunk</a>&nbsp;&raquo&nbsp;<a href="./../../examples-trunk/cdi-produces-field/">Cdi Produces Field</a></small><br>
+    </div>
+    <div class="span8">
+    </div>
+</div>
+&nbsp;
+<div class="page-header">
+<h1>CDI field producer
+
+    <div style="float: right; position: relative; bottom: -10px; ">
+        <a onclick="javascript:gpshare()" class="gp-share sprite" title="share on Google+">share [gp]</a>
+        <a onclick="javascript:fbshare()" class="fb-share sprite" title="share on Facebook">share [fb]</a>
+        <a onclick="javascript:twshare()" class="tw-share sprite" title="share on Twitter">share [tw]</a>
+    </div>
+</h1>
+</div>
+
+<p>This example shows the usage of the @Produces annotation. @Produces is a CDI mechanism which allows defining a source
+ for injection. This example shows one of two ways of declaring a producer. Instead of a producer method (see CDI-produces-disposes example)
+a producer field can be used. A producer field can be used instead of a simple getter method. It could be used to
+inject resources, such as persistence contexts. One caveat to using producer fields over producer
+ methods is that a @Disposes method cannot be used in conjunction with @Produces field.</p>
+
+<h2>ConsoleHandler</h2>
+
+<pre><code>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());
+    }
+}
+</code></pre>
+
+<h2>DatabaseHandler</h2>
+
+<pre><code>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
+    }
+}
+</code></pre>
+
+<h2>FileHandler</h2>
+
+<pre><code>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());
+        // Write to log file
+    }
+}
+</code></pre>
+
+<h2>LogFactory</h2>
+
+<pre><code>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!");
+        }
+
+    }
+}
+</code></pre>
+
+<h2>Logger</h2>
+
+<pre><code>package org.superbiz.cdi.produces.field;
+
+public interface Logger {
+
+    public void log(String s);
+
+    public LogHandler getHandler();
+}
+</code></pre>
+
+<h2>LoggerImpl</h2>
+
+<pre><code>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;
+    }
+}
+</code></pre>
+
+<h2>LogHandler</h2>
+
+<pre><code>package org.superbiz.cdi.produces.field;
+
+public interface LogHandler {
+
+    public String getName();
+
+    public void writeLog(String s);
+}
+</code></pre>
+
+<h2>beans.xml</h2>
+
+<pre><code>&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;
+</code></pre>
+
+<h2>LoggerTest</h2>
+
+<pre><code>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;
+    }
+
+}
+</code></pre>
+
+<h1>Running</h1>
+
+<pre><code>-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.superbiz.cdi.produces.field.LoggerTest
+INFO - ********************************************************************************
+INFO - OpenEJB http://openejb.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: 4.0.0-beta-3-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
+</code></pre>
+
+
+<div class="page-header">&nbsp;</div>
+<h4>APIs Used</h4>
+<ul><li><a href="http://docs.oracle.com/javaee/6/api/javax/ejb/embeddable/EJBContainer;
.html">javax.ejb.embeddable.EJBContainer;
</a></li>
+<li><a href="http://docs.oracle.com/javaee/6/api/javax/enterprise/inject/Produces;
.html">javax.enterprise.inject.Produces;
</a></li>
+<li><a href="http://docs.oracle.com/javaee/6/api/javax/inject/Inject;
.html">javax.inject.Inject;
</a></li>
+<li><a href="http://docs.oracle.com/javaee/6/api/javax/inject/Named;
.html">javax.inject.Named;
</a></li>
+</ul>
+
+<h3>Source</h3>
+  <ul>
+      <li>Apache <a href="http://svn.apache.org/repos/asf/openejb/trunk/openejb/examples/cdi-produces-field">cdi-produces-field</a></li>
+      <li>Github <a href="https://github.com/apache/openejb/tree/trunk/openejb/examples/cdi-produces-field">cdi-produces-field</a></li>
+  </ul>
+<pre>
+svn co http://svn.apache.org/repos/asf/openejb/trunk/openejb/examples/cdi-produces-field
+cd cdi-produces-field
+mvn clean install
+</pre>
+
+
+      <footer>
+        <p>
+        Copyright &copy; 2011 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+        Apache and the Apache feather logo are trademarks of The Apache Software Foundation.
+        </p>
+      </footer>
+
+    </div> <!-- /container -->
+
+  </body>
+</html>

Added: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/cdi-produces-field.iml
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/cdi-produces-field.iml
------------------------------------------------------------------------------
    svn:mime-type = application/xml

Added: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/pom.xml
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = application/xml

Added: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/ConsoleHandler.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/ConsoleHandler.java (added)
+++ websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/ConsoleHandler.java Mon May 14 00:39:50 2012
@@ -0,0 +1,37 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+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());
+    }
+
+}

Added: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/DatabaseHandler.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/DatabaseHandler.java (added)
+++ websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/DatabaseHandler.java Mon May 14 00:39:50 2012
@@ -0,0 +1,38 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+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
+    }
+
+}

Added: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/FileHandler.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/FileHandler.java (added)
+++ websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/FileHandler.java Mon May 14 00:39:50 2012
@@ -0,0 +1,38 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+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());
+        // Write to log file
+    }
+
+}

Added: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogFactory.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogFactory.java (added)
+++ websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogFactory.java Mon May 14 00:39:50 2012
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+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!");
+        }
+
+    }
+}

Added: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogHandler.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogHandler.java (added)
+++ websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogHandler.java Mon May 14 00:39:50 2012
@@ -0,0 +1,25 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.superbiz.cdi.produces.field;
+
+public interface LogHandler {
+
+    public String getName();
+
+    public void writeLog(String s);
+
+}

Added: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/Logger.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/Logger.java (added)
+++ websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/Logger.java Mon May 14 00:39:50 2012
@@ -0,0 +1,25 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.superbiz.cdi.produces.field;
+
+public interface Logger {
+
+    public void log(String s);
+
+    public LogHandler getHandler();
+
+}

Added: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LoggerImpl.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LoggerImpl.java (added)
+++ websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LoggerImpl.java Mon May 14 00:39:50 2012
@@ -0,0 +1,37 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+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;
+    }
+
+}

Added: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/resources/META-INF/beans.xml
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/main/resources/META-INF/beans.xml
------------------------------------------------------------------------------
    svn:mime-type = application/xml

Added: websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/field/LoggerTest.java
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/field/LoggerTest.java (added)
+++ websites/staging/openejb/trunk/content/examples-trunk/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/field/LoggerTest.java Mon May 14 00:39:50 2012
@@ -0,0 +1,72 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.superbiz.cdi.produces.field;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.superbiz.cdi.produces.field.ConsoleHandler;
+import org.superbiz.cdi.produces.field.DatabaseHandler;
+import org.superbiz.cdi.produces.field.FileHandler;
+import org.superbiz.cdi.produces.field.Logger;
+
+import javax.ejb.embeddable.EJBContainer;
+import javax.inject.Inject;
+
+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 EJBContainer container;
+
+    @Before
+    public void setUp() {
+        try {
+            container = EJBContainer.createEJBContainer();
+            container.getContext().bind("inject", this);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @After
+    public void cleanUp() {
+        try {
+            container.getContext().unbind("inject");
+            container.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;
+    }
+
+
+}

Modified: websites/staging/openejb/trunk/content/examples-trunk/pom.xml
==============================================================================
--- websites/staging/openejb/trunk/content/examples-trunk/pom.xml (original)
+++ websites/staging/openejb/trunk/content/examples-trunk/pom.xml Mon May 14 00:39:50 2012
@@ -17,7 +17,7 @@
     limitations under the License.
 -->
 <!--test 2-->
-<!-- $Rev: 1334958 $ $Date: 2012-05-07 11:27:51 +0000 (Mon, 07 May 2012) $ -->
+<!-- $Rev: 1338013 $ $Date: 2012-05-14 00:39:35 +0000 (Mon, 14 May 2012) $ -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <parent>
@@ -44,6 +44,7 @@
     <module>cdi-request-scope</module>
     <module>cdi-application-scope</module>
     <module>cdi-produces-disposes</module>
+    <module>cdi-produces-field</module>
     <module>component-interfaces</module>
     <module>custom-injection</module>
     <module>datasource-ciphered-password</module>
@@ -107,6 +108,7 @@
     <module>webservice-handlerchain</module>
     <module>webservice-holder</module>
     <module>multiple-tomee-arquillian</module>
+    <module>cdi-produces-field</module>
   </modules>
   <profiles>
     <profile>