Skip to content

Commit

Permalink
HSEARCH-472 Change the HibernateSessionServiceProvider to provide the…
Browse files Browse the repository at this point in the history
… SessionFactory rather than Session
  • Loading branch information
Sanne committed Sep 27, 2013
1 parent 4f9ab8b commit 43a72e9
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -210,9 +210,9 @@ finally {
@Override
public void initialize(Properties properties, BuildContext buildContext) {
ServiceManager serviceManager = buildContext.getServiceManager();
Session session = serviceManager.requestService( HibernateSessionServiceProvider.class,
buildContext );

SessionFactory sessionFactory = serviceManager.requestService(
HibernateSessionFactoryServiceProvider.class, buildContext );
Session session = sessionFactory.openSession();
try {
Criteria initialShardsCriteria = session.createCriteria( Animal.class );
initialShardsCriteria.setProjection(
Expand Down Expand Up @@ -276,10 +276,10 @@ finally {
linkend="example-custom-shard-identifier-provider"/> shows how to handle
such a case. <classname>AnimalShardIdentifierProvider</classname> makes
in its <methodname>initialize</methodname> implementation use of a
service called <classname>HibernateSessionServiceProvider</classname>
service called <classname>HibernateSessionFactoryServiceProvider</classname>
(see also <xref linkend="section-services"/>) which is available within
an ORM environment. It allows to request a Hibernate
<classname>Session</classname> instance which can be used to run a
<classname>SessionFactory</classname> instance which can be used to run a
<classname>Criteria</classname> query in order to determine the initial
set of shard identifers.</para>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -745,7 +745,7 @@ public interface Log extends BasicLogger {
"declare the same Similarity implementation. %s defines similarity %s and %s defines similarity %s")
SearchException getMultipleEntitiesShareIndexWithInconsistentSimilarityException(String class1, String similarity1, String class2, String similarity2);

@Message(id = 190, value = "Unable to start HibernateSessionServiceProvider. There is no session factory in the context. Are you sure you have Hibernate ORM enabled?")
@Message(id = 190, value = "Unable to start HibernateSessionFactoryServiceProvider. There is no session factory in the context. Are you sure you have Hibernate ORM enabled?")
SearchException getNoSessionFactoryInContextException();

@Message(id = 191, value = "The number of shards must be >= 1. %s is an illegal value.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@

import java.util.Properties;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import org.hibernate.search.spi.BuildContext;
Expand All @@ -34,11 +33,12 @@
import org.hibernate.search.util.logging.impl.LoggerFactory;

/**
* A Hibernate Search service provider which allows to request a Hibernate {@code Session} during bootstrapping.
* A Hibernate Search service provider which allows to request a Hibernate {@code SessionFactory} during bootstrapping.
*
* @author Hardy Ferentschik
* @author Sanne Grinovero
*/
public class HibernateSessionServiceProvider implements ServiceProvider<Session> {
public class HibernateSessionFactoryServiceProvider implements ServiceProvider<SessionFactory> {
private static final Log log = LoggerFactory.make();

private volatile SessionFactory sessionFactory;
Expand All @@ -52,8 +52,8 @@ public void start(Properties properties, BuildContext context) {
}

@Override
public Session getService() {
return sessionFactory.openSession();
public SessionFactory getService() {
return sessionFactory;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
org.hibernate.search.hcore.impl.MassIndexerFactoryProvider
org.hibernate.search.hcore.impl.HibernateSessionServiceProvider
org.hibernate.search.hcore.impl.HibernateSessionFactoryServiceProvider
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import java.util.Properties;

import org.hibernate.search.engine.ServiceManager;
import org.hibernate.search.hcore.impl.HibernateSessionServiceProvider;
import org.hibernate.search.hcore.impl.HibernateSessionFactoryServiceProvider;
import org.hibernate.search.indexes.impl.DirectoryBasedIndexManager;
import org.hibernate.search.spi.BuildContext;
import org.hibernate.search.store.impl.RAMDirectoryProvider;
Expand All @@ -45,7 +45,7 @@ public class DummyDirectoryProvider extends RAMDirectoryProvider {
@Override
public void initialize(String directoryProviderName, Properties properties, BuildContext context) {
ServiceManager serviceManager = context.getServiceManager();
serviceManager.requestService( HibernateSessionServiceProvider.class, context );
serviceManager.requestService( HibernateSessionFactoryServiceProvider.class, context );
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
import org.hibernate.search.engine.spi.EntityIndexBinding;
import org.hibernate.search.engine.spi.SearchFactoryImplementor;
import org.hibernate.search.filter.FullTextFilterImplementor;
import org.hibernate.search.hcore.impl.HibernateSessionServiceProvider;
import org.hibernate.search.hcore.impl.HibernateSessionFactoryServiceProvider;
import org.hibernate.search.spi.BuildContext;
import org.hibernate.search.store.ShardIdentifierProvider;
import org.hibernate.search.test.SearchTestCaseJUnit4;
Expand Down Expand Up @@ -214,8 +214,8 @@ public static class AnimalShardIdentifierProvider implements ShardIdentifierProv
@Override
public void initialize(Properties properties, BuildContext buildContext) {
ServiceManager serviceManager = buildContext.getServiceManager();
Session session = serviceManager.requestService( HibernateSessionServiceProvider.class, buildContext );

SessionFactory sessionFactory = serviceManager.requestService( HibernateSessionFactoryServiceProvider.class, buildContext );
Session session = sessionFactory.openSession();
try {
Criteria initialShardsCriteria = session.createCriteria( Animal.class );
initialShardsCriteria.setProjection( Projections.distinct( Property.forName( "type" ) ) );
Expand Down

0 comments on commit 43a72e9

Please sign in to comment.