Return-Path: X-Original-To: apmail-openejb-commits-archive@www.apache.org Delivered-To: apmail-openejb-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A04E49903 for ; Mon, 14 May 2012 00:40:02 +0000 (UTC) Received: (qmail 64195 invoked by uid 500); 14 May 2012 00:40:01 -0000 Delivered-To: apmail-openejb-commits-archive@openejb.apache.org Received: (qmail 64154 invoked by uid 500); 14 May 2012 00:40:01 -0000 Mailing-List: contact commits-help@openejb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openejb.apache.org Delivered-To: mailing list commits@openejb.apache.org Received: (qmail 64147 invoked by uid 99); 14 May 2012 00:40:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 May 2012 00:40:01 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 May 2012 00:39:57 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 7F293238896F for ; Mon, 14 May 2012 00:39:37 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1338013 - in /openejb/trunk/openejb/examples: ./ cdi-produces-field/ cdi-produces-field/src/ cdi-produces-field/src/main/ cdi-produces-field/src/main/java/ cdi-produces-field/src/main/java/org/ cdi-produces-field/src/main/java/org/superbiz... Date: Mon, 14 May 2012 00:39:36 -0000 To: commits@openejb.apache.org From: vishwanathk@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120514003937.7F293238896F@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: vishwanathk Date: Mon May 14 00:39:35 2012 New Revision: 1338013 URL: http://svn.apache.org/viewvc?rev=1338013&view=rev Log: OPENEJB-1609 Thanks Daniel Siwiec, for the excellent patch. A separate example for cdi-producers-field Added: openejb/trunk/openejb/examples/cdi-produces-field/ openejb/trunk/openejb/examples/cdi-produces-field/README.md openejb/trunk/openejb/examples/cdi-produces-field/cdi-produces-field.iml openejb/trunk/openejb/examples/cdi-produces-field/pom.xml openejb/trunk/openejb/examples/cdi-produces-field/src/ openejb/trunk/openejb/examples/cdi-produces-field/src/main/ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/ConsoleHandler.java openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/DatabaseHandler.java openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/FileHandler.java openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogFactory.java openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogHandler.java openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/Logger.java openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LoggerImpl.java openejb/trunk/openejb/examples/cdi-produces-field/src/main/resources/ openejb/trunk/openejb/examples/cdi-produces-field/src/main/resources/META-INF/ openejb/trunk/openejb/examples/cdi-produces-field/src/main/resources/META-INF/beans.xml openejb/trunk/openejb/examples/cdi-produces-field/src/test/ openejb/trunk/openejb/examples/cdi-produces-field/src/test/java/ openejb/trunk/openejb/examples/cdi-produces-field/src/test/java/org/ openejb/trunk/openejb/examples/cdi-produces-field/src/test/java/org/superbiz/ openejb/trunk/openejb/examples/cdi-produces-field/src/test/java/org/superbiz/cdi/ openejb/trunk/openejb/examples/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/ openejb/trunk/openejb/examples/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/field/ openejb/trunk/openejb/examples/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/field/LoggerTest.java Modified: openejb/trunk/openejb/examples/pom.xml Added: openejb/trunk/openejb/examples/cdi-produces-field/README.md URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/cdi-produces-field/README.md?rev=1338013&view=auto ============================================================================== --- openejb/trunk/openejb/examples/cdi-produces-field/README.md (added) +++ openejb/trunk/openejb/examples/cdi-produces-field/README.md Mon May 14 00:39:35 2012 @@ -0,0 +1,270 @@ +Title: CDI field producer + +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. + +## ConsoleHandler + + 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()); + } + } + +## DatabaseHandler + + 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 + } + } + +## FileHandler + + 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 + } + } + +## LogFactory + + 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!"); + } + + } + } + +## Logger + + package org.superbiz.cdi.produces.field; + + public interface Logger { + + public void log(String s); + + public LogHandler getHandler(); + } + +## LoggerImpl + + 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; + } + } + +## LogHandler + + package org.superbiz.cdi.produces.field; + + public interface LogHandler { + + public String getName(); + + public void writeLog(String s); + } + +## beans.xml + + + + + +## LoggerTest + + 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; + } + + } + +# Running + + + ------------------------------------------------------- + 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 + Added: openejb/trunk/openejb/examples/cdi-produces-field/cdi-produces-field.iml URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/cdi-produces-field/cdi-produces-field.iml?rev=1338013&view=auto ============================================================================== --- openejb/trunk/openejb/examples/cdi-produces-field/cdi-produces-field.iml (added) +++ openejb/trunk/openejb/examples/cdi-produces-field/cdi-produces-field.iml Mon May 14 00:39:35 2012 @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: openejb/trunk/openejb/examples/cdi-produces-field/pom.xml URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/cdi-produces-field/pom.xml?rev=1338013&view=auto ============================================================================== --- openejb/trunk/openejb/examples/cdi-produces-field/pom.xml (added) +++ openejb/trunk/openejb/examples/cdi-produces-field/pom.xml Mon May 14 00:39:35 2012 @@ -0,0 +1,96 @@ + + + + + + + 4.0.0 + org.superbiz + cdi-produces-field + jar + 1.0-SNAPSHOT + OpenEJB :: Examples :: CDI-Field Producer + + UTF-8 + + + install + + + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.6 + 1.6 + + + + + + + apache-m2-snapshot + Apache Snapshot Repository + http://repository.apache.org/snapshots + + + + + org.apache.openejb + javaee-api + 6.0-3 + provided + + + junit + junit + 4.8.1 + test + + + + + org.apache.openejb + openejb-core + 4.0.0-beta-3-SNAPSHOT + test + + + + + + + localhost + file://${basedir}/target/repo/ + + + localhost + file://${basedir}/target/snapshot-repo/ + + + + + Added: openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/ConsoleHandler.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/ConsoleHandler.java?rev=1338013&view=auto ============================================================================== --- openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/ConsoleHandler.java (added) +++ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/ConsoleHandler.java Mon May 14 00:39:35 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: openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/DatabaseHandler.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/DatabaseHandler.java?rev=1338013&view=auto ============================================================================== --- openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/DatabaseHandler.java (added) +++ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/DatabaseHandler.java Mon May 14 00:39:35 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: openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/FileHandler.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/FileHandler.java?rev=1338013&view=auto ============================================================================== --- openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/FileHandler.java (added) +++ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/FileHandler.java Mon May 14 00:39:35 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: openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogFactory.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogFactory.java?rev=1338013&view=auto ============================================================================== --- openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogFactory.java (added) +++ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogFactory.java Mon May 14 00:39:35 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: openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogHandler.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogHandler.java?rev=1338013&view=auto ============================================================================== --- openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogHandler.java (added) +++ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LogHandler.java Mon May 14 00:39:35 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: openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/Logger.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/Logger.java?rev=1338013&view=auto ============================================================================== --- openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/Logger.java (added) +++ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/Logger.java Mon May 14 00:39:35 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: openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LoggerImpl.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LoggerImpl.java?rev=1338013&view=auto ============================================================================== --- openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LoggerImpl.java (added) +++ openejb/trunk/openejb/examples/cdi-produces-field/src/main/java/org/superbiz/cdi/produces/field/LoggerImpl.java Mon May 14 00:39:35 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: openejb/trunk/openejb/examples/cdi-produces-field/src/main/resources/META-INF/beans.xml URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/cdi-produces-field/src/main/resources/META-INF/beans.xml?rev=1338013&view=auto ============================================================================== --- openejb/trunk/openejb/examples/cdi-produces-field/src/main/resources/META-INF/beans.xml (added) +++ openejb/trunk/openejb/examples/cdi-produces-field/src/main/resources/META-INF/beans.xml Mon May 14 00:39:35 2012 @@ -0,0 +1,24 @@ + + + + + Added: openejb/trunk/openejb/examples/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/field/LoggerTest.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/field/LoggerTest.java?rev=1338013&view=auto ============================================================================== --- openejb/trunk/openejb/examples/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/field/LoggerTest.java (added) +++ openejb/trunk/openejb/examples/cdi-produces-field/src/test/java/org/superbiz/cdi/produces/field/LoggerTest.java Mon May 14 00:39:35 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: openejb/trunk/openejb/examples/pom.xml URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/pom.xml?rev=1338013&r1=1338012&r2=1338013&view=diff ============================================================================== --- openejb/trunk/openejb/examples/pom.xml (original) +++ openejb/trunk/openejb/examples/pom.xml Mon May 14 00:39:35 2012 @@ -44,6 +44,7 @@ cdi-request-scope cdi-application-scope cdi-produces-disposes + cdi-produces-field component-interfaces custom-injection datasource-ciphered-password @@ -107,6 +108,7 @@ webservice-handlerchain webservice-holder multiple-tomee-arquillian + cdi-produces-field