It is available from the project page.
The current version is our first release on the way to 1.0. It contains not a lot of new features and most of them are in the backend. We had a lot of work with some Problems with our DataBook in DataSource Writeback Isolation Level and with Multi Threading. But we are very satisfied with the release!
- DataSource Isolation level
Compared to the DataRow Level, a DataBook does not save immediate. The mix of databooks with DataRow and DataSource Level with different master references caused problems. Now it is not a problem to use different levels. It is great to use 1:n, n:m or even 1:1 relations with DataSource level, but call save when needed!
- LifeCycle Objects
If your LifeCycle objects extends from GenericBean, the destroy() method is now invoked after the connection is closed. If you don't extend from GenericBean, you can use the ILifeCycleObject and implement destroy(). It is now possible to close connections to remote systems or execute cleanup tasks. Note that DBAccess automatically closes the database connection.
The Conditions LikeReverse and LikeReverseIgnoreCase are new and work as follows:
Like: column-value like user-value
LikeReverse: user-value like column-value
- Access control
It is now possible to use a custom IAccessController for your DBSecurityManager. Simply set the full qualified class name in your config.xml:<application>
- Security Managers
Security Managers have now a release method. This is important if you want to change the security manager because now it is possible to free all used resources.
- Cell formatting
It is now possible to configure images for rendered cells. Image and Text combinations in cells are now supported.
We added some useful methods to ResourceUtil, FileUtil, StringUtil and ArrayUtil. Introduced the new class TriggerAPI for server-side triggers.
- Changes to 0.x
- XmlNode.getValue() for an attribute with an empty value returns now null instead of an empty string.
- UIImage.getImage("invalid") returns null instead of an UIImage instance without content. Be aware of NullPointer Exceptions.
- logout method of ISecurityManager is only called for MasterSession and not for SubSession. Before 1.0 is was called for all Sessions.
- estimatedRowCount of IStorage was renamed to getEstimatedRowCount
- ResourceUtil searches local files only from directories which contains jar files and not for directories which contains class files. Now logging.properties per project are supported.