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> » <a href="./../../examples-trunk/">Examples Trunk</a> » <a href="./../../examples-trunk/cdi-produces-field/">Cdi Produces Field</a></small><br>
+ </div>
+ <div class="span8">
+ </div>
+</div>
+
+<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><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">
+
+</beans>
+</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"> </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 © 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>