You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlrpc-dev@ws.apache.org by jo...@apache.org on 2005/11/30 21:49:44 UTC
svn commit: r350048 - in /webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH: ./
src/java/org/apache/xmlrpc/ src/java/org/apache/xmlrpc/util/
Author: jochen
Date: Wed Nov 30 12:49:32 2005
New Revision: 350048
URL: http://svn.apache.org/viewcvs?rev=350048&view=rev
Log:
Added the possibility to specify a timezone for interpreting incoming date values.
Submitted-By: Henry Story, henry.story@bblfish.net
Modified:
webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/changes.xml
webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/DefaultTypeFactory.java
webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpc.java
webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClient.java
webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientRequestProcessor.java
webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientResponseProcessor.java
webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientWorker.java
webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlWriter.java
webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/util/DateTool.java
Modified: webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/changes.xml
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/changes.xml?rev=350048&r1=350047&r2=350048&view=diff
==============================================================================
--- webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/changes.xml (original)
+++ webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/changes.xml Wed Nov 30 12:49:32 2005
@@ -22,6 +22,11 @@
due-to="Jimisola Laursen" due-to-email="lists@jimisola.com">
Added the CommonsXmlRpcTransportFactory.
</action>
+ <action dev="jochen" type="enhancement"
+ due-to="Henry Story" due-to-email="henry.story@bblfish.net">
+ Added the possibility to specify a timezone for interpreting
+ incoming date values.
+ </action>
</release>
</body>
</document>
Modified: webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/DefaultTypeFactory.java
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/DefaultTypeFactory.java?rev=350048&r1=350047&r2=350048&view=diff
==============================================================================
--- webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/DefaultTypeFactory.java (original)
+++ webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/DefaultTypeFactory.java Wed Nov 30 12:49:32 2005
@@ -19,6 +19,7 @@
import java.text.ParseException;
+import java.util.TimeZone;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.DecoderException;
@@ -57,6 +58,10 @@
*/
public DefaultTypeFactory()
{
+ }
+
+ public DefaultTypeFactory(TimeZone tz) {
+ dateTool.setTimeZone(tz);
}
public Object createInteger(String cdata)
Modified: webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpc.java
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpc.java?rev=350048&r1=350047&r2=350048&view=diff
==============================================================================
--- webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpc.java (original)
+++ webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpc.java Wed Nov 30 12:49:32 2005
@@ -17,18 +17,15 @@
package org.apache.xmlrpc;
+import org.xml.sax.*;
+import uk.co.wilson.xml.MinML;
+
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Hashtable;
import java.util.Stack;
+import java.util.TimeZone;
import java.util.Vector;
-import org.xml.sax.AttributeList;
-import org.xml.sax.HandlerBase;
-import org.xml.sax.InputSource;
-import org.xml.sax.Parser;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import uk.co.wilson.xml.MinML;
/**
* This abstract base class provides basic capabilities for XML-RPC,
@@ -235,7 +232,7 @@
// If we're using the default, provide it immediately.
if (c == null || DefaultTypeFactory.class.equals(c))
{
- return new DefaultTypeFactory();
+ return new DefaultTypeFactory(tz);
}
try
@@ -251,8 +248,17 @@
{
e.printStackTrace();
}
- return new DefaultTypeFactory();
+ return new DefaultTypeFactory(tz);
+ }
+ }
+
+ TimeZone tz;
+
+ void setServerTimeZone(TimeZone z) {
+ tz = z;
}
+ TimeZone getServerTimeZone() {
+ return tz;
}
/**
Modified: webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClient.java
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClient.java?rev=350048&r1=350047&r2=350048&view=diff
==============================================================================
--- webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClient.java (original)
+++ webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClient.java Wed Nov 30 12:49:32 2005
@@ -23,6 +23,7 @@
import java.util.EmptyStackException;
import java.util.Stack;
import java.util.Vector;
+import java.util.TimeZone;
/**
* A multithreaded, reusable XML-RPC client object. Use this if you
@@ -347,10 +348,19 @@
{
workers += 1;
}
- return new XmlRpcClientWorker();
+ return new XmlRpcClientWorker(getTimeZone());
}
throw new IOException("XML-RPC System overload");
}
+ }
+
+ TimeZone tz;
+ public void setTimeZone(TimeZone z) {
+ tz = z;
+ }
+
+ public TimeZone getTimeZone() {
+ return tz;
}
/**
Modified: webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientRequestProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientRequestProcessor.java?rev=350048&r1=350047&r2=350048&view=diff
==============================================================================
--- webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientRequestProcessor.java (original)
+++ webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientRequestProcessor.java Wed Nov 30 12:49:32 2005
@@ -20,6 +20,7 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.util.TimeZone;
/**
* Process an XML-RPC client request into a byte array or directly onto
@@ -32,11 +33,13 @@
*/
public class XmlRpcClientRequestProcessor
{
+ TimeZone tz;
/**
* Creates a new instance.
*/
- public XmlRpcClientRequestProcessor()
+ public XmlRpcClientRequestProcessor(TimeZone tz)
{
+ this.tz = tz;
}
/**
@@ -45,7 +48,6 @@
*
* @param request the request to encode.
* @param encoding the Java name for the encoding to use.
- * @return byte [] the encoded request.
*/
public void encodeRequest(XmlRpcClientRequest request, String encoding,
OutputStream out)
@@ -54,7 +56,7 @@
XmlWriter writer;
writer = new XmlWriter(out, encoding);
-
+ writer.dateTool.setTimeZone(tz);
writer.startElement("methodCall");
writer.startElement("methodName");
writer.write(request.getMethodName());
Modified: webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientResponseProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientResponseProcessor.java?rev=350048&r1=350047&r2=350048&view=diff
==============================================================================
--- webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientResponseProcessor.java (original)
+++ webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientResponseProcessor.java Wed Nov 30 12:49:32 2005
@@ -17,12 +17,13 @@
package org.apache.xmlrpc;
-import java.util.Hashtable;
-import java.io.InputStream;
-
import org.xml.sax.AttributeList;
import org.xml.sax.SAXException;
+import java.io.InputStream;
+import java.util.Hashtable;
+import java.util.TimeZone;
+
/**
* Process an XML-RPC server response from a byte array or an
* InputStream into an Object. Optionally throw the result object
@@ -44,8 +45,9 @@
/**
* Creates a new instance.
*/
- public XmlRpcClientResponseProcessor()
+ public XmlRpcClientResponseProcessor(TimeZone tz)
{
+ setServerTimeZone(tz);
}
/**
Modified: webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientWorker.java
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientWorker.java?rev=350048&r1=350047&r2=350048&view=diff
==============================================================================
--- webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientWorker.java (original)
+++ webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlRpcClientWorker.java Wed Nov 30 12:49:32 2005
@@ -19,6 +19,7 @@
import java.io.InputStream;
import java.io.IOException;
+import java.util.TimeZone;
/**
* Tie together the XmlRequestProcessor and XmlResponseProcessor to handle
@@ -38,10 +39,10 @@
*/
private static final Object PROCESSING_ERROR_FLAG = new Object();
- public XmlRpcClientWorker()
+ public XmlRpcClientWorker(TimeZone tz)
{
- this(new XmlRpcClientRequestProcessor(),
- new XmlRpcClientResponseProcessor()
+ this(new XmlRpcClientRequestProcessor(tz),
+ new XmlRpcClientResponseProcessor(tz)
);
}
Modified: webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlWriter.java
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlWriter.java?rev=350048&r1=350047&r2=350048&view=diff
==============================================================================
--- webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlWriter.java (original)
+++ webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/XmlWriter.java Wed Nov 30 12:49:32 2005
@@ -104,7 +104,7 @@
* Thread-safe wrapper for the <code>DateFormat</code> object used
* to parse date/time values.
*/
- private static DateTool dateTool = new DateTool();
+ DateTool dateTool = new DateTool();
/**
* Whether the XML prolog has been written.
Modified: webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/util/DateTool.java
URL: http://svn.apache.org/viewcvs/webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/util/DateTool.java?rev=350048&r1=350047&r2=350048&view=diff
==============================================================================
--- webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/util/DateTool.java (original)
+++ webservices/xmlrpc/branches/XMLRPC_2_0_BRANCH/src/java/org/apache/xmlrpc/util/DateTool.java Wed Nov 30 12:49:32 2005
@@ -21,6 +21,7 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.TimeZone;
/**
* Wraps a <code>DateFormat</code> instance to provide thread safety.
@@ -52,6 +53,10 @@
public synchronized String format(Date d)
{
return df.format(d);
+ }
+
+ public synchronized void setTimeZone(TimeZone z) {
+ if (z != null) df.setTimeZone(z);
}
/**