Author: dblevins
Date: Wed Feb 14 16:31:58 2007
New Revision: 507754

URL: http://svn.apache.org/viewvc?view=rev&rev=507754
Log:
Patch from Filippo Diotalevi - OPENEJB-357: Example: Using @EJB to refer to 
other EJBs
Thanks Filippo!

Added:
    incubator/openejb/trunk/openejb3/examples/ejb-injection/README.txt
Modified:
    
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderImpl.java
    
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderLocal.java
    
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderRemote.java
    
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreImpl.java
    
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreLocal.java
    
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreRemote.java
    
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/test/java/org/apache/openejb/examples/injection/EjbDependencyTest.java

Added: incubator/openejb/trunk/openejb3/examples/ejb-injection/README.txt
URL: 
http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/examples/ejb-injection/README.txt?view=auto&rev=507754
==============================================================================
--- incubator/openejb/trunk/openejb3/examples/ejb-injection/README.txt (added)
+++ incubator/openejb/trunk/openejb3/examples/ejb-injection/README.txt Wed Feb 
14 16:31:58 2007
@@ -0,0 +1,16 @@
+This example shows how to use the @EJB annotation on a bean class to refer to 
other beans.
+
+This functionality is often referred as dependency injection (see
+http://www.martinfowler.com/articles/injection.html), and has been recently 
introduced in
+Java EE 5.
+
+In this particular example, we will create two session stateless beans
+
+  * a DataStore session bean
+  * a DataReader session bean
+  
+The DataReader bean uses the DataStore to retrieve some informations, and
+we will see how we can, inside the DataReader bean, get a reference to the
+DataStore bean using the @EJB annotation, thus avoiding the use of the
+JNDI API.
+

Modified: 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderImpl.java?view=diff&rev=507754&r1=507753&r2=507754
==============================================================================
--- 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderImpl.java
 (original)
+++ 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderImpl.java
 Wed Feb 14 16:31:58 2007
@@ -34,6 +34,7 @@
  * this means that the application server, at runtime, will inject in this 
instance
  * variable a reference to the EJB DataStoreLocal
  */
+//START SNIPPET: code
 @Stateless
 public class DataReaderImpl implements DataReaderLocal, DataReaderRemote {
        
@@ -47,4 +48,5 @@
        public String readDataFromRemoteStore() {
                return "REMOTE:"+dataStoreRemote.getData();
        }
-}
\ No newline at end of file
+}
+//END SNIPPET: code
\ No newline at end of file

Modified: 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderLocal.java
URL: 
http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderLocal.java?view=diff&rev=507754&r1=507753&r2=507754
==============================================================================
--- 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderLocal.java
 (original)
+++ 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderLocal.java
 Wed Feb 14 16:31:58 2007
@@ -24,9 +24,11 @@
  * annotation, but it's optional. A business interface which is 
  * not annotated with @Local or @Remote is assumed to be Local
  */
+//START SNIPPET: code
 @Local
 public interface DataReaderLocal {
        
        public String readDataFromLocalStore();
        public String readDataFromRemoteStore();
-}
\ No newline at end of file
+}
+//END SNIPPET: code

Modified: 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderRemote.java
URL: 
http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderRemote.java?view=diff&rev=507754&r1=507753&r2=507754
==============================================================================
--- 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderRemote.java
 (original)
+++ 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataReaderRemote.java
 Wed Feb 14 16:31:58 2007
@@ -29,4 +29,4 @@
        public String readDataFromLocalStore();
        public String readDataFromRemoteStore();
 
-}
\ No newline at end of file
+}

Modified: 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreImpl.java?view=diff&rev=507754&r1=507753&r2=507754
==============================================================================
--- 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreImpl.java
 (original)
+++ 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreImpl.java
 Wed Feb 14 16:31:58 2007
@@ -26,6 +26,7 @@
  * interface, and DataStoreLocal, a local business interface
  * 
  */
+//START SNIPPET: code
 @Stateless
 public class DataStoreImpl implements DataStoreLocal, DataStoreRemote{
 
@@ -33,5 +34,5 @@
                return "42";
        }
 
-
-}
\ No newline at end of file
+}
+//END SNIPPET: code

Modified: 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreLocal.java
URL: 
http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreLocal.java?view=diff&rev=507754&r1=507753&r2=507754
==============================================================================
--- 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreLocal.java
 (original)
+++ 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreLocal.java
 Wed Feb 14 16:31:58 2007
@@ -24,10 +24,11 @@
  * annotation, but it's optional. A business interface which is 
  * not annotated with @Local or @Remote is assumed to be Local
  */
+//START SNIPPET: code
 @Local
 public interface DataStoreLocal {
        
        public String getData();
        
-
-}
\ No newline at end of file
+}
+//END SNIPPET: code

Modified: 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreRemote.java
URL: 
http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreRemote.java?view=diff&rev=507754&r1=507753&r2=507754
==============================================================================
--- 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreRemote.java
 (original)
+++ 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/main/java/org/apache/openejb/examples/injection/DataStoreRemote.java
 Wed Feb 14 16:31:58 2007
@@ -23,9 +23,11 @@
  * A remote business interface must be annotated with the @Remote
  * annotation
  */
+//START SNIPPET: code
 @Remote
 public interface DataStoreRemote {
        
        public String getData();
        
-}
\ No newline at end of file
+}
+//END SNIPPET: code

Modified: 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/test/java/org/apache/openejb/examples/injection/EjbDependencyTest.java
URL: 
http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/examples/ejb-injection/src/test/java/org/apache/openejb/examples/injection/EjbDependencyTest.java?view=diff&rev=507754&r1=507753&r2=507754
==============================================================================
--- 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/test/java/org/apache/openejb/examples/injection/EjbDependencyTest.java
 (original)
+++ 
incubator/openejb/trunk/openejb3/examples/ejb-injection/src/test/java/org/apache/openejb/examples/injection/EjbDependencyTest.java
 Wed Feb 14 16:31:58 2007
@@ -32,6 +32,7 @@
        private static final String REMOTE_STORE_RESULT = "REMOTE:42";
        private static final String LOCAL_STORE_RESULT = "LOCAL:42";
        
+       //START SNIPPET: setup
        private InitialContext initialContext;
 
     protected void setUp() throws Exception {
@@ -41,7 +42,9 @@
 
         initialContext = new InitialContext(properties);
     }
+    //END SNIPPET: setup
 
+    //START SNIPPET: test
     public void testViaLocalInterface() throws Exception {
        Object object = initialContext.lookup("DataReaderImplBusinessLocal");
        
@@ -49,6 +52,7 @@
        assertEquals(LOCAL_STORE_RESULT, 
((DataReaderLocal)object).readDataFromLocalStore());
        assertEquals(REMOTE_STORE_RESULT, 
((DataReaderLocal)object).readDataFromRemoteStore());
     }
+    //END SNIPPET: test
     
     public void testViaRemoteInterface() throws Exception {
        Object object = initialContext.lookup("DataReaderImplBusinessRemote");


Reply via email to