OK, now that we have been doing this for a few months and have some actual experience, I wanted to circle back and talk about this notion of splitting up packages to denote api/spi/internal intent.
Not so much "should we do it". I think we absolutely should to help do osgi stuff a little later and now (new major rev) is the time to be changing up packages. Not, more I mean the specifics of how we will do this. Currently we took the approach (mostly) that these distinctions are leaves (as in plural leaf) in the package name. So for example, we have: 1) org.hibernate.service (api) 2) org.hibernate.service.spi 3) org.hibernate.service.internal On the plus side this keeps related stuff grouped together. Everything under org.hibernate.service we know relates to the notion of services. Everything under org.hibernate.engine we know deals with the internal engine. etc On the downside (imo) this creates lots of packages. To see what I mean, just take a look at https://github.com/hibernate/hibernate- core/tree/master/hibernate-core/src/main/java/org/hibernate/service The only other option I saw was to make api/spi/internal the top level packaging construct: 1) org.hibernate.service (still api) 2) org.hibernate.spi.service 3) org.hibernate.internal.service What's been everyone's experience(s) here? --- Steve Ebersole <st...@hibernate.org> http://hibernate.org _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev