CAMEL-6842 XmlRpcDataFormat should support to access XmlRpcStreamRequestConfig and TypeFactory
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/22447cbb Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/22447cbb Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/22447cbb Branch: refs/heads/camel-2.11.x Commit: 22447cbb06759c9e109723bf68f5497578ae554c Parents: 4ac76ae Author: Willem Jiang <ningji...@apache.org> Authored: Wed Oct 9 11:47:37 2013 +0800 Committer: Willem Jiang <ningji...@apache.org> Committed: Wed Oct 9 11:56:35 2013 +0800 ---------------------------------------------------------------------- .../dataformat/xmlrpc/XmlRpcDataFormat.java | 29 +++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/22447cbb/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java ---------------------------------------------------------------------- diff --git a/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java b/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java index 471ea38..b94db64 100644 --- a/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java +++ b/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java @@ -46,11 +46,10 @@ import org.apache.xmlrpc.parser.XmlRpcResponseParser; import org.apache.xmlrpc.util.SAXParsers; public class XmlRpcDataFormat implements DataFormat { - private XmlRpcStreamRequestConfig config = new XmlRpcHttpRequestConfigImpl(); + private XmlRpcStreamRequestConfig xmlRpcStreamRequestConfig = new XmlRpcHttpRequestConfigImpl(); private TypeFactory typeFactory = new TypeFactoryImpl(null); private boolean isRequest; - protected XMLWriter getXMLWriter(Exchange exchange, OutputStream outputStream) throws XmlRpcException { XMLWriter writer = new CharSetXMLWriter(); String encoding = IOHelper.getCharsetName(exchange); @@ -69,13 +68,13 @@ public class XmlRpcDataFormat implements DataFormat { public void marshal(Exchange exchange, Object graph, OutputStream stream) throws Exception { // need to check the object type XMLWriter control = getXMLWriter(exchange, stream); - XmlRpcWriter writer = new XmlRpcWriter(config, control, typeFactory); + XmlRpcWriter writer = new XmlRpcWriter(xmlRpcStreamRequestConfig, control, typeFactory); if (graph instanceof XmlRpcRequest) { - writer.writeRequest(config, (XmlRpcRequest)graph); + writer.writeRequest(xmlRpcStreamRequestConfig, (XmlRpcRequest)graph); } else { // write the result here directly // TODO write the fault message here - writer.write(config, graph); + writer.write(xmlRpcStreamRequestConfig, graph); } } @@ -98,7 +97,7 @@ public class XmlRpcDataFormat implements DataFormat { XMLReader xr = newXMLReader(); XmlRpcResponseParser xp; try { - xp = new XmlRpcResponseParser(config, typeFactory); + xp = new XmlRpcResponseParser(xmlRpcStreamRequestConfig, typeFactory); xr.setContentHandler(xp); xr.parse(isource); } catch (SAXException e) { @@ -128,7 +127,7 @@ public class XmlRpcDataFormat implements DataFormat { XMLReader xr = newXMLReader(); XmlRpcRequestParser xp; try { - xp = new XmlRpcRequestParser(config, typeFactory); + xp = new XmlRpcRequestParser(xmlRpcStreamRequestConfig, typeFactory); xr.setContentHandler(xp); xr.parse(isource); } catch (SAXException e) { @@ -151,5 +150,21 @@ public class XmlRpcDataFormat implements DataFormat { public void setRequest(boolean isRequest) { this.isRequest = isRequest; } + + public void setXmlRpcStreamRequestConfig(XmlRpcStreamRequestConfig config) { + this.xmlRpcStreamRequestConfig = config; + } + + public XmlRpcStreamRequestConfig getXmlRpcStreamRequestConfig() { + return xmlRpcStreamRequestConfig; + } + + public void setTypeFactory(TypeFactory typeFactory) { + this.typeFactory = typeFactory; + } + + public TypeFactory getTypeFactory() { + return typeFactory; + } }