Todo for version 0.4.0

The following features are scheduled for the upcoming version 0.4.0:
partially done selective HTTP packaging to prevent proxies from blocking ejoe connections done with partial support of the HTTP/1.0 and HTTP/1.1 protocols. EJServer/EJClient use HTTP/1.0 but EJServer can also deal with most (non-EJClient-) HTTP/1.1 requests as long as they don't expect usage of Chunked Transfer Coding or Range Units. HTTP support is implemented for non-blocking IO only.
partially done caching (pooling) of already allocated ByteBuffers to reduce expensive allocations done
done server configuration via properties file (similiar to the existing feature of EJClient) done
done direct exchange of ByteBuffers without using a SerializeAdapter done
done automatic adjustment of threadpool sizes depending on server load up to a limit done
done Mixed deserializing strategy: serialize objects between client and server as usual using a SerializeAdaper, but don't deserialize server responses in the client and return the server response directly as ByteBuffer.

This feature makes it possible to use an XML-SerializeAdapter and use the server response directly for XSLT-Transformations etc...
done Remote Reflection ( aka EJOE Remoting ;-) ):
  • support static as well as dynamic reflection based method invocation over network
  • speed up those method invocations with dynamically generated proxies (will use Apache Jakarta BCEL)
  • add support for security permissions to limit, enable, disable such reflection based invocations
done Support of the Crispy framework done
done Support of the Web Services Invocation Framework (WSIF) done
done adapter for (de)deserializing objects using JSON (JavaScript Object Notation),

to allow direct AJAX requests from webpages to a EJOE server instance.

done (JSON is supported via four adapters:
  • one write-only adapter based on XStream and their new JsonHierarchicalStreamDriver
  • a adapter based on JSON-lib
  • another one based on MyJSON
  • and the currently most promising JSON-Adapter JsonToolsAdapter based on the Json Tools
done Remote Reflection calls through typed dynamic proxies done
done interprocess communication (IPC) between client and server when both are running within the same JVM done
The following features are discussed to become part of version 0.4.0:
in progress runtime configuration via MBean support done, but will be subject to change during the next releases
secure communication via SSL/TLS Unfortunately SSL with non-blocking sockets is not available in Java < 1.5. Hence we will support SSL only for Java >= 1.5.
cluster support with at least a round-robbing mechanism as well as basic failure detection unfortunately we can't implement this feature within the next time caused by lack of time :-(
Whitelist: adjustable configuration of allowed client IP adresses (or networks)

Blacklist: adjustable configuration of banned client IP adresses (or networks)
Seems like a usual feature of a firewall, so why should we reinvent the wheel and add that feature to EJOE?