JBoss Remoting 2.2.0.SP4
March 19, 2007

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 and example web.xml for the remoting invoker servlet.
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 and the other remoting jars broken out by functionality.  Also contains servlet-invoker.war.
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.


Important features, changes, and differences in 2.2.0 release (from 2.0.0 release)

- Asynchronous method for handling callbacks (JBREM-640)
- Bidirectional transport (JBREM-650)
- Local transport (JBREM-660)
- Marshallers/Unmarshallers construct their preferred streams (JBREM-692)


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 2.2.2.SP7
Bug

    * [JBREM-942] - A deadlock encountered on ConnectionValidator
    * [JBREM-944] - Fix race in ConnectionNotifier

Release

    * [JBREM-943] - Release 2.2.0.SP7

Task

    * [JBREM-945] - Allow ServerThread to keep running after SocketTImeoutException
    * [JBREM-946] - Assure version compatibility with earlier versions of Remoting

==========================================================================================================
Release Notes - JBoss Remoting - Version 2.2.2.SP6

Bug

    * [JBREM-915] - NullPointerException in InvokerLocator
    * [JBREM-937] - Callback BisocketServerInvoker should reuse available ServerThreads

Release

    * [JBREM-939] - Release 2.2.2.SP6

Task

    * [JBREM-940] - Assure version compatibility with earlier versions of Remoting

==========================================================================================================
Release Notes - JBoss Remoting - Version 2.2.2.SP5
Bug

    * [JBREM-892] - CLONE -Client side connection exception is not thrown on the client side when the lease times out [JBREM-888]
    * [JBREM-910] - CLONE -Connector.stop() cannot find invoker MBean when bind address is 0.0.0.0 [JBREM-909]

Release

    * [JBREM-913] - Release 2.2.2.SP5

Task

    * [JBREM-912] - Remove stacktrace when SSLSocketBuilder.createSSLSocketFactory() fails

==========================================================================================================
Release Notes - JBoss Remoting - Version 2.2.2.SP4

** Bug
    * [JBREM-823] - ServerInvoker#getMBeanObjectName() returns invalid ObjectName if host value is IPv6
    * [JBREM-845] - Infinite loop in BisocketClientInvoker.createSocket
    * [JBREM-858] - MaxPoolSize value should be used in key to MicroSocketClientInvoker.connectionPools
    * [JBREM-860] - Eliminate delay in MicroSocketClientInvoker.getConnection()
    * [JBREM-871] - HTTP Client invoker doesn't throw exceptions when using the sslservlet protocol


** Feature Request
    * [JBREM-852] - Verify IPv6 addresses are handled correctly
    * [JBREM-855] - Update build.xml to allow jdk 1.5 compiler to target JVM version 1.4
    * [JBREM-873] - Have ServerInvokerCallbackHandler register as connection listener

** Release
    * [JBREM-872] - Release 2.2.0.SP4

** Task
    * [JBREM-862] - Verify compatibility with earlier versions
    
==========================================================================================================
N.B. Release 2.2.2.SP4 replaces 2.2.2.SP3.
==========================================================================================================
Release Notes - JBoss Remoting - Version 2.2.2.SP2
Bug

    * [JBREM-811] - Privileged Block to create Class Loader
    * [JBREM-813] - ServletServerInvoker should return an exception instead of just an error message

Release

    * [JBREM-817] - Release 2.2.2.SP2

Task

    * [JBREM-687] - allow binding to 0.0.0.0

==========================================================================================================
Release Notes - JBoss Remoting - Version 2.2.2.SP1

** Bug
    * [JBREM-653] - allow user to set content-type for http responses
    * [JBREM-750] - Logger in HTTPClientInvoker should be static.

** Release
    * [JBREM-803] - Release 2.2.2.SP1

** Task
    * [JBREM-805] - Verify Remoting 2.2.2.SP1 is compatible with earlier versions
    
==========================================================================================================
Release Notes - JBoss Remoting - Version 2.2.2.GA

** Bug
    * [JBREM-731] - Address of secondary server socket should be acquired each time a control connection is created.
    * [JBREM-743] - For polling callback handler, org.jboss.remoting.Client.addListener() should create only one CallbackPoller per InvokerCallbackHandler
    * [JBREM-747] - org.jboss.remoting.transport.Connector should unregister server invoker from MBeanServer
    * [JBREM-754] - Reset timeout on each use of HttpURLConnection
    * [JBREM-761] - NPE in BisocketServerInvoker$ControlConnectionThread
    * [JBREM-766] - Guard against "spurious wakeup" from Thread.sleep()
    * [JBREM-771] - MicroSocketClientInvoker can experience socket leaks
    * [JBREM-774] - BisocketClientInvoker.replaceControlSocket() and handleDisconnect() should close control socket
    * [JBREM-775] - MicroSocketClientInvoker.initPool() should omit pool from log message
    * [JBREM-778] - BisocketServerInvoker.start() creates a new static Timer each time
    * [JBREM-779] - BisocketClientInvoker should guard agains scheduling on an expired Timer, part 2
    * [JBREM-784] - Use separate maps for control sockets and ordinary sockets in BisocketClientInvoker
    * [JBREM-785] - BisocketClientInvoker.transport() inadvertently uses listenerId member variable
    * [JBREM-787] - Move network i/o in BisocketClientInvoker constructor to handleConnect()
    * [JBREM-788] - Access to BisocketClientInvoker static maps should be synchronized in handleDisconnect()
    * [JBREM-790] - NPE in BisocketClientInvoker$PingTimerTask
    * [JBREM-793] - Lease should synchronize access to client map
    * [JBREM-794] - LeasePinger.addClient() should not create a new LeaseTimerTask if none currently exists
    
    * The following is the public version of support patch JBREM-791, under which the fix was applied. -RS
    * [JBREM-806] - In HTTPClientInvoker remove newlines and carriage returns from Base64 encoded user names and passwords

** Feature Request
    * [JBREM-749] - BisocketServerInvoker: Make configurable the address and port of secondary server socket
    * [JBREM-755] - Make ConnectorValidator parameters configurable
    * [JBREM-756] - CallbackPoller should shut down if too many errors occur.
    * [JBREM-757] - Implement quick Client.removeListener() for polled callbacks.
    * [JBREM-765] - Add a separate timeout parameter for callback clients

** Patch
    * [JBREM-781] - Socket transport needs to provide to the client local address of a TCP/IP connection, as seen from the server


** Release
    * [JBREM-789] - Release 2.2.2.GA


** Task
    * [JBREM-641] - re-implement the callback polling for http transport to reduce latency
    * [JBREM-767] - Avoid deadlock in callback BisocketClientInvoker when timeout == 0
    * [JBREM-782] - Remove network i/o from synch block in ServerInvokerCallbackHandler.getCallbackHandler()
    * [JBREM-783] - Remove network i/o from synch blocks that establish and terminate LeasePingers
    * [JBREM-796] - Verify Remoting 2.2.2 is compatible with earlier versions

==========================================================================================================
Release Notes - JBoss Remoting - Version 2.2.1.GA

** Bug
    * [JBREM-751] - Eliminate unnecessary "Unable to process control connection:" message from BisocketServerInvoker

** Release
    * [JBREM-763] - Release 2.2.1.GA
==========================================================================================================    
Release Notes - JBoss Remoting - Version 2.2.0.SP4

** Bug
    * [JBREM-748] - BisocketClientInvoker should guard agains scheduling on an expired Timer

** Release
    * [JBREM-744] - Release 2.2.0.SP4

** Task
    * [JBREM-714] - Make sure 2.2.0 and 2.0.0 are compatible binary releases
    * [JBREM-734] - BisocketClientInvoker constructor should get parameters from InvokerLocator as well as configuration map.

==========================================================================================================    
Release Notes - JBoss Remoting - Version 2.2.0.SP3

** Task
    * [JBREM-741] - Eliminate unnecessary log.warn() in BisocketServerInvoker

Release Notes - JBoss Remoting - Version 2.2.0.SP2

** Bug
    * [JBREM-739] - Fix java serialization leak. [Note. This issue has been moved to 2.4.0.Beta1 
                    pending the addition of unit tests, but the bug has been fixed.]
    
Release Notes - JBoss Remoting - Version 2.2.0.SP1

** Bug
    * [JBREM-732] - When server terminates and has clients, when the server comes back up clients that survived, can't connect.  Connection refused when trying to connect the control socket.

Release Notes - JBoss Remoting - Version 2.2.0.GA (Bluto)

** Bug
    * [JBREM-721] - Fix memory leaks in bisocket transport and LeasePinger
    * [JBREM-722] - BisocketClientInvoker should start pinging on control connection without waiting for call to createsocket()
    * [JBREM-725] - NPE in BisocketServeInvoker::createControlConnection
    * [JBREM-726] - BisocketServerInvoker control connection creation needs to be in loop

** Feature Request
    * [JBREM-705] - Separate the http invoker and web container dependency
    * [JBREM-727] - Make Client's implicitly created Connectors accessible

** Task
    * [JBREM-634] - update doc on callbacks
    * [JBREM-724] - Update build.xml to create bisocket transport jars

Release Notes - JBoss Remoting - Version  2.2.0.Beta1 (Bluto)

** Bug
    * [JBREM-581] - can not do connection validation with ssl transport (only impacts detection)
    * [JBREM-600] - org.jboss.test.remoting.lease.multiplex.MultiplexLeaseTestCase fails
    * [JBREM-623] - need reset() call added back to JavaSerializationManager.sendObject() method
    * [JBREM-642] - Socket.setReuseAddress() in MicroSocketClientInvoker invocation is ignored
    * [JBREM-648] - Client.disconnect without clearing ConnectionListeners will cause NPEs
    * [JBREM-651] - Array class loading problem under jdk6
    * [JBREM-654] - a NullPointerException occures and is not handled in SocketServerInvoker and MultiplexServerInvoker
    * [JBREM-655] - rename server thread when new socket connection comes in
    * [JBREM-656] - Creating a client inside a ConnectionListener might lead into Lease reference counting problems
    * [JBREM-658] - bug in oneway thread pool under heavy load
    * [JBREM-659] - Java 6 and ClassLoader.loadClass()
    * [JBREM-670] - Remove equals() and hashCode() from org.jboss.remoting.transport.rmi.RemotingRMIClientSocketFactory.
    * [JBREM-671] - serlvet invoker no longer supports leasing
    * [JBREM-683] - ByValueInvocationTestCase is broken
    * [JBREM-685] - A server needs redundant information to detect a one way invocation
    * [JBREM-690] - Once the socket of a callback server timeouts, it starts to silently discard traffic
    * [JBREM-697] - Horg.jboss.remoting.transport.rmi.RemotingRMIClientSocketFactory.ComparableHolder should use InetAddress for host.
    * [JBREM-700] - NPE in AbstractDetector
    * [JBREM-704] - BisocketServerInvoker inadvertently logs "got listener: null" as INFO
    * [JBREM-708] - Correct org.jboss.remoting.Client.readExternal()
    * [JBREM-711] - ChunkedTestCase and Chuncked2TestCase failing
    * [JBREM-712] - HTTPInvokerProxyTestCase failing
    * [JBREM-723] - BisocketClientInvoker.transport() needs to distinguish between push and pull callback connections

** Feature Request
    * [JBREM-525] - Automatically set HostnameVerifier in HTTPSClientInvoker to allow all hosts if authorization is turned off.
    * [JBREM-598] - add timeout config per client invocation
    * [JBREM-618] - Support CallbackPoller configuration.
    * [JBREM-640] - Implement an asynchronous method for handling callbacks.
    * [JBREM-650] - Create bidirectional transport
    * [JBREM-657] - Implement versions of Client.removeListener() and Client.disconnect() which do not write to a broken server.
    * [JBREM-660] - create local transport
    * [JBREM-664] - Fix misleading InvalidConfigurationException
    * [JBREM-692] - Let marshallers/unmarshallers construct their preferred streams.
    * [JBREM-720] - Need to expose create method for TransporterClient that passes load balancing policy

** Task
    * [JBREM-274] - add callback methods to the Client API
    * [JBREM-369] - For Connectors that support callbacks on SSL connections, there should be a unified means of configuring SSLServerSocket and callback Client SSLSocket.s.
    * [JBREM-453] - Send the pre-release jar to the messaging team for testing
    * [JBREM-614] - Client.invoke() should check isConnected().
    * [JBREM-631] - Fix org.jboss.test.remoting.transport.socket.connection.SocketConnectionCheckTestCase and SocketConnectionTestCase  failures.
    * [JBREM-635] - Remove misleading error message from HTTPUnMarshaller.
    * [JBREM-636] - Remove ServerInvokerCallbackHandler's dependence on initial InvocationRequest for listerner id.
    * [JBREM-637] - add tomcat jar to component-info.xml for remoting release
    * [JBREM-644] - Reduce unit test logging output.
    * [JBREM-647] - Initialize Client configuration map to empty HashMap.
    * [JBREM-663] - Put org.jboss.remoting.LeasePinger on separate thread.
    * [JBREM-669] - Client.removeListener() should catch exception and continue if invocation to server fails.
    * [JBREM-674] - add test case for client exiting correctly
    * [JBREM-693] - Make sure "bisocket" can fully replace "socket" as Messaging's default transport
    * [JBREM-695] - RemotingRMIClientSocketFactory.createSocket() should return a socket even if a RMIClientInvoker has not been registered.
    * [JBREM-702] - http.basic.password should allow for empty passwords
    * [JBREM-707] - Fix handling of OPTIONS invocations in CoyoteInvoker
    * [JBREM-709] - Fix occasional failures of org.jboss.test.remoting.lease.socket.multiple.SocketLeaseTestCase
    * [JBREM-719] - Fix spelling of ServerInvokerCallbackHandler.REMOTING_ACKNOWLEDGES_PUSH_CALLBACKS

Release Notes - JBoss Remoting - Version 2.2.0.Alpha6

** Bug
    * [JBREM-662] - Failed ClientInvoker not cleaned up properly
    * [JBREM-673] - Use of java.util.Timer recently added and not set to daemon, so applications not exiting
    * [JBREM-683] - ByValueInvocationTestCase is broken

** Feature Request
    * [JBREM-678] - Sending an one-way invocation into a server invoker that is not started should generate a warning in logs
    * [JBREM-679] - Add the possibility to obtain ConnectionValidator's ping period from a Client
    * [JBREM-680] - An invocation into a "broken" client should throw a subclass of IOException

** Task
    * [JBREM-676] - TimerTasks run by TimerUtil should have a chance to clean up if TimerUtil.destroy() is called.

Release Notes - JBoss Remoting - Version 2.2.0.Alpha5

** Bug
    * [JBREM-666] - Broken or malicious clients can lock up the remoting server
    * [JBREM-667] - Worker thread names are confusing

** Feature Request
    * [JBREM-668] - jrunit should allow TRACE level logging


Release Notes - JBoss Remoting - Version 2.2.0.Alpha4

** Bug
    * [JBREM-649] - Concurrent exceptions on Lease when connecting/disconnecting new Clients

Release Notes - JBoss Remoting - Version 2.2.0.Alpha3 (Bluto)

** Bug
    * [JBREM-594] - invoker not torn down upon connector startup error
    * [JBREM-596] - Lease stops working if the First Client using the same Locator is closed
    * [JBREM-602] - If LeasePeriod is not set and if enableLease==true leasePeriod assumes negative value
    * [JBREM-610] - Prevent org.jboss.remoting.callback.CallbackPoller from delivering callbacks out of order.
    * [JBREM-611] - Initializing Client.sessionId outside constructor leads to java.lang.NoClassDefFoundError in certain circumstances
    * [JBREM-615] - If CallbackStore.add() is called twice quickly, System.currentTimeMillis() might not change, leading to duplicate file names.
    * [JBREM-616] - Deletion of callback files in getNext() is not synchronized, allowing callbacks to be returned multiple times.
    * [JBREM-619] - In SocketServerInvoker.run() and MultiplexServerInvoker().run, guarantee ServerSocketRefresh thread terminates.
    * [JBREM-622] - InvokerLocator already exists for listener
    * [JBREM-625] - MicroSocketClientInvoker should decrement count of used sockets when a socket is discarded.
    * [JBREM-629] - NPE in sending notification of lost client

** Feature Request
    * [JBREM-419] - Invokers Encryption
    * [JBREM-429] - Create JBossSerialization MarshalledValue more optimized for RemoteCalls
    * [JBREM-548] - Support one way invocations with no response
    * [JBREM-597] - Allow access to underlying stream in marshaller with socket transport
    * [JBREM-604] - allow socket server invoker to accept third party requests
    * [JBREM-605] - Inform a server side listener that a callback has been delivered.
    * [JBREM-607] - Add idle timeout setting for invoker threads
    * [JBREM-609] - Support nonserializable callbacks in CallbackStore

** Task
    * [JBREM-562] - publish performance benchmarks
    * [JBREM-601] - Integrate http with messaging
    * [JBREM-612] - Verify push callback connection with multiplex transport shares client to server connection.
    * [JBREM-613] - ServerInvoker.InvalidStateException should be a static class.
    * [JBREM-617] - CallbackPoller should have its own thread.
    * [JBREM-620] - If HTTPClientInvoker receives an Exception in an InvocationRespose, it should throw it instead of creating a new Exception.
    * [JBREM-621] - http transport should behave more like other transports.
    * [JBREM-624] - Add JBoss EULA
    * [JBREM-627] - Fix org.jboss.test.remoting.transport.multiplex.MultiplexInvokerShutdownTestCase failure.
    * [JBREM-630] - Fix client/server race in org.jboss.test.remoting.transport.multiplex.LateClientShutdownTestCase.
    * [JBREM-632] - Modify src/etc/log4j.xml to allow DEBUG level logging for org.jboss.remoting loggers in jrunit test cases.

Release Notes - JBoss Remoting - Version 2.0.0.GA (Boon)

** Bug
    * [JBREM-568] - SSLSocketBuilderMBean does not have matching getter/setter attribute types
    * [JBREM-569] - HTTP(S) proxy broken
    * [JBREM-576] - deadlock with socket invoker
    * [JBREM-579] - transporter does not handle reflection conversion for primitive types
    * [JBREM-580] - detection can not be used with ssl based transports
    * [JBREM-586] - socket client invoker connection pooling not bounded
    * [JBREM-590] - SSL client socket invoker does not use configuration map for SSLSocketBuilder

** Feature Request
    * [JBREM-564] - Default client socket factory configured by a system property
    * [JBREM-575] - local client invoker should convert itself to remote client invoker when being serialized

** Task
    * [JBREM-570] - Change log in ConnectionValidator to be debug instead of warn when not able to ping server
    * [JBREM-571] - fix/cleanup doc
    * [JBREM-574] - Write SSL info for virtual sockets and server sockets in toString()
    * [JBREM-578] - add spring remoting to performance benchmark tests
    * [JBREM-582] - remove System.out.println and printStackTrace calls
    * [JBREM-583] - Fix ConcurrentModificationException in MultiplexingManager.notifySocketsOfException()
    * [JBREM-584] - Get org.jboss.test.remoting.performance.spring.rmi.SpringRMIPerformanceTestCase to run with multiple clients and callback handlers
    * [JBREM-587] - ClientConfigurationCallbackConnectorTestCase(jboss_serialization) failure.
    * [JBREM-593] - Synchronize client and server in org.jboss.test.remoting.transport.multiplex.LateClientShutdownTestCase


Release Notes - JBoss Remoting - Version 2.0.0.CR1 (Boon)

** Bug
    * [JBREM-303] - org.jboss.test.remoting.transport.multiplex.BasicSocketTestCase(jboss_serialization) failure
    * [JBREM-387] - classloading problem - using wrong classloader
    * [JBREM-468] - No connection possible after an illegitimate attempt
    * [JBREM-484] - AbstractDetector.checkInvokerServer() is probably broken
    * [JBREM-494] - ClientDisconnectedException does not have serial version UID
    * [JBREM-495] - classes that do not have serial version UID
    * [JBREM-500] - ServerThread never dies
    * [JBREM-502] - not getting REMOVED notification from registry for intra-VM detection
    * [JBREM-503] - NPE in abstract detector
    * [JBREM-506] - StreamHandler throws index out of bounds exception
    * [JBREM-508] - serialization exception with mustang
    * [JBREM-519] - StreamServer never shuts down the server
    * [JBREM-526] - TimeUtil not using daemon thread
    * [JBREM-528] - ConcurrentModificationException when checking for dead servers (AbstractDetector)
    * [JBREM-530] - Detection heartbeat requires small timeout (for dead server detection)
    * [JBREM-534] - multiplex client cannot re-connect to server after it has died and then been re-started
    * [JBREM-537] - org.jboss.test.remoting.transport.rmi.ssl.handshake.RMIInvokerTestCase(java_serialization) - failing
    * [JBREM-541] - null pointer when receiving detection message
    * [JBREM-545] - setting of the bind address within MulticastDetector not working
    * [JBREM-546] - InvokerLocator.equals is broken
    * [JBREM-552] - cannot init cause of ClassCastException
    * [JBREM-553] - deadlock when disconnecting
    * [JBREM-556] - versioning tests failing
    * [JBREM-561] - http chuncked test cases failing under jdk 1.5

** Feature Request
    * [JBREM-427] - SSL Connection: load a new keystore at runtime
    * [JBREM-430] - transporter needs to be customizable
    * [JBREM-461] - Better documentation for sslmultiplex
    * [JBREM-491] - need to implement using ssl client mode for push callbacks for all transports
    * [JBREM-492] - would like an API to indicate if a transport requires SSL configuration
    * [JBREM-499] - need indication if invoker is secured by ssl
    * [JBREM-501] - give descriptive names to threads
    * [JBREM-504] - some synch blocks in AbstractDetector could change
    * [JBREM-520] - Organize configuring of ServerSocketFactory's and callback SocketFactory's.
    * [JBREM-527] - Allow user to pass Connector to be used for stream server
    * [JBREM-532] - need synchronous call from detector client to get all remoting servers on network
    * [JBREM-539] - add sslservlet procotol
    * [JBREM-544] - http client invoker (for http, https, servlet, and sslservlet) needs to handle exceptions in same manner as other transport implementations

** Task
    * [JBREM-21] - Add stress tests
    * [JBREM-218] - investigate why jrunit report on cruisecontrol inaccurate
    * [JBREM-311] - need required library matrix
    * [JBREM-320] - optimize pass by value within remoting
    * [JBREM-321] - performance tuning
    * [JBREM-368] - Configure SSLSockets and SSLServerSockets used in callbacks to be in server mode and client mode, respectively.
    * [JBREM-383] - Document new versioning for remoting
    * [JBREM-384] - correct manifest to comply with new standard
    * [JBREM-390] - finish multiplex
    * [JBREM-412] - Remoting Guide lacks left margin
    * [JBREM-423] - document how remoting identity works and how to configure
    * [JBREM-428] - add the samples/transporter/multiple/ to the distribution build (think may be there by default) and update the docs
    * [JBREM-434] - fix configuration data within document (socketTimeout should be timeout)
    * [JBREM-435] - break out remoting jars (serialization)
    * [JBREM-442] - need full doc on how socket invoker works (connection pooling, etc.)
    * [JBREM-447] - convert static transporter factory methods into constructor calls
    * [JBREM-452] - Send the pre-release jar to the messaging team for testing
    * [JBREM-454] - cache socket wrapper classes
    * [JBREM-477] - remove Client.setInvoker() and Client.getInvoker() methods
    * [JBREM-487] - Eliminate possible synchronization problem in InvokerRegistry
    * [JBREM-490] - consolidate the remoting security related classes
    * [JBREM-493] - Update version of jboss serialization being used
    * [JBREM-496] - restructure service providers for remoting
    * [JBREM-497] - change InvokerLocator to respect hostname over ip address
    * [JBREM-498] - change logging on cleaning up failed detection
    * [JBREM-507] - need to make configuration properties consistent
    * [JBREM-509] - Fix call to super() in ServerInvoker's two argument constructor.
    * [JBREM-511] - Allow HTTPSClientInvoker to create a HostnameVerifier from classname.
    * [JBREM-513] - Create SSL version of RMI transport.
    * [JBREM-514] - Fix potential NullPointerException in SSLSocketClientInvoker.createSocket().
    * [JBREM-516] - add very simple transporter sample
    * [JBREM-517] - HTTPServerInvoker needs to be deprecated
    * [JBREM-523] - connection pool on socket client invoker needs to be bound
    * [JBREM-524] - Clean up MicrosocketClientInvoker code
    * [JBREM-529] - Need to be able to reuse socket connections after move to TIME_WAIT state
    * [JBREM-533] - remove external http GET test
    * [JBREM-535] - add config to force use of remote invoker instead of local
    * [JBREM-536] - turn off host verification when doing push callback from server using same ssl config as server
    * [JBREM-538] - update remoting dist build to break out transports into individual jars
    * [JBREM-540] - need to make servlet-invoker.war part of remoting distribution
    * [JBREM-542] - change how remoting servlet finds servlet invoker
    * [JBREM-543] - fix servlet invoker error handling to be more like that of the http invoker
    * [JBREM-547] - need test case for exposing multiple interfaces for transporter server target pojo
    * [JBREM-551] - org.jboss.test.remoting.transport.multiplex.MultiplexInvokerTestCase(java_serialization) failure
    * [JBREM-555] - fix connection validator to not require extra thread to execute ping every time
    * [JBREM-558] - Break master.xml documentation into chapter files
    * [JBREM-559] - update doc for 2.0.0.CR1 release
    * [JBREM-560] - InvokerGroupTestCase(java_serialization) failure
    * [JBREM-563] - Multiplex ClientConfigurationCallbackConnectorTestCase(jboss_serialization) failure


Release Notes - JBoss Remoting - Version 2.0.0.Beta2 (Boon)

** Bug
    * [JBREM-304] - org.jboss.test.remoting.transport.multiplex.MultiplexInvokerTestCase(java_serialization) fails
    * [JBREM-371] - HTTPClientInvoker does not pass an ObjectOutputStream to the marshaller
    * [JBREM-405] - NPE when calling stop() twice on MulticastDetector
    * [JBREM-406] - StringIndexOutOfBoundsException in InvokerLocator
    * [JBREM-408] - client lease updates broken on server side
    * [JBREM-409] - Invocations fail when the pool exhausts and under heavy load
    * [JBREM-414] - JNDI detection failing
    * [JBREM-418] - ObjectInputStreamWithClassLoader can't handle primitives
    * [JBREM-426] - keyStorePath and keyStorePassword being printed to standard out
    * [JBREM-432] - TransporterClient missing serialVersionUID
    * [JBREM-440] - CallbackStore.getNext() won't necessarily get the oldest one
    * [JBREM-441] - DefaultCallbackErrorHandler.setConfig needs to avoid NPE
    * [JBREM-449] - Failure Information lost in RemotingSSLSocketFactory
    * [JBREM-450] - ClassNotFoundException for class array type during deserialization
    * [JBREM-464] - ssl socket invoker not using ssl server socket factory
    * [JBREM-467] - NPE when calling Client.removeConnectionListener()
    * [JBREM-470] - javax.net.ssl.SSLException: No available certificate corresponds to the SSL cipher suites
    * [JBREM-472] - Misspelled serialization type generates obscure NPE
    * [JBREM-479] - ClientConfigurationMapTestCase failure
    * [JBREM-482] - client invoker configuration lost after first time invoker is created

** Feature Request
    * [JBREM-312] - make TransporterClient so can be sent over network as dynamic proxy
    * [JBREM-363] - make callbacks easier with richer API for registering for callbacks
    * [JBREM-411] - Add chunked streaming support to the HTTP invoker
    * [JBREM-413] - Transporter server should allow multiple pojo targets
    * [JBREM-422] - Add plugable load balancing policy to transporter client
    * [JBREM-425] - Add support for setting the HTTP invoker content encoding that is accepted
    * [JBREM-431] - transporter server should automatically expose all interfaces implemented as subsystems
    * [JBREM-439] - StreamInvocationHandler.handleStream should throw Throwable for consistency
    * [JBREM-469] - Enable HTTP polling
    * [JBREM-471] - need better InvokerLocator.equals() implementation
    * [JBREM-481] - Changing StringUtilBuffer creation on JBossSerialization

** Task
    * [JBREM-299] - MultiplexInvokerTestCase failure
    * [JBREM-314] - need org.jboss.test.pooled.test.SSLSocketsUnitTestCase for remoting
    * [JBREM-328] - change lease ping to be HEAD instead of POST for http transport
    * [JBREM-362] - convert Connector to be standard mbean instead of xmbean
    * [JBREM-365] - set default user agent header in http client invoker
    * [JBREM-366] - clean up client invoker tracking within InvokerRegistry
    * [JBREM-367] - set live server socket factory on Connector
    * [JBREM-370] - add changes from 1.4.1 release to master.xml doc
    * [JBREM-377] - need to convert ConnectionValidator to use TimerQueue
    * [JBREM-379] - need to update jboss-serialization jar being used
    * [JBREM-380] - change ConnectionValidator to only notify once of failure
    * [JBREM-382] - disable lease ping for local invoker
    * [JBREM-415] - sync bug fixes with pooled invoker and socket invoker
    * [JBREM-420] - JNDI Detector should not need a connector when running in client mode
    * [JBREM-421] - remote stream handler api inconsistent with regular handler
    * [JBREM-436] - Extend MultiplexingInputStream with readInt() to avoid creating a MultiplexingDataInputStream in VirtualSocket.connect() and elsewhere.
    * [JBREM-437] - Eliminate "verify connect" phase from virtual socket connection protocol.
    * [JBREM-443] - add HandshakeCompletedListener support to ssl multiplex
    * [JBREM-451] - Send the pre-release jar to the messaging team for testing
    * [JBREM-455] - checking of socket connection is not really needed
    * [JBREM-456] - block callback handling when callback store full
    * [JBREM-460] - createSocket() in SSLSocketClientInvoker and SSLMultiplexClientInvoker should not assume SocketFactory has been created.
    * [JBREM-465] - property setting on the client from locator parameters and config map
    * [JBREM-476] - make externalization of Client match original instance state
    * [JBREM-478] - fix local client invoker handling of disconnected server invokers
    * [JBREM-483] - remove LocalLeaseTestCase
    * [JBREM-485] - use the ClientInvokerHolder to contain the reference counting instead of having to use clientInvokerCounter
    * [JBREM-486] - Fix ConcurrentModificationException in org.jboss.test.remoting.transport.mock.MockServerInvocationHandler


Release Notes - JBoss Remoting - Version 2.0.0.Beta1

** Bug
    * [JBREM-372] - memory leak on server side leasing
    * [JBREM-376] - problem versioning with not using connection checking
    * [JBREM-378] - client connection checking not working

** Feature Request
    * [JBREM-340] - Strong version compatibility guarantee

** Task
    * [JBREM-374] - single thread the leasing timer


Release Notes - JBoss Remoting - Version 1.4.4.GA

** Bug
    * [JBREM-426] - keyStorePath and keyStorePassword being printed to standard out


Release Notes - JBoss Remoting - Version 1.4.3.GA

** Bug
    * [JBREM-418] - ObjectInputStreamWithClassLoader can't handle primitives


Release Notes - JBoss Remoting - Version 1.4.2 final

** Feature Request
    * [JBREM-429] - Create JBossSerialization MarshalledValue more optimized for RemoteCalls


Release Notes - JBoss Remoting - Version 1.4.1 final

** 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

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

** 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
