Author: gnodet
Date: Mon Oct  9 20:55:25 2006
New Revision: 454600

URL: http://svn.apache.org/viewvc?view=rev&rev=454600
Log:
SM-696: Add an operation to the EndpointMBean to allow testing the endpoint 
through jmx

Modified:
    
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/Endpoint.java

Modified: 
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/Endpoint.java
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/Endpoint.java?view=diff&rev=454600&r1=454599&r2=454600
==============================================================================
--- 
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/Endpoint.java
 (original)
+++ 
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/Endpoint.java
 Mon Oct  9 20:55:25 2006
@@ -27,6 +27,8 @@
 import javax.xml.namespace.QName;
 import javax.xml.transform.TransformerException;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.servicemix.client.ServiceMixClient;
 import org.apache.servicemix.jbi.FaultException;
 import org.apache.servicemix.jbi.jaxp.SourceTransformer;
@@ -41,8 +43,12 @@
 import org.apache.servicemix.jbi.util.DOMUtil;
 import org.apache.servicemix.jbi.util.QNameUtil;
 
+import sun.security.action.GetLongAction;
+
 public class Endpoint implements EndpointMBean, MBeanInfoProvider {
 
+    private static final Log log = LogFactory.getLog(Endpoint.class);
+    
     private AbstractServiceEndpoint endpoint;
     private Registry registry;
     
@@ -100,6 +106,7 @@
         OperationInfoHelper helper = new OperationInfoHelper();
         helper.addOperation(getObjectToManage(), "getReference", "retrieve the 
endpoint reference");
         helper.addOperation(getObjectToManage(), "getWSDL", "retrieve the wsdl 
description of this endpoint");
+        helper.addOperation(getObjectToManage(), "send", "send a simple 
message exchange to test this endpoint");
         return helper.getOperationInfos();
     }
 
@@ -138,8 +145,9 @@
     }
 
     public String send(String content, String operation, String mep) {
+        ServiceMixClient client = null;
         try {
-            ServiceMixClient client = 
registry.getContainer().getClientFactory().createClient();
+            client = registry.getContainer().getClientFactory().createClient();
             MessageExchange me = 
client.getExchangeFactory().createExchange(URI.create(mep));
             NormalizedMessage nm = me.createMessage();
             me.setMessage(nm, "in");
@@ -158,7 +166,16 @@
             }
             return null;
         } catch (Exception e) {
+            log.debug("Error processing test exchange", e);
             throw new RuntimeException(e);
+        } finally {
+            if (client != null) {
+                try {
+                    client.close();
+                } catch (Exception e) {
+                    // ignore
+                }
+            }
         }
     }
 


Reply via email to