+-------------+ | raining-1.2 | +-------------+ 2003-12-15: see PipelinedSocket for a pipelining extension to NioSocket. Use PipelinedWriter with this if your server does multi-threaded reads for one request. ==================================== raining-1.2pre3c.tar.gz - Dec 11, 2003 ==================================== Added code for Persistence and Pipeling. Most of its done. have to finish and test. ==================================== raining-1.2pre3.tar.gz - Dec 5, 2003 ==================================== Following have been done, and are copied as is from lltodo. HttpRequest checks Connection header for determining whether persistent or not. It also allows one to compare version numbers. The methods GET and HEAD MUST be supported by all general-purpose servers. Refresh headers in FileInfo from UrlCache - required due to Date header and for HEAD. NioSocket now uses a ByteBuffer[] for writing. This allows gathering writes. handle if-modified-since and 304 Not Modified An origin server SHOULD return the status code 405 (Method Not Allowed) if the method is known by the origin server but not allowed for the requested resource, and 501 (Not Implemented) if the method is unrecognized or not implemented by the origin server. 503 can include a retry-after (in seconds or date): Retry-After: 120 Date Parsing: Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123 Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format HTTP/1.1 clients and servers that parse the date value MUST accept all three formats (for compatibility with HTTP/1.0), though they MUST only generate the RFC 1123 format for representing HTTP-date values in header fields handle error requests - non GET i need to separate the core into another project and use it as a jar. this would be raining-1.1.10.jar. I would upload this onto sf.net as raining-core as a stable release. --- raining-1.2pre2.tar.gz - Dec 3, 2003 ==================================== FileInfo now caches a ByteBuffer AdvServer caches a ByteBuffer for 503 responses. Incoming caches a ByteBuffer for 400 responses. Further work on AdvServer. Created a etc/server.properties but need to process it fully. Should i allow domains - this will slow processing. BTW, Matrix Revolutions was awful and wasted precious time away from this project. raining-1.2pre1.tar.gz - Nov 24, 2003 ==================================== Tested AdvServer. It worked but requires debug to be set to on/true in the build.xml??? You need to use jikes-1.18 rpm (not tar.bz2) to compile the -source 1.4 option??? mavenized the project on Nov 14, 2003. But thats in a parallel folder since the structure is different. I will make changes to this layout so that it can be put out. Or find a way of making it common. created Http404Response class. The response classes need redesign. need to get other response codes into place first and test out. to work on the priority handler. post-wedding version (Urvi got married on 20th). raining-1.2pre0.tar.gz - Nov 9, 2003 ==================================== Created a package structure Created a build.xml file Created a build.sh and build.bat file (not tested) Working on AdvServer.java and many classes raining-1.1.10beta.tar.gz - Oct 12, 2003 ======================================= Oct 12, 2003- rk Removed handle_terminator and added is_read_complete Have done some small tests of SocketBlaster with Server, and ProxyServer based on this change, and they seem fine. Will remove the beta when properly tested. raining-1.1.9.tar.gz - Oct 9, 2003 ================================== Finally got the bug as to why Server was not extending some methods. Now NioSocket works both with Server and ProxyServer. Earlier versions were working with only one of the two - depending on what i last tested with. More cleaning up was done. raining-1.1.8.tar.gz - Oct 8, 2003 ================================== A load tested version of both the client and server. Tested on 2 IBM X225 Xeon servers (configuration in FILES.txt). Have tested with 10000 and 15000 connections. I am getting 2 errors at loads beyond 13000 or so: 1 - connection timed out 2 - connection reset by peer Pls see scr.txt for a screen dump of tests, and FILES.txt for an explanation. See the sh files for scripts used to run the tests. Files were compiled using: javac -O -g:none*.java I still need one more round of cleanup! HTTPClient still needs more functionality. raining-1.1.5.tar.gz - Oct 5, 2003 ================================== Further touches to NioSocket due to making the ProxyServer The ProxyServer is in development. It loads but doesnt work. Small amount of testing required, but it IS Dussehra today, so i must be off! raining-1.1.4.tar.gz - Oct 4, 2003 ================================== Added periodic bursts to SocketBlaster Checked for Concurrent access to socketmap in NioSocket.java Made it hashtable, but may revert it to hashmap since i am synch. raining-1.1.3.tar.gz - Oct 4, 2003 ================================== More cleanups. Removed proxy stuff to static, so only once declared and not at Connection level. I am trying to simplify this proxy thing, since i believe it will never be used in production (only while testing in a developement env). I have tested this release at home, so i dont know if it works on a proxy. Oh by the way, Happy Dusshehra! raining-1.1.2.tar.gz - Oct 2, 2003 ================================== At this point, only bug fixes and redesign, cleaning up. However, doing both a client and a server aint simple. A lot of HTTP protocol still to be done - so its a long road. However, at least NioServer shuold be usable for others to extend. SocketBlaster and Server should hold up to a good load, whether they can be used as production-ready load testers and servers, is another matter - a separate exercise. Happy Gandhi Jayanti !