[jboss-cvs] JBoss Messaging SVN: r6400 - in trunk: examples/javaee/ejb-jms-transaction and 5 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Apr 10 11:29:25 EDT 2009


Author: jmesnil
Date: 2009-04-10 11:29:25 -0400 (Fri, 10 Apr 2009)
New Revision: 6400

Added:
   trunk/examples/javaee/ejb-jms-transaction/config/mysql-ds.xml
Modified:
   trunk/.classpath
   trunk/examples/javaee/ejb-jms-transaction/
   trunk/examples/javaee/ejb-jms-transaction/readme.html
   trunk/examples/javaee/ejb-jms-transaction/src/org/jboss/javaee/example/EJBClientExample.java
   trunk/examples/javaee/ejb-jms-transaction/src/org/jboss/javaee/example/server/SendMessageBean.java
   trunk/examples/javaee/ejb-jms-transaction/src/org/jboss/javaee/example/server/SendMessageService.java
   trunk/examples/jms/common/common.css
   trunk/examples/jms/common/src/org/jboss/jms/example/JMSExample.java
Log:
Java EE EJB/JMS Transaction Example

* added example showing how to use JMS and JDBC resources in an EJB

Modified: trunk/.classpath
===================================================================
--- trunk/.classpath	2009-04-10 11:12:02 UTC (rev 6399)
+++ trunk/.classpath	2009-04-10 15:29:25 UTC (rev 6400)
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry excluding="**/.svn/**/*" kind="src" path="src/main"/>
-	<classpathentry kind="src" path="examples/jms/xa-transaction/src"/>
 	<classpathentry kind="src" path="build/src"/>
 	<classpathentry kind="src" path="tests/jms-tests/config"/>
 	<classpathentry kind="src" path="tests/config"/>
@@ -40,6 +39,8 @@
 	<classpathentry kind="src" path="examples/jms/topic-selector-example2/src"/>
 	<classpathentry kind="src" path="examples/jms/transactional/src"/>
 	<classpathentry kind="src" path="examples/jms/management/src"/>
+	<classpathentry kind="src" path="examples/javaee/ejb-jms-transaction/src"/>
+	<classpathentry kind="src" path="examples/javaee/mdb/src"/>
 	<classpathentry kind="lib" path="thirdparty/apache-log4j/lib/log4j.jar"/>
 	<classpathentry kind="lib" path="thirdparty/junit/lib/junit.jar"/>
 	<classpathentry kind="lib" path="thirdparty/jboss/profiler/jvmti/lib/jboss-profiler-jvmti.jar"/>


Property changes on: trunk/examples/javaee/ejb-jms-transaction
___________________________________________________________________
Name: svn:ignore
   + build


Added: trunk/examples/javaee/ejb-jms-transaction/config/mysql-ds.xml
===================================================================
--- trunk/examples/javaee/ejb-jms-transaction/config/mysql-ds.xml	                        (rev 0)
+++ trunk/examples/javaee/ejb-jms-transaction/config/mysql-ds.xml	2009-04-10 15:29:25 UTC (rev 6400)
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- $Id: mysql-ds.xml 41017 2006-02-07 14:26:14Z acoliver $ -->
+<!--  Datasource config for MySQL using 3.0.9 available from:
+http://www.mysql.com/downloads/api-jdbc-stable.html
+-->
+
+<datasources>
+    <xa-datasource> 
+    <jndi-name>XADS</jndi-name> 
+    <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> 
+    <xa-datasource-property name="URL">jdbc:mysql://localhost:3306/jbossdb</xa-datasource-property> 
+    <user-name>jboss</user-name> 
+    <password>jboss</password> 
+    <track-connection-by-tx>true</track-connection-by-tx> 
+    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> 
+    <metadata> 
+    <type-mapping>mySQL</type-mapping> 
+    </metadata> 
+  </xa-datasource>
+    
+  <local-tx-datasource>
+    <jndi-name>DefaultDS</jndi-name>
+    <connection-url>jdbc:mysql://localhost:3306/jbossdb</connection-url>
+    <driver-class>com.mysql.jdbc.Driver</driver-class>
+    <user-name>jboss</user-name>
+    <password>jboss</password>
+    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
+    <!-- should only be used on drivers after 3.22.1 with "ping" support
+    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
+    -->
+    <!-- sql to call when connection is created
+    <new-connection-sql>some arbitrary sql</new-connection-sql>
+      -->
+    <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
+    <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
+      -->
+
+    <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
+    <metadata>
+       <type-mapping>mySQL</type-mapping>
+    </metadata>
+  </local-tx-datasource>
+</datasources>
+

Modified: trunk/examples/javaee/ejb-jms-transaction/readme.html
===================================================================
--- trunk/examples/javaee/ejb-jms-transaction/readme.html	2009-04-10 11:12:02 UTC (rev 6399)
+++ trunk/examples/javaee/ejb-jms-transaction/readme.html	2009-04-10 15:29:25 UTC (rev 6400)
@@ -1,10 +1,227 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-        "http://www.w3.org/TR/html4/loose.dtd">
 <html>
-<head>
-  <title></title>
-</head>
-<body>
+  <head>
+    <title>JBoss Messaging EJB/JMS Transaction Example</title>
+    <link rel="stylesheet" type="text/css" href="../../jms/common/common.css">
+  </head>
+  <body>
+     <h1>EJB/JMS Transaction Example</h1>
+     
+     <p>This example will show how to run JBoss Messaging in JBoss AS (Application Server).</p>
 
-</body>
+     <p>The example application will invoke an EJB which  will (1) send a JMS message, (2) update a database from 
+        the same transaction.<br />
+        The example application will then receive the message sent by the EJB.<br />
+        We will also check that the database has been updated as expected.</p>
+
+     <h2>Example configuration</h2>
+
+     <p>To run the example, you need to download JBoss AS 5.x and create a configuration for JBoss Messaging.</p>
+     <p>The example also requires a database. The instructions are for MySQL. If you use another database, please refer
+         to the database documentation to configure it.</p>
+         
+
+     <h3>JBoss AS configuration</h3>
+     
+     <p>Please refer to JBoss Messaging documentation to deploy it for JBoss AS 5 <span class="missing-doc">add a link to the doc</span></p>
+     
+     <h3>Database configuration</h3>
+
+     <p>This example needs a database supporting XA transactions. The instructions are written for <a href="http://dev.mysql.com/">MySQL</a>. Please refer to your
+         database documentation to configure it appropriately.</p>
+     <p>To use MySQL with JBoss AS 5</p>
+     <ul>
+         <li>remove HSQLDB configuration from jbm2_default deployment</li>
+         <pre>
+             <code>rm $JBOSS_HOME/server/jbm2_default/deploy/hsqldb-ds.xml</code>
+         </pre>
+         <li>copy <a href="config/mysql-ds.xml">mysql-ds.xml</a> to <code>$JBOSS_HOME/server/jbm2_default/deploy/</code></li>
+         <li>copy MySQL JDBC jar to <code>$JBOSS_HOME/server/jbm2_default/lib/</code></li>
+     </ul>
+     
+     <p>MySQL is configured to connect to a <code>jbossdb</code> database using the <code>jboss</code>/<code>jboss</code> credentials
+     <p>MySQL configuration file defines two DataSources:</p>
+     <ul>
+         <li><code>DefaultDS</code>, the default DataSource (used to create a table from the example)</li>
+         <li><code>XADS</code>, the XA DataSource. This datasource will be used to send a JMS message and update the table within the same transaction</li>
+     </ul>
+     
+     <h2>Example step-by-step</h2>
+
+     <p><em>To deploy the example, type <code>ant deploy</code> from this directory</em>.</p>
+     <p><em>Once the example is deployed in JBoss AS 5, type <code>ant</code> to run the example</em>.</p>
+     <p><em>Type <code>ant undeploy</code> to undeploy the example from JBoss AS 5</em>.</p>
+     
+     The example code is composed of two main classes:
+     <ul>
+         <li><code>EJBExample</code></li> - the example application
+         <li><code>SendMessageBean</code></li> - a Stateless EJB
+     </ul>
+     
+     <h3>Example Application</h3>
+     
+     <p>Let's take a look at EJBClientExample first.</p>
+         
+     <ol>
+         <li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <a href="config/jndi.properties">jndi.properties</a></li>
+         </li>
+         <pre>
+             <code>InitialContext initialContext = new InitialContext();</code>
+         </pre>
+
+         <li>We look up the EJB</li>
+         <pre>
+             <code>SendMessageService service = (SendMessageService)initialContext.lookup("mdb-example/SendMessageBean/remote");</code>
+         </pre>
+
+         <li>We create the DB table which will be updated if it does not already exist</li>
+         <pre>
+             <code>service.createTable();</code>
+         </pre>
+
+         <li>We invoke the EJB's <code>sendAndUpdate</code> method. This method will send a JMS text message (with the text passed in parameter)
+             and insert a row in the database table with the text and the message's JMS Message ID</li>
+         <pre>
+             <code>service.sendAndUpdate("This is a text message");</code>
+         </pre>
+
+         <p><em>We will now consume the JMS message which was sent by the EJB at step 4.</em></p>
+         
+         <li>We look up the JMS connection factory</li>
+         <pre>
+             <code>ConnectionFactory cf = (ConnectionFactory)initialContext.lookup("/ConnectionFactory");</code>
+         </pre>
+
+         <li>We lookup the JMS queue</li>
+         <pre>
+             <code>Queue queue = (Queue)initialContext.lookup("queue/testQueue");</code>
+         </pre>
+
+         <li>We create a connection, a session and a message consumer for the queue</li>
+         <pre>
+             <code>connection = cf.createConnection();
+             Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+             MessageConsumer consumer = session.createConsumer(queue);</code>
+         </pre>
+
+         <li>We start the JMS connection</li>
+         <pre>
+             <code>connection.start();</code>
+         </pre>
+
+         <li>We receive a message from the queue. It corresponds to the message sent by the EJB</li>
+         <pre>
+             <code>TextMessage messageReceived = (TextMessage)consumer.receive(5000);
+             System.out.println("Received message: " + messageReceived.getText() +
+                                         " (" +  messageReceived.getJMSMessageID() + ")");
+             </code>
+         </pre>
+
+         <li>And finally, <b>always</b> remember to close your JMS connections and resources after use, in a <code>finally</code> block. Closing a JMS connection will automatically close all of its sessions, consumers, producer and browser objects</li>
+
+         <pre>
+             <code>finally
+             {
+                if (initialContext != null)
+                {
+                  initialContext.close();
+                }
+                if (connection != null)
+                {
+                   connection.close();
+                }
+             }</code>
+          </pre>
+     </ol>
+     
+     <h3>EJB Example</h3>
+          
+     <p>Let's now take a look at the EJB example</p>
+     
+     <ol>
+         <li>First, we create a new initial context</li>
+         <pre>
+             <code>ic = new InitialContext();</code>
+        </pre>
+
+         <li>We look up the JMS <em>XA</em> Connection Factory (which is bound to <code>java:/JmsXA</code>)</li>
+         <pre>
+             <code>ConnectionFactory cf = (ConnectionFactory)ic.lookup("java:/JmsXA");</code>
+        </pre>
+             
+         <li>We look up the JMS Queue</li>
+         <pre>
+             <code>Queue queue = (Queue)ic.lookup("queue/testQueue");</code>
+        </pre>
+             
+         <li>We create a JMS connection, a session and a message producer for the queue</li>
+         <pre>
+             <code>jmsConnection = cf.createConnection();
+             Session session = jmsConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+             MessageProducer messageProducer = session.createProducer(queue);</code>
+        </pre>
+             
+         <li>We create a text message with the text passed in parameter of the EJB method</li>
+         <pre>
+             <code>TextMessage message = session.createTextMessage(text);</code>
+        </pre>
+             
+         <li>We send the message to the queue</li>
+         <pre>
+             <code>messageProducer.send(message);
+             System.out.println("Sent message: " + message.getText() + "(" + message.getJMSMessageID() + ")");</code>
+        </pre>
+             
+         <li>We now lookup the JDBC <em>XA</em> DataSource</li>
+         <pre>
+             <code>DataSource ds = (DataSource)ic.lookup("java:/XADS");</code>
+        </pre>
+             
+         <li>We retrieve a JDBC connection</li>
+         <pre>
+             <code>jdbcConnection  = ds.getConnection();</code>
+        </pre>
+             
+         <li>We create a prepared statement to insert the text and message's ID in the DB table</li>
+         <pre>
+             <code>PreparedStatement pr = jdbcConnection.prepareStatement("INSERT INTO " + TABLE
+                        + " (id, text) VALUES ('" + message.getJMSMessageID() + "', '" + text + "');");</code>
+        </pre>
+             
+         <li>We execute the prepared statement</li>
+         <pre>
+             <code>pr.execute();</code>
+        </pre>
+             
+         <li>We close the prepared statement</li>
+         <pre>
+             <code>pr.close();</code>
+         </pre>
+             
+         <li>And finally, <b>always</b> remember to close all your connections and resources (for both JMS and JDBC) after use, in a <code>finally</code> block.</li>
+         <pre>
+            <code>finally
+            {
+                if (ic != null)
+                {
+                   ic.close();
+                }
+                if (jmsConnection != null)
+                {
+                   jmsConnection.close();
+                }
+                if (jdbcConnection != null)
+                {
+                   jdbcConnection.close();
+                }
+            }</code>
+        </pre>
+     
+     <h2>More information</h2>
+     
+     <ul>
+         <li><span class="missing-doc">JBoss Messsaging deployment in JBoss AS 5 </span></li>
+         <li><a href="http://www.jboss.org/file-access/default/members/jbossas/freezone/docs/Administration_And_Configuration_Guide/5/html/alternative_DBs.html">Use Alternative Databases with JBoss AS</a></li>
+     </ul>
+
+  </body>
 </html>
\ No newline at end of file

Modified: trunk/examples/javaee/ejb-jms-transaction/src/org/jboss/javaee/example/EJBClientExample.java
===================================================================
--- trunk/examples/javaee/ejb-jms-transaction/src/org/jboss/javaee/example/EJBClientExample.java	2009-04-10 11:12:02 UTC (rev 6399)
+++ trunk/examples/javaee/ejb-jms-transaction/src/org/jboss/javaee/example/EJBClientExample.java	2009-04-10 15:29:25 UTC (rev 6400)
@@ -21,26 +21,73 @@
  */
 package org.jboss.javaee.example;
 
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.MessageConsumer;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+import javax.naming.InitialContext;
+
 import org.jboss.javaee.example.server.SendMessageService;
 
-import javax.naming.InitialContext;
-
 /**
  * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
  */
 public class EJBClientExample
 {
    public static void main(String[] args) throws Exception
    {
-      //Step 1. Obtain an Initial Context
-      InitialContext ctx = new InitialContext();
+      InitialContext initialContext = null;
+      Connection connection = null;
+      try
+      {
+         // Step 1. Obtain an Initial Context
+         initialContext = new InitialContext();
 
-      //Step 2. Lookup the EJB
-      SendMessageService service = (SendMessageService) ctx.lookup("mdb-example/SendMessageBean/remote");
+         // Step 2. Lookup the EJB
+         SendMessageService service = (SendMessageService)initialContext.lookup("mdb-example/SendMessageBean/remote");
 
-      //Step 3. Invoke the send method
-      service.send();
+         // Step 3. Create the DB table which will be updated
+         service.createTable();
 
-      //todo receive the message
+         // Step 4. Invoke the sendAndUpdate method
+         service.sendAndUpdate("This is a text message");
+         System.out.println("invoked the EJB service");
+
+         // Step 5. Lookup the JMS connection factory
+         ConnectionFactory cf = (ConnectionFactory)initialContext.lookup("/ConnectionFactory");
+
+         // Step 6. Lookup the queue
+         Queue queue = (Queue)initialContext.lookup("queue/testQueue");
+
+         // Step 7. Create a connection, a session and a message consumer for the queue
+         connection = cf.createConnection();
+         Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+         MessageConsumer consumer = session.createConsumer(queue);
+
+         // Step 8. Start the connection
+         connection.start();
+
+         // Step 9. Receive the message sent by the EJB
+         TextMessage messageReceived = (TextMessage)consumer.receive(5000);
+         System.out.println("Received message: " + messageReceived.getText() +
+                            " (" +
+                            messageReceived.getJMSMessageID() +
+                            ")");
+      }
+      finally
+      {
+         // Step 10. Be sure to close the resources!         
+         if (initialContext != null)
+         {
+            initialContext.close();
+         }
+         if (connection != null)
+         {
+            connection.close();
+         }
+      }
    }
 }

Modified: trunk/examples/javaee/ejb-jms-transaction/src/org/jboss/javaee/example/server/SendMessageBean.java
===================================================================
--- trunk/examples/javaee/ejb-jms-transaction/src/org/jboss/javaee/example/server/SendMessageBean.java	2009-04-10 11:12:02 UTC (rev 6399)
+++ trunk/examples/javaee/ejb-jms-transaction/src/org/jboss/javaee/example/server/SendMessageBean.java	2009-04-10 15:29:25 UTC (rev 6400)
@@ -21,6 +21,8 @@
  */
 package org.jboss.javaee.example.server;
 
+import java.sql.PreparedStatement;
+
 import javax.ejb.Remote;
 import javax.ejb.Stateless;
 import javax.jms.Connection;
@@ -30,58 +32,117 @@
 import javax.jms.Session;
 import javax.jms.TextMessage;
 import javax.naming.InitialContext;
+import javax.sql.DataSource;
 
 /**
  * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
  */
 @Stateless
 @Remote(SendMessageService.class)
 public class SendMessageBean implements SendMessageService
 {
-   public void send() throws Exception
+   
+   private static final String TABLE = "jbm_example";
+   
+   public void createTable() throws Exception
    {
+      InitialContext ic = new InitialContext();
+      DataSource ds = (DataSource)ic.lookup("java:/DefaultDS");
+      java.sql.Connection con = ds.getConnection();
+      
+      // check if the table exists:
+      boolean createTable = false;
+      try {
+         PreparedStatement pr = con.prepareStatement("SELECT * FROM " + TABLE + ";");
+         pr.executeQuery();
+         pr.close();
+      } catch (Exception e)
+      {
+         createTable = true;
+      }
+      
+      if (createTable)
+      {
+         PreparedStatement pr = con.prepareStatement("CREATE TABLE " + TABLE + "(id VARCHAR(100), text VARCHAR(100)) TYPE=innodb;");
+         pr.execute();
+         pr.close();
+         System.out.println("Table " + TABLE + " created");
+      }
+      
+      con.close();
+   }
+
+   public void dropTable() throws Exception
+   {
+   }
+
+   public void sendAndUpdate(String text) throws Exception
+   {
       InitialContext ic = null;
-      Connection connection = null;
+      Connection jmsConnection = null;
+      java.sql.Connection jdbcConnection = null
+      ;
       try
       {
-         System.out.println("SendMessageBean.send");
-         //Step 4. Lookup the initial context
+         // Step 1. Lookup the initial context
          ic = new InitialContext();
 
-         //Step 5. Look Up the XA Connection Factory
-         ConnectionFactory cf = (ConnectionFactory) ic.lookup("java:/JmsXA");
+         // JMS operations
+         
+         // Step 2. Look up the XA Connection Factory
+         ConnectionFactory cf = (ConnectionFactory)ic.lookup("java:/JmsXA");
 
-         //Step 6. Create a connection
-         connection = cf.createConnection();
+         // Step 3. Look up the Queue
+         Queue queue = (Queue)ic.lookup("queue/testQueue");
 
-         //Step 7. Lookup the Queue
-         Queue queue = (Queue) ic.lookup("queue/testQueue");
-
-         //Step 8. Create a session
-         Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-
-         //Step 9. Create a Message Producer
+         // Step 4. Create a connection, a session and a message producer for the queue
+         jmsConnection = cf.createConnection();
+         Session session = jmsConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
          MessageProducer messageProducer = session.createProducer(queue);
 
-         //Step 10. Create a Text Message
-         TextMessage message = session.createTextMessage("this is a reply!");
+         // Step 5. Create a Text Message
+         TextMessage message = session.createTextMessage(text);
 
-         //Step 11. Send The Text Message
+         // Step 6. Send The Text Message
          messageProducer.send(message);
+         System.out.println("Sent message: " + message.getText() + "(" + message.getJMSMessageID() + ")");
 
-         //todo something else in the same tx, update database
+         // DB operations
+         
+         // Step 7. Look up the XA Data Source
+         DataSource ds = (DataSource)ic.lookup("java:/XADS");
+         
+         // Step 8. Retrieve the JDBC connection
+         jdbcConnection  = ds.getConnection();
+         
+         // Step 9. Create the prepared statement to insert the text and the message's ID in the table
+         PreparedStatement pr = jdbcConnection.prepareStatement("INSERT INTO " + TABLE + " (id, text) VALUES ('" + message.getJMSMessageID() +
+                                                     "', '" +
+                                                     text +
+                                                     "');");
+         
+         // Step 10. execute the prepared statement
+         pr.execute();
+         
+         // Step 11. close the prepared statement
+         pr.close();
       }
       finally
       {
-         //Step 12. Be sure to close our JMS resources!
-         if(ic != null)
+         // Step 12. Be sure to close all resources!
+         if (ic != null)
          {
             ic.close();
          }
-         if(connection != null)
+         if (jmsConnection != null)
          {
-            connection.close();
+            jmsConnection.close();
          }
+         if (jdbcConnection != null)
+         {
+            jdbcConnection.close();
+         }
       }
    }
 }

Modified: trunk/examples/javaee/ejb-jms-transaction/src/org/jboss/javaee/example/server/SendMessageService.java
===================================================================
--- trunk/examples/javaee/ejb-jms-transaction/src/org/jboss/javaee/example/server/SendMessageService.java	2009-04-10 11:12:02 UTC (rev 6399)
+++ trunk/examples/javaee/ejb-jms-transaction/src/org/jboss/javaee/example/server/SendMessageService.java	2009-04-10 15:29:25 UTC (rev 6400)
@@ -26,5 +26,8 @@
  */
 public interface SendMessageService
 {
-   void send() throws Exception;
+   void sendAndUpdate(String text) throws Exception;
+
+   void createTable() throws Exception;
+
 }

Modified: trunk/examples/jms/common/common.css
===================================================================
--- trunk/examples/jms/common/common.css	2009-04-10 11:12:02 UTC (rev 6399)
+++ trunk/examples/jms/common/common.css	2009-04-10 15:29:25 UTC (rev 6400)
@@ -1,2 +1,7 @@
 pre, code { background-color: lightgrey;}
 pre { border: dotted grey 1px;}
+
+.missing-doc {
+    background-color: red;
+    border: dotted black 1px;
+}

Modified: trunk/examples/jms/common/src/org/jboss/jms/example/JMSExample.java
===================================================================
--- trunk/examples/jms/common/src/org/jboss/jms/example/JMSExample.java	2009-04-10 11:12:02 UTC (rev 6399)
+++ trunk/examples/jms/common/src/org/jboss/jms/example/JMSExample.java	2009-04-10 15:29:25 UTC (rev 6400)
@@ -173,11 +173,11 @@
       {
          if (server.getInputStream() != null)
          {
-            server.getInputStream().close();
+            // server.getInputStream().close();
          }
          if (server.getErrorStream() != null)
          {
-            server.getErrorStream().close();
+            // server.getErrorStream().close();
          }
          server.destroy();
       }




More information about the jboss-cvs-commits mailing list