At a present moment Informa library is providing wide variety of parsers. It also allows user to store his groups of channels, channels, items and other objects in persistent storages using Hiberate and JDO interfaces. However, there are some problems with the implementations. Despite the fact that all of implementations have similar interfaces for helper classes (ChannelBuilderIF and etc) and objects (ChannelGroupIF and etc), they still should be handled in implementation specific way. This means that if you wish to migrate from in-memory storage model to Hibernate you should be ready to change your client application code significantly.
Persistence Manager module is intended to hide the internal implementation complexities from developer and provide unified and well-defined interface to all persistent services. Persistence Manager itself will take care of initialization, transactions management and other specific things. It is also intended to solve the other big problem - multi-threading. Great number of applications suffer from incorrect work with persistence models in multi-threaded environment, having many unsynchronized sessions and objects floating in heap.
Structure of the module is extremely simple. Base part of the module has only two classes and one interface:
* PersistenceManagerIF - main interface of any Persistence Manager. This interface defines contract between client application and persistence management implementation. Interface provides methods, which are necessary to create groups of channels, channels and items, populate groups with channels and channels with items, delete each of them and perform some other valuable manipulations. The main benefit is that you don't need to know how things work internally, you just need to know what you wish to do.
* PersistenceManagerConfig - configuration storage. This is the factory for PersistenceManagerIF implementations. You can use this class to get manager object at run-time without knowing what implementation is used in particular. In other words, you specify what implementation to use by setting system properties and do not hard-code the names of classes and packages in code.
* PersistenceManagerException - type of exception, thrown in error cases by PersistenceManagerIF.
For more visit :
http://informa.sourceforg e.net/persistence_manager.html
Answered by
Ashish Yadav
, an ibibo Wizard,
at
2:32 PM on September 10, 2008