Author: jochen
Date: Mon Jan 15 12:45:09 2007
New Revision: 496479
URL: http://svn.apache.org/viewvc?view=rev&rev=496479
Log:
Made extending the XmlRpcCommonsTransportFactory easier.
Submitted-by: Steffen Pingel, [EMAIL PROTECTED]
PR: XMLRPC-131
Modified:
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcCommonsTransport.java
webservices/xmlrpc/trunk/src/changes/changes.xml
Modified:
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcCommonsTransport.java
URL:
http://svn.apache.org/viewvc/webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcCommonsTransport.java?view=diff&rev=496479&r1=496478&r2=496479
==============================================================================
---
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcCommonsTransport.java
(original)
+++
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcCommonsTransport.java
Mon Jan 15 12:45:09 2007
@@ -44,9 +44,9 @@
* HTTP Client.
*/
public class XmlRpcCommonsTransport extends XmlRpcHttpTransport {
- private final HttpClient client;
+ protected final HttpClient client;
private static final String userAgent = USER_AGENT + " (Jakarta Commons
httpclient Transport)";
- private PostMethod method;
+ protected PostMethod method;
private int contentLength = -1;
private XmlRpcHttpClientConfig config;
@@ -72,7 +72,7 @@
protected void initHttpHeaders(XmlRpcRequest pRequest) throws
XmlRpcClientException {
config = (XmlRpcHttpClientConfig) pRequest.getConfig();
- method = new PostMethod(config.getServerURL().toString());
+ method = newPostMethod(config);
super.initHttpHeaders(pRequest);
if (config.getConnectionTimeout() != 0)
@@ -82,6 +82,10 @@
client.getHttpConnectionManager().getParams().setSoTimeout(config.getReplyTimeout());
method.getParams().setVersion(HttpVersion.HTTP_1_1);
+ }
+
+ protected PostMethod newPostMethod(XmlRpcHttpClientConfig pConfig) {
+ return new PostMethod(pConfig.getServerURL().toString());
}
protected void setRequestHeader(String pHeader, String pValue) {
Modified: webservices/xmlrpc/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/webservices/xmlrpc/trunk/src/changes/changes.xml?view=diff&rev=496479&r1=496478&r2=496479
==============================================================================
--- webservices/xmlrpc/trunk/src/changes/changes.xml (original)
+++ webservices/xmlrpc/trunk/src/changes/changes.xml Mon Jan 15 12:45:09 2007
@@ -1,25 +1,300 @@
<document>
<properties>
- <title>Changes in JaxMe API</title>
+ <title>Changes in Apache XML-RPC</title>
</properties>
<body>
- <release version="0.6-SNAPSHOT" date="Not yet released">
- <action dev="jochen" type="update">
- Maven 2 is now used as the build system.
- </action>
- </release>
- <release version="0.5.2" date="25-Oct-2006"/>
- <release version="0.5.1" date="6-Jan-2006"/>
- <release version="0.5" date="2005-Aug-08"/>
- <release version="0.5beta" date="2005-Jul-13"/>
- <release version="0.4" date="2005-May-19"/>
- <release version="0.4beta" date="2005-Apr-17">
- <action dev="jochen" type="enhancement" context="api">
- Replaced JAXBSource with a streaming implementation.
- Richard Zschech, richard.zschech at cqrdata.com
- </action>
- </release>
- <release version="0.3.1" date="2004-Sep-03"/>
- <release version="0.3" date="2004-Jul-19"/>
+ <release version="3.1-SNAPSHOT" date="Not yet released">
+ <action dev="jochen" type="add">
+ Introduced the "enabledForExceptions" property.
+ </action>
+ <action dev="jochen" type="add">
+ Added support for void methods, if extensions are turned on.
+ </action>
+ <action dev="jochen" type="add" issue="XMLRPC-118" due-to="Perry Nguyen"
+ due-to-email="[EMAIL PROTECTED]">
+ Added PropertyHandlerMapping.load(ClassLoader, Map).
+ </action>
+ <action dev="jochen" type="add" issue="XMLRPC-117" due-to="Jimisola
Laursen"
+ due-to-email="[EMAIL PROTECTED]">
+ The authentication handler, type converter and requestprocessor
factories
+ are now configurable as properties of the XmlRpcServlet.
+ </action>
+ <action dev="jochen" type="add" issue="XMLRPC-116" due-to="Jimisola
Laursen"
+ due-to-email="[EMAIL PROTECTED]">
+ Atomic properties of XmlRpcServer are now configurable as init
parameters
+ in the XmlRpcServlet.
+ </action>
+ <action dev="jochen" type="fix">
+ Reworked the WebServer/ThreadPool framework in order to ensure a clean
+ shutdown.
+ </action>
+ <action dev="jochen" type="fix" issue="XMLRPC-124" due-to="Jimisola
Laursen"
+ due-to-email="[EMAIL PROTECTED]">
+ The configuration framework, as introduced by XMLRPC-116, was
applicable
+ to the configuration only, and not to the XmlRpcServlet, or the
+ XmlRpcServletServer.
+ </action>
+ <action dev="jochen" type="add">
+ Introduced the method
AbstractReflectiveHandlerMapping.isHandlerMethod().
+ This should allow users to prevent remote invocation of certain
methods,
+ for example initialization stuff.
+ </action>
+ <action dev="jochen" type="add" issue="XMLRPC-126"
+ due-to="Eugene Prokopiev" due-to-email="[EMAIL PROTECTED]">
+ The ClientFactory is now able to use a custom name for the remote
+ handler. So far, it was always using the interface name.
+ </action>
+ <action dev="jochen" type="add" issue="XMLRPC-127">
+ It is now possible to have other objects than strings as
+ map keys.
+ </action>
+ <action dev="jochen" type="add" issue="XMLRPC-131"
+ due-to="Steffen Pingel" due-to-email="[EMAIL PROTECTED]">
+ Made extending the XmlRpcCommonsTransportFactory easier.
+ </action>
+ </release>
+ <release version="3.0.1-SNAPSHOT" date="Not yet released">
+ <action dev="jochen" type="fix">
+ Make the HttpClient creation in XmlRpcCommonsTransport and the
+ URLConnection creation in XmlRpcSunHttpTransport protected.
+ This is required for cookie support.
+ </action>
+ <action dev="jochen" type="fix">
+ The WebServer was producing invalid error responses, if
contentLengthOptional
+ was set.
+ </action>
+ <action dev="jochen" type="fix" issue="XMLRPC-113" due-to="Juha Syrjala"
+ due-to-email="[EMAIL PROTECTED]">
+ If the server was throwing an XmlRpcException, then the fault code and
fault
+ string weren't given to the client.
+ </action>
+ <action dev="jochen" type="fix" issue="XMLRPC-114">
+ The WebServer replies with an HTTP error 401 now, if the
+ client uses chunked encoding.
+ </action>
+ <action dev="jochen" type="fix" issue="XMLRPC-74">
+ The properties "Extension-Name", "Specification-Vendor",
"Specification-Version",
+ "Specification-Title", "Implementation-Vendor-Id",
+ "Implementation-Vendor" and "Implementation-Version" are now
+ present in the MANIFEST files.
+ </action>
+ <action dev="jochen" type="fix" issue="XMLRPC-115">
+ An NPE was thrown, if the clients request didn't contain a "params"
element.
+ </action>
+ <action dev="jochen" type="fix" due-to="Jonathan Oexner"
+ due-to-email="[EMAIL PROTECTED]">
+ The method TimingOutCallback.waitForResponse is now checking, whether
+ a response has already arrived before waiting.
+ </action>
+ <action dev="jochen" type="fix" issue="XMLRPC-119">
+ Fixed a serious performance problem, if the XML parser was
sending large
+ content in small pieces. This could happen, for example, if the
content
+ contained a large number of character entities.
+ </action>
+ <action dev="jochen" type="fix" issue="XMLRPC-120"
+ due-to="Juho Yli-Krekola" due-to-email="[EMAIL PROTECTED]">
+ The configuration of the reply timeout in the commons transport was
wrong.
+ </action>
+ </release>
+ <release version="3.0" date="30-Aug-2006">
+ <action dev="jochen" type="fix" due-to="Matt Preston"
+ due-to-email="[EMAIL PROTECTED]" issue="XMLRPC-100">
+ Fixed the spelling of CharSetXmlWriterFactory, which made
+ the class basically useless.
+ </action>
+ <action dev="jochen" type="fix" due-to="Stanislav Miklik"
+ due-to-email="[EMAIL PROTECTED]">
+ Fixed that the WebServer didn't wait before retrying to
+ bind to the server socket.
+ </action>
+ <action dev="jochen" type="fix" due-to="Stanislav Miklik"
+ due-to-email="[EMAIL PROTECTED]">
+ Fixed an endless loop, if the WebServer threw a BindException.
+ </action>
+ <action dev="jochen" type="fix" due-to="Landon Fuller"
+ due-to-email="[EMAIL PROTECTED]" issue="XMLRPC-104">
+ A NullPointerException was triggered, if the BasicEncoding was set to
null.
+ </action>
+ <action dev="jochen" type="fix" due-to="Landon Fuller"
+ due-to-email="[EMAIL PROTECTED]" issue="XMLRPC-104">
+ Basic authentication didn't work, if the base64 encoded string
with
+ user name and password contained more than 72 characters.
+ </action>
+ <action dev="jochen" type="fix">
+ Basic authentication didn't work with the commons http transport,
+ because the commons httpclient wasn't configured to send credentials
+ by default. (It was waiting for a challenge.)
+ </action>
+ <action dev="jochen" type="fix" issue="XMLRPC-105">
+ Basic authentication didn't work with the commons http transport,
+ if user name or password contained non-ASCII characters.
+ </action>
+ <action dev="jochen" type="fix" due-to="Randall Bryant"
+ due-to-email="[EMAIL PROTECTED]">
+ The releaseWorker() method wasn't called for the server.
+ </action>
+ <action dev="jochen" type="fix">
+ Fixed a bug in the web servers thread pool, which caused that
+ threads haven't been reused.
+ </action>
+ <action dev="jochen" type="fix" due-to="Jason McLaurin"
+ due-to-email="[EMAIL PROTECTED]">
+ Documentation improvements
+ </action>
+ <action dev="jochen" type="add">
+ Added documentation on custom data types.
+ </action>
+ <action dev="jochen" type="add" due-to="Catalin Hritcu"
+ due-to-email="[EMAIL PROTECTED]" issue="XMLRPC-107">
+ The XmlRpcLiteHttpTransport is now creating a socket
+ in a protected methods. This allows to switch to
+ alternative socket implementations.
+ </action>
+ <action dev="jochen" type="fix" due-to="Catalin Hritcu"
+ due-to-email="[EMAIL PROTECTED]" issue="XMLRPC-108">
+ More documentation fixes.
+ </action>
+ <action dev="jochen" type="fix" due-to="Catalin Hritcu"
+ due-to-email="[EMAIL PROTECTED]" issue="XMLRPC-109">
+ Fixed an invalid FAQ example.
+ </action>
+ </release>
+ <release version="3.0rc1" date="27-Jul-2006">
+ <action dev="jochen" type="fix" due-to="Alan Burlison"
+ due-to-email="[EMAIL PROTECTED]">
+ Added a missing "synchronized" to the TimingOutCallback.
+ </action>
+ <action dev="jochen" type="fix" due-to="Chris Conrad"
+ due-to-email="[EMAIL PROTECTED]" issue="XMLRPC-94">
+ Fixed an invalid index, that caused the ReflectiveXmlRpcHandler to fail
+ detecting a method.
+ </action>
+ <action dev="jochen" type="add" issue="XMLRPC-93">
+ Added documentation for accessing an SSL server.
+ </action>
+ <action dev="jochen" type="add" due-to="Jimisola Laursen"
+ due-to-email="[EMAIL PROTECTED]" issue="XMLRPC-96">
+ A null parameter list is now treated as an empty object array.
+ </action>
+ <action dev="jochen" type="fix" due-to="Jimisola Laursen"
+ due-to-email="[EMAIL PROTECTED]" issue="XMLRPC-97">
+ The type long was missing in types.apt.
+ </action>
+ </release>
+ <release version="3.0b1" date="24-Jun-2006">
+ <action dev="hgomez" type="add">
+ Add connectionTimeout and replyTimeout in RPC clients.
+ CommonsTransport support connection and reply timeout,
liteHttpTransport only support reply timeout
+ </action>
+ <action dev="jochen" type="fix" due-to="Marek Ludha"
+ due-to-email="[EMAIL PROTECTED]">
+ The value created by HttpUtil.encodeBasicAuthentication(...)
+ was terminated with a line feed, which is invalid for
+ use in HTTP headers.
+ </action>
+ <action dev="hgomez" type="add">
+ add support for BigDecimal and BigInteger in extensions.
+ </action>
+ <action dev="jochen" type="fix" due-to="Walter Mundt"
+ due-to-email="[EMAIL PROTECTED]">
+ Nested object arrays could not be parsed.
+ </action>
+ <action dev="jochen" type="fix" due-to="Walter Mundt"
+ due-to-email="[EMAIL PROTECTED]">
+ The "string" tag could not be parsed.
+ </action>
+ <action dev="jochen" type="add" due-to="Walter Mundt"
+ due-to-email="[EMAIL PROTECTED]"
+ issue="XMLRPC-76">
+ Added the DynamicHandlerMapping.
+ </action>
+ <action dev="jochen" type="fix" due-to="Walter Mundt"
+ due-to-email="[EMAIL PROTECTED]">
+ XmlRpcException.printStackTrace() was throwing
+ an NPE, if no linked exception was present.
+ </action>
+ <action dev="jochen" type="add">
+ The project is now splitted into three jar files:
+ common, client, and server.
+ </action>
+ <action dev="jochen" type="fix" due-to="Brad Karp"
+ due-to-email="[EMAIL PROTECTED]">
+ The Base64 encoder doesn't accept buffers of length 0. Such a buffer
+ was passed, if the byte array to encode has itself length 0.
+ </action>
+ <action dev="jochen" type="fix" issue="XMLRPC-79">
+ HTTP/1.0 requires a content-length header. The Lite HTTP transport
+ doesn't support HTTP/1.1, so it refuses the "contentLengthOptional"
+ setting from now on.
+ </action>
+ <action dev="jochen" type="add" due-to="Mark Petrovic"
+ due-to-email="[EMAIL PROTECTED]">
+ Added support for initializable handlers.
+ </action>
+ <action dev="jochen" type="add" due-to="Ken Weiner"
+ due-to-email="[EMAIL PROTECTED]" issue="XMLRPC-56">
+ Added the TimingOutCallback, which allows to abort a request,
+ if the server doesn't reply within a given time.
+ </action>
+ <action dev="hgomez" type="fix">
+ Fixed that dateTime values must not include timezone values.
+ </action>
+ <action dev="jochen" type="add" due-to="Denis Carniel"
+ due-to-email="[EMAIL PROTECTED]" issue="XMLRPC-84">
+ The XmlRpcServlet allows to configure its "enabledForExtensions"
+ value as an init parameter.
+ </action>
+ <action dev="jochen" type="add">
+ It is now possible to create and initialize handler objects per
+ request.
+ </action>
+ <action dev="jochen" type="fix" issue="XMLRPC-89">
+ Added partial support for automatic conversion of object arrays
+ to lists, or vectors. Same for maps to hash tables, or properties.
+ </action>
+ </release>
+ <release version="3.0a1" date="17-Feb-2005">
+ <action dev="jochen" type="add">
+ Complete rewrite, adding vendor extensions:
+ Streaming mode, support for all primitive Java types,
+ nulls, DOM elements, and JAXB objects.
+ </action>
+ </release>
+ <release version="2.0.2" date="Not yet released">
+ <action dev="jochen" type="fix" issue="XMLRPC-67"
+ due-to="Mike Bailey" due-to-email="mike at blueoak.com">
+ A missing increment in LiteXmlRpcTransport.initConnection()
+ prevented, that the method could finally fail, resulting
+ in a never ending loop.
+ </action>
+ </release>
+ <release version="2.0.1" date="28-Dec-2005">
+ <action dev="jochen" type="fix" issue="XMLRPC-68"
+ due-to="Johan Oskarson" due-to-email="johan at oskarsson.nu">
+ The Webserver class was unable to handle basic authentication,
+ because the BASE64 codec wasn't initialized.
+ </action>
+ <action dev="jochen" type="fix" issue="XMLRPC-69"
+ due-to="Claude Zervas" due-to-email="claude at utlco.com">
+ The characters 0x20, 0xe000, and 0x10000 have been escaped
+ without reason.
+ </action>
+ <action dev="jochen" type="fix" issue="XMLRPC-73"
+ due-to="Thomas Mohaupt" due-to-email="Thomas.Mohaupt at
gmail.com">
+ The wrong version of commons-codec was downloaded by build.xml.
+ </action>
+ <action dev="jochen" type="add"
+ due-to="Jimisola Laursen" due-to-email="[EMAIL PROTECTED]">
+ Added the CommonsXmlRpcTransportFactory.
+ </action>
+ <action dev="jochen" type="add"
+ due-to="Henry Story" due-to-email="[EMAIL PROTECTED]">
+ Added the possibility to specify a timezone for interpreting
+ incoming date values.
+ </action>
+ <action dev="jochen" type="add">
+ Upgrade to commons-httpclient 3.0.
+ </action>
+ </release>
</body>
</document>