JBoss Remoting 1.4.1 final
March 28, 2006

This distribution of JBoss Remoting contains the following directories:

docs - contains user guide and javadoc
etc - contains example service xml for creating and running jboss remoting services within the JBoss Application Server.
examples - source code for remoting samples, which are referenced in the user guide.  Also contains a build file for compiling and running the samples.
lib - all the jar files needed for running remoting.  Includes the remoting jar itself, jboss-remoting.jar
src - source code for JBoss Remoting.
tests - unit tests for JBoss Remoting.

Please read the JBoss_Remoting_Guide.pdf in the docs directory for more information about this release and JBoss Remoting.

The following public API for JBossRemoting was changed in release 1.2.0 which will make it incompatible with previous versions:
	Removed ClientInvokerAdapter and dependant classes
	Callback related classes moved to new remoting callback package
	InvokerCallbackHandler accepts Callback type as parameter instead of InvocationRequest

Known issues:

Current issues can be found within the JBoss Remoting project on Jira (http://jira.jboss.com).  If you find a bug or issue that is not already
in Jira, please create one.


Release Notes - JBoss Remoting - Version 1.4.1 final

** Feature Request
    * [JBREM-310] - Ability to turn connection checking off
    * [JBREM-325] - move IMarshalledValue from jboss-commons to jboss-remoting.jar

** Bug
    * [JBREM-313] - client lease does not work if client and server in same VM (using local invoker)
    * [JBREM-317] - HTTPClientInvoker conect sends gratuitous POST
    * [JBREM-341] - Client ping interval must be lease than lease period
    * [JBREM-343] - Exceptions on connection closing
    * [JBREM-345] - problem using client address and port
    * [JBREM-346] - fix ConcurrentModificationException in cleanup of MultiplexServerInvoker
    * [JBREM-350] - ConcurrentModificationException in InvokerRegistry
    * [JBREM-361] - Race condition in invoking on Client

** Task
    * [JBREM-2] - sample-bindings.xml does not have entry for remoting
    * [JBREM-220] - clean up remoting wiki
    * [JBREM-316] - Maintain tomcat originated code under the ASF license.
    * [JBREM-319] - ability to inject socket factory by classname or instance in all remoting transports
    * [JBREM-323] - client lease config changes
    * [JBREM-329] - create global transport config for timeout
    * [JBREM-330] - create socket server factory based off of configuration properties
    * [JBREM-335] - Client.invoke() should pass configuration map to InvokerRegistry.createClientInvoker().
    * [JBREM-336] - InvokerRegistry doesn't purge InvokerLocators from static Set registeredLocators.
    * [JBREM-337] - PortUtil.findFreePort() should return ports only between 1024 and 65535.
    * [JBREM-342] - Thread usage for timers and lease functionality
    * [JBREM-354] - ServerInvokerCallbackHandler should make its subsystem accessible.
    * [JBREM-356] - ServerInvoker should destroy its callback handlers.
    * [JBREM-359] - MultiplexInvokerConfigTestCase should execute MultiplexInvokerConfigTestServer instead of MultiplexInvokerTestServer.


Release Notes - JBoss Remoting - Version 1.4.0 final

** Feature Request
    * [JBREM-91] - UIL2 type transport (duplex calling of same socket)
    * [JBREM-117] - clean up callback client after several failures delivering callbacks
    * [JBREM-138] - HTTP/Servlet invokers require content length to be set
    * [JBREM-229] - Remove dependency on ThreadLocal for SerializationManagers and pluggable serialization
    * [JBREM-233] - Server side exception listeners for client connections
    * [JBREM-257] - Append client stack trace to thrown remote exception
    * [JBREM-261] - Integration with IMarshalledValue from JBossCommons
    * [JBREM-278] - remoting detection needs ability to accept detection of server invoker running locally
    * [JBREM-280] - no way to add path to invoker uri when using complex configuration

** Bug
    * [JBREM-41] - problem using localhost/127.0.0.1
    * [JBREM-115] - http server invoker does not wait to finish processing on stop
    * [JBREM-223] - Broken Pipe if client don't do any calls before the timeout value
    * [JBREM-224] - java.net.SocketTimeoutException when socket timeout on the keep alive
    * [JBREM-231] - bug in invoker locator when there are no params (NPE)
    * [JBREM-234] - StreamCorruptedException in DTM testcase
    * [JBREM-240] - TestUtil does not always give free port for server
    * [JBREM-243] - socket client invoker sharing pooled connections
    * [JBREM-250] - InvokerLocator doesn't support URL in IPv6 format (ex: socket://3000::117:5400/)
    * [JBREM-251] - transporter passes method signature based on concrete object and not the parameter type
    * [JBREM-256] - NullPointer in MarshallerLoaderHandler.java:69
    * [JBREM-259] - Unmarshalling of server response is not using caller's classloader
    * [JBREM-271] - http client invoker needs to explicitly set the content type if not provided
    * [JBREM-277] - error shutting down coyote invoker when using APR protocol
    * [JBREM-281] - getting random port for connectors is not reliable
    * [JBREM-282] - ServletServerInvoker not working with depployed for use as ejb invoker
    * [JBREM-286] - Socket server does not clean up server threads on shutdown
    * [JBREM-289] - PortUtil only checking for free ports on localhost

** Task
    * [JBREM-7] - Add more tests for local invoker
    * [JBREM-121] - improve connection failure callback
    * [JBREM-126] - add tests for client vs. server address bindings
    * [JBREM-195] - Performance optimization
    * [JBREM-199] - remoting clients required to include servlet-api.jar
    * [JBREM-207] - clean up build file
    * [JBREM-214] - multiplex performance tests getting out of memory error
    * [JBREM-215] - re-write http transport/handler documentation
    * [JBREM-216] - Need to add new samples to example build in distro
    * [JBREM-217] - create samples documentation
    * [JBREM-219] - move remoting site to jboss labs
    * [JBREM-226] - Release JBoss Remoting 1.4.0 final
    * [JBREM-230] - create interface for marshallers to implement for swapping out serialization impl
    * [JBREM-235] - add new header to source files
    * [JBREM-239] - Update the LGPL headers
    * [JBREM-242] - Subclass multiplex invoker from socket invoker.
    * [JBREM-249] - http invoker (tomcat connector) documentation
    * [JBREM-253] - Convert http server invoker implementation to use tomcat connector and protocols
    * [JBREM-255] - HTTPClientInvoker not setting response code or message
    * [JBREM-275] - fix package error in examle-service.xml
    * [JBREM-276] - transporter does not throw original exception from server implementation
    * [JBREM-279] - socket server invoker spits out error messages on shutdown when is not needed
    * [JBREM-287] - need to complete javadoc for all user classes/interfaces
    * [JBREM-288] - update example-service.xml with new configurations

** Reactor Event
    * [JBREM-241] - Refactor SocketServerInvoker so that can be subclassed by MultiplexServerInvoker


Release Notes - JBoss Remoting - Version 1.4.0 beta

** Feature Request
    * [JBREM-28] - Marshaller for non serializable objects
    * [JBREM-40] - Compression marshaller/unmarshaller
    * [JBREM-120] - config for using hostname in locator url instead of ip
    * [JBREM-140] - can not set response headers from invocation handlers
    * [JBREM-148] - support pluggable object serialization packages
    * [JBREM-175] - Remove Dependencies to Server Classes from UnifiedInvoker
    * [JBREM-180] - add plugable serialization
    * [JBREM-187] - Better HTTP 1.1 stack support for HTTP invoker
    * [JBREM-201] - Remove dependency from JBossSerialization

** Bug
    * [JBREM-127] - RMI Invoker will not bind to specified address
    * [JBREM-192] - distro contains samples in src and examples directory
    * [JBREM-193] - HTTPClientInvoker doesn't call getErrorStream() on HttpURLConnection when an error response code is returned
    * [JBREM-194] - multiplex performance tests hang
    * [JBREM-202] - getUnmarshaller always calls Class.forName operation for creating Unmarshallers
    * [JBREM-203] - rmi server invoker hangs if custom unmarshaller
    * [JBREM-205] - Spurious java.net.SocketException: Connection reset error logging
    * [JBREM-210] - InvokerLocator should be insensitive to parameter order

** Task
    * [JBREM-9] - Fix performance tests
    * [JBREM-33] - Add GET support within HTTP server invoker
    * [JBREM-145] - convert user guide from MS word doc to docbook
    * [JBREM-182] - Socket timeout too short (and better error message)
    * [JBREM-183] - keep alive support for http invoker
    * [JBREM-196] - reducde the number of retries for socket client invoker
    * [JBREM-204] - create complex remoting example using dynamic proxy to endpoint
    * [JBREM-212] - create transporter implementation
    * [JBREM-213] - allow config of ignoring https host validation (ssl) via metadata


** Patch
    * [JBREM-152] - NullPointerException in SocketServerInvoker.stop() at line 185.
    * [JBREM-153] - LocalClientInvoker's outlive their useful lifetime, causing anomalous behavior


Release Notes - JBoss Remoting - Version 1.2.0 final

** Feature Request
    * [JBREM-8] - Ability to stream files via remoting
    * [JBREM-22] - Manipulation of the client proxy interceptor stack
    * [JBREM-24] - Allow for specific network interface bindings
    * [JBREM-27] - Support for HTTP/HTTPS proxy
    * [JBREM-35] - Servlet Invoker - counterpart to HTTP Invoker (runs within web container)
    * [JBREM-43] - custom socket factories
    * [JBREM-46] - Connection failure callback
    * [JBREM-87] - Add handler metadata to detection messages
    * [JBREM-93] - Callback handler returning a generic Object
    * [JBREM-94] - callback server specific implementation
    * [JBREM-109] - Add support for JaasSecurityDomain within SSL support
    * [JBREM-122] - need log4j.xml in examples

** Bug
    * [JBREM-58] - Bug with multiple callback handler registered with same server
    * [JBREM-64] - Need MarshalFactory to produce new instance per get request
    * [JBREM-84] - Duplicate Connector shutdown using same server invoker
    * [JBREM-92] - in-VM push callbacks don't  work
    * [JBREM-97] - Won't compile under JDK 1.5
    * [JBREM-108] - can not set bind address and port for rmi and http(s)
    * [JBREM-114] - getting callbacks for a callback handler always returns null
    * [JBREM-125] - can not configure transport, port, or host for the stream server
    * [JBREM-131] - invoker registry not update if server invoker changes locator
    * [JBREM-134] - can not remove callback listeners from multiple callback servers
    * [JBREM-137] - Invalid RemoteClientInvoker reference maintained by InvokerRegistry after invoker disconnect()
    * [JBREM-141] - bug connecting client invoker when client detects that previously used one is disconnected
    * [JBREM-143] - NetworkRegistry should not be required for detector to run on server side

** Task
    * [JBREM-11] - Create seperate JBoss Remoting module in CVS
    * [JBREM-20] - break out remoting into two seperate projects
    * [JBREM-34] - Need to add configuration properties for HTTP server invoker
    * [JBREM-39] - start connector on new thread
    * [JBREM-55] - Clean up Callback implementation
    * [JBREM-57] - Remove use of InvokerRequest in favor of Callback object
    * [JBREM-62] - update UnifiedInvoker to use remote marshall loading
    * [JBREM-67] - Add ability to set ThreadPool via configuration
    * [JBREM-98] - remove isDebugEnabled() within code as is now depricated
    * [JBREM-101] - Fix serialization versioning between releases of remoting
    * [JBREM-104] - Release JBossRemoting 1.1.0
    * [JBREM-110] - create jboss-remoting-client.jar
    * [JBREM-113] - Convert remote tests to use JRunit instead of distributed test framework
    * [JBREM-123] - update detection samples
    * [JBREM-128] - standardize address and port binding configuration for all transports
    * [JBREM-130] - updated wiki for checkout and build
    * [JBREM-132] - write test case for JBREM-131
    * [JBREM-133] - Document use of Client (as a session object)
    * [JBREM-135] - Remove ClientInvokerAdapter

** Reactor Event
    * [JBREM-65] - move callback specific classes into new callback package
    * [JBREM-111] - pass socket's output/inputstream directly to marshaller/unmarshaller


Release Notes - JBoss Remoting - Version 1.0.2 final

** Bug
    * [JBREM-36] - performance tests fail for http transports
    * [JBREM-66] - Race condition on startup
    * [JBREM-82] - Bad warning in Connector.
    * [JBREM-88] - HTTP invoker only binds to localhost
    * [JBREM-89] - HTTPUnMarshaller finishing read early
    * [JBREM-90] - HTTP header values not being picked up on the http invoker server

** Task
    * [JBREM-70] - Clean up build.xml. Fix .classpath and .project for eclipse
    * [JBREM-83] - Updated Invocation marshalling to support standard payloads


Release Notes - JBoss Remoting - Version 1.0.1 final

** Feature Request
    * [JBREM-54] - Need access to HTTP response headers

** Bug
    * [JBREM-1] - Thread.currentThread().getContextClassLoader() is wrong
    * [JBREM-31] - Exception handling in http server invoker
    * [JBREM-32] - HTTP Invoker - check for threading issues
    * [JBREM-50] - Need ability to set socket timeout on socket client invoker
    * [JBREM-59] - Pull callback collection is unbounded - possible Out of Memory
    * [JBREM-60] - Incorrect usage of debug level logging
    * [JBREM-61] - Possible RMI exception semantic regression

** Task
    * [JBREM-15] - merge UnifiedInvoker from remoting branch
    * [JBREM-30] - Better integration for registering invokers with MBeanServer
    * [JBREM-37] - backport to 4.0 branch before 1.0.1 final release
    * [JBREM-56] - Add Callback object instead of using InvokerRequest

** Reactor Event
    * [JBREM-51] - defining marshaller on remoting client


Release Notes - JBoss Remoting - Version 1.0.1 beta

** Bug
    * [JBREM-19] - Try to reconnect on connection failure within socket invoker
    * [JBREM-25] - Deadlock in InvokerRegistry

** Feature Request
    * [JBREM-12] - Support for call by value
    * [JBREM-26] - Ability to use MBeans as handlers

** Task
    * [JBREM-3] - Fix Asyn invokers - currently not operable
    * [JBREM-4] - Added test for throwing exception on server side
    * [JBREM-5] - Socket invokers needs to be fixed
    * [JBREM-16] - Finish HTTP Invoker
    * [JBREM-17] - Add CannotConnectException to all transports
    * [JBREM-18] - Backport remoting from HEAD to 4.0 branch


** Reactor Event
    * [JBREM-23] - Refactor Connector so can configure transports
    * [JBREM-29] - Over load invoke() method in Client so metadata not required
