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:19:18 UTC
svn commit: r755262 - in /servicemix/smx4/nmr/trunk/examples/nmr:
client/src/main/java/org/apache/servicemix/nmr/examples/nmr/client/Client.java
endpoint/src/main/java/org/apache/servicemix/nmr/examples/nmr/endpoint/EchoEndpoint.java
Author: gnodet
Date: Tue Mar 17 14:19:17 2009
New Revision: 755262
URL: http://svn.apache.org/viewvc?rev=755262&view=rev
Log:
Clean NMR example a bit (reuse and close the client channel)
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
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=755262&r1=755261&r2=755262&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:19:17 2009
@@ -24,6 +24,7 @@
import org.apache.servicemix.nmr.api.NMR;
import org.apache.servicemix.nmr.api.Pattern;
import org.apache.servicemix.nmr.api.Status;
+import org.apache.servicemix.nmr.api.Reference;
import org.apache.servicemix.nmr.api.service.ServiceHelper;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
@@ -34,12 +35,12 @@
private NMR nmr;
private SendRequestThread sendRequestThread;
-
+
public void afterPropertiesSet() throws Exception {
sendRequestThread = new SendRequestThread();
sendRequestThread.setRun(true);
sendRequestThread.start();
-
+
}
public void destroy() throws Exception {
@@ -54,35 +55,44 @@
public NMR getNmr() {
return nmr;
}
-
+
class SendRequestThread extends Thread {
private boolean run;
+
public void run() {
- while (run) {
- try {
- Thread.sleep(5000);
- if (run && nmr != null) {
- Channel client = nmr.createChannel();
- Exchange e = client.createExchange(Pattern.InOut);
- e.setTarget(nmr.getEndpointRegistry().lookup(ServiceHelper.createMap(Endpoint.NAME, "EchoEndpoint")));
- e.getIn().setBody("Hello");
- client.sendSync(e);
- LOG.info("Response from Endpoint " + e.getOut().getBody());
- e.setStatus(Status.Done);
- client.send(e);
+ 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());
}
- } catch (Exception e) {
- e.printStackTrace();
- LOG.error(e.getMessage());
+ }
+ } finally {
+ if (client != null) {
+ client.close();
}
}
}
-
+
public void setRun(boolean run) {
this.run = run;
}
}
-
+
}
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=755262&r1=755261&r2=755262&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:19:17 2009
@@ -26,16 +26,17 @@
public class EchoEndpoint implements Endpoint {
private static final transient Log LOG = LogFactory.getLog(EchoEndpoint.class);
private Channel channel;
+
public void process(Exchange exchange) {
if (exchange.getStatus().equals(Status.Active)) {
- LOG.info("Received in EchoEndpoint: " + exchange.getIn().getBody());
- exchange.getOut().setBody("Echo" + exchange.getIn().getBody(), String.class);
+ LOG.info("Received in EchoEndpoint: " + exchange.getIn().getBody());
+ exchange.getOut().setBody("Echo" + exchange.getIn().getBody(), String.class);
channel.send(exchange);
}
}
public void setChannel(Channel channel) {
- this.channel = channel;
+ this.channel = channel;
}
}