Dwarf Server Framework 1.3.1
Changes
Content
Version 1.3.0
API Changes
- preliminary support for non-blocking TCP/IP services based on the request/response protocol model
- class Command now extends ThreadService, therefore it may start its own thread if needed
Version 1.2.4
New Features
- new reverseQuery method in DNSClient for reverse DNS lookups
- MultiThreadServer
has new setSingleRequest(boolean) method, which may be used to prevent
simultaneous handling of multiple requests which are equal according to the
standard equals(Object) method.
Version 1.2.3
Bug Fixes
- command prompt input in Console
might cause a memory leak in some rare cases
Version 1.2.2
Bug Fixes
Version 1.2.1
New Features
- there are two new scripts "bin/keystore.bat" and "bin/keystore.sh"
for generating a key store with sample server certificate used by the SSL/TLS
listeners
- new static method checkDwarfVersion of Main
class may be used to check the core framework specification version required
by the Dwarf-based application
- new BASE64
utility class for BASE64 encoding/decoding
Bug Fixes
- the copyFile(java.io.File, java.io.OutputStream) method of FileUtils
did not flush the output stream buffer properly
- fixed LimitedInputStream's
read(byte[], int, in) method. The class now extends java.io.FilterInputStream
instead of the previous java.io.InputStream
API Changes
- new peek() method in the Queue
interface
Other Changes
- getConsole method of MainServer
checks the ServicePermission
"getConsole" prior to returning the Console
instance
- from now on the distribution releases will be always numbered with the three
digits "x.y.z"
Version 1.2
New Features
- new ExecCmd
console command for executing batch command scripts
- new MD5CryptPasswordEncoder
for password encoding based on md5-crypt algorithm
- new XMLLogger
logging service with tutorial and source code included
- TCP network streams can be transparently dumped to filesystem. See the TCPListener
class for more information on this feature.
- new SK.gnome.dwarf.dns
package includes static client and a service for simple DNS lookups
- new LFUCache
class implements the Least-Frequently-Used caching algorithm
- new Cacheable
interface supports optional extended management of cached objects
- the console command API in SK.gnome.dwarf.main
package has been redesigned to simplify its use and to support service tree
traversal as well
- new ignorecase attribute in GenericLoginModule
can be used to setup the case-insensitive user logins
- service trees can be traversed in a way similar to using the "cd"
command on a filesystem; see the new getFullName() method in Service
and getService(java.lang.String) method in Server
for more information on this feature
- new utility class LimitedInputStream
for creating an input stream with the limited length
- new InetHost
and InetHostSet
utility classes for IP-based and hostname-based filtering of network hosts
- new getServices(java.lang.Class) convenience method in the GenericServer
- new SSLProtocol attribute in SSLListener
for setting the requested protocol type (SSL, TLS, etc.)
- new UnixLoginModule
for authentication based on the standard/shadow password suite
- new LOG_XFER logging level with the lowest priority may be used
for generating frequent log events, like HTTP transfer log messages, etc.
Bug Fixes
- PlaintextLoginModule
can also handle user records with empty items ("::")
- fixed possible NullPointerException in JAASAuthenticator
- fixed possible synchronization problems in GenericLogger
and derived classes
- uptime string returned by the MainServer
was not formatted correctly
- FIFOQueue
did not release all objects from the internal buffer
- event counter in JAASAuthenticator
was not updated correctly
- LogServer
was not able to log messages generated by itself
- the repeated message handling in the GenericLogger
might loose some log messages because of the shutdown process
- fixed possible overflow of the total number of events in the Counter
API Changes
- the Logger
and Authenticator
interfaces now include the base logging, resp. authentication methods, taken
out of the Service
interface. The getLogFacility() and getAuthFacility() methods
were moved from the interface to the GenericService
implementation, and a new getLogger() and getAuthenticator()
implementation methods were introduced. This makes the logging and authentication
system more consistent and transparent. Hope this is the last serious change
in the logging API.
- the key-store related attributes and functionality was moved from the SSLListener
to TCPIPServer
class. The TCPIPServer
now provides all methods for creating client and server SSL sockets based
on the particular key-store.
- enableThread protected method in ThreadService
and ThreadServer
classes returns false by default and the protected loop
method is not abstract - this change helps to create a more generic services
as before
- removed addInstance method from the LogLevel
class, thus disabling the possibility to dynamically add a new logging level
- new getDescription and printHelp methods in Command
replaces the previous single getHelp method
- the PRINCIPAL public attribute of the GenericService
has been removed, the value is now returned by the getPrincipal public
method
- setAllowedHosts and setDeniedHosts methods of the Listener
class accept arguments of new type InetHostSet
instead of the previous java.lang.String
- generic TCPIPServer
class is back again, all TCP and UDP-based services must extend this class
instead of the previous MultiThreadServer
- the SK.gnome.dwarf.main.Console.Manageable interface has been obsoleted
and removed from the framework
Other Changes
- the source code has been ported to Java 1.4
- the ServicePrincipal
uses the service's full name instead of the previous simple name to unambiguously
reference the target service
- XMLConfiguration
class migrated from JDOM back to standard JAXP/DOM API. JDOM is no longer
used by the Dwarf Server Framework.
Version 1.1
New Features
API Changes
- removed SK.gnome.dwarf.tcpip.TCPServer (replaced with MultiThreadServer)
- IllegalParentException changed to IllegalServiceClassException
- LRUCache
moved to SK.gnome.dwarf.utils package
- removed SK.gnome.dwarf.login.PropertyLoginModule (deprecated)
- Log.setTrace
accepts a list of string identifiers instead of a single boolean value
- removed SK.gnome.dwarf.utils.ResourceURLStreamHandlerFactory class
- removed forceExit attribute from MainServer
class
Other Changes
- sample applications must be run by the run.* scripts with an URL
of the main configuration file as the command argument
- sample configuration files are no longer copied to the conf/ directory;
this directory is left empty for the end-user's custom configuration files
- Console
has been rewritten to allow restarting of the main server from the interactive
command prompt
Version 1.0.1
New Features
- CryptPasswordEncoder
for password encoding based on the Unix crypt command
- it is possible to specify password encoding algorithm for login modules
based on the GenericLoginModule
- RestartCmd
console command for remote restarting of the main server
- FileUtils
static class contains useful methods for working with files, directories and
zipped archives
API Changes
- SK.gnome.dwarf.auth.Password static class functionality replaced
with the new PasswordEncoder
interface
Other Changes
- MD5PasswordEncoder
converts password digest to string using more suitable BASE64 encoding instead
of the hexadecimal one
Version 1.0
New Features
- new PasswdCmd
console command for interactive encoding of user passwords
- new generic classes for JAAS-based login modules with PlaintextLoginModule
implementation
- it is possible to specify more than one policy file in the XML configuration
via new property policy element
- new DumpCmd
console command for printing out the content of a text file
Bug Fixes
API Changes
- UserPrincipal
can be assigned with a full user name in addition to the principal name
- removed IndentPrincipal and SystemPrincipal classes
- PropertyLoginModule is now deprecated, use PlaintextLoginModule
instead
- logging and authentication functionality has been redesigned
- the Service
interface now contains all basic methods including logging and authentication,
while the Logger
and Authenticator
interfaces are used just to distinguish logging and authentication adapters
- method names correction in TCPListener:
setAllowHosts renamed to setAllowedHosts and setDenyHosts
renamed to setDeniedHosts
- all class names in SK.gnome.dwarf.tcpip.rfc
package were prefixed with the "TCP" string prefix
Other Changes
- GenericLogger
truncates all message strings larger than the value specified by LogConstants.LOG_MAX_MESSAGE_SIZE
constant
- iteration over the included loggers in a LogServer
is not thread safe
- structure of distribution files has been re-organized in order to be more
clear and consistent
Version 1.0rc6
This is the first public available version.
Return to the main page.
Copyright (c) 1999-2005, Gnome Ltd. All rights reserved.