blob: 6df6ee8cdda5d0664975da17bb380e202a50a44d [file] [log] [blame]
+++++++++++++++++++++++++++++++++++
| Version History for QuickServer |
+++++++++++++++++++++++++++++++++++
Current Version: 2.1.0
version 2.1.0 [12-Aug-2017]
----------------------------
+ Added support for uptime in Host (QuickServer Client)
+ Supports null/no banner when server starts
# uptime formatting shortened
# Fixed load pattern logic RandomLoadPattern, RoundRobinLoadPattern
(was using index when client key was set)
+ added getHighestActiveCount() method to Object Pools
+ Added getHighestActiveClientCount method to QuickServer object
+ Added support for setting Security provider for SSLContext
# Defaulted SSL to TLS
! Bug fix for ThreadPool not reducing to max ideal
(stay in wait state n increase over time)
! Bug fix for Client (HashedLoadPattern)
- Disabled non blocking mode (no more supported)
version 2.0.0 [15-Feb-2014]
----------------------------
+ Added new commands in QSAdmin
kill-client-with <target> <search term>
kill-clients-all <target>
+ Added readBytes with length support for BlockingClient
+ Added PID, Lib Version, Uptime in info server
+ Added QuickServerDebugHelper class - allows info server and pool dump to log file
! Bug fix in BlockingClientPool (high tps noop failure fix)
! Bug fix in SocketMonitor
! Bug fix in readCRLFLine for BlockingClient
! QSAdmin New commands introduced like JVM jmap & jstack
version 2.0.0 RC1 [20-Oct-2012]
----------------------------
+ Added BroadcastServer example.
+ Added org.quickserver.net.client
+ Added org.quickserver.net.client.loaddistribution.
+ Added org.quickserver.net.client.monitoring
+ Added org.quickserver.util.pool.thread.app a thread pool for use by application logic
+ Added more param in advanced-settings
performance-preferences-connection-time
performance-preferences-latency
performance-preferences-bandwidth
client-socket-tcp-no-delay
client-socket-traffic-class
client-socket-receive-buffer-size
client-socket-send-buffer-size
+ Added Generic Client Socket Pool
+ Added TotalReadBytes, TotalWrittenBytes to client handler
(not accurate in STRING mode - assumes \r\n in request)
(in case of object mode just increments by no of objects and not bytes)
+ Added support for raw Communication Logging (in case of binary mode)
(any data above 100 bytes would be truncated when logged)
+ Added BlockingUDBClient and UDP Monitoring support
+ Added AsyncHandler for JDK logging
# sendClientXXX methods improved to make synchronized writes.
# Improved TextFile read methods.
# Improved readInputStream() method in BasicClientHandler to check for
available data and EOF in read() method call.
version 1.4.7 [01-Mar-2006]
--------------------------------
+ Implemented support NIO writes in sendClientXXX methods of ClientHandler.
+ Added initServer() that throws App Exception if it fails.
+ Added getServiceError() to Service interface.
+ Added load() method to QuickServer.
! Removed synchronized from processGotDataInBuffers in NonBlockingClientHandler.
# Improved ByteBufferInputStream for readLine
+ Added availableOnlyInByteBuffer() in NonBlockingClientHandler.
# Improved isLineReadyForStringBuffer() in NonBlockingClientHandler.
# Improved isClientEventNext() in BasicClientHandler.
+ Added check for NewLine miss in NonBlockingClientHandler.
# Added flush() in closeConnection() in BlockingClientHandler.
# Improved setClassLoader() of QuickServer.
! Added check for bootstrap classloader (null) in getClass() method of QuickServer
# Closed Keystore stream when no longer needed.
# shutdown command in QSAdminServer improved to close shell, this will
make server auto exit the jvm when the last client disconnects.
# GhostSocketReaper now will close pools after last client disconnects
after server is stopped.
! Added checks for null returned in ServerSocketChannel accept method.
! Fixed run NonBlockingClientHandler code to prevent more than one threads
from processing selector when server is re-started.
# Modified registerChannel to add to a list and then process when
selector becomes free.
! Fixed synchronization problem in ClientThread pool.returnObject() call.
+ MaxThreadAccessCount in NonBlockingClientHandler is now configurable.
+ Wakeup call on selector after RegisterForWrite and RegisterForRead in
NonBlockingClientHandler is now configurable.
# Improved validateObject method in ClientHandlerObjectFactory to check
if object was created from the same pool
+ Access to clientEvents method is now synchronized.
+ Added flush call after ObjectOutputStream is created in BasicClientHandler.
# Improved kill/exit command in QSAdmin to take a param (exit value)
version 1.4.6 [15-Oct-2005]
------------------
# Improved ThreadPool for performance.
# Improved BasicClientHandler.
# Improved XmlAdderLoadTest.
+ Added byte-buffer-pool-info command - QsAdmin
! Fixed initSize default value setting
! Fixed synchronized blocks on clientEvents and moved clientConnectedTime code to run()
# Improved Architecture.pdf
version 1.4.6 beta [17-Sep-2005]
------------------
+ Added initService(QuickServerConfig)
+ Added maxThreadsForNioWrite() for Thread Pools
+ Added ClientEventHandler to xml, also provided default implementation.
+ Added new QsAdmin commands 'client-handler-pool-dump'
+ Added isOpen() method to ClientHandler
+ Added ability to set default DataMode.
+ Added getBlockingMode() to QuickServer
+ Added Unix shell scripts
+ Added ClientExtendedEventHandler
+ Added facility to configure initial pool size.
+ Added method to BasicServerConfig so that business logic class can
be set and checked at compile time.
+ Introducing new ClientAuthenticationHandler (replacing Authenticator)
+ Added new org.quickserver.util.Assertion class
+ Added new org.quickserver.util.logging.SimpleJDKLoggingHook class
# Improved logging, ClientHandler
# Refactored ClientHandler
# Moved QSAdminGUI into a separate jar
# Made most beans Serializable
! Fixed ClientEvent loss bug caused when more than one event gets picked at
the same time.
! Fixed charset bug in sendClientMsg() and sendClientBytes() methods when
length of byte[] representation is not equal to string representation
- Removed deprecated setServerAuthenticator(), getServerAuthenticator in QuickServer
- ServerAuthenticator and "server-authenticator" tag have been removed.
- Old xml format of v1.2 no longer supported.
- MaxClientHandler no longer needed, so removed.
- ObjectCleaner, ObjectCleanup no longer used, so removed.
+ New XML Tags: advanced-settings/max-threads-for-nio-write,
object-pool/init-size, object-pool/thread-object-pool/init-size,
object-pool/client-handler-object-pool/init-size,
object-pool/byte-buffer-object-pool/init-size,
object-pool/client-data-object-pool/init-size,
client-event-handler, qsadmin-server/client-event-handler
default-data-mode/data-type-in,default-data-mode/data-type-out,
client-extended-event-handler, qsadmin-server/client-extended-event-handler
client-authentication-handler, qsadmin-server/client-authentication-handler
version 1.4.5 [10-Jul-2005]
------------------
# Made ClientIdentifier implementation plug able.
+ Added ClientIdentifier implementations SyncClientIdentifier, OptimisticClientIdentifier
+ Added PoolManager, QSObjectPoolMaker interface to create pools and is plug able.
+ Added GUI Chat Client for ChatServer example.
+ Added 'FullThreadDump' command at QsAdminShell
# Made timeout setting to milliseconds, default timeout is now 1 minute.
# Improved ChatServer, FileServ examples.
# Improved QSAdminShell, thread dumps can now be done with shell enabled.
# Improved GhostSocketReaper.
! Fixed charset issue in readBytes() method of ClientHandler
! Fixed bug in QuickServer that prevented GhostSocketReaper from loading
when no SerevrHooks are defined.
! Fixed ByteBuffer object leak in ByteBufferOutputStream
+ New XML Tags: advanced-settings/client-identifier, object-pool/pool-manager,
advanced-settings/qsobject-pool-maker
version 1.4.5 beta [30-May-2005]
------------------
+ Added support for NIO (non-blocking mode) for normal sockets: Server Mode
+ QuickServer now uses java assertion
+ Added new QsAdmin commands to find pool information.
+ Added new QsAdmin command 'systeminfo', 'start console' and 'stop console'.
+ Backlog and Socket linger for server is now configurable.
+ Added GUI prompt for sensitive application parameter.
+ Added -fullXML2File to -load switch.
+ Added new interface ClientEventHandler, ClientWriteHandler
# Improved object pool handling and creation.
# Improved QSAdminGUI to handle error in custom authenticators
# Communication logging is set to false by default now
# Improved communication logging for BINARY mode and general logging.
# Improved org.quickserver.util.logging classes implementation.
# Improved EchoWebServer example
# ClientHanlder.isConected() renamed to isConnected()
+ New XML Tags: Server Mode, advanced-settings, application-configuration/prompt-type,
object-pool/thread-object-pool, object-pool/client-handler-object-pool,
object-pool/byte-buffer-object-pool, object-pool/client-data-object-pool
version 1.4.1 [22 Nov 2004]
------------------
# Improved ClientHandler, QuickServer, ClientThread classes.
# Improved BasicObjectPool class
# Improved QSAdminShell to detect forced exits
# Improved FTPServer, EchoServer examples.
! Fixed bug in QSAdminShell bug did not allow prompt changing
! Fixed bugs in ClientPool (thread pool) that prevented excess threads from
freeing up.
! Fixed bug in prompt of sensitive <property-value>
! Fixed bug in <communication-logging> for QSAdminServer from XML
version 1.4.0 [01 Oct 2004]
------------------
+ Added SecureManagerLoader to manage Secure Mode.
+ Added findAllClientByKey to QuickServer object.
+ Added ConnectionLostException class.
# Improved Secure configuration
a) To prompt the user for store/key password if not specified.
b) Auto pick security provider (if not given).
c) To handle non file based keystores (pass NONE for <store-file>)
like from HSM or LDAP.
d) Ability to override the type and provider of SecureStore in TrustStoreInfo.
+ Add ability to read sensitive <application-configuration> <property-value>
from console.
# Improved ChatServer, XmlAdder examples.
! Many bug fixes as per reports on Developers Forum
version 1.4.0 beta [27 Aug 2004]
------------------
+ Added Secure Mode: SSL, TLS
+ Added method to negotiate secure connection over normal tcp
connection: ClientHandler.makeSecure()
+ Added method in ClientHandler to find if client is in secure mode.
+ Added Init ServerHook : org.quickserver.net.InitServerHook
+ Added BINARY mode of communication: ClientBinaryHandler
+ Added BINARY reading and writing methods to QuickAuthenticator
+ Added QSAdminAPI api for communicating to QsAdminServer.
+ New example: XmlAdder - A simple xml server that adds 2 integers.
+ New example: PipeServer - A simple redirection server.
# Improved ClientHandler.
# Updated jakarta commons jars.
# Improved Architecture.pdf
! Fixed bug in QSAdminServer loading of Plugin class from
<application-jar-path>.
! Fixed bug in AccessConstraintConfig for QsAdminServer
! Fixed bug in setting of max connection from xml file for QSAdminServer
- Removed the old package structure form distribution com.ddost
version 1.3.3 [27 Jun 2004]
----------------
+ Added IP Filter for clients <access-constraint><ip-filter>..
+ Added <security-manager> node to specify SecurityManager for JVM
+ Loading/Reloading application jar from xml. Add
<application-jar-path> node to specify location of jars needed by
application. This location can be either absolute or relative (to config
file). The jars are reloaded when server is restarted, updating the class
from the changed jars.
+ Added startup, shutdown process hooks to QuickServer :
org.quickserver.net.ServerHook
+ QuickServer is now cloneable
+ Added reaper thread : GhostSocketReaper
+ Added new method to ClientHandler to find the time when client last sent
data to ClientHandler.
! Fixed bug in communication logging turn off implementation in ClientHandler.
! Fixed bug in BasicObjectPool return object method.
version 1.3.2 [20 May 2004]
----------------
+ Added plugin ability to QSAdminGUI : PluginPanel
+ Added "Server Statistics View" Plugin to QSAdminGUI
+ Added QSAdmin Shell - A command shell
+ Added <application-configuration> node xml configuration file to store
data needed by the application.
+ Added BYTE reading and writing methods to QuickAuthenticator
+ Added ability to turn off FINE logging of all data sent in/out of server.
Note: This will not log any incoming data when client is being authenticated.
+ Added two new logging formatter - SimpleTextFormatter, SimpleConsoleFormatter
# Improved login and command version handling in QSAdminGUI
! Fixed "-load" option to load QSAdmin from XML
! Fixed ClientHandler detection of lost connections when in BYTE mode.
version 1.3.1 [06 Mar 2004]
----------------
+ Added BYTE mode of communication.
+ Added a new interface ClientIdentifiable and methods to identify and search a
client.
+ Added new method to ClientHandler to find the time when Client was assigned
to ClientHandler.
+ New example: ChatServer - Send and receive text b/w connected clients
# Improved logging in ClientHandler to log all outgoing and incoming
communications at FINE level.
# Improved error detection for Authenticator implementations.
! Fixed the ClientHandler Thread cleanup for detection of lost connection
and connection closing condition.
! Fixed setConsoleLoggingLevel() method from setting non console handlers level.
version 1.3.0 [27 Jan 2004]
----------------
+ www.quickserver.org was registered.
+ All classes ported to new package org.quickserver from com.ddost
+ Released Developer Guide v 0.2 (Pre-Release)
# Improved Architecture.pdf.
version 1.3.0 beta [01 Jan 2004]
----------------
+ Object Pool {Includes a thread pool} added for handling clients.
+ Added PoolableObject interface to pool any class used by QuickServer
like ClientData.
+ Added QSAdmin GUI (XML Based)
+ New authentication class added QuickAuthenticator and Authenticator.
+ New commands added to QSAdmin CommandHander
+ XML Based JDBC Mapping [org.quickserver.sql.DBPoolUtil]
# QuickServer optimised for speed.
# Authentication is now can have single or multiple instance.
# XML Configuration of QuickServer format is now changed to a easy one.
Old XML configuration file is automatically converted to new format.
! Stack overflow bug when bind ip address was set to QSAdmin fixed.
version 1.2.0 [24 Sep 2003]
----------------
+ Released Developer Guide v 0.1 (Pre-Release)
+ XML DTD added for configuration file.
+ New ReadMe added for Examples
# Improved Architecture.pdf.
# Location of main jar changed from build\lib to dist folder.
# Improved Ant build file.
! setMaxAuthTryMag() method changed to setMaxAuthTryMsg()
version 1.2.0 beta [20 Aug 2003]
----------------
+ JDK Logging support added to QuickServer.
+ Support for sending and receive java objects in QuickServer.
+ Support for xml configuration.
+ QuickServer now supports Service Configurator Pattern.
+ New example: DateServer - Send and receive java objects.
# FtpServer example modified to use txt logging.
# EchoServer example modified to use xml configuration and logging.
# EchoWebServer example modified to use txt logging and xml configuration.
! Multiple ObjectCleaner bug when QuickServer is restarted rectified.
! Cleanup time setting bug in ObjectCleaner rectified.
# ObjectCleaner thread is a daemon thread now.
+ Pluggable command handler for QSAdminServer - CommandPlugin
# FTPServer example: Custom command added to QSAdminServer for
remote changing of ftp root - using CommandPlugin.
version 1.1.0 [04 Aug 2003]
----------------
+ JUnit tests added to QuickServer
+ New example : FTPServer - A basic ftp server.
version 1.1.0 beta [14 Jul 2003]
----------------
+ QuickServer.setMaxClients() added.
+ QuickServer.setBindAddr() added.
+ Many new useful methods added to QuickServer.
+ Admin port & protocol added to QuickServer [org.quickserver.net.qsadmin]
! ClientHandler.getClientCount(), ClientHandler.getObjectCount() bug
when more than one QuickServer objects created in same JVM rectified.
# EchoServer example modified to use QSAdminServer.
+ Few new useful methods added to ClientHandler.
+ New example: CmdServer - A remote command shell
version 1.0.0 [10 Jul 2003]
----------------
# Improved QuickServer.startServer() to detect failure.
# Improved Main Thread of QuickServer for performance.
version 1.0 beta [07 Jul 2003]
----------------
+ First Release
Legends
-------
+ Feature Addition
- Feature Removal, Deprecated
! Bug Fix
# Feature/Performance Enhancement
Copyright (C) 2003-2006 QuickServer.org
http://www.quickserver.org