Return-Path: Delivered-To: apmail-servicemix-commits-archive@www.apache.org Received: (qmail 15389 invoked from network); 21 Aug 2009 08:21:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 21 Aug 2009 08:21:30 -0000 Received: (qmail 46142 invoked by uid 500); 21 Aug 2009 07:55:13 -0000 Delivered-To: apmail-servicemix-commits-archive@servicemix.apache.org Received: (qmail 46102 invoked by uid 500); 21 Aug 2009 07:55:13 -0000 Mailing-List: contact commits-help@servicemix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@servicemix.apache.org Delivered-To: mailing list commits@servicemix.apache.org Received: (qmail 46093 invoked by uid 99); 21 Aug 2009 07:55:13 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 21 Aug 2009 07:55:13 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 21 Aug 2009 07:55:10 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 1005F238893B; Fri, 21 Aug 2009 07:54:49 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r806441 - in /servicemix/components/engines/servicemix-exec/trunk/src: main/java/org/apache/servicemix/exec/ExecEndpoint.java test/java/org/apache/servicemix/exec/marshaler/DefaultExecMarshalerTest.java Date: Fri, 21 Aug 2009 07:54:48 -0000 To: commits@servicemix.apache.org From: jbonofre@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090821075449.1005F238893B@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jbonofre Date: Fri Aug 21 07:54:48 2009 New Revision: 806441 URL: http://svn.apache.org/viewvc?rev=806441&view=rev Log: Cleanup WSDL loading into the Exec endpoint. Upgrade the exec marshaler unit test. Modified: servicemix/components/engines/servicemix-exec/trunk/src/main/java/org/apache/servicemix/exec/ExecEndpoint.java servicemix/components/engines/servicemix-exec/trunk/src/test/java/org/apache/servicemix/exec/marshaler/DefaultExecMarshalerTest.java Modified: servicemix/components/engines/servicemix-exec/trunk/src/main/java/org/apache/servicemix/exec/ExecEndpoint.java URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-exec/trunk/src/main/java/org/apache/servicemix/exec/ExecEndpoint.java?rev=806441&r1=806440&r2=806441&view=diff ============================================================================== --- servicemix/components/engines/servicemix-exec/trunk/src/main/java/org/apache/servicemix/exec/ExecEndpoint.java (original) +++ servicemix/components/engines/servicemix-exec/trunk/src/main/java/org/apache/servicemix/exec/ExecEndpoint.java Fri Aug 21 07:54:48 2009 @@ -22,6 +22,7 @@ import javax.jbi.messaging.MessageExchange; import javax.jbi.messaging.MessagingException; import javax.jbi.messaging.NormalizedMessage; +import javax.xml.namespace.QName; import org.apache.servicemix.common.endpoints.ProviderEndpoint; import org.apache.servicemix.exec.marshaler.DefaultExecMarshaler; @@ -107,20 +108,30 @@ @Override public void validate() throws DeploymentException { try { - if (wsdl != null) { - // the user provides a WSDL - description = DomUtil.parse(wsdl.getInputStream()); - definition = javax.wsdl.factory.WSDLFactory.newInstance().newWSDLReader().readWSDL(null, description); - } else { - // load the default abstract WSDL - description = DomUtil.parse(new ClassPathResource(DEFAULT_WSDL).getInputStream()); - definition = javax.wsdl.factory.WSDLFactory.newInstance().newWSDLReader().readWSDL(null, description); + if (wsdl == null) { + // the user hasn't provide a WSDL, load the default abstract one + wsdl = new ClassPathResource(DEFAULT_WSDL); } + + // load the WSDL + description = DomUtil.parse(wsdl.getInputStream()); + definition = javax.wsdl.factory.WSDLFactory.newInstance().newWSDLReader().readWSDL(null, description); + + // cleanup WSDL to be sure thats it's an abstract one + // cleanup services + QName[] qnames = (QName[]) definition.getServices().keySet().toArray(new QName[0]); + for (int i = 0; i < qnames.length; i++) { + definition.removeService(qnames[i]); + } + // cleanup binding + qnames = (QName[]) definition.getBindings().keySet().toArray(new QName[0]); + for (int i = 0; i < qnames.length; i++) { + definition.removeBinding(qnames[i]); + } + } catch (Exception e) { throw new DeploymentException("Can't load the WSDL.", e); } - - // TODO define the WSDL for the marshaler } /* Modified: servicemix/components/engines/servicemix-exec/trunk/src/test/java/org/apache/servicemix/exec/marshaler/DefaultExecMarshalerTest.java URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-exec/trunk/src/test/java/org/apache/servicemix/exec/marshaler/DefaultExecMarshalerTest.java?rev=806441&r1=806440&r2=806441&view=diff ============================================================================== --- servicemix/components/engines/servicemix-exec/trunk/src/test/java/org/apache/servicemix/exec/marshaler/DefaultExecMarshalerTest.java (original) +++ servicemix/components/engines/servicemix-exec/trunk/src/test/java/org/apache/servicemix/exec/marshaler/DefaultExecMarshalerTest.java Fri Aug 21 07:54:48 2009 @@ -31,24 +31,14 @@ import org.apache.servicemix.jbi.messaging.MessageExchangeFactoryImpl; /** + *

* Unit tests on the default exec marshaler. + *

* * @author jbonofre */ public class DefaultExecMarshalerTest extends TestCase { - private static final String COMMAND = "ls"; - private static final String FIRST_ARG = "-lt"; - private static final String SECOND_ARG = "/tmp"; - - private static final String MSG_VALID = "" - + "" + COMMAND + "" - + "" - + "" + FIRST_ARG + "" - + "" + SECOND_ARG + "" - + "" - + ""; - private ExecMarshalerSupport marshaler; private MessageExchangeFactory factory; @@ -61,17 +51,65 @@ this.factory = new MessageExchangeFactoryImpl(new IdGenerator(), new AtomicBoolean(false)); } - public void testValidMessage() throws Exception { + /** + *

+ * Test the unmarshalling of a valid message content. + *

+ * + * @throws Exception if the unmarshalling fails. + */ + public void testUnmarshalling() throws Exception { MessageExchange exchange = this.factory.createExchange(MessageExchangePattern.IN_ONLY); NormalizedMessage message = exchange.createMessage(); - message.setContent(new StringSource(MSG_VALID)); + message.setContent(new StringSource( + "" + + "" + + "ls" + + "" + + "-lt" + + "/tmp" + + "" + + "")); + exchange.setMessage(message, "in"); - SourceTransformer transformer = new SourceTransformer(); - //String execCommand = marshaler.constructExecCommand(transformer.toDOMDocument(message)); - //assertEquals("ls -lt /tmp", execCommand); + ExecRequest execRequest = marshaler.unmarshal(message); + + assertEquals("ls", execRequest.getCommand()); + assertEquals("-lt", execRequest.getArguments().get(0)); + assertEquals("/tmp", execRequest.getArguments().get(1)); } + /** + *

+ * Test the marshalling of a ExecResponse. + *

+ * + * @throws Exception if the marshalling fails. + */ + public void testMarshalling() throws Exception { + // construct an ExecResponse + ExecResponse execResponse = new ExecResponse(); + execResponse.setExitCode(0); + execResponse.setStartTime(1000000); + execResponse.setEndTime(1000000); + execResponse.setExecutionDuration(1000000); + execResponse.setErrorData(new StringBuffer("TEST")); + execResponse.setOutputData(new StringBuffer("TEST")); + + // create an exchange/normalized message + MessageExchange exchange = this.factory.createExchange(MessageExchangePattern.IN_ONLY); + NormalizedMessage message = exchange.createMessage(); + + // marshal the exec response + marshaler.marshal(execResponse, message); + + // get the message content + SourceTransformer transformer = new SourceTransformer(); + String content = transformer.contentToString(message); + + assertEquals(content, "1000000100000001000000"); + } }