Author: dblevins
Date: Mon Apr 11 09:54:11 2011
New Revision: 1090996

URL: http://svn.apache.org/viewvc?rev=1090996&view=rev
Log:
OPENEJB-1519: Update existing examples to EJB 3.1

Added:
    
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdbdesc/
      - copied from r1088039, 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdb/
    
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdbdesc/ChatBean.java
      - copied, changed from r1090810, 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdb/ChatBean.java
    
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/test/java/org/superbiz/mdbdesc/
      - copied from r1088039, 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/test/java/org/superbiz/mdb/
    
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/test/java/org/superbiz/mdbdesc/ChatBeanTest.java
      - copied, changed from r1090810, 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/test/java/org/superbiz/mdb/ChatBeanTest.java
Removed:
    
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdbdesc/MessagingClientBean.java
    
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdbdesc/MessagingClientLocal.java
Modified:
    
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/resources/META-INF/ejb-jar.xml

Copied: 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdbdesc/ChatBean.java
 (from r1090810, 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdb/ChatBean.java)
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdbdesc/ChatBean.java?p2=openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdbdesc/ChatBean.java&p1=openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdb/ChatBean.java&r1=1090810&r2=1090996&rev=1090996&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdb/ChatBean.java
 (original)
+++ 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/java/org/superbiz/mdbdesc/ChatBean.java
 Mon Apr 11 09:54:11 2011
@@ -15,7 +15,7 @@
  *  limitations under the License.
  */
 //START SNIPPET: code
-package org.superbiz.mdb;
+package org.superbiz.mdbdesc;
 
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
@@ -27,26 +27,34 @@ import javax.jms.MessageProducer;
 import javax.jms.Queue;
 import javax.jms.Session;
 import javax.jms.TextMessage;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
 
 public class ChatBean implements MessageListener {
 
+    private ConnectionFactory connectionFactory;
+
+    private Queue answerQueue;
 
     public void onMessage(Message message) {
         try {
-            TextMessage textMessage = (TextMessage) message;
-            String question = textMessage.getText();
 
-            if (question.equals("Hello World!")) {
+            final TextMessage textMessage = (TextMessage) message;
+            final String question = textMessage.getText();
+
+            if ("Hello World!".equals(question)) {
+
                 respond("Hello, Test Case!");
-            } else if (question.equals("How are you?")) {
+
+            } else if ("How are you?".equals(question)) {
+
                 respond("I'm doing well.");
-            } else if (question.equals("Still spinning?")) {
+
+            } else if ("Still spinning?".equals(question)) {
+
                 respond("Once every day, as usual.");
+
             }
         } catch (JMSException e) {
-            e.printStackTrace();
+            throw new IllegalStateException(e);
         }
     }
 
@@ -56,8 +64,6 @@ public class ChatBean implements Message
         Session session = null;
 
         try {
-            InitialContext context = new InitialContext();
-            ConnectionFactory connectionFactory = (ConnectionFactory) 
context.lookup("java:comp/env/ConnectionFactory");
             connection = connectionFactory.createConnection();
             connection.start();
 
@@ -65,7 +71,6 @@ public class ChatBean implements Message
             session = connection.createSession(false, 
Session.AUTO_ACKNOWLEDGE);
 
             // Create a MessageProducer from the Session to the Topic or Queue
-            Queue answerQueue = (Queue) 
context.lookup("java:comp/env/AnswerQueue");
             MessageProducer producer = session.createProducer(answerQueue);
             producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
 
@@ -74,8 +79,6 @@ public class ChatBean implements Message
 
             // Tell the producer to send the message
             producer.send(message);
-        } catch (NamingException e) {
-            e.printStackTrace();
         } finally {
             // Clean up
             if (session != null) session.close();

Modified: 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/resources/META-INF/ejb-jar.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/resources/META-INF/ejb-jar.xml?rev=1090996&r1=1090995&r2=1090996&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/resources/META-INF/ejb-jar.xml
 (original)
+++ 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/main/resources/META-INF/ejb-jar.xml
 Mon Apr 11 09:54:11 2011
@@ -16,68 +16,49 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 -->
-<ejb-jar 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/ejb-jar_3_0.xsd";
-         version="3.0">
+
+<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee";>
   <enterprise-beans>
-    <!-- Configure the message driven bean that will listen to the ChatBean 
queue -->
+
     <message-driven>
+
       <ejb-name>ChatBean</ejb-name>
-      <ejb-class>org.superbiz.mdb.ChatBean</ejb-class>
+      <ejb-class>org.superbiz.mdbdesc.ChatBean</ejb-class>
       <messaging-type>javax.jms.MessageListener</messaging-type>
       <transaction-type>Container</transaction-type>
       <message-destination-type>javax.jms.Queue</message-destination-type>
-      <message-destination-link>ChatBean</message-destination-link>
 
-      <!-- Allow the connection factory to be looked up via 
java:comp/env/ConnectionFactory -->
-      <resource-ref>
-        <res-ref-name>ConnectionFactory</res-ref-name>
-        <res-type>javax.jms.ConnectionFactory</res-type>
-      </resource-ref>
+      <activation-config>
+        <activation-config-property>
+          
<activation-config-property-name>destination</activation-config-property-name>
+          
<activation-config-property-value>ChatBean</activation-config-property-value>
+        </activation-config-property>
+        <activation-config-property>
+          
<activation-config-property-name>destinationType</activation-config-property-name>
+          
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
+        </activation-config-property>
+      </activation-config>
 
-      <!-- Allow the reply queue to looked up via java:comp/env/AnswerQueue -->
       <resource-ref>
-        <res-ref-name>AnswerQueue</res-ref-name>
-        <res-type>javax.jms.Queue</res-type>
-      </resource-ref>
-    </message-driven>
-
-    <!-- Configure the session bean that will be sending message to the 
ChatBean queue,
-and listening for the answer -->
-    <session>
-      <ejb-name>MessagingClientBean</ejb-name>
-      <business-local>org.superbiz.mdb.MessagingClientLocal</business-local>
-      <ejb-class>org.superbiz.mdb.MessagingClientBean</ejb-class>
-      <transaction-type>Container</transaction-type>
-
-      <!-- Allow the connection factory to looked up via 
java:comp/env/ConnectionFactory -->
-      <resource-ref>
-        <res-ref-name>ConnectionFactory</res-ref-name>
+        
<res-ref-name>java:comp/env/org.superbiz.mdbdesc.ChatBean/connectionFactory</res-ref-name>
         <res-type>javax.jms.ConnectionFactory</res-type>
+        <mapped-name>Default JMS Connection Factory</mapped-name>
+        <injection-target>
+          
<injection-target-class>org.superbiz.mdbdesc.ChatBean</injection-target-class>
+          <injection-target-name>connectionFactory</injection-target-name>
+        </injection-target>
       </resource-ref>
 
-      <!-- Allow the reply queue to looked up via java:comp/env/AnswerQueue -->
-      <resource-ref>
-        <res-ref-name>AnswerQueue</res-ref-name>
-        <res-type>javax.jms.Queue</res-type>
-      </resource-ref>
-
-      <!-- Allow the destination queue to looked up via java:comp/env/ChatBean 
-->
-      <resource-ref>
-        <res-ref-name>ChatBean</res-ref-name>
-        <res-type>javax.jms.Queue</res-type>
-      </resource-ref>
-    </session>
+      <resource-env-ref>
+        
<resource-env-ref-name>java:comp/env/AnswerQueue</resource-env-ref-name>
+        <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
+        <mapped-name>AnswerQueue</mapped-name>
+        <injection-target>
+          
<injection-target-class>org.superbiz.mdbdesc.ChatBean</injection-target-class>
+          <injection-target-name>answerQueue</injection-target-name>
+        </injection-target>
+      </resource-env-ref>
+    </message-driven>
   </enterprise-beans>
-
-  <!-- define the JMS queues that we need -->
-  <assembly-descriptor>
-    <message-destination>
-      <message-destination-name>AnswerQueue</message-destination-name>
-    </message-destination>
-    <message-destination>
-      <message-destination-name>ChatBean</message-destination-name>
-    </message-destination>
-  </assembly-descriptor>
+  <assembly-descriptor/>
 </ejb-jar>

Copied: 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/test/java/org/superbiz/mdbdesc/ChatBeanTest.java
 (from r1090810, 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/test/java/org/superbiz/mdb/ChatBeanTest.java)
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/test/java/org/superbiz/mdbdesc/ChatBeanTest.java?p2=openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/test/java/org/superbiz/mdbdesc/ChatBeanTest.java&p1=openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/test/java/org/superbiz/mdb/ChatBeanTest.java&r1=1090810&r2=1090996&rev=1090996&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/test/java/org/superbiz/mdb/ChatBeanTest.java
 (original)
+++ 
openejb/trunk/openejb3/examples/simple-mdb-with-descriptor/src/test/java/org/superbiz/mdbdesc/ChatBeanTest.java
 Mon Apr 11 09:54:11 2011
@@ -19,30 +19,70 @@ package org.superbiz.mdb;
 
 import junit.framework.TestCase;
 
-import javax.naming.Context;
-import javax.naming.InitialContext;
+import javax.annotation.Resource;
+import javax.ejb.embeddable.EJBContainer;
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.JMSException;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.TextMessage;
 
 public class ChatBeanTest extends TestCase {
-    protected void setUp() throws Exception {
-        System.setProperty(Context.INITIAL_CONTEXT_FACTORY, 
"org.apache.openejb.client.LocalInitialContextFactory");
-    }
+
+    @Resource
+    private ConnectionFactory connectionFactory;
+
+    @Resource(name = "ChatBean")
+    private Queue questionQueue;
+
+    @Resource(name = "AnswerQueue")
+    private Queue answerQueue;
 
     public void test() throws Exception {
-        InitialContext context = new InitialContext();
 
-        MessagingClientLocal bean = (MessagingClientLocal) 
context.lookup("MessagingClientBeanLocal");
+        EJBContainer.createEJBContainer().getContext().bind("inject", this);
+
+        final Connection connection = connectionFactory.createConnection();
+
+        connection.start();
+
+        final Session session = connection.createSession(false, 
Session.AUTO_ACKNOWLEDGE);
+
+        final MessageProducer questions = 
session.createProducer(questionQueue);
+
+        final MessageConsumer answers = session.createConsumer(answerQueue);
+
+
+        sendText("Hello World!", questions, session);
 
-        bean.sendMessage("Hello World!");
+        assertEquals("Hello, Test Case!", receiveText(answers));
 
-        assertEquals(bean.receiveMessage(), "Hello, Test Case!");
 
-        bean.sendMessage("How are you?");
+        sendText("How are you?", questions, session);
 
-        assertEquals(bean.receiveMessage(), "I'm doing well.");
+        assertEquals("I'm doing well.", receiveText(answers));
 
-        bean.sendMessage("Still spinning?");
 
-        assertEquals(bean.receiveMessage(), "Once every day, as usual.");
+        sendText("Still spinning?", questions, session);
+
+        assertEquals("Once every day, as usual.", receiveText(answers));
+
+    }
+
+    private void sendText(String text, MessageProducer questions, Session 
session) throws JMSException {
+
+        questions.send(session.createTextMessage(text));
+
     }
+
+    private String receiveText(MessageConsumer answers) throws JMSException {
+
+        return ((TextMessage) answers.receive(1000)).getText();
+
+    }
+
 }
 //END SNIPPET: code


Reply via email to