json-rpc-java-1.0.1
* A user derived bridge implementation should be able to control
access to which classes can be serialized.
The JSONRPCBridge.resolveClass method has been made protected
so that a client application can derive it to control access.
-- Michael Clark <michael@metaparadigm.com>
* Add ExceptionTransformer interface and interface to
JSONRPCBridge to transform exception objects returned
to the client.
-- Rhys Yarranton, rhys dot yarranton at albertasolutions dot com
json-rpc-java-1.0
Summary of changes
* The most major change in this version is that the license
has changed from LGPL to the Apache License, Version 2.0
* Additional object registration, lookup and unregister
APIs have been added to JSONRPCBridge.
* No code changes will be required upgrading from 1.0rc2
Changes since 1.0rc2
* Add a new overloaded registerObject call that allows the
caller to specify the class/interface to be used for exporting
methods on the object (exported methods are restricted to
just the interface class).
-- Ian Sollars, ian at sollars dot gmail dot com
* License changed from LGPL to Apache License, Version 2.0 after
approval from all authors/contributors
* Bring in style changes from HEAD
- Update JSP pages to use common header and footer and new style
- Remove eval function from test.jsp
- Simplify async callback in unit test
-- Michael Clark <michael@metaparadigm.com>
* Fix JavaScript client failure with HTTP authentication in Firefox
-- Mark F Murphy, markm at tyrell dot com
* Add unregisterClass, unregisterObject, lookupClass and lookupObject
methods to JSONRPCBridge to enable external lifecycle management of
exported classes and objects
-- Michael Clark <michael@metaparadigm.com>
json-rpc-java-1.0rc2
Summary of changes
* Improved documentation. More Javadoc comments and addition on
documentation on References and LocalArgResolvers to the manual.
* JSON-RPC JavaScript Client bugfixes, changes to comments and
addition of trailing ; to function assignments to allow usage
or certain script compressors.
* Fix to keepalive handling.
* Implement Serializable on all JSONRPCBridge related objects to
enable sessions to be persistent against tomcat restarts and
clustering should now work.
* Add ErrorInvocationCallback interface to allow callbacks to
get notification of server side errors.
Changes since 1.0rc1
* Created branch in CVS. To check out 1.0 branch use:
cvs update -r R1_0_BRANCH
* Add documentation on References, Callable References and LocalArgResolver
to the manual
* More Javadoc updates
* Change // comments to /* */ comments in jsonrpc client
* Add ; to end of function variable assignments in jsonrpc client
* Return http object to pool if we get a connection error
* Fix put in poolReturnHTTPRequest where we pushed a deleted http
object onto the spare array
* Implement Serializable on more classes to make Session persistence
and clustering possible
* Don't add 'Connection: keep-alive' header in JSONRPCServlet as this is
not actually required for keepalive connections with HTTP/1.1 clients
(ie. any browser that implements XMLHttpRequestObject).
This header was perhaps a cause for the subtle and infrequent breakage
seen with certain connector, webserver and browser combinations causing
empty bodies to be sent to the server. Content-length is all that is
required for keepalive connections to work with HTTP/1.1 clients - this
header can still be disabled with the keepalive=0 servlet param although
many containers will still maintain keepalive connections by reverting to
chunked encoding.
-- Michael Clark <michael@metaparadigm.com>
* Add more Javadoc comments to InvocationCallback interface
* Add ErrorInvocationCallback interface to allow callback functions
to be notified of exceptions generated while invoking methods
on exported objects
-- Brett Connor, connorb at axxia dot com
-- Michael Clark <michael@metaparadigm.com>
* Make JSON-RPC JavaScript client throw Exception consistent with
other client exceptions if there is a connection error
-- Krzysztof Ogrodnik, OgrodnikK at axxia dot com
-- Michael Clark <michael@metaparadigm.com>
* Add additional Javadoc comments to LocalArgResolver interfaces and
associated classes
* Fix bug in JSONRPC JavaScript client where we forget to set
async timeout handler variable causing the async handler function
to get called back multiple times with no work to be done
* Implement Serializable on JSONRPCBridge and mark a few fields as
transient that aren't required during serialization
-- Michael Clark <michael@metaparadigm.com>
json-rpc-java-1.0rc1
Summary of changes
* Ability to handle generic Object and Interface method signatures.
* Closer conformance with the JSON-RPC specification.
* Ability to cancel async requests.
* Now sends Dates in milliseconds.
Upgrade notes
* Code that unmarshalls Dates will need to be changed from:
new Date(object.time*1000) to: new Date(object.time)
* Backwards compatibility code with 0.7 release has been removed.
* CallableReference has been changed on the wire so if these are
used then then both the client and server must be 1.0rc1.
Changes since 0.9
* Avoid memory leak on IE in jsonrpc JS client by removing callback
function once we have recieved the callback
-- Evan Leonard, evan at mindreef dot com
* Allowed BooleanSerializer to accept JSONObjects of type string, if they
can be converted to a Boolean.
-- Ryan Gates ryan.gates at gmail dot com
* Fetching servlet config at init time instead of on each request
* Add servlet config option 'keepalive' when set to 0 disables keepalives
-- Michael Clark <michael@metaparadigm.com>
* Fix JSONRPCResult to use Throwable instead of Exception so all kinds
of Throwable types can be handled
-- Igor Bernstein, happycrappy at gmail dot com
* Handle case where a method generic signature such as Object is overloaded
with a more specific signature. Previously the method matching code
would pick an arbitrary method. Now the method with the specific
matching class signature will be chosen.
* Fix date value truncation introduced when converting Date marshalling
format into milliseconds.
-- Nicola Piccinini, pic at mayatecnologie dot com
* Fix serializer selection logic when passing a hinted JS object into a
Java method with either an interface or Object signature. Previously
objects unmarshalled by the BeanSerializer had to be passed into a
method with the concrete class signature. Now Beans with strong type
information (type hints i.e. "javaClass" property) can be passed into
methods with Interfaces and Object signatures.
* Send Dates in milliseconds - not seconds as before (this didn't
really make any sense as both Java and JavaScript natively store Dates
internally in milliseconds). Code that unmarshalls Dates currently just
sees a plain JavaScript object and access the 'time' field, this code
will need to be changed from: new Date(object.time*1000) to the much
simpler form: new Date(object.time)
* Change jsonrpc.js to set unique id field in request as per JSON-RPC spec
* Change JSONRPCBridge to decode id if present and return it in replies.
Currently niether the client nor server require the id to be present.
This required changes to the protected JSONRPCBridge.call interface to
pass in the entire undecoded JSON-RPC request object. This had the effect
of simplifying the JSONRPCServlet code which is a good thing.
* No longer add objectID attribute to requests made on CallableReferences.
This was a break from JSON-RPC protocol. Now we encode the objectID into
the method in the form ".obj#<objectID>.methodName" so our requests are
now completely compatible with JSON-RPC spec.
* Remove backwards compatibility with 0.7 client/server. This served its
pur