You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by km...@apache.org on 2011/07/09 04:48:25 UTC
svn commit: r1144580 - in /openejb/trunk/openejb3/examples/cdi-example: ./
src/ src/main/ src/main/java/ src/main/java/org/
src/main/java/org/superbiz/ src/main/java/org/superbiz/cdi/
src/main/java/org/superbiz/cdi/example/ src/main/resources/ src/main...
Author: kmalhi
Date: Sat Jul 9 02:48:24 2011
New Revision: 1144580
URL: http://svn.apache.org/viewvc?rev=1144580&view=rev
Log:
Great patch from Hao Lieu. Thank you
Added:
openejb/trunk/openejb3/examples/cdi-example/
openejb/trunk/openejb3/examples/cdi-example/README.txt
openejb/trunk/openejb3/examples/cdi-example/pom.xml
openejb/trunk/openejb3/examples/cdi-example/src/
openejb/trunk/openejb3/examples/cdi-example/src/main/
openejb/trunk/openejb3/examples/cdi-example/src/main/java/
openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/
openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/
openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/
openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/
openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/Course.java
openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/CsUndergradCourse.java
openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/Faculty.java
openejb/trunk/openejb3/examples/cdi-example/src/main/resources/
openejb/trunk/openejb3/examples/cdi-example/src/main/resources/META-INF/
openejb/trunk/openejb3/examples/cdi-example/src/main/resources/META-INF/beans.xml
openejb/trunk/openejb3/examples/cdi-example/src/test/
openejb/trunk/openejb3/examples/cdi-example/src/test/java/
openejb/trunk/openejb3/examples/cdi-example/src/test/java/org/
openejb/trunk/openejb3/examples/cdi-example/src/test/java/org/superbiz/
openejb/trunk/openejb3/examples/cdi-example/src/test/java/org/superbiz/cdi/
openejb/trunk/openejb3/examples/cdi-example/src/test/java/org/superbiz/cdi/example/
openejb/trunk/openejb3/examples/cdi-example/src/test/java/org/superbiz/cdi/example/UndergradCourseTest.java
Added: openejb/trunk/openejb3/examples/cdi-example/README.txt
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/cdi-example/README.txt?rev=1144580&view=auto
==============================================================================
--- openejb/trunk/openejb3/examples/cdi-example/README.txt (added)
+++ openejb/trunk/openejb3/examples/cdi-example/README.txt Sat Jul 9 02:48:24 2011
@@ -0,0 +1,16 @@
+** Below is taken directly from an email, please prettify it if you have time, specially replace the classes A and B with real classes**
+
+you'll need 2 classes A and B, where b is a member of A, and A I made a
+stateless.
+The member b is annotated with @Injected.
+B has a callback method annotated with @PostConstruct, does some
+initialization.
+
+I think the only tricky part is the sauce that binds it all,
+you'll also need a resources/META-INF/beans.xml to activate the CDI,
+otherwise the injection won't happen, and during runtime,
+you'll get an error about not being able to locate some of the resources.
+
+Then a simple test class. I had an @EJB reference to A that the container
+injects, and I just retrieved A.b.getX() to make sure that X was initialized
+properly in the callback method.
Added: openejb/trunk/openejb3/examples/cdi-example/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/cdi-example/pom.xml?rev=1144580&view=auto
==============================================================================
--- openejb/trunk/openejb3/examples/cdi-example/pom.xml (added)
+++ openejb/trunk/openejb3/examples/cdi-example/pom.xml Sat Jul 9 02:48:24 2011
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+-->
+
+<!-- $Rev: 1086252 $ $Date: 2011-03-28 07:26:42 -0700 (Mon, 28 Mar 2011) $ -->
+
+<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">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.superbiz</groupId>
+ <artifactId>cdi-example</artifactId>
+ <packaging>jar</packaging>
+ <version>1.1-SNAPSHOT</version>
+ <name>OpenEJB :: Examples :: CDI-Example</name>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <build>
+ <defaultGoal>install</defaultGoal>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <repositories>
+ <repository>
+ <id>apache-m2-snapshot</id>
+ <name>Apache Snapshot Repository</name>
+ <url>http://repository.apache.org/snapshots</url>
+ </repository>
+ </repositories>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>javaee-api</artifactId>
+ <version>6.0-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <!--
+ The <scope>test</scope> guarantees that none of your runtime
+ code is dependent on any OpenEJB classes.
+ -->
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>openejb-core</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
+
Added: openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/Course.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/Course.java?rev=1144580&view=auto
==============================================================================
--- openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/Course.java (added)
+++ openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/Course.java Sat Jul 9 02:48:24 2011
@@ -0,0 +1,5 @@
+package org.superbiz.cdi.example;
+
+public interface Course {
+ public Faculty getFaculty();
+}
Added: openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/CsUndergradCourse.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/CsUndergradCourse.java?rev=1144580&view=auto
==============================================================================
--- openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/CsUndergradCourse.java (added)
+++ openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/CsUndergradCourse.java Sat Jul 9 02:48:24 2011
@@ -0,0 +1,44 @@
+package org.superbiz.cdi.example;
+
+import javax.ejb.Stateless;
+import javax.inject.Inject;
+
+@Stateless
+public class CsUndergradCourse implements Course {
+ private String courseName;
+ private int capacity;
+
+ @Inject
+ private Faculty faculty;
+
+ public CsUndergradCourse() {
+ this.courseName = "CDI 101 - Introduction to CDI";
+ this.capacity = 100;
+ }
+
+ public String getCourseName() {
+ return courseName;
+ }
+
+ public void setCourseName(String courseName) {
+ this.courseName = courseName;
+ }
+
+ public int getCapacity() {
+ return capacity;
+ }
+
+ public void setCapacity(int capacity) {
+ this.capacity = capacity;
+ }
+
+ public Faculty getFaculty() {
+ return faculty;
+ }
+
+ public void setFaculty(Faculty faculty) {
+ this.faculty = faculty;
+ }
+
+
+}
Added: openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/Faculty.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/Faculty.java?rev=1144580&view=auto
==============================================================================
--- openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/Faculty.java (added)
+++ openejb/trunk/openejb3/examples/cdi-example/src/main/java/org/superbiz/cdi/example/Faculty.java Sat Jul 9 02:48:24 2011
@@ -0,0 +1,37 @@
+package org.superbiz.cdi.example;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+
+public class Faculty {
+ private List<String> facultyMembers;
+ private String facultyName;
+
+ @PostConstruct
+ public void initialize() {
+ setFacultyMembers(new ArrayList<String> ());
+ getFacultyMembers().add("Ian Schultz");
+ getFacultyMembers().add("Diane Reyes");
+ facultyName = "Computer Science";
+ }
+
+ public List<String> getFacultyMembers() {
+ return facultyMembers;
+ }
+
+ public void setFacultyMembers(List<String> facultyMembers) {
+ this.facultyMembers = facultyMembers;
+ }
+
+ public String getFacultyName() {
+ return facultyName;
+ }
+
+ public void setFacultyName(String facultyName) {
+ this.facultyName = facultyName;
+ }
+
+
+}
Added: openejb/trunk/openejb3/examples/cdi-example/src/main/resources/META-INF/beans.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/cdi-example/src/main/resources/META-INF/beans.xml?rev=1144580&view=auto
==============================================================================
--- openejb/trunk/openejb3/examples/cdi-example/src/main/resources/META-INF/beans.xml (added)
+++ openejb/trunk/openejb3/examples/cdi-example/src/main/resources/META-INF/beans.xml Sat Jul 9 02:48:24 2011
@@ -0,0 +1,2 @@
+<beans>
+</beans>
\ No newline at end of file
Added: openejb/trunk/openejb3/examples/cdi-example/src/test/java/org/superbiz/cdi/example/UndergradCourseTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/cdi-example/src/test/java/org/superbiz/cdi/example/UndergradCourseTest.java?rev=1144580&view=auto
==============================================================================
--- openejb/trunk/openejb3/examples/cdi-example/src/test/java/org/superbiz/cdi/example/UndergradCourseTest.java (added)
+++ openejb/trunk/openejb3/examples/cdi-example/src/test/java/org/superbiz/cdi/example/UndergradCourseTest.java Sat Jul 9 02:48:24 2011
@@ -0,0 +1,29 @@
+package org.superbiz.cdi.example;
+
+import javax.ejb.EJB;
+import javax.ejb.embeddable.EJBContainer;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import junit.framework.TestCase;
+
+public class UndergradCourseTest extends TestCase{
+ @EJB
+ Course csCourse;
+
+ @Before
+ public void setUp() throws Exception {
+ Object object = EJBContainer.createEJBContainer().getContext().lookup("java:global/cdi-example/CsUndergradCourse!org.superbiz.cdi.example.Course");
+ assertTrue(object instanceof Course);
+ csCourse = (Course) object;
+ }
+
+ @Test
+ public void testPostConstruct() {
+ assertTrue(csCourse != null);
+
+
+ assertEquals(csCourse.getFaculty().getFacultyName(), "Computer Science");
+ }
+}