Hi, I have done research and came to conclusion that implementing a plugin for Compass framework would be much more elegant approach than building a facade to the existing DB's.
I'll name main reasons why I draw such conclusion: Facade approach: 1) Because not all DB's have full text search capabilities implementing as a facade to existing capabilities would make Cayenne framework inconsistent with some DB's. I suppose that one great quality of present framework is compatibility with supported databases. 2) Not elegant approach. 3) Taking care about all differences between DB's may be time consuming. Also future changes in different DB's may lead to error-prone code.. Compass plugin approach: 1) Compass allows declaratively map object domain model to the underlying Search Engine, synchronizing data changes between Index and different datasources. Also implements fast index operations and optimization. 2) Provides a abstraction on top of the Lucene low level API. 3) OSEM - ability to map java objects to the search engine through simple xml mapping files. 4) Hibernate ORM framework and OJB tool has compass plugin witch provides support for indexing datasource through OSEM and the named frameworks. So we can take good points from Hibernate plugin development experience. 5) Cayenne framework is a natural match to Compass OSEM features. A simple Compass::Gps device can index all the data that has both OSEM and ORM mapping definition can be easily developed, and if the ORM tool provides support for events, then mirroring can be supported as well. I would appreciate any notes considering these two or maybe event another possible approach. Tomas Jucius
