On Mon 2014-02-10 11:50, Gunnar Morling wrote:
Hi,
One thing I'd like to address before doing the next OGM release is the
structure of public packages in the datastore-specific modules.
Currently we have the following structure:
* org.hibernate.ogm.datastore.<infinispan|ehcache|mongodb|...>
* org.hibernate.ogm.dialect.<infinispan|ehcache|mongodb|...>
* org.hibernate.ogm.logging.<infinispan|ehcache|mongodb|...>
...
I think it makes sense to pull the datastore-specific package up one level,
moving all the types of a backend under one shared super-package. So it
would like this instead:
* org.hibernate.ogm.<infinispan|ehcache|mongodb|...>.datastore
* org.hibernate.ogm.<infinispan|ehcache|mongodb|...>.dialect
* org.hibernate.ogm.<infinispan|ehcache|mongodb|...>.logging
...
I am fine with it. I think I like it more actually as it makes writing a
new datastore easier and more isolated.
A bit harder on the user, but nothing earth shaking.
The reason I'm bringing this up is that we're introducing new
user-exposed
types with that release: the store identifier types (MongoDB, CouchDB etc.)
and their properties class (MongoDBProperties, CouchDBProperties etc.). So
if we agree to do this change it would be good to do it now before having
to move these public types later on.
Another question is how to differentiate between public and internal
packages, but I think we can discuss this later on, as a change would only
affect internal packages. Emmanuel and I couldn't agree on a best approach
when discussing it shortly, so this might need some more time :)
I could agree with myself quite well :)