I also tend to lean the Compass way. Could you please update your
wiki proposal to concentrate on Compass deliverables. Also one thing
it would be nice to have in deliverables is a sample Cayenne
application that demonstrates how Cayenne and Compass work side by
side (e.g. looking up DataObject via Compass and then using it in a
normal way).
Andrus
On May 8, 2006, at 4:14 PM, Tomas Jucius wrote:
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