HiveMind Utilities 0.6.1 review
DownloadHiveMind Utilities is a set of utilities for HiveMind including HiveTranse (transaction management), HiveLock (security), HiveRemotin
|
|
HiveMind Utilities is a set of utilities for HiveMind including HiveTranse (transaction management), HiveLock (security), HiveRemoting, HiveEvents, HiveGUI and HiveUtils. HiveMind Utilities can be useful to any applications based on Hivemind.
Here are some key features of "HiveMind Utilities":
HiveUtils provides the following:
Collection classes (Stack and Queue)
Web utility classes (log4j helpers, properties helpers, gzip filter...)
AdapterBuilderFactory to adapt an instance of any kind of class to be viewed as a HiveMind service (also allows remapping of exceptions)
PropertyFileSymbolSource service used to resolve symbols from property files (allows externalizing definition of some symbols outside of the jars/wars for an easy deployment without prior rebuild)
ObjectBuilder service to create -and optionally cache- any kind of objects defined in a configuration point. For all these objects, ObjectBuilder manages dependency injection
new useful ObjectProviders: "object:" to inject objects created by ObjectBuilder, "contribution:" to inject one given contribution out of a configuration point, "literal:" to inject any Java primitive literal (String, int, boolean...)
Useful JUnit base classes for easier writing of test cases using jMock
In a nutshell, HiveTranse has the following features:
Generic framework for transactions management (TransactionService), completely configurable through HiveMind configuration modules
Declarative transaction demarcation (a la EJB) through an TransactionInterceptor with your own defined defaults, including for exception handling (contrarily to EJB, you can declare that ANY exception shall rollback transactions, not just RuntimeExceptions)
Programmatic transaction demarcation through the TransactionService API
TransactionService for JDBC DataSources with support for multiple DataSources (but outside JTA). Integrates with major DataSource pooling libraries (eg jakarta commons-dbcp). Your services can then be injected with the JDBC Connection(s) ready to use.
TransactionService for Hibernate Sessions with support for multiple SessionFactory -ie data sources- (but outside JTA). Your services can then be injected with the Hibernate Session(s) ready to use. The "Open Session In View" pattern is also supported. Custom Hibernate Interceptors are supported as well. As of version 0.4.3, HiveTranse supports both Hibernate 2 and Hibernate 3.
Transparent support for iBATIS SqlMaps V2.
Support for transparently converting SQLExceptions into more specific, runtime, exceptions (hierarchy is defined in hivetranse.core module).
HiveLock provides the following components:
SecurityService to centralize the currently connected users and notify listeners when users get connected or disconnected. Disconnection can be automatically enforced after a configurable period of inactivity.
HiveLockFilter is a ServletFilter to notify SecurityService about the user for the current request.
AuthorizationInterceptorFactory to add interceptors to your services in order to check if a method is authorized for the current caller.
UserContextStorage service to store and retrieve data depending on current user.
UserServiceModel (aka "user") to define stateful services (there is one service instance per connected user).
HiveRemoting provides the following features:
export any HiveMind service as a "web service" through Caucho's hessian or burlap protocols over http (exporting a service is just a matter of contributing to a configuration point)
get access to a remote service through a specific CauchoProxyFactory that will transparently return a proxy to the remote service
possibility to add specific serializers to the caucho protocols through configuration
enhancements to Caucho proxies to support cookies for authentication (this enables server authentication on first call only, later calls reuse the server-returned cookie to bypass further authentication)
support of gzip compression for exchanged messages
transparent support of https
HiveEvents provides the following:
configuration point to define Event "Channels" (each channel must have a unique name) that can be used by other components (event suppliers and consumers)
support of push suppliers, and push or pull consumers
any kind of event is supported
dynamic event filtering is possible
special ConstraintFilter enables you to use boolean expressions to filter events (thanks to a simple but powerful Constraint Expression Language)
new ObjectProvider "channel:" to directly inject a Channel into a service
HiveGUI provides the following support:
simple command framework (implements the Command pattern)
easy management of tables (default table models to handle a list of beans) through a configuration point (allows to define the list of columns, the renderer for each...)
definition of menus (including popups) and items in a configuration point. Menus can be injected into other objects through the new "menu:" ObjectProvider
definition of message boxes in a configuration point
docking management (a la Eclipse)
simple utility classes for dialog creation
miscellaneous tools for icons, cursors, fonts...
What's New in This Release:
Brings various enhancements and bugs fixes.
hmu-src contains only the source, the build system and the web site.
hmu-bin contains only the HiveMind Utilities jars, all docs and all sample source.
hmu-3rd-party-libs contains all external dependencies.
Hibernate 2 support is removed as of this version.
HiveMind Utilities 0.6.1 search tags