You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2009/03/17 15:24:57 UTC

svn commit: r755265 - in /servicemix/smx4/nmr/trunk/examples/nmr: client/src/main/java/org/apache/servicemix/nmr/examples/nmr/client/ endpoint/src/main/java/org/apache/servicemix/nmr/examples/nmr/endpoint/ endpoint/src/main/resources/META-INF/spring/

Author: gnodet
Date: Tue Mar 17 14:24:57 2009
New Revision: 755265

URL: http://svn.apache.org/viewvc?rev=755265&view=rev
Log:
Refactory a bit the client example

Modified:
    servicemix/smx4/nmr/trunk/examples/nmr/client/src/main/java/org/apache/servicemix/nmr/examples/nmr/client/Client.java
    servicemix/smx4/nmr/trunk/examples/nmr/endpoint/src/main/java/org/apache/servicemix/nmr/examples/nmr/endpoint/EchoEndpoint.java
    servicemix/smx4/nmr/trunk/examples/nmr/endpoint/src/main/resources/META-INF/spring/beans.xml

Modified: servicemix/smx4/nmr/trunk/examples/nmr/client/src/main/java/org/apache/servicemix/nmr/examples/nmr/client/Client.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/examples/nmr/client/src/main/java/org/apache/servicemix/nmr/examples/nmr/client/Client.java?rev=755265&r1=755264&r2=755265&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/examples/nmr/client/src/main/java/org/apache/servicemix/nmr/examples/nmr/client/Client.java (original)
+++ servicemix/smx4/nmr/trunk/examples/nmr/client/src/main/java/org/apache/servicemix/nmr/examples/nmr/client/Client.java Tue Mar 17 14:24:57 2009
@@ -29,25 +29,27 @@
 import org.springframework.beans.factory.DisposableBean;
 import org.springframework.beans.factory.InitializingBean;
 
-public class Client implements InitializingBean, DisposableBean {
+public class Client implements InitializingBean, DisposableBean, Runnable {
 
     private static final transient Log LOG = LogFactory.getLog(Client.class);
     private NMR nmr;
 
-    private SendRequestThread sendRequestThread;
+    private Thread sendRequestThread;
+    private volatile boolean run = true;
 
     public void afterPropertiesSet() throws Exception {
-        sendRequestThread = new SendRequestThread();
-        sendRequestThread.setRun(true);
+        sendRequestThread = new Thread(this);
         sendRequestThread.start();
 
     }
 
     public void destroy() throws Exception {
-        sendRequestThread.setRun(false);
+        run = false;
+        if (sendRequestThread != null) {
+            sendRequestThread.interrupt();
+        }
     }
 
-
     public void setNmr(NMR nmr) {
         this.nmr = nmr;
     }
@@ -56,43 +58,40 @@
         return nmr;
     }
 
-    class SendRequestThread extends Thread {
-        private boolean run;
-
-        public void run() {
-            Channel client = null;
-            try {
-                client = nmr.createChannel();
-                Reference ref = nmr.getEndpointRegistry().lookup(ServiceHelper.createMap(Endpoint.NAME, "EchoEndpoint")); 
-                while (run) {
-                    try {
-                        Thread.sleep(5000);
-                        if (run && nmr != null) {
-                            Exchange e = client.createExchange(Pattern.InOut);
-                            e.setTarget(ref);
-                            e.getIn().setBody("Hello");
-                            client.sendSync(e);
-                            LOG.info("Response from Endpoint " + e.getOut().getBody());
-                            e.setStatus(Status.Done);
-                            client.send(e);
-                        }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        LOG.error(e.getMessage());
-                    }
+    public void run() {
+        Channel client = null;
+        try {
+            // Create the client channel
+            client = nmr.createChannel();
+            // Create a reference that will be used as the target for our exchanges
+            Reference ref = nmr.getEndpointRegistry().lookup(ServiceHelper.createMap(Endpoint.NAME, "EchoEndpoint"));
+            while (run) {
+                try {
+                    // Create an exchange and send it
+                    Exchange e = client.createExchange(Pattern.InOut);
+                    e.setTarget(ref);
+                    e.getIn().setBody("Hello");
+                    client.sendSync(e);
+                    LOG.info("Response from Endpoint " + e.getOut().getBody());
+                    // Send back the Done status
+                    e.setStatus(Status.Done);
+                    client.send(e);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    LOG.error(e.getMessage());
                 }
-            } finally {
-                if (client != null) {
-                    client.close();
+                // Sleep a bit
+                try {
+                    Thread.sleep(5000);
+                } catch (InterruptedException e) {
                 }
             }
-        }
-
-        public void setRun(boolean run) {
-            this.run = run;
+        } finally {
+            if (client != null) {
+                client.close();
+            }
         }
     }
 
-
 }
 

Modified: servicemix/smx4/nmr/trunk/examples/nmr/endpoint/src/main/java/org/apache/servicemix/nmr/examples/nmr/endpoint/EchoEndpoint.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/examples/nmr/endpoint/src/main/java/org/apache/servicemix/nmr/examples/nmr/endpoint/EchoEndpoint.java?rev=755265&r1=755264&r2=755265&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/examples/nmr/endpoint/src/main/java/org/apache/servicemix/nmr/examples/nmr/endpoint/EchoEndpoint.java (original)
+++ servicemix/smx4/nmr/trunk/examples/nmr/endpoint/src/main/java/org/apache/servicemix/nmr/examples/nmr/endpoint/EchoEndpoint.java Tue Mar 17 14:24:57 2009
@@ -24,7 +24,9 @@
 import org.apache.servicemix.nmr.api.Status;
 
 public class EchoEndpoint implements Endpoint {
+
     private static final transient Log LOG = LogFactory.getLog(EchoEndpoint.class);
+
     private Channel channel;
 
     public void process(Exchange exchange) {

Modified: servicemix/smx4/nmr/trunk/examples/nmr/endpoint/src/main/resources/META-INF/spring/beans.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/examples/nmr/endpoint/src/main/resources/META-INF/spring/beans.xml?rev=755265&r1=755264&r2=755265&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/examples/nmr/endpoint/src/main/resources/META-INF/spring/beans.xml (original)
+++ servicemix/smx4/nmr/trunk/examples/nmr/endpoint/src/main/resources/META-INF/spring/beans.xml Tue Mar 17 14:24:57 2009
@@ -28,8 +28,8 @@
   http://www.springframework.org/schema/osgi/spring-osgi.xsd">
 
     <!-- Echo Endpoint -->
-    <bean id="echo" class="org.apache.servicemix.nmr.examples.nmr.endpoint.EchoEndpoint">
-    </bean>
+    <bean id="echo" class="org.apache.servicemix.nmr.examples.nmr.endpoint.EchoEndpoint" />
+
     <osgi:service ref="echo">
         <osgi:interfaces>
             <value>org.apache.servicemix.nmr.api.Endpoint</value>