Initial move to ServiceRegistry. For now, see design wikis or sources for more information. Not all "services" have been migrated to this model yet. The main ones (JDBC and transaction stuff) as well as lowever level one (classloading and such) have been migrated. The rest will be moved during Alpha2 development.

In an initial push toward osgi we started splitting up packages a little bit differently in this release.

The reason is to identify classes which are intended as

public API, which are fully expected to be used in application code.

internal implementation details, which are only intended for Hibernate use.

SPI contracts, whch define

extension contracts

contracts with Hibernate internals exposed to these extensions

This will potentially lead to some packaging changes needed in user code:

Session.reconnect() - manual disconection and reconnection is now only supported for user-supplied-connection scenarios (JDBC Connection passed in while opening the Session)

Session.connection() - use Session.doWork(), Session.doReturningWork() or Session.sessionWithOptions()...openSession() as replacement depending on need

Most of the overloaded SessionFactory.openSession methods. Use SessionFactory.withOptions()...openSession() instead

Deprecated classes/interfaces that have been removed:

org.hibernate.classic.Session

org.hibernate.classic.Validatable

org.hibernate.classic.ValidationException

org.hibernate.jdbc.BatcherFactory, Batcher, and their implementations have been replaced by org.hibernate.engine.jdbc.batch.spi.BatchBuilder and Batch, with default implementations in org.hibernate.engine.jdbc.batch.internal. You can override the default BatchBuilder by defining the "hibernate.jdbc.batch.builder" property as the name of a BatchBuilder implementation, or by providing a BatchBuilder in a custom ServiceRegistry.

hibernate.cfg.xml no longer supported as means of specifying listeners. New approach invloves using an org.hibernate.integrator.spi.Integrator which works based on "service discovery".