Author: hiranya
Date: Sun Oct 20 00:51:00 2013
New Revision: 1533847
URL: http://svn.apache.org/r1533847
Log:
Adding a new test case to sanity check PTT + deferred building scenarios
Added:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/EchoHttpServerController.java
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/rest/Sample10002.java
synapse/trunk/java/modules/integration/src/test/resources/extras/synapse_sample_10002.xml
synapse/trunk/java/modules/integration/src/test/resources/sample10002.xml
Modified:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/SynapseTestUtils.java
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/TestSamplesHandlerSuite.java
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/config/SampleConfigConstants.java
Added:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/EchoHttpServerController.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/EchoHttpServerController.java?rev=1533847&view=auto
==============================================================================
---
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/EchoHttpServerController.java
(added)
+++
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/EchoHttpServerController.java
Sun Oct 20 00:51:00 2013
@@ -0,0 +1,188 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.samples.framework;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.http.*;
+import org.apache.http.entity.ByteArrayEntity;
+import org.apache.http.entity.ContentType;
+import org.apache.http.impl.DefaultBHttpServerConnection;
+import org.apache.http.impl.DefaultBHttpServerConnectionFactory;
+import org.apache.http.protocol.*;
+import org.apache.http.util.EntityUtils;
+import org.apache.synapse.samples.framework.config.SampleConfigConstants;
+
+import java.io.IOException;
+import java.io.InterruptedIOException;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.util.concurrent.atomic.AtomicInteger;
+
+public class EchoHttpServerController extends AbstractBackEndServerController {
+
+ private static final Log log =
LogFactory.getLog(EchoHttpServerController.class);
+
+ private int port;
+ private RequestListenerThread requestListener;
+
+ public EchoHttpServerController(OMElement element) {
+ super(element);
+ port = Integer.parseInt(SynapseTestUtils.getParameter(element,
+ SampleConfigConstants.TAG_BE_SERVER_CONF_AXIS2_HTTP_PORT,
"9000"));
+ }
+
+ public boolean startProcess() {
+ try {
+ requestListener = new RequestListenerThread(port);
+ requestListener.start();
+ return true;
+ } catch (IOException e) {
+ log.error("Error while initializing echo server", e);
+ return false;
+ }
+ }
+
+ public boolean stopProcess() {
+ requestListener.halt();
+ requestListener = null;
+ return true;
+ }
+
+ static class EchoHttpHandler implements HttpRequestHandler {
+
+ public void handle(HttpRequest request, HttpResponse response,
+ HttpContext context) throws HttpException,
IOException {
+
+ if (log.isDebugEnabled()) {
+ log.debug(request.getRequestLine().toString());
+ }
+ if (request instanceof HttpEntityEnclosingRequest) {
+ HttpEntity entity = ((HttpEntityEnclosingRequest)
request).getEntity();
+ byte[] entityContent = EntityUtils.toByteArray(entity);
+ response.setStatusCode(HttpStatus.SC_OK);
+ response.setEntity(new ByteArrayEntity(entityContent,
+
ContentType.create(entity.getContentType().getValue())));
+ } else {
+ response.setStatusCode(HttpStatus.SC_NO_CONTENT);
+ }
+ }
+ }
+
+ static class RequestListenerThread extends Thread {
+
+ private final HttpConnectionFactory<DefaultBHttpServerConnection>
connFactory;
+ private final ServerSocket serversocket;
+ private final HttpService httpService;
+
+ public RequestListenerThread(final int port) throws IOException {
+ this.connFactory = DefaultBHttpServerConnectionFactory.INSTANCE;
+ this.serversocket = new ServerSocket(port);
+
+ // Set up the HTTP protocol processor
+ HttpProcessor httpProcessor = HttpProcessorBuilder.create()
+ .add(new ResponseDate())
+ .add(new ResponseServer("EchoServer"))
+ .add(new ResponseContent())
+ .add(new ResponseConnControl()).build();
+
+ // Set up request handlers
+ UriHttpRequestHandlerMapper registry = new
UriHttpRequestHandlerMapper();
+ registry.register("*", new EchoHttpHandler());
+
+ // Set up the HTTP service
+ this.httpService = new HttpService(httpProcessor, registry);
+ this.setName("echo-http-server");
+ }
+
+ @Override
+ public void run() {
+ log.info("Listening on port " + this.serversocket.getLocalPort());
+ AtomicInteger counter = new AtomicInteger(0);
+ while (!Thread.interrupted()) {
+ try {
+ // Set up HTTP connection
+ Socket socket = this.serversocket.accept();
+ HttpServerConnection conn =
this.connFactory.createConnection(socket);
+
+ // Start worker thread
+ Thread t = new WorkerThread(this.httpService, conn,
counter.incrementAndGet());
+ t.start();
+ } catch (InterruptedIOException ex) {
+ break;
+ } catch (IOException e) {
+ if (Thread.interrupted()) {
+ break;
+ }
+ log.error("I/O error initializing connection thread", e);
+ break;
+ }
+ }
+ }
+
+ public void halt() {
+ log.info("Shutting down echo server");
+ try {
+ this.interrupt();
+ this.serversocket.close();
+ } catch (IOException e) {
+ log.warn("Error while shutting down echo server", e);
+ }
+ }
+ }
+
+ static class WorkerThread extends Thread {
+
+ private final HttpService httpservice;
+ private final HttpServerConnection conn;
+
+ public WorkerThread(
+ final HttpService httpservice,
+ final HttpServerConnection conn,
+ final int counter) {
+ super();
+ this.httpservice = httpservice;
+ this.conn = conn;
+ this.setName("echo-http-worker-" + counter);
+ }
+
+ @Override
+ public void run() {
+ HttpContext context = new BasicHttpContext(null);
+ try {
+ while (!Thread.interrupted() && this.conn.isOpen()) {
+ this.httpservice.handleRequest(this.conn, context);
+ }
+ } catch (ConnectionClosedException ex) {
+ log.debug("Client closed the connection", ex);
+ } catch (IOException ex) {
+ log.error("I/O error: " + ex.getMessage(), ex);
+ } catch (HttpException ex) {
+ log.error("Unrecoverable HTTP protocol violation: " +
ex.getMessage(), ex);
+ } finally {
+ try {
+ this.conn.shutdown();
+ } catch (IOException ignore) {}
+ }
+ }
+
+ }
+}
Modified:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/SynapseTestUtils.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/SynapseTestUtils.java?rev=1533847&r1=1533846&r2=1533847&view=diff
==============================================================================
---
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/SynapseTestUtils.java
(original)
+++
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/SynapseTestUtils.java
Sun Oct 20 00:51:00 2013
@@ -118,6 +118,8 @@ public class SynapseTestUtils {
return new DerbyServerController(root);
} else if
(SampleConfigConstants.TAG_BE_SERVER_CONF_JMS_BROKER.equals(root.getLocalName()))
{
return new ActiveMQController(root);
+ } else if
(SampleConfigConstants.TAG_BE_SERVER_CONF_ECHO_SERVER.equals(root.getLocalName()))
{
+ return new EchoHttpServerController(root);
}
return null;
}
Modified:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/TestSamplesHandlerSuite.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/TestSamplesHandlerSuite.java?rev=1533847&r1=1533846&r2=1533847&view=diff
==============================================================================
---
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/TestSamplesHandlerSuite.java
(original)
+++
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/TestSamplesHandlerSuite.java
Sun Oct 20 00:51:00 2013
@@ -22,6 +22,7 @@ package org.apache.synapse.samples.frame
import junit.framework.TestSuite;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.samples.framework.tests.rest.Sample10002;
import org.apache.synapse.samples.framework.tests.tasks.*;
import org.apache.synapse.samples.framework.tests.transport.Sample250;
import org.apache.synapse.samples.framework.tests.advanced.*;
@@ -242,5 +243,6 @@ public class TestSamplesHandlerSuite ext
sampleClassRepo.put("800", Sample800.class);
sampleClassRepo.put("10001", Sample10001.class);
+ sampleClassRepo.put("10002", Sample10002.class);
}
}
\ No newline at end of file
Modified:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/config/SampleConfigConstants.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/config/SampleConfigConstants.java?rev=1533847&r1=1533846&r2=1533847&view=diff
==============================================================================
---
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/config/SampleConfigConstants.java
(original)
+++
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/config/SampleConfigConstants.java
Sun Oct 20 00:51:00 2013
@@ -39,6 +39,7 @@ public class SampleConfigConstants {
public static final String TAG_BE_SERVER_CONF_AXIS2_SERVER = "axis2Server";
public static final String TAG_BE_SERVER_CONF_JMS_BROKER = "jmsBroker";
public static final String TAG_BE_SERVER_CONF_DERBY_SERVER = "derbyServer";
+ public static final String TAG_BE_SERVER_CONF_ECHO_SERVER = "echoServer";
public static final String TAG_BE_SERVER_CONF_QFIX_EXECUTOR =
"fixExecutor";
public static final String TAG_BE_SERVER_CONF_AXIS2_REPO = "axis2Repo";
@@ -47,6 +48,8 @@ public class SampleConfigConstants {
public static final String TAG_BE_SERVER_CONF_AXIS2_HTTPS_PORT =
"httpsPort";
public static final String TAG_BE_SERVER_CONF_AXIS2_COUNTER_ENABLED =
"counterEnabled";
+ public static final String TAG_BE_SERVER_CONF_ECHO_HTTP_PORT = "port";
+
public static final String TAG_BE_SERVER_CONF_DERBY_PORT = "dbPort";
public static final String TAG_BE_SERVER_CONF_JMS_PROVIDER_URL =
"providerURL";
Added:
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/rest/Sample10002.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/rest/Sample10002.java?rev=1533847&view=auto
==============================================================================
---
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/rest/Sample10002.java
(added)
+++
synapse/trunk/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/tests/rest/Sample10002.java
Sun Oct 20 00:51:00 2013
@@ -0,0 +1,150 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.samples.framework.tests.rest;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.http.HttpStatus;
+import org.apache.synapse.samples.framework.SynapseTestCase;
+import org.apache.synapse.samples.framework.clients.BasicHttpClient;
+import org.apache.synapse.samples.framework.clients.HttpResponse;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.UUID;
+
+public class Sample10002 extends SynapseTestCase {
+
+ private static final int[] SIZES = new int[] {
+ 500, 1024, 10240, 102400, 1024 * 1024
+ };
+
+ private static final String[] SIZE_STRINGS = new String[] {
+ "500B", "1K", "10K", "100K", "1M"
+ };
+
+ public Sample10002() {
+ super(10002);
+ }
+
+ public void testDirectMediation() throws Exception {
+ BasicHttpClient client = new BasicHttpClient();
+ int children = 0;
+ StringBuilder xml = new StringBuilder("<foo>");
+
+ for (int i = 0; i < SIZES.length; i++) {
+ while (xml.length() < SIZES[i]) {
+
xml.append("<bar>").append(UUID.randomUUID().toString()).append("</bar>");
+ children++;
+ }
+ verifyMediationResult("DirectMediation", client, xml, children,
SIZE_STRINGS[i]);
+ }
+ }
+
+ public void testCBRMediation() throws Exception {
+ BasicHttpClient client = new BasicHttpClient();
+ int children = 1;
+ StringBuilder xml = new
StringBuilder("<foo><bar>uuid:1234567890</bar>");
+
+ for (int i = 0; i < SIZES.length; i++) {
+ while (xml.length() < SIZES[i]) {
+
xml.append("<bar>").append(UUID.randomUUID().toString()).append("</bar>");
+ children++;
+ }
+ verifyMediationResult("ContentBasedRouting", client, xml,
children, SIZE_STRINGS[i]);
+ }
+ }
+
+ public void testHeaderBasedRoutingMediation() throws Exception {
+ BasicHttpClient client = new BasicHttpClient();
+ int children = 0;
+ StringBuilder xml = new StringBuilder("<foo>");
+
+ Map<String,String> headers = new HashMap<String, String>();
+ headers.put("CustomHeader", "TestValue");
+
+ for (int i = 0; i < SIZES.length; i++) {
+ while (xml.length() < SIZES[i]) {
+
xml.append("<bar>").append(UUID.randomUUID().toString()).append("</bar>");
+ children++;
+ }
+ verifyMediationResult("HeaderBasedRouting", client, xml, children,
+ SIZE_STRINGS[i], headers);
+ }
+ }
+
+ public void testXSLTMediation() throws Exception {
+ BasicHttpClient client = new BasicHttpClient();
+ int children = 0;
+ StringBuilder xml = new StringBuilder("<foo>");
+
+ for (int i = 0; i < SIZES.length; i++) {
+ while (xml.length() < SIZES[i]) {
+
xml.append("<bar>").append(UUID.randomUUID().toString()).append("</bar>");
+ children++;
+ }
+ verifyMediationResult("XSLT", client, xml, children,
SIZE_STRINGS[i]);
+ }
+ }
+
+ private void verifyMediationResult(String scenario, BasicHttpClient client,
+ StringBuilder message, int
childrenCount,
+ String sizeStr) throws Exception {
+
+ verifyMediationResult(scenario, client, message, childrenCount,
sizeStr, null);
+ }
+
+ private void verifyMediationResult(String scenario, BasicHttpClient client,
+ StringBuilder message, int
childrenCount,
+ String sizeStr, Map<String,String>
headers) throws Exception {
+
+ log.info(">>>>>>>>>>>>>>>> Testing " + scenario + "; Payload size: " +
sizeStr);
+
+ HttpResponse response;
+ if (headers != null) {
+ response = client.doPost("http://127.0.0.1:8280/services/" +
scenario + "Proxy",
+ message.append("</foo>").toString().getBytes(),
"application/xml", headers);
+ } else {
+ response = client.doPost("http://127.0.0.1:8280/services/" +
scenario + "Proxy",
+ message.append("</foo>").toString().getBytes(),
"application/xml");
+ }
+
+ // remove the closing tag added in the previous step
+ message.setLength(message.length() - 6);
+
+ // We must get a 200 OK
+ assertEquals(HttpStatus.SC_OK, response.getStatus());
+
+ OMElement body = response.getBodyAsXML();
+ // First element must be 'foo'
+ assertEquals("foo", body.getLocalName());
+
+ Iterator childElements = body.getChildrenWithLocalName("bar");
+ int returnedChildren = 0;
+ while (childElements.hasNext()) {
+ returnedChildren++;
+ childElements.next();
+ }
+ // Must return all the child 'bar' elements we sent
+ assertEquals(childrenCount, returnedChildren);
+
+ log.info(">>>>>>>>>>>>>>>> " + scenario + " (" + sizeStr + "):
SUCCESS");
+ }
+}
Added:
synapse/trunk/java/modules/integration/src/test/resources/extras/synapse_sample_10002.xml
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/resources/extras/synapse_sample_10002.xml?rev=1533847&view=auto
==============================================================================
---
synapse/trunk/java/modules/integration/src/test/resources/extras/synapse_sample_10002.xml
(added)
+++
synapse/trunk/java/modules/integration/src/test/resources/extras/synapse_sample_10002.xml
Sun Oct 20 00:51:00 2013
@@ -0,0 +1,113 @@
+<syn:definitions xmlns:syn="http://ws.apache.org/ns/synapse">
+ <syn:proxy name="DirectMediationProxy">
+ <syn:target>
+ <syn:endpoint>
+ <syn:address uri="http://localhost:9000/services/EchoService"/>
+ </syn:endpoint>
+ <syn:outSequence>
+ <syn:send/>
+ </syn:outSequence>
+ </syn:target>
+ </syn:proxy>
+
+ <syn:proxy name="ContentBasedRoutingProxy">
+ <syn:target>
+ <syn:inSequence>
+ <syn:filter source="//bar[1]" regex="^uuid.*">
+ <syn:then>
+ <syn:send>
+ <syn:endpoint>
+ <syn:address
uri="http://localhost:9000/services/EchoService"/>
+ </syn:endpoint>
+ </syn:send>
+ </syn:then>
+ <syn:else>
+ <syn:makefault version="soap11">
+ <syn:code
xmlns:sf11="http://schemas.xmlsoap.org/soap/envelope/" value="sf11:Server"/>
+ <syn:reason value="First order must be for the
symbol IBM"/>
+ </syn:makefault>
+ <syn:header name="To" action="remove"/>
+ <syn:property name="RESPONSE" value="true"/>
+ <syn:send/>
+ </syn:else>
+ </syn:filter>
+ </syn:inSequence>
+ </syn:target>
+ </syn:proxy>
+
+ <syn:proxy name="HeaderBasedRoutingProxy">
+ <syn:target>
+ <syn:inSequence>
+ <syn:filter source="$trp:CustomHeader" regex="TestValue">
+ <syn:then>
+ <syn:send>
+ <syn:endpoint>
+ <syn:address
uri="http://localhost:9000/services/EchoService"/>
+ </syn:endpoint>
+ </syn:send>
+ </syn:then>
+ <syn:else>
+ <syn:makefault version="soap11">
+ <syn:code
xmlns:sf11="http://schemas.xmlsoap.org/soap/envelope/" value="sf11:Server"/>
+ <syn:reason value="First order must be for the
symbol IBM"/>
+ </syn:makefault>
+ <syn:header name="To" action="remove"/>
+ <syn:property name="RESPONSE" value="true"/>
+ <syn:send/>
+ </syn:else>
+ </syn:filter>
+ </syn:inSequence>
+ </syn:target>
+ </syn:proxy>
+
+ <syn:proxy name="XSLTProxy">
+ <syn:target>
+ <syn:endpoint>
+ <syn:address uri="http://localhost:9000/services/EchoService"/>
+ </syn:endpoint>
+ <syn:inSequence>
+ <syn:xslt key="xslt_transform_reverse"/>
+ </syn:inSequence>
+ <syn:outSequence>
+ <syn:xslt key="xslt_transform"/>
+ <syn:send/>
+ </syn:outSequence>
+ </syn:target>
+ </syn:proxy>
+
+ <syn:localEntry key="xslt_transform_reverse">
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="2.0">
+ <xsl:output method="xml"
+ omit-xml-declaration="yes"
+ indent="no"/>
+ <xsl:template match="foo">
+ <oof>
+ <xsl:for-each select="bar">
+ <rab>
+ <xsl:value-of select="bar"/>
+ </rab>
+ </xsl:for-each>
+ </oof>
+ </xsl:template>
+ </xsl:stylesheet>
+ </syn:localEntry>
+
+ <syn:localEntry key="xslt_transform">
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="2.0">
+ <xsl:output method="xml"
+ omit-xml-declaration="yes"
+ indent="no"/>
+ <xsl:template match="oof">
+ <foo>
+ <xsl:for-each select="rab">
+ <bar>
+ <xsl:value-of select="rab"/>
+ </bar>
+ </xsl:for-each>
+ </foo>
+ </xsl:template>
+ </xsl:stylesheet>
+ </syn:localEntry>
+</syn:definitions>
\ No newline at end of file
Added: synapse/trunk/java/modules/integration/src/test/resources/sample10002.xml
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/resources/sample10002.xml?rev=1533847&view=auto
==============================================================================
--- synapse/trunk/java/modules/integration/src/test/resources/sample10002.xml
(added)
+++ synapse/trunk/java/modules/integration/src/test/resources/sample10002.xml
Sun Oct 20 00:51:00 2013
@@ -0,0 +1,18 @@
+<synapseSample>
+ <sampleID>10002</sampleID>
+ <sampleName>Pass Through Transport and Deferred Building Sanity
Checks</sampleName>
+ <synapseConfig>
+ <!--if we don't specify the optional values, framework will use
defaults-->
+ <axis2Repo>modules/integration/target/test_repos/synapse</axis2Repo>
+
<axis2Xml>modules/integration/target/test_repos/synapse/conf/axis2_def.xml</axis2Xml>
+
<synapseXml>modules/integration/src/test/resources/extras/synapse_sample_10002.xml</synapseXml>
+ </synapseConfig>
+ <backEndServerConfig>
+ <echoServer id="0">
+ <httpPort>9000</httpPort>
+ </echoServer>
+ </backEndServerConfig>
+ <clientConfig>
+
<clientRepo>modules/integration/target/test_repos/axis2Client</clientRepo>
+ </clientConfig>
+</synapseSample>