You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ff...@apache.org on 2008/09/01 07:28:34 UTC

svn commit: r690848 - /servicemix/smx3/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/client/DefaultServiceMixClient.java

Author: ffang
Date: Sun Aug 31 22:28:34 2008
New Revision: 690848

URL: http://svn.apache.org/viewvc?rev=690848&view=rev
Log:
[SM-1532]fix ServiceMixClientTest failure

Modified:
    servicemix/smx3/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/client/DefaultServiceMixClient.java

Modified: servicemix/smx3/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/client/DefaultServiceMixClient.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/client/DefaultServiceMixClient.java?rev=690848&r1=690847&r2=690848&view=diff
==============================================================================
--- servicemix/smx3/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/client/DefaultServiceMixClient.java (original)
+++ servicemix/smx3/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/client/DefaultServiceMixClient.java Sun Aug 31 22:28:34 2008
@@ -347,47 +347,82 @@
     }
 
     public void send(org.apache.servicemix.client.Message message) throws MessagingException {
-        
+        send(message.getExchange());
     }
 
-    public InOnly createInOnlyExchange(org.apache.servicemix.jbi.api.EndpointResolver arg0)
+    public InOnly createInOnlyExchange(org.apache.servicemix.jbi.api.EndpointResolver resolver)
         throws JBIException {
-        // TODO Auto-generated method stub
-        return null;
+        InOnly exchange = createInOnlyExchange();
+        configureEndpoint(exchange, resolver);
+        return exchange;
     }
 
-    public InOptionalOut createInOptionalOutExchange(org.apache.servicemix.jbi.api.EndpointResolver arg0)
+    public InOptionalOut createInOptionalOutExchange(org.apache.servicemix.jbi.api.EndpointResolver resolver)
         throws JBIException {
-        // TODO Auto-generated method stub
-        return null;
+        InOptionalOut exchange = createInOptionalOutExchange();
+        configureEndpoint(exchange, resolver);
+        return exchange;
     }
 
-    public InOut createInOutExchange(org.apache.servicemix.jbi.api.EndpointResolver arg0) throws JBIException {
-        // TODO Auto-generated method stub
-        return null;
+    public InOut createInOutExchange(org.apache.servicemix.jbi.api.EndpointResolver resolver) throws JBIException {
+        InOut exchange = createInOutExchange();
+        configureEndpoint(exchange, resolver);
+        return exchange;
     }
 
-    public RobustInOnly createRobustInOnlyExchange(org.apache.servicemix.jbi.api.EndpointResolver arg0)
+    public RobustInOnly createRobustInOnlyExchange(org.apache.servicemix.jbi.api.EndpointResolver resolver)
         throws JBIException {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public Object request(org.apache.servicemix.jbi.api.EndpointResolver arg0, Map arg1, Map arg2, Object arg3)
-        throws JBIException {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public void send(org.apache.servicemix.jbi.api.EndpointResolver arg0, Map arg1, Map arg2, Object arg3)
-        throws JBIException {
-        // TODO Auto-generated method stub
-        
-    }
-
-    public boolean sendSync(org.apache.servicemix.jbi.api.EndpointResolver arg0, Map arg1, Map arg2,
-                            Object arg3) throws JBIException {
-        // TODO Auto-generated method stub
-        return false;
+        RobustInOnly exchange = getExchangeFactory().createRobustInOnlyExchange();
+        configureEndpoint(exchange, resolver);
+        return exchange;
+    }
+
+    public Object request(org.apache.servicemix.jbi.api.EndpointResolver resolver, Map exchangeProperties, 
+                          Map inMessageProperties, Object content) throws JBIException {
+        InOut exchange = createInOutExchange(resolver);
+        populateMessage(exchange, exchangeProperties, inMessageProperties, content);
+        boolean answer = sendSync(exchange);
+        if (!answer) {
+            throw new JBIException("Exchange aborted");
+        }
+        Exception error = exchange.getError();
+        if (error != null) {
+            throw new JBIException(error);
+        }
+        if (exchange.getFault() != null) {
+            done(exchange);
+            throw FaultException.newInstance(exchange);
+        }
+
+
+        NormalizedMessage outMessage = exchange.getOutMessage();
+        if (outMessage == null) {
+            throw new NoOutMessageAvailableException(exchange);
+        }
+        Object result = getMarshaler().unmarshal(exchange, outMessage);
+        done(exchange);
+        return result;
+    }
+
+    public void send(org.apache.servicemix.jbi.api.EndpointResolver resolver, Map exchangeProperties, 
+                     Map inMessageProperties, Object content) throws JBIException {
+        InOnly exchange = createInOnlyExchange(resolver);
+        populateMessage(exchange, exchangeProperties, inMessageProperties, content);
+        send(exchange);        
+    }
+
+    public boolean sendSync(org.apache.servicemix.jbi.api.EndpointResolver resolver, 
+                            Map exchangeProperties, Map inMessageProperties,
+                            Object content) throws JBIException {
+        InOnly exchange = createInOnlyExchange(resolver);
+        populateMessage(exchange, exchangeProperties, inMessageProperties, content);
+        return sendSync(exchange);
+    }
+    
+    protected void configureEndpoint(MessageExchange exchange, 
+        org.apache.servicemix.jbi.api.EndpointResolver resolver) throws JBIException {
+        if (resolver != null) {
+            exchange.setEndpoint(resolver.resolveEndpoint(getContext(), exchange, filter));
+        }
     }
 }