[hibernate-dev] [OGM] Public packages of datastore modules

Gunnar Morling gunnar at hibernate.org
Mon Feb 10 05:50:18 EST 2014


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
...

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 :)

Any thoughts?

--Gunnar


More information about the hibernate-dev mailing list