You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ru...@apache.org on 2005/08/03 10:28:23 UTC
svn commit: r227182 - in /webservices/axis/trunk/java/modules:
core/src/org/apache/axis2/engine/ core/src/org/apache/axis2/receivers/
core/src/org/apache/axis2/transport/
core/src/org/apache/axis2/transport/http/
samples/test/org/apache/axis2/engine/
Author: ruchithf
Date: Wed Aug 3 01:27:50 2005
New Revision: 227182
URL: http://svn.apache.org/viewcvs?rev=227182&view=rev
Log:
Character encoding support completed and committing the test case
Added:
webservices/axis/trunk/java/modules/samples/test/org/apache/axis2/engine/CharctersetEncodingTest.java
Modified:
webservices/axis/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractInOutAsyncMessageReceiver.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractInOutSyncMessageReceiver.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractMessageReceiver.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/TransportUtils.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportUtils.java
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java?rev=227182&r1=227181&r2=227182&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java Wed Aug 3 01:27:50 2005
@@ -138,12 +138,6 @@
invokePhases(operationSpecificPhases, msgContext);
}
- /**
- * Promote the operation specific paramters in the message context to
- * the operation context
- */
- promoteMessageContextProperties(msgContext);
-
if (msgContext.isServerSide() && !msgContext.isPaused()) {
// invoke the Message Receivers
MessageReceiver receiver =
@@ -497,18 +491,7 @@
return context.getStorage().clean();
}
- /**
- * This is used to promote operation/service specific properties that are
- * in the message context to the relevant context
- * @param msgContext The message context
- */
- private void promoteMessageContextProperties(MessageContext msgContext) {
- //Character set encoding
- String charSetEncoding = (String)msgContext.getProperty(MessageContext.CHARACTER_SET_ENCODING);
- if(charSetEncoding != null){
- msgContext.getOperationContext().setProperty(MessageContext.CHARACTER_SET_ENCODING,charSetEncoding,true);
- }
- }
+
private String getSenderFaultCode(String soapNamespace) {
return SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractInOutAsyncMessageReceiver.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractInOutAsyncMessageReceiver.java?rev=227182&r1=227181&r2=227182&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractInOutAsyncMessageReceiver.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractInOutAsyncMessageReceiver.java Wed Aug 3 01:27:50 2005
@@ -15,8 +15,12 @@
*/
package org.apache.axis2.receivers;
+import org.apache.axis2.addressing.AddressingConstants;
+import org.apache.axis2.addressing.MessageInformationHeaders;
+import org.apache.axis2.addressing.miheaders.RelatesTo;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.engine.AxisEngine;
+import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.axis2.AxisFault;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -27,10 +31,11 @@
public abstract class AbstractInOutAsyncMessageReceiver extends AbstractMessageReceiver {
protected Log log = LogFactory.getLog(getClass());
- public abstract void invokeBusinessLogic(MessageContext inMessage, ServerCallback callback)
+ public abstract void invokeBusinessLogic(MessageContext inMessage, MessageContext outMessage, ServerCallback callback)
throws AxisFault;
public final void recieve(final MessageContext messgeCtx) throws AxisFault {
+
final ServerCallback callback = new ServerCallback() {
public void handleResult(MessageContext result) throws AxisFault {
AxisEngine engine =
@@ -49,7 +54,43 @@
Runnable theadedTask = new Runnable() {
public void run() {
try {
- invokeBusinessLogic(messgeCtx, callback);
+
+ MessageContext newmsgCtx =
+ new MessageContext(messgeCtx.getSystemContext(),
+ messgeCtx.getSessionContext(),
+ messgeCtx.getTransportIn(),
+ messgeCtx.getTransportOut());
+
+ newmsgCtx.setMessageInformationHeaders(
+ new MessageInformationHeaders());
+ MessageInformationHeaders oldMessageInfoHeaders =
+ messgeCtx.getMessageInformationHeaders();
+ MessageInformationHeaders messageInformationHeaders =
+ new MessageInformationHeaders();
+ messageInformationHeaders.setTo(oldMessageInfoHeaders.getReplyTo());
+ messageInformationHeaders.setFaultTo(
+ oldMessageInfoHeaders.getFaultTo());
+ messageInformationHeaders.setFrom(oldMessageInfoHeaders.getTo());
+ messageInformationHeaders.setRelatesTo(
+ new RelatesTo(oldMessageInfoHeaders.getMessageId(),
+ AddressingConstants.Submission.WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE));
+ newmsgCtx.setMessageInformationHeaders(messageInformationHeaders);
+ newmsgCtx.setOperationContext(messgeCtx.getOperationContext());
+ newmsgCtx.setServiceContext(messgeCtx.getServiceContext());
+ newmsgCtx.setProperty(MessageContext.TRANSPORT_OUT,
+ messgeCtx.getProperty(MessageContext.TRANSPORT_OUT));
+ newmsgCtx.setProperty(HTTPConstants.HTTPOutTransportInfo,
+ messgeCtx.getProperty(HTTPConstants.HTTPOutTransportInfo));
+
+ //Setting the charater set encoding
+ newmsgCtx.setProperty(MessageContext.CHARACTER_SET_ENCODING, messgeCtx
+ .getProperty(MessageContext.CHARACTER_SET_ENCODING));
+
+ newmsgCtx.setDoingREST(messgeCtx.isDoingREST());
+ newmsgCtx.setDoingMTOM(messgeCtx.isDoingMTOM());
+ newmsgCtx.setServerSide(messgeCtx.isServerSide());
+
+ invokeBusinessLogic(messgeCtx, newmsgCtx, callback);
} catch (AxisFault e) {
log.error(e);
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractInOutSyncMessageReceiver.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractInOutSyncMessageReceiver.java?rev=227182&r1=227181&r2=227182&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractInOutSyncMessageReceiver.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractInOutSyncMessageReceiver.java Wed Aug 3 01:27:50 2005
@@ -59,6 +59,11 @@
messgeCtx.getProperty(MessageContext.TRANSPORT_OUT));
newmsgCtx.setProperty(HTTPConstants.HTTPOutTransportInfo,
messgeCtx.getProperty(HTTPConstants.HTTPOutTransportInfo));
+
+ //Setting the charater set encoding
+ newmsgCtx.setProperty(MessageContext.CHARACTER_SET_ENCODING, messgeCtx
+ .getProperty(MessageContext.CHARACTER_SET_ENCODING));
+
newmsgCtx.setDoingREST(messgeCtx.isDoingREST());
newmsgCtx.setDoingMTOM(messgeCtx.isDoingMTOM());
newmsgCtx.setServerSide(messgeCtx.isServerSide());
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractMessageReceiver.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractMessageReceiver.java?rev=227182&r1=227181&r2=227182&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractMessageReceiver.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis2/receivers/AbstractMessageReceiver.java Wed Aug 3 01:27:50 2005
@@ -79,7 +79,7 @@
"paramIsNotSpecified",
"SERVICE_CLASS"));
}
-
+
} catch (Exception e) {
throw AxisFault.makeFault(e);
}
@@ -135,4 +135,6 @@
public SOAPFactory getSOAPFactory() {
return fac;
}
+
+
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/TransportUtils.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/TransportUtils.java?rev=227182&r1=227181&r2=227182&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/TransportUtils.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/TransportUtils.java Wed Aug 3 01:27:50 2005
@@ -15,6 +15,12 @@
*/
package org.apache.axis2.transport;
+import java.io.InputStream;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.OperationContext;
import org.apache.axis2.i18n.Messages;
@@ -26,13 +32,6 @@
import org.apache.axis2.soap.impl.llom.soap11.SOAP11Factory;
import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.axis2.transport.http.HTTPTransportUtils;
-import org.apache.axis2.AxisFault;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
public class TransportUtils {
public static SOAPEnvelope createSOAPMessage(MessageContext msgContext, String soapNamespaceURI) throws AxisFault {
@@ -65,7 +64,12 @@
StAXBuilder builder = null;
SOAPEnvelope envelope = null;
- if (contentType != null) {
+ String charSetEnc = (String)msgContext.getProperty(MessageContext.CHARACTER_SET_ENCODING);
+ if(charSetEnc == null) {
+ charSetEnc = MessageContext.DEFAULT_CHAR_SET_ENCODING;
+ }
+
+ if (contentType != null) {
msgContext.setDoingMTOM(true);
builder =
HTTPTransportUtils.selectBuilderForMIME(msgContext,
@@ -73,20 +77,18 @@
(String) contentType);
envelope = (SOAPEnvelope) builder.getDocumentElement();
} else if (msgContext.isDoingREST()) {
- Reader reader = new InputStreamReader(inStream);
XMLStreamReader xmlreader =
XMLInputFactory.newInstance().createXMLStreamReader(
- reader);
+ inStream,charSetEnc);
SOAPFactory soapFactory = new SOAP11Factory();
builder = new StAXOMBuilder(xmlreader);
builder.setOmbuilderFactory(soapFactory);
envelope = soapFactory.getDefaultEnvelope();
envelope.getBody().addChild(builder.getDocumentElement());
} else {
- Reader reader = new InputStreamReader(inStream);
XMLStreamReader xmlreader =
XMLInputFactory.newInstance().createXMLStreamReader(
- reader);
+ inStream,charSetEnc);
builder = new StAXSOAPModelBuilder(xmlreader, soapNamespaceURI);
envelope = (SOAPEnvelope) builder.getDocumentElement();
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java?rev=227182&r1=227181&r2=227182&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java Wed Aug 3 01:27:50 2005
@@ -16,8 +16,20 @@
package org.apache.axis2.transport.http;
-import org.apache.axis2.Constants;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.xml.stream.FactoryConfigurationError;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
import org.apache.axis2.addressing.AddressingConstants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.context.ConfigurationContext;
@@ -30,27 +42,18 @@
import org.apache.axis2.om.OMElement;
import org.apache.axis2.om.impl.OMOutputImpl;
import org.apache.axis2.transport.TransportSender;
+import org.apache.commons.httpclient.Header;
+import org.apache.commons.httpclient.HeaderElement;
import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.HttpMethodBase;
import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.Header;
-import org.apache.commons.httpclient.HeaderElement;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
-import org.apache.commons.httpclient.methods.GetMethod;
-
-import javax.xml.stream.FactoryConfigurationError;
-import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
public class CommonsHTTPTransportSender
extends AbstractHandler
@@ -77,6 +80,13 @@
MessageContext.CHARACTER_SET_ENCODING);
if (charSetEnc != null) {
omOutput.setCharSetEncoding(charSetEnc);
+ } else {
+ OperationContext opctx = msgContext.getOperationContext();
+ if(opctx != null) {
+ charSetEnc = (String)opctx.getProperty(MessageContext.CHARACTER_SET_ENCODING);
+ } else {
+ charSetEnc = MessageContext.DEFAULT_CHAR_SET_ENCODING;
+ }
}
msgContext.setDoingMTOM(HTTPTransportUtils.doWriteMTOM(msgContext));
omOutput.setSoap11(msgContext.isSOAP11());
@@ -397,27 +407,10 @@
}
this.httpClient.executeMethod(hostConfig, postMethod);
+
if (postMethod.getStatusCode() == HttpStatus.SC_OK) {
- Header header =
- postMethod.getResponseHeader(HTTPConstants.HEADER_CONTENT_TYPE);
- if (header != null) {
- HeaderElement[] headers = header.getElements();
- for (int i = 0; i < headers.length; i++) {
- if (headers[i]
- .getName()
- .equals(
- HTTPConstants.HEADER_ACCEPT_MULTIPART_RELATED)) {
- OperationContext opContext =
- msgContext.getOperationContext();
- if (opContext != null) {
- opContext.setProperty(
- HTTPConstants.MTOM_RECIVED_CONTENT_TYPE,
- header.getValue());
- }
- }
- }
- }
- InputStream in = postMethod.getResponseBodyAsStream();
+ obatainHTTPHeaderInformation(postMethod, msgContext);
+ InputStream in = postMethod.getResponseBodyAsStream();
if (in == null) {
throw new AxisFault(
Messages.getMessage("canNotBeNull", "InputStream"));
@@ -459,8 +452,11 @@
this.getHostConfiguration(msgContext, url);
this.httpClient.executeMethod(hostConfig, getMethod);
+
if (getMethod.getStatusCode() == HttpStatus.SC_OK) {
-
+
+ obatainHTTPHeaderInformation(getMethod, msgContext);
+
InputStream in = getMethod.getResponseBodyAsStream();
if (in == null) {
throw new AxisFault(
@@ -480,4 +476,40 @@
}
}
+ /**
+ * Collect the HTTP header information and set them in the message context
+ * @param method
+ * @param msgContext
+ */
+ private void obatainHTTPHeaderInformation(HttpMethodBase method,MessageContext msgContext) {
+ Header header =
+ method.getResponseHeader(HTTPConstants.HEADER_CONTENT_TYPE);
+ if (header != null) {
+ HeaderElement[] headers = header.getElements();
+ for (int i = 0; i < headers.length; i++) {
+ NameValuePair charsetEnc = headers[i]
+ .getParameterByName(HTTPConstants.CHAR_SET_ENCODING);
+ if (headers[i]
+ .getName()
+ .equals(
+ HTTPConstants.HEADER_ACCEPT_MULTIPART_RELATED)) {
+ OperationContext opContext =
+ msgContext.getOperationContext();
+ if (opContext != null) {
+ opContext.setProperty(
+ HTTPConstants.MTOM_RECIVED_CONTENT_TYPE,
+ header.getValue());
+ }
+ } else if (charsetEnc != null) {
+
+ msgContext
+ .setProperty(
+ MessageContext.CHARACTER_SET_ENCODING,
+ charsetEnc);
+ }
+ }
+ }
+
+ }
+
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportUtils.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportUtils.java?rev=227182&r1=227181&r2=227182&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportUtils.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportUtils.java Wed Aug 3 01:27:50 2005
@@ -22,6 +22,7 @@
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
+import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.Map;
@@ -196,7 +197,8 @@
throw new AxisFault(e);
} catch (FactoryConfigurationError e) {
throw new AxisFault(e);
-
+ } catch (UnsupportedEncodingException e) {
+ throw new AxisFault(e);
} finally {
if (msgContext.getEnvelope() == null && !soap11) {
msgContext.setEnvelope(
@@ -299,7 +301,9 @@
MessageContext msgContext,
InputStream inStream,
String contentTypeString)
- throws OMException, XMLStreamException, FactoryConfigurationError {
+ throws OMException,
+ XMLStreamException, FactoryConfigurationError,
+ UnsupportedEncodingException {
StAXBuilder builder = null;
boolean fileCacheForAttachments =
@@ -321,15 +325,17 @@
contentTypeString,
fileCacheForAttachments,
attachmentRepoDir);
- XMLStreamReader reader =
- XMLInputFactory.newInstance().createXMLStreamReader(
- new BufferedReader(
- new InputStreamReader(
- mimeHelper.getSOAPPartInputStream())));
+
+ String charSetEnc = getCharSetEncoing(contentTypeString);
+
+ XMLStreamReader reader = XMLInputFactory.newInstance()
+ .createXMLStreamReader(
+ new BufferedReader(new InputStreamReader(mimeHelper
+ .getSOAPPartInputStream(), charSetEnc)));
/*
- * put a reference to Attachments in to the message context
- */
+ * put a reference to Attachments in to the message context
+ */
msgContext.setProperty(MIMEHelper.ATTACHMENTS, mimeHelper);
if (mimeHelper.getAttachmentSpecType().equals(MIMEHelper.MTOM_TYPE)) {
/*
Added: webservices/axis/trunk/java/modules/samples/test/org/apache/axis2/engine/CharctersetEncodingTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis2/engine/CharctersetEncodingTest.java?rev=227182&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis2/engine/CharctersetEncodingTest.java (added)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis2/engine/CharctersetEncodingTest.java Wed Aug 3 01:27:50 2005
@@ -0,0 +1,169 @@
+package org.apache.axis2.engine;
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.description.ServiceDescription;
+import org.apache.axis2.integration.UtilServer;
+import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.om.OMElement;
+import org.apache.axis2.om.OMFactory;
+import org.apache.axis2.om.OMNamespace;
+import org.apache.axis2.util.Utils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * @author Ruchith Fernando (ruchith.fernando@gmail.com)
+ */
+public class CharctersetEncodingTest extends TestCase {
+
+ private EndpointReference targetEPR = new EndpointReference(
+ "http://127.0.0.1:" + (UtilServer.TESTING_PORT)
+ + "/axis/services/EchoXMLService/echoOMElement");
+
+ private EndpointReference targetEPR1 = new EndpointReference(
+ "http://127.0.0.1:5556/axis/services/EchoXMLService/echoOMElement");
+
+ private Log log = LogFactory.getLog(getClass());
+
+ private QName serviceName = new QName("EchoXMLService");
+
+ private QName operationName = new QName("echoOMElement");
+
+ private QName transportName = new QName("http://localhost/my",
+ "NullTransport");
+
+ private AxisConfiguration engineRegistry;
+
+ private MessageContext mc;
+
+ private ServiceContext serviceContext;
+
+ private ServiceDescription service;
+
+ private boolean finish = false;
+
+ public CharctersetEncodingTest(String arg0) {
+ super(arg0);
+ }
+
+ protected void setUp() throws Exception {
+ UtilServer.start(Constants.TESTING_PATH + "chuncked-enabledRepository");
+
+ service =
+ Utils.createSimpleService(serviceName,
+ Echo.class.getName(),
+ operationName);
+ UtilServer.deployService(service);
+ serviceContext =
+ UtilServer.getConfigurationContext().createServiceContext(
+ service.getName());
+
+
+ }
+
+ protected void tearDown() throws Exception {
+ UtilServer.unDeployService(serviceName);
+ UtilServer.stop();
+ }
+
+
+ private void runTest(String value, String expected) {
+
+ try {
+ OMFactory fac = OMAbstractFactory.getOMFactory();
+ OMNamespace omNs = fac.createOMNamespace("http://localhost/my", "my");
+ OMElement payload = fac.createOMElement("echoOMElement", omNs);
+ OMElement text = fac.createOMElement("Text", omNs);
+ text.addChild(fac.createText(text, value));
+ payload.addChild(text);
+
+ org.apache.axis2.clientapi.Call call = new org.apache.axis2.clientapi.Call(
+ Constants.TESTING_PATH + "chuncked-enabledRepository");
+
+ call.setTo(targetEPR);
+ call.setTransportInfo(Constants.TRANSPORT_HTTP,
+ Constants.TRANSPORT_HTTP, false);
+
+
+ OMElement resultElem = (OMElement) call.invokeBlocking(operationName
+ .getLocalPart(), payload);
+
+
+
+ assertNotNull("Result is null", resultElem);
+ String result = ((OMElement) resultElem.getFirstChild()).getText();
+
+ assertNotNull("Result value is null", result);
+
+ assertEquals("Expected result not received.", expected, result);
+
+ call.close();
+
+ } catch (AxisFault e) {
+ e.printStackTrace();
+ assertFalse("Faliure in processing", true);
+ }
+ }
+
+
+ private void runtest(String value) throws Exception {
+ runTest(value, value);
+ }
+
+ public void testSimpleString() throws Exception {
+ runtest("a simple string");
+ }
+
+ public void testStringWithApostrophes() throws Exception {
+ runtest("this isn't a simple string");
+ }
+
+ public void testStringWithEntities() throws Exception {
+ runTest("&<>'"", "&<>'"");
+ }
+
+ public void testStringWithRawEntities() throws Exception {
+ runTest("&<>'\"", "&<>'\"");
+ }
+ public void testStringWithLeadingAndTrailingSpaces() throws Exception {
+ runtest(" centered ");
+ }
+
+ public void testWhitespace() throws Exception {
+ runtest(" \n \t "); // note: \r fails
+ }
+
+ public void testFrenchAccents() throws Exception {
+ runtest("\u00e0\u00e2\u00e4\u00e7\u00e8\u00e9\u00ea\u00eb\u00ee\u00ef\u00f4\u00f6\u00f9\u00fb\u00fc");
+ }
+
+ public void testGermanUmlauts() throws Exception {
+ runtest(" Some text \u00df with \u00fc special \u00f6 chars \u00e4.");
+ }
+
+ public void testWelcomeUnicode() throws Exception {
+ // welcome in several languages
+ runtest(
+ "Chinese (trad.) : \u6b61\u8fce ");
+ }
+
+ public void testWelcomeUnicode2() throws Exception {
+ // welcome in several languages
+ runtest(
+ "Greek : \u03ba\u03b1\u03bb\u03ce\u03c2 \u03bf\u03c1\u03af\u03c3\u03b1\u03c4\u03b5");
+ }
+
+ public void testWelcomeUnicode3() throws Exception {
+ // welcome in several languages
+ runtest(
+ "Japanese : \u3088\u3046\u3053\u305d");
+ }
+
+}