From 834b86ff7532195a344f84d0389b7c52de8602b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Mon, 9 Sep 2019 16:27:56 +0200 Subject: [PATCH 01/16] HSEARCH-3671 Replace the SessionFactory with an EntityManagerFactory in ToJpaIT Because this test is about JPA, and we don't need more than an EntityManagerFactory. --- .../mapper/orm/hibernateormapis/ToJpaIT.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToJpaIT.java b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToJpaIT.java index 99eba0afa9b..f27c5419322 100644 --- a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToJpaIT.java +++ b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToJpaIT.java @@ -13,13 +13,13 @@ import java.util.List; import javax.persistence.Entity; import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; import javax.persistence.Id; import javax.persistence.NoResultException; import javax.persistence.NonUniqueResultException; import javax.persistence.Table; import javax.persistence.TypedQuery; -import org.hibernate.SessionFactory; import org.hibernate.cfg.AvailableSettings; import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.engine.search.query.SearchQuery; @@ -49,17 +49,17 @@ public class ToJpaIT { @Rule public OrmSetupHelper ormSetupHelper = OrmSetupHelper.withBackendMock( backendMock ); - private SessionFactory sessionFactory; + private EntityManagerFactory entityManagerFactory; @Before public void setup() { backendMock.expectAnySchema( IndexedEntity.INDEX ); - sessionFactory = ormSetupHelper.start() + entityManagerFactory = ormSetupHelper.start() .withProperty( AvailableSettings.JPA_QUERY_COMPLIANCE, true ) .setup( IndexedEntity.class ); backendMock.verifyExpectationsMet(); - OrmUtils.withinJPATransaction( sessionFactory, entityManager -> { + OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { IndexedEntity entity1 = new IndexedEntity(); entity1.setId( 1 ); entity1.setText( "this is text (1)" ); @@ -84,7 +84,7 @@ public void setup() { @Test public void toJpaEntityManager() { - OrmUtils.withinEntityManager( sessionFactory, entityManager -> { + OrmUtils.withinEntityManager( entityManagerFactory, entityManager -> { SearchSession searchSession = Search.session( entityManager ); assertThat( searchSession.toEntityManager() ).isSameAs( entityManager ); } ); @@ -92,9 +92,9 @@ public void toJpaEntityManager() { @Test public void toJpaEntityManager_withClosedEntityManager() { - EntityManager entityManager = sessionFactory.createEntityManager(); + EntityManager entityManager = entityManagerFactory.createEntityManager(); try { - entityManager = sessionFactory.createEntityManager(); + entityManager = entityManagerFactory.createEntityManager(); } finally { if ( entityManager != null ) { @@ -113,7 +113,7 @@ public void toJpaEntityManager_withClosedEntityManager() { @Test public void toJpaQuery() { - OrmUtils.withinEntityManager( sessionFactory, entityManager -> { + OrmUtils.withinEntityManager( entityManagerFactory, entityManager -> { SearchSession searchSession = Search.session( entityManager ); TypedQuery query = Search.toJpaQuery( createSimpleQuery( searchSession ) ); assertThat( query ).isNotNull(); @@ -122,7 +122,7 @@ public void toJpaQuery() { @Test public void getResultList() { - OrmUtils.withinEntityManager( sessionFactory, entityManager -> { + OrmUtils.withinEntityManager( entityManagerFactory, entityManager -> { SearchSession searchSession = Search.session( entityManager ); TypedQuery query = Search.toJpaQuery( createSimpleQuery( searchSession ) ); @@ -147,7 +147,7 @@ public void getResultList() { @Test public void getSingleResult() { - OrmUtils.withinEntityManager( sessionFactory, entityManager -> { + OrmUtils.withinEntityManager( entityManagerFactory, entityManager -> { SearchSession searchSession = Search.session( entityManager ); TypedQuery query = Search.toJpaQuery( createSimpleQuery( searchSession ) ); @@ -210,7 +210,7 @@ public void getSingleResult() { @Test public void pagination() { - OrmUtils.withinEntityManager( sessionFactory, entityManager -> { + OrmUtils.withinEntityManager( entityManagerFactory, entityManager -> { SearchSession searchSession = Search.session( entityManager ); TypedQuery query = Search.toJpaQuery( createSimpleQuery( searchSession ) ); @@ -238,7 +238,7 @@ public void pagination() { @Test @TestForIssue( jiraKey = "HSEARCH-1857" ) public void reuseSearchSessionAfterEntityManagerIsClosed_noMatching() { - EntityManager entityManager = sessionFactory.createEntityManager(); + EntityManager entityManager = entityManagerFactory.createEntityManager(); SearchSession searchSession = Search.session( entityManager ); // a SearchSession instance is created lazily, // so we need to use it to have an instance of it @@ -255,7 +255,7 @@ public void reuseSearchSessionAfterEntityManagerIsClosed_noMatching() { @Test public void lazyCreateSearchSessionAfterEntityManagerIsClosed() { - EntityManager entityManager = sessionFactory.createEntityManager(); + EntityManager entityManager = entityManagerFactory.createEntityManager(); // Search session is not created, since we don't use it SearchSession searchSession = Search.session( entityManager ); entityManager.close(); From b7e7e20aada28c0be185c6a7a5cbd7e4c054cb01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Mon, 9 Sep 2019 16:32:31 +0200 Subject: [PATCH 02/16] HSEARCH-3671 Introduce the SearchMapping interface to represent the ORM mapping --- .../hibernateormapis/ToHibernateOrmIT.java | 7 +++ .../mapper/orm/hibernateormapis/ToJpaIT.java | 7 +++ .../hibernate/search/mapper/orm/Search.java | 51 ++++++++++++++++++- .../search/mapper/orm/logging/impl/Log.java | 3 ++ .../mapper/orm/mapping/SearchMapping.java | 30 +++++++++++ .../orm/mapping/impl/HibernateOrmMapping.java | 16 +++++- 6 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/SearchMapping.java diff --git a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToHibernateOrmIT.java b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToHibernateOrmIT.java index c0dbcb98db3..c0e14a6acb7 100644 --- a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToHibernateOrmIT.java +++ b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToHibernateOrmIT.java @@ -20,6 +20,7 @@ import org.hibernate.query.Query; import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.engine.search.query.SearchQuery; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.FullTextField; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.Indexed; @@ -78,6 +79,12 @@ public void setup() { backendMock.verifyExpectationsMet(); } + @Test + public void toHibernateOrmSessionFactory() { + SearchMapping searchMapping = Search.mapping( sessionFactory ); + assertThat( searchMapping.toOrmSessionFactory() ).isSameAs( sessionFactory ); + } + @Test public void toHibernateOrmSession() { OrmUtils.withinSession( sessionFactory, session -> { diff --git a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToJpaIT.java b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToJpaIT.java index f27c5419322..68c9cde80d6 100644 --- a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToJpaIT.java +++ b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToJpaIT.java @@ -23,6 +23,7 @@ import org.hibernate.cfg.AvailableSettings; import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.engine.search.query.SearchQuery; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.FullTextField; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.Indexed; @@ -82,6 +83,12 @@ public void setup() { backendMock.verifyExpectationsMet(); } + @Test + public void toJpaEntityManagerFactory() { + SearchMapping searchMapping = Search.mapping( entityManagerFactory ); + assertThat( searchMapping.toEntityManagerFactory() ).isSameAs( entityManagerFactory ); + } + @Test public void toJpaEntityManager() { OrmUtils.withinEntityManager( entityManagerFactory, entityManager -> { diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/Search.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/Search.java index 872773d6503..9c7b7e09812 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/Search.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/Search.java @@ -8,13 +8,17 @@ import java.lang.invoke.MethodHandles; import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; import javax.persistence.TypedQuery; import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.query.Query; import org.hibernate.search.engine.search.query.SearchQuery; import org.hibernate.search.mapper.orm.logging.impl.Log; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.mapping.impl.HibernateSearchContextProviderService; import org.hibernate.search.mapper.orm.search.query.impl.HibernateOrmSearchQueryAdapter; import org.hibernate.search.mapper.orm.session.SearchSession; @@ -29,6 +33,44 @@ private Search() { // Private constructor } + /** + * Retrieve the {@link SearchMapping} from a Hibernate ORM {@link SessionFactory}. + * + * @param sessionFactory A Hibernate ORM session factory. + * @return The corresponding {@link SearchSession}. + * @throws org.hibernate.search.util.common.SearchException if the session NOT {@link Session#isOpen()}. + */ + public static SearchMapping mapping(SessionFactory sessionFactory) { + SessionFactoryImplementor sessionFactoryImpl; + try { + sessionFactoryImpl = sessionFactory.unwrap( SessionFactoryImplementor.class ); + } + catch (IllegalStateException e) { + throw log.hibernateSessionFactoryAccessError( e ); + } + + return getSearchMapping( sessionFactoryImpl ); + } + + /** + * Retrieve the {@link SearchMapping} from a JPA {@link EntityManagerFactory}. + * + * @param entityManagerFactory A JPA entity manager factory. + * @return The corresponding {@link SearchSession}. + * @throws org.hibernate.search.util.common.SearchException if the session NOT {@link Session#isOpen()}. + */ + public static SearchMapping mapping(EntityManagerFactory entityManagerFactory) { + SessionFactoryImplementor sessionFactoryImpl; + try { + sessionFactoryImpl = entityManagerFactory.unwrap( SessionFactoryImplementor.class ); + } + catch (IllegalStateException e) { + throw log.hibernateSessionFactoryAccessError( e ); + } + + return getSearchMapping( sessionFactoryImpl ); + } + /** * Retrieve the {@link SearchSession} from a Hibernate ORM {@link Session}. *

@@ -133,10 +175,15 @@ public static Query toOrmQuery(SearchQuery searchQuery) { return HibernateOrmSearchQueryAdapter.create( searchQuery ); } + private static SearchMapping getSearchMapping(SessionFactoryImplementor sessionFactoryImplementor) { + HibernateSearchContextProviderService mappingContextProvider = + HibernateSearchContextProviderService.get( sessionFactoryImplementor ); + return mappingContextProvider.get(); + } + private static SearchSession createSearchSession(SessionImplementor sessionImplementor) { HibernateSearchContextProviderService mappingContextProvider = - sessionImplementor.getSessionFactory().getServiceRegistry() - .getService( HibernateSearchContextProviderService.class ); + HibernateSearchContextProviderService.get( sessionImplementor.getSessionFactory() ); return new LazyInitSearchSession( mappingContextProvider, sessionImplementor ); } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/logging/impl/Log.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/logging/impl/Log.java index ad989bfbb81..9dd3e0ae59b 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/logging/impl/Log.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/logging/impl/Log.java @@ -187,4 +187,7 @@ void skippingPreliminaryCacheLookupsForNonEntityIdEntityLoader( + " because caching is not enabled for this entity type.") void skippingSecondLevelCacheLookupsForNonCachedEntityTypeEntityLoader( @FormatWith(ClassFormatter.class) Class entityType); + + @Message(id = ID_OFFSET_2 + 21, value = "Error trying to access Hibernate ORM session factory." ) + SearchException hibernateSessionFactoryAccessError(@Cause IllegalStateException cause); } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/SearchMapping.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/SearchMapping.java new file mode 100644 index 00000000000..01db04499dd --- /dev/null +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/SearchMapping.java @@ -0,0 +1,30 @@ +/* + * Hibernate Search, full-text search for your domain model + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or . + */ +package org.hibernate.search.mapper.orm.mapping; + +import javax.persistence.EntityManagerFactory; + +import org.hibernate.SessionFactory; + +/** + * The Hibernate Search mapping between the Hibernate ORM model and the backend(s). + *

+ * Provides entry points to Hibernate Search operations that are not tied to a specific ORM session. + */ +public interface SearchMapping { + + /** + * @return The underlying {@link EntityManagerFactory} used by this {@link SearchMapping}. + */ + EntityManagerFactory toEntityManagerFactory(); + + /** + * @return The underlying {@link SessionFactory} used by this {@link SearchMapping}. + */ + SessionFactory toOrmSessionFactory(); + +} diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java index 2396e9420a2..797862f6fe8 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java @@ -8,6 +8,8 @@ import java.lang.invoke.MethodHandles; +import javax.persistence.EntityManagerFactory; + import org.hibernate.SessionFactory; import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.engine.spi.SessionImplementor; @@ -19,6 +21,7 @@ import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; import org.hibernate.search.mapper.orm.event.impl.HibernateOrmListenerContextProvider; import org.hibernate.search.mapper.orm.logging.impl.Log; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.mapping.context.impl.HibernateOrmMappingContextImpl; import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeMappingContext; import org.hibernate.search.mapper.orm.search.loading.EntityLoadingCacheLookupStrategy; @@ -33,7 +36,8 @@ import org.hibernate.search.util.common.logging.impl.LoggerFactory; public class HibernateOrmMapping extends AbstractPojoMappingImplementor - implements HibernateOrmListenerContextProvider, + implements SearchMapping, + HibernateOrmListenerContextProvider, HibernateOrmScopeMappingContext, HibernateOrmSearchSessionMappingContext { private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); @@ -110,6 +114,16 @@ private HibernateOrmMapping(PojoMappingDelegate mappingDelegate, this.fetchSize = fetchSize; } + @Override + public EntityManagerFactory toEntityManagerFactory() { + return mappingContext.getSessionFactory(); + } + + @Override + public SessionFactory toOrmSessionFactory() { + return mappingContext.getSessionFactory(); + } + @Override public HibernateOrmMapping toConcreteType() { return this; From 068437028625f8f83889a35b10c4f4cd61f7ceb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Mon, 9 Sep 2019 16:34:16 +0200 Subject: [PATCH 03/16] HSEARCH-3671 Rename JavaBeanMapping to SearchMapping and move it to the "mapping" package For consistency with the ORM mapper. --- .../mapper/pojo/lifecycle/CleanupIT.java | 4 ++-- .../AbstractFieldContainerExtractorIT.java | 6 ++--- .../definition/DocumentIdDefaultBridgeIT.java | 4 ++-- .../pojo/mapping/definition/FieldBaseIT.java | 4 ++-- .../FieldContainerExtractorBaseIT.java | 4 ++-- .../definition/FieldDefaultBridgeIT.java | 4 ++-- .../mapping/definition/FullTextFieldIT.java | 4 ++-- .../definition/IndexedEmbeddedBaseIT.java | 18 +++++++------- .../mapping/definition/KeywordFieldIT.java | 4 ++-- .../definition/PropertyBridgeBaseIT.java | 12 +++++----- .../mapping/definition/TypeBridgeBaseIT.java | 12 +++++----- .../mapper/pojo/model/GenericPropertyIT.java | 4 ++-- .../pojo/model/ImplementedInterfaceIT.java | 4 ++-- .../pojo/model/PropertyInheritanceIT.java | 4 ++-- .../IndexNullAsOnNumericContainerIT.java | 4 ++-- .../mapper/pojo/providedid/ProvidedIdIT.java | 6 ++--- .../routing/AnnotationMappingRoutingIT.java | 4 ++-- .../routing/ProgrammaticMappingRoutingIT.java | 4 ++-- .../pojo/smoke/AnnotationMappingSmokeIT.java | 4 ++-- .../smoke/ProgrammaticMappingSmokeIT.java | 4 ++-- .../AnnotationMappingGeoPointBindingIT.java | 4 ++-- .../ProgrammaticMappingGeoPointBindingIT.java | 4 ++-- .../util/rule/JavaBeanMappingSetupHelper.java | 20 ++++++++-------- .../CloseableSearchMapping.java} | 4 ++-- .../SearchMapping.java} | 10 ++++---- .../SearchMappingBuilder.java} | 24 +++++++++---------- .../mapping/impl/JavaBeanMappingImpl.java | 9 +++---- .../mapping/impl/JavaBeanMappingKey.java | 4 ++-- .../JavaBeanMappingPartialBuildState.java | 4 ++-- 29 files changed, 99 insertions(+), 98 deletions(-) rename mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/{CloseableJavaBeanMapping.java => mapping/CloseableSearchMapping.java} (66%) rename mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/{JavaBeanMapping.java => mapping/SearchMapping.java} (78%) rename mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/{JavaBeanMappingBuilder.java => mapping/SearchMappingBuilder.java} (87%) diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/lifecycle/CleanupIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/lifecycle/CleanupIT.java index 783a2fefb35..31c2292a220 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/lifecycle/CleanupIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/lifecycle/CleanupIT.java @@ -19,7 +19,7 @@ import org.hibernate.search.engine.environment.bean.spi.BeanConfigurationContext; import org.hibernate.search.engine.environment.bean.spi.BeanConfigurer; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.StartupStubContainerExtractor; -import org.hibernate.search.mapper.javabean.CloseableJavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.CloseableSearchMapping; import org.hibernate.search.mapper.pojo.bridge.binding.IdentifierBindingContext; import org.hibernate.search.mapper.pojo.bridge.binding.PropertyBindingContext; import org.hibernate.search.mapper.pojo.bridge.binding.RoutingKeyBindingContext; @@ -69,7 +69,7 @@ public class CleanupIT { @Rule public StaticCounters counters = new StaticCounters(); - private CloseableJavaBeanMapping mapping; + private CloseableSearchMapping mapping; @Test public void successfulBuilding() { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/AbstractFieldContainerExtractorIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/AbstractFieldContainerExtractorIT.java index 774308015ed..701935e2c23 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/AbstractFieldContainerExtractorIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/AbstractFieldContainerExtractorIT.java @@ -24,7 +24,7 @@ import java.util.function.BiFunction; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.pojo.bridge.ValueBridge; import org.hibernate.search.mapper.pojo.bridge.runtime.ValueBridgeToIndexedValueContext; import org.hibernate.search.mapper.javabean.session.SearchSession; @@ -297,7 +297,7 @@ final void doTest(TestModel testModel, Class indexedFieldType } } ) ); - JavaBeanMapping mapping = setupHelper.start().setup( testModel.getEntityClass() ); + SearchMapping mapping = setupHelper.start().setup( testModel.getEntityClass() ); backendMock.verifyExpectationsMet(); // Indexing @@ -332,7 +332,7 @@ final void doTestExpectMissing(TestModel testModel, } } ) ); - JavaBeanMapping mapping = setupHelper.start().setup( testModel.getEntityClass() ); + SearchMapping mapping = setupHelper.start().setup( testModel.getEntityClass() ); backendMock.verifyExpectationsMet(); // Indexing diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/DocumentIdDefaultBridgeIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/DocumentIdDefaultBridgeIT.java index 933fa36fed1..e1c85f2ed61 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/DocumentIdDefaultBridgeIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/DocumentIdDefaultBridgeIT.java @@ -19,7 +19,7 @@ import org.hibernate.search.integrationtest.mapper.pojo.testsupport.types.PropertyTypeDescriptor; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.types.expectations.DefaultIdentifierBridgeExpectations; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanMappingContext; import org.hibernate.search.engine.search.query.SearchQuery; import org.hibernate.search.mapper.javabean.session.SearchSession; @@ -60,7 +60,7 @@ public static Object[] types() { public JavaBeanMappingSetupHelper setupHelper = JavaBeanMappingSetupHelper.withBackendMock( MethodHandles.lookup(), backendMock ); private DefaultIdentifierBridgeExpectations expectations; - private JavaBeanMapping mapping; + private SearchMapping mapping; private StubIndexSchemaNode index1RootSchemaNode; private StubIndexSchemaNode index2RootSchemaNode; diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldBaseIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldBaseIT.java index b43b38c21a7..182eb598e91 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldBaseIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldBaseIT.java @@ -10,7 +10,7 @@ import java.util.List; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.pojo.bridge.ValueBridge; import org.hibernate.search.mapper.pojo.bridge.mapping.annotation.ValueBinderRef; @@ -293,7 +293,7 @@ public Integer getId() { .field( "integer", Integer.class, f -> f.indexNullAs( 7 ) ) ); - JavaBeanMapping mapping = setupHelper.start().setup( IndexedEntity.class ); + SearchMapping mapping = setupHelper.start().setup( IndexedEntity.class ); backendMock.verifyExpectationsMet(); try ( SearchSession session = mapping.createSession() ) { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldContainerExtractorBaseIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldContainerExtractorBaseIT.java index eedfadfadd8..8f4c30fd803 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldContainerExtractorBaseIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldContainerExtractorBaseIT.java @@ -12,7 +12,7 @@ import java.util.stream.Stream; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.pojo.extractor.ContainerExtractor; import org.hibernate.search.mapper.pojo.extractor.builtin.BuiltinContainerExtractors; @@ -68,7 +68,7 @@ public MyContainer getText() { .field( "text", String.class, f -> f.multiValued( true ) ) ); - JavaBeanMapping mapping = setupHelper.start() + SearchMapping mapping = setupHelper.start() .withConfiguration( builder -> { builder.containerExtractors().define( MyContainerExtractor.NAME, MyContainerExtractor.class ); } ) diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldDefaultBridgeIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldDefaultBridgeIT.java index 9b66c80dec7..67123caf1a4 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldDefaultBridgeIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldDefaultBridgeIT.java @@ -25,7 +25,7 @@ import org.hibernate.search.integrationtest.mapper.pojo.testsupport.types.PropertyTypeDescriptor; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.types.expectations.DefaultValueBridgeExpectations; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanMappingContext; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.javabean.session.context.impl.JavaBeanSessionContext; @@ -68,7 +68,7 @@ public static Object[] types() { private PropertyTypeDescriptor typeDescriptor; private DefaultValueBridgeExpectations expectations; - private JavaBeanMapping mapping; + private SearchMapping mapping; private StubIndexSchemaNode index1FieldSchemaNode; private StubIndexSchemaNode index2FieldSchemaNode; diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FullTextFieldIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FullTextFieldIT.java index 62f620d9313..bcf47fd8ae5 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FullTextFieldIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FullTextFieldIT.java @@ -14,7 +14,7 @@ import org.hibernate.search.engine.backend.types.TermVector; import org.hibernate.search.engine.backend.types.dsl.StringIndexFieldTypeOptionsStep; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.pojo.bridge.ValueBridge; import org.hibernate.search.mapper.pojo.bridge.binding.ValueBindingContext; import org.hibernate.search.mapper.pojo.bridge.mapping.annotation.ValueBinderRef; @@ -394,7 +394,7 @@ private void doTestValidMapping(Class entityType, backendMock.expectSchema( INDEX_NAME, b -> b .field( "myProperty", indexedFieldType, b2 -> b2.analyzerName( ANALYZER_NAME ) ) ); - JavaBeanMapping mapping = setupHelper.start().setup( entityType ); + SearchMapping mapping = setupHelper.start().setup( entityType ); backendMock.verifyExpectationsMet(); // Indexing diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/IndexedEmbeddedBaseIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/IndexedEmbeddedBaseIT.java index 32cdc616e17..0511e688a31 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/IndexedEmbeddedBaseIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/IndexedEmbeddedBaseIT.java @@ -19,7 +19,7 @@ import org.hibernate.search.integrationtest.mapper.pojo.smoke.ProgrammaticMappingSmokeIT; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.StartupStubBridge; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.pojo.bridge.builtin.spatial.impl.GeoPointBridge; import org.hibernate.search.mapper.pojo.bridge.builtin.spatial.impl.LatitudeMarker; @@ -114,7 +114,7 @@ public IndexedEmbeddedLevel1 getLevel1() { ) ) ); - JavaBeanMapping mapping = setupHelper.start() + SearchMapping mapping = setupHelper.start() .withAnnotatedEntityTypes( IndexedEntity.class ) .withAnnotatedTypes( IndexedEmbeddedLevel1.class, IndexedEmbeddedLevel2.class ) .setup(); @@ -199,7 +199,7 @@ public List getLevel1() { ) ) ); - JavaBeanMapping mapping = setupHelper.start() + SearchMapping mapping = setupHelper.start() .withAnnotatedEntityTypes( IndexedEntity.class ) .withAnnotatedTypes( IndexedEmbeddedLevel1.class ) .setup(); @@ -282,7 +282,7 @@ public IndexedEmbeddedLevel1 getLevel1() { backendMock.expectSchema( INDEX_NAME, b -> b .field( "customPrefix_level1Property", String.class ) ); - JavaBeanMapping mapping = setupHelper.start() + SearchMapping mapping = setupHelper.start() .withAnnotatedEntityTypes( IndexedEntity.class ) .withAnnotatedTypes( IndexedEmbeddedLevel1.class ) .setup(); @@ -340,7 +340,7 @@ public IndexedEmbeddedLevel1 getLevel1() { .field( "includedProperty", String.class ) ) ); - JavaBeanMapping mapping = setupHelper.start() + SearchMapping mapping = setupHelper.start() .withAnnotatedEntityTypes( IndexedEntity.class ) .withAnnotatedTypes( IndexedEmbeddedLevel1.class ) .setup(); @@ -468,7 +468,7 @@ public IndexedEmbeddedLevel1 getLevel1() { .field( "level1Property", String.class ) ) ); - JavaBeanMapping mapping = setupHelper.start() + SearchMapping mapping = setupHelper.start() .withAnnotatedEntityTypes( IndexedEntity.class ) .withAnnotatedTypes( IndexedEmbeddedLevel1.class, IndexedEmbeddedLevel2.class ) .setup(); @@ -521,7 +521,7 @@ public IndexedEmbeddedLevel1 getLevel1() { .field( "level1Property", String.class ) ) ); - JavaBeanMapping mapping = setupHelper.start() + SearchMapping mapping = setupHelper.start() .withAnnotatedEntityTypes( IndexedEntity.class ) .withAnnotatedTypes( IndexedEmbeddedLevel1.class ) .setup(); @@ -582,7 +582,7 @@ public IndexedEmbeddedLevel1 getLevel1() { .field( "level1IncludedField", String.class ) ) ); - JavaBeanMapping mapping = setupHelper.start() + SearchMapping mapping = setupHelper.start() .withConfiguration( b -> { b.addEntityType( IndexedEntity.class ); b.programmaticMapping().type( IndexedEntity.class ) @@ -722,7 +722,7 @@ public EmptyNested getInvalid() { ); } - private void doTestEmbeddedRuntime(JavaBeanMapping mapping, + private void doTestEmbeddedRuntime(SearchMapping mapping, Function newEntityFunction, Consumer expectedDocumentContributor) { try ( SearchSession session = mapping.createSession() ) { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/KeywordFieldIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/KeywordFieldIT.java index fd9e32543eb..3f652bcb876 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/KeywordFieldIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/KeywordFieldIT.java @@ -14,7 +14,7 @@ import org.hibernate.search.engine.backend.types.Searchable; import org.hibernate.search.engine.backend.types.dsl.StringIndexFieldTypeOptionsStep; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.pojo.bridge.ValueBridge; import org.hibernate.search.mapper.pojo.bridge.binding.ValueBindingContext; import org.hibernate.search.mapper.pojo.bridge.mapping.annotation.ValueBinderRef; @@ -413,7 +413,7 @@ private void doTestValidMapping(Class entityType, backendMock.expectSchema( INDEX_NAME, b -> b .field( "myProperty", indexedFieldType, b2 -> b2.normalizerName( NORMALIZER_NAME ) ) ); - JavaBeanMapping mapping = setupHelper.start().setup( entityType ); + SearchMapping mapping = setupHelper.start().setup( entityType ); backendMock.verifyExpectationsMet(); // Indexing diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/PropertyBridgeBaseIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/PropertyBridgeBaseIT.java index f8278f3ae74..2ef8f37fca5 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/PropertyBridgeBaseIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/PropertyBridgeBaseIT.java @@ -18,7 +18,7 @@ import org.hibernate.search.engine.backend.document.DocumentElement; import org.hibernate.search.engine.backend.document.IndexFieldReference; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.pojo.bridge.PropertyBridge; import org.hibernate.search.mapper.pojo.bridge.binding.PropertyBindingContext; @@ -89,7 +89,7 @@ public String getStringProperty() { } ) ); - JavaBeanMapping mapping = setupHelper.start().withConfiguration( + SearchMapping mapping = setupHelper.start().withConfiguration( b -> b.programmaticMapping().type( IndexedEntity.class ) .property( "stringProperty" ) .binder( (PropertyBinder) context -> { @@ -168,7 +168,7 @@ public Contained getContained() { } ) ); - JavaBeanMapping mapping = setupHelper.start().withConfiguration( + SearchMapping mapping = setupHelper.start().withConfiguration( b -> b.programmaticMapping().type( IndexedEntity.class ) .property( "contained" ) .binder( (PropertyBinder) context -> { @@ -328,7 +328,7 @@ public void explicitReindexing() { } ) ); - JavaBeanMapping mapping = setupHelper.start().withConfiguration( + SearchMapping mapping = setupHelper.start().withConfiguration( b -> b.programmaticMapping().type( PropertyBridgeExplicitIndexingClasses.IndexedEntity.class ) .property( "child" ) .binder( (PropertyBinder) context -> { @@ -774,7 +774,7 @@ public List getStringProperty() { } ) ); - JavaBeanMapping mapping = setupHelper.start().withConfiguration( + SearchMapping mapping = setupHelper.start().withConfiguration( b -> b.programmaticMapping().type( IndexedEntity.class ) .property( "stringProperty" ) .binder( (PropertyBinder) context -> { @@ -850,7 +850,7 @@ public Contained getContained() { .field( "listFromBridge", String.class, b2 -> b2.multiValued( true ) ) ); - JavaBeanMapping mapping = setupHelper.start().withConfiguration( + SearchMapping mapping = setupHelper.start().withConfiguration( b -> b.programmaticMapping().type( IndexedEntity.class ).property( "contained" ) .binder( (PropertyBinder) context -> { context.getDependencies().useRootOnly(); diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/TypeBridgeBaseIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/TypeBridgeBaseIT.java index dce026fc34f..99384c2e8ea 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/TypeBridgeBaseIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/TypeBridgeBaseIT.java @@ -16,7 +16,7 @@ import org.hibernate.search.engine.backend.document.DocumentElement; import org.hibernate.search.engine.backend.document.IndexFieldReference; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.pojo.bridge.TypeBridge; import org.hibernate.search.mapper.pojo.bridge.binding.TypeBindingContext; @@ -82,7 +82,7 @@ public String getStringProperty() { } ) ); - JavaBeanMapping mapping = setupHelper.start().withConfiguration( + SearchMapping mapping = setupHelper.start().withConfiguration( b -> b.programmaticMapping().type( IndexedEntity.class ) .binder( (TypeBinder) context -> { PojoElementAccessor pojoPropertyAccessor = @@ -156,7 +156,7 @@ public String getStringProperty() { } ) ); - JavaBeanMapping mapping = setupHelper.start().withConfiguration( + SearchMapping mapping = setupHelper.start().withConfiguration( b -> b.programmaticMapping().type( IndexedEntity.class ) .binder( (TypeBinder) context -> { context.getDependencies().use( "stringProperty" ); @@ -272,7 +272,7 @@ public String getStringProperty() { } ) ); - JavaBeanMapping mapping = setupHelper.start().withConfiguration( + SearchMapping mapping = setupHelper.start().withConfiguration( b -> b.programmaticMapping().type( IndexedEntity.class ) .binder( (TypeBinder) context -> { context.getDependencies() @@ -672,7 +672,7 @@ public CustomEnum getEnumProperty() { ) ); - JavaBeanMapping mapping = setupHelper.start().withConfiguration( + SearchMapping mapping = setupHelper.start().withConfiguration( b -> b.programmaticMapping().type( CustomEnum.class ) .binder( (TypeBinder) context -> { context.getDependencies().useRootOnly(); @@ -769,7 +769,7 @@ public Contained getContained() { ) ); - JavaBeanMapping mapping = setupHelper.start().withConfiguration( + SearchMapping mapping = setupHelper.start().withConfiguration( b -> b.programmaticMapping().type( Contained.class ) .binder( (TypeBinder) context -> { context.getDependencies().useRootOnly(); diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/model/GenericPropertyIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/model/GenericPropertyIT.java index 2bb8c26cb24..43db719122e 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/model/GenericPropertyIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/model/GenericPropertyIT.java @@ -8,7 +8,7 @@ import java.lang.invoke.MethodHandles; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.AssociationInverseSide; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.DocumentId; @@ -37,7 +37,7 @@ public class GenericPropertyIT { @Rule public StaticCounters counters = new StaticCounters(); - private JavaBeanMapping mapping; + private SearchMapping mapping; @Before public void setup() { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/model/ImplementedInterfaceIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/model/ImplementedInterfaceIT.java index 211e40c7de3..a1abf488330 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/model/ImplementedInterfaceIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/model/ImplementedInterfaceIT.java @@ -9,7 +9,7 @@ import java.lang.invoke.MethodHandles; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.DocumentId; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.GenericField; @@ -30,7 +30,7 @@ public class ImplementedInterfaceIT { @Rule public JavaBeanMappingSetupHelper setupHelper = JavaBeanMappingSetupHelper.withBackendMock( MethodHandles.lookup(), backendMock ); - private JavaBeanMapping mapping; + private SearchMapping mapping; @Before public void setup() { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/model/PropertyInheritanceIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/model/PropertyInheritanceIT.java index fb1a7698083..7819e6d3fea 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/model/PropertyInheritanceIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/model/PropertyInheritanceIT.java @@ -8,7 +8,7 @@ import java.lang.invoke.MethodHandles; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.AssociationInverseSide; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.DocumentId; @@ -37,7 +37,7 @@ public class PropertyInheritanceIT { @Rule public StaticCounters counters = new StaticCounters(); - private JavaBeanMapping mapping; + private SearchMapping mapping; @Before public void setup() { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/nonregression/mapping/definition/IndexNullAsOnNumericContainerIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/nonregression/mapping/definition/IndexNullAsOnNumericContainerIT.java index d44bea62011..91d8effdbb5 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/nonregression/mapping/definition/IndexNullAsOnNumericContainerIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/nonregression/mapping/definition/IndexNullAsOnNumericContainerIT.java @@ -11,7 +11,7 @@ import java.util.List; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.DocumentId; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.GenericField; @@ -44,7 +44,7 @@ public void test() { .field( "integerList", Integer.class, b2 -> b2.indexNullAs( 42 ).multiValued( true ) ) ); - JavaBeanMapping mapping = setupHelper.start() + SearchMapping mapping = setupHelper.start() .setup( IndexedEntity.class ); backendMock.verifyExpectationsMet(); diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/providedid/ProvidedIdIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/providedid/ProvidedIdIT.java index 2b89e3b5070..70efa354c0f 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/providedid/ProvidedIdIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/providedid/ProvidedIdIT.java @@ -12,7 +12,7 @@ import java.util.Collections; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.engine.search.query.SearchQuery; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.Indexed; @@ -45,7 +45,7 @@ class IndexedEntity { // Schema backendMock.expectSchema( INDEX_NAME, b -> { } ); - JavaBeanMapping mapping = withBaseConfiguration().setup( IndexedEntity.class ); + SearchMapping mapping = withBaseConfiguration().setup( IndexedEntity.class ); backendMock.verifyExpectationsMet(); // Indexing @@ -89,7 +89,7 @@ class IndexedEntity { } backendMock.expectAnySchema( INDEX_NAME ); - JavaBeanMapping mapping = withBaseConfiguration().setup( IndexedEntity.class ); + SearchMapping mapping = withBaseConfiguration().setup( IndexedEntity.class ); backendMock.verifyExpectationsMet(); try ( SearchSession session = mapping.createSession() ) { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/routing/AnnotationMappingRoutingIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/routing/AnnotationMappingRoutingIT.java index 7f0b6f44860..4510a54b5fc 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/routing/AnnotationMappingRoutingIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/routing/AnnotationMappingRoutingIT.java @@ -13,7 +13,7 @@ import java.lang.invoke.MethodHandles; import java.util.Collections; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.engine.search.query.SearchQuery; import org.hibernate.search.mapper.javabean.common.EntityReference; import org.hibernate.search.mapper.pojo.bridge.RoutingKeyBridge; @@ -44,7 +44,7 @@ public class AnnotationMappingRoutingIT { @Rule public JavaBeanMappingSetupHelper setupHelper = JavaBeanMappingSetupHelper.withBackendMock( MethodHandles.lookup(), backendMock ); - private JavaBeanMapping mapping; + private SearchMapping mapping; @Before public void setup() { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/routing/ProgrammaticMappingRoutingIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/routing/ProgrammaticMappingRoutingIT.java index 5ef6955468d..207f8b9af1b 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/routing/ProgrammaticMappingRoutingIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/routing/ProgrammaticMappingRoutingIT.java @@ -10,7 +10,7 @@ import java.lang.invoke.MethodHandles; import java.util.Collections; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.engine.search.query.SearchQuery; import org.hibernate.search.mapper.javabean.common.EntityReference; import org.hibernate.search.mapper.pojo.bridge.RoutingKeyBridge; @@ -38,7 +38,7 @@ public class ProgrammaticMappingRoutingIT { @Rule public JavaBeanMappingSetupHelper setupHelper = JavaBeanMappingSetupHelper.withBackendMock( MethodHandles.lookup(), backendMock ); - private JavaBeanMapping mapping; + private SearchMapping mapping; @Before public void setup() { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/AnnotationMappingSmokeIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/AnnotationMappingSmokeIT.java index f45c16358e3..8e5ee1c5a50 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/AnnotationMappingSmokeIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/AnnotationMappingSmokeIT.java @@ -26,7 +26,7 @@ import org.hibernate.search.integrationtest.mapper.pojo.smoke.bridge.CustomTypeBinding; import org.hibernate.search.integrationtest.mapper.pojo.smoke.bridge.IntegerAsStringValueBridge; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.common.EntityReference; import org.hibernate.search.mapper.javabean.common.impl.EntityReferenceImpl; import org.hibernate.search.mapper.javabean.scope.SearchScope; @@ -64,7 +64,7 @@ public class AnnotationMappingSmokeIT { @Rule public StaticCounters counters = new StaticCounters(); - private JavaBeanMapping mapping; + private SearchMapping mapping; @Before public void setup() { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/ProgrammaticMappingSmokeIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/ProgrammaticMappingSmokeIT.java index 472d07c82c1..dad0b064dbf 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/ProgrammaticMappingSmokeIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/ProgrammaticMappingSmokeIT.java @@ -24,7 +24,7 @@ import org.hibernate.search.integrationtest.mapper.pojo.smoke.bridge.CustomTypeBridge; import org.hibernate.search.integrationtest.mapper.pojo.smoke.bridge.IntegerAsStringValueBridge; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.common.EntityReference; import org.hibernate.search.mapper.javabean.common.impl.EntityReferenceImpl; import org.hibernate.search.mapper.javabean.scope.SearchScope; @@ -54,7 +54,7 @@ public class ProgrammaticMappingSmokeIT { @Rule public StaticCounters counters = new StaticCounters(); - private JavaBeanMapping mapping; + private SearchMapping mapping; @Before public void setup() { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/spatial/AnnotationMappingGeoPointBindingIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/spatial/AnnotationMappingGeoPointBindingIT.java index c2d2b600f89..5f970096e6f 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/spatial/AnnotationMappingGeoPointBindingIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/spatial/AnnotationMappingGeoPointBindingIT.java @@ -12,7 +12,7 @@ import org.hibernate.search.engine.backend.types.Sortable; import org.hibernate.search.engine.spatial.GeoPoint; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.pojo.bridge.builtin.annotation.GeoPointBinding; import org.hibernate.search.mapper.pojo.bridge.builtin.annotation.Latitude; import org.hibernate.search.mapper.pojo.bridge.builtin.annotation.Longitude; @@ -34,7 +34,7 @@ public class AnnotationMappingGeoPointBindingIT { @Rule public JavaBeanMappingSetupHelper setupHelper = JavaBeanMappingSetupHelper.withBackendMock( MethodHandles.lookup(), backendMock ); - private JavaBeanMapping mapping; + private SearchMapping mapping; @Before public void setup() { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/spatial/ProgrammaticMappingGeoPointBindingIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/spatial/ProgrammaticMappingGeoPointBindingIT.java index acb687022ac..c13a8be2c73 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/spatial/ProgrammaticMappingGeoPointBindingIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/spatial/ProgrammaticMappingGeoPointBindingIT.java @@ -10,7 +10,7 @@ import org.hibernate.search.engine.backend.types.Projectable; import org.hibernate.search.engine.backend.types.Sortable; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.pojo.bridge.builtin.programmatic.GeoPointBinder; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.pojo.mapping.definition.programmatic.ProgrammaticMappingConfigurationContext; @@ -32,7 +32,7 @@ public class ProgrammaticMappingGeoPointBindingIT { @Rule public JavaBeanMappingSetupHelper setupHelper = JavaBeanMappingSetupHelper.withBackendMock( MethodHandles.lookup(), backendMock ); - private JavaBeanMapping mapping; + private SearchMapping mapping; @Before public void setup() { diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/testsupport/util/rule/JavaBeanMappingSetupHelper.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/testsupport/util/rule/JavaBeanMappingSetupHelper.java index 78ee4d76312..291027d5160 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/testsupport/util/rule/JavaBeanMappingSetupHelper.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/testsupport/util/rule/JavaBeanMappingSetupHelper.java @@ -11,16 +11,16 @@ import java.util.Map; import java.util.Set; -import org.hibernate.search.mapper.javabean.CloseableJavaBeanMapping; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; -import org.hibernate.search.mapper.javabean.JavaBeanMappingBuilder; +import org.hibernate.search.mapper.javabean.mapping.CloseableSearchMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMappingBuilder; import org.hibernate.search.util.common.impl.CollectionHelper; import org.hibernate.search.util.impl.integrationtest.common.rule.BackendMock; import org.hibernate.search.util.impl.integrationtest.common.rule.BackendSetupStrategy; import org.hibernate.search.util.impl.integrationtest.common.rule.MappingSetupHelper; public final class JavaBeanMappingSetupHelper - extends MappingSetupHelper { + extends MappingSetupHelper { /** * @param lookup A {@link MethodHandles.Lookup} with private access to the test method, @@ -53,12 +53,12 @@ protected SetupContext createSetupContext() { } @Override - protected void close(CloseableJavaBeanMapping toClose) { + protected void close(CloseableSearchMapping toClose) { toClose.close(); } public final class SetupContext - extends MappingSetupHelper.AbstractSetupContext { + extends MappingSetupHelper.AbstractSetupContext { // Use a LinkedHashMap for deterministic iteration private final Map properties = new LinkedHashMap<>(); @@ -93,17 +93,17 @@ public SetupContext withAnnotatedTypes(Set> annotatedTypes) { return withConfiguration( builder -> builder.annotationMapping().add( annotatedTypes ) ); } - public JavaBeanMapping setup(Class ... annotatedEntityTypes) { + public SearchMapping setup(Class ... annotatedEntityTypes) { return withAnnotatedEntityTypes( annotatedEntityTypes ).setup(); } @Override - protected JavaBeanMappingBuilder createBuilder() { - return JavaBeanMapping.builder( lookup ).setProperties( properties ); + protected SearchMappingBuilder createBuilder() { + return SearchMapping.builder( lookup ).setProperties( properties ); } @Override - protected CloseableJavaBeanMapping build(JavaBeanMappingBuilder builder) { + protected CloseableSearchMapping build(SearchMappingBuilder builder) { return builder.build(); } diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/CloseableJavaBeanMapping.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/CloseableSearchMapping.java similarity index 66% rename from mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/CloseableJavaBeanMapping.java rename to mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/CloseableSearchMapping.java index 759a302bf81..3e245f893e7 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/CloseableJavaBeanMapping.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/CloseableSearchMapping.java @@ -4,9 +4,9 @@ * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or . */ -package org.hibernate.search.mapper.javabean; +package org.hibernate.search.mapper.javabean.mapping; -public interface CloseableJavaBeanMapping extends JavaBeanMapping, AutoCloseable { +public interface CloseableSearchMapping extends SearchMapping, AutoCloseable { @Override void close(); diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/JavaBeanMapping.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMapping.java similarity index 78% rename from mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/JavaBeanMapping.java rename to mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMapping.java index 2ce50b644ed..474568e302e 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/JavaBeanMapping.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMapping.java @@ -4,14 +4,14 @@ * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or . */ -package org.hibernate.search.mapper.javabean; +package org.hibernate.search.mapper.javabean.mapping; import java.lang.invoke.MethodHandles; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.javabean.session.SearchSessionBuilder; -public interface JavaBeanMapping { +public interface SearchMapping { /** * @return A new session allowing to {@link SearchSession#getMainWorkPlan() index} or @@ -26,12 +26,12 @@ public interface JavaBeanMapping { */ SearchSessionBuilder createSessionWithOptions(); - static JavaBeanMappingBuilder builder() { + static SearchMappingBuilder builder() { return builder( MethodHandles.publicLookup() ); } - static JavaBeanMappingBuilder builder(MethodHandles.Lookup lookup) { - return new JavaBeanMappingBuilder( lookup ); + static SearchMappingBuilder builder(MethodHandles.Lookup lookup) { + return new SearchMappingBuilder( lookup ); } } diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/JavaBeanMappingBuilder.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMappingBuilder.java similarity index 87% rename from mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/JavaBeanMappingBuilder.java rename to mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMappingBuilder.java index 302a27bb4b8..c00cf004172 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/JavaBeanMappingBuilder.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMappingBuilder.java @@ -4,7 +4,7 @@ * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or . */ -package org.hibernate.search.mapper.javabean; +package org.hibernate.search.mapper.javabean.mapping; import java.lang.invoke.MethodHandles; import java.util.HashMap; @@ -27,7 +27,7 @@ import org.hibernate.search.mapper.pojo.mapping.definition.programmatic.ProgrammaticMappingConfigurationContext; import org.hibernate.search.util.common.impl.SuppressingCloser; -public final class JavaBeanMappingBuilder { +public final class SearchMappingBuilder { private static ConfigurationPropertySource getPropertySource(Map properties, ConfigurationPropertyChecker propertyChecker) { @@ -41,7 +41,7 @@ private static ConfigurationPropertySource getPropertySource(Map private final JavaBeanMappingKey mappingKey; private final JavaBeanMappingInitiator mappingInitiator; - JavaBeanMappingBuilder(MethodHandles.Lookup lookup) { + SearchMappingBuilder(MethodHandles.Lookup lookup) { propertyChecker = ConfigurationPropertyChecker.create(); propertySource = getPropertySource( properties, propertyChecker ); integrationBuilder = SearchIntegration.builder( propertySource, propertyChecker ); @@ -70,7 +70,7 @@ public ContainerExtractorConfigurationContext containerExtractors() { * and whose instances be added/updated/deleted through the {@link SearchSession#getMainWorkPlan() work plan}. * @return {@code this}, for call chaining. */ - public JavaBeanMappingBuilder addEntityType(Class type) { + public SearchMappingBuilder addEntityType(Class type) { mappingInitiator.addEntityType( type ); return this; } @@ -80,42 +80,42 @@ public JavaBeanMappingBuilder addEntityType(Class type) { * and whose instances be added/updated/deleted through the {@link SearchSession#getMainWorkPlan() work plan}. * @return {@code this}, for call chaining. */ - public JavaBeanMappingBuilder addEntityTypes(Set> types) { + public SearchMappingBuilder addEntityTypes(Set> types) { for ( Class type : types ) { addEntityType( type ); } return this; } - public JavaBeanMappingBuilder setMultiTenancyEnabled(boolean multiTenancyEnabled) { + public SearchMappingBuilder setMultiTenancyEnabled(boolean multiTenancyEnabled) { mappingInitiator.setMultiTenancyEnabled( multiTenancyEnabled ); return this; } - public JavaBeanMappingBuilder setImplicitProvidedId(boolean multiTenancyEnabled) { + public SearchMappingBuilder setImplicitProvidedId(boolean multiTenancyEnabled) { mappingInitiator.setImplicitProvidedId( multiTenancyEnabled ); return this; } - public JavaBeanMappingBuilder setAnnotatedTypeDiscoveryEnabled(boolean annotatedTypeDiscoveryEnabled) { + public SearchMappingBuilder setAnnotatedTypeDiscoveryEnabled(boolean annotatedTypeDiscoveryEnabled) { mappingInitiator.setAnnotatedTypeDiscoveryEnabled( annotatedTypeDiscoveryEnabled ); return this; } - public JavaBeanMappingBuilder setProperty(String name, Object value) { + public SearchMappingBuilder setProperty(String name, Object value) { properties.put( name, value ); return this; } - public JavaBeanMappingBuilder setProperties(Map map) { + public SearchMappingBuilder setProperties(Map map) { properties.putAll( map ); return this; } - public CloseableJavaBeanMapping build() { + public CloseableSearchMapping build() { SearchIntegrationPartialBuildState integrationPartialBuildState = integrationBuilder.prepareBuild(); SearchIntegration integration = null; - JavaBeanMapping mapping; + SearchMapping mapping; try { SearchIntegrationFinalizer finalizer = integrationPartialBuildState.finalizer( propertySource, propertyChecker ); diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingImpl.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingImpl.java index 1a69c7e4725..91d6f2ce7e6 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingImpl.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingImpl.java @@ -6,8 +6,8 @@ */ package org.hibernate.search.mapper.javabean.mapping.impl; -import org.hibernate.search.mapper.javabean.CloseableJavaBeanMapping; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.CloseableSearchMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.session.SearchSessionBuilder; import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanMappingContext; import org.hibernate.search.mapper.javabean.session.SearchSession; @@ -15,7 +15,8 @@ import org.hibernate.search.mapper.pojo.mapping.spi.PojoMappingDelegate; import org.hibernate.search.mapper.pojo.mapping.spi.AbstractPojoMappingImplementor; -public class JavaBeanMappingImpl extends AbstractPojoMappingImplementor implements CloseableJavaBeanMapping { +public class JavaBeanMappingImpl extends AbstractPojoMappingImplementor implements + CloseableSearchMapping { private final JavaBeanMappingContext mappingContext; private final JavaBeanTypeContextContainer typeContextContainer; @@ -27,7 +28,7 @@ public class JavaBeanMappingImpl extends AbstractPojoMappingImplementor { +public final class JavaBeanMappingKey implements MappingKey { private static final JavaBeanEventContextMessages MESSAGES = Messages.getBundle( JavaBeanEventContextMessages.class ); diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingPartialBuildState.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingPartialBuildState.java index b7dc70480c7..33459649166 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingPartialBuildState.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingPartialBuildState.java @@ -8,7 +8,7 @@ import org.hibernate.search.engine.mapper.mapping.spi.MappingImplementor; import org.hibernate.search.engine.mapper.mapping.spi.MappingPartialBuildState; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.pojo.mapping.spi.PojoMappingDelegate; public class JavaBeanMappingPartialBuildState implements MappingPartialBuildState { @@ -27,7 +27,7 @@ public void closeOnFailure() { mappingDelegate.close(); } - public MappingImplementor finalizeMapping() { + public MappingImplementor finalizeMapping() { return new JavaBeanMappingImpl( mappingDelegate, typeContextContainer ); } From 9312c486a2ea6a1a9e76d5508b1b643119069ef8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Mon, 9 Sep 2019 16:42:53 +0200 Subject: [PATCH 04/16] HSEARCH-3671 Remove the deprecated SearchScope interfaces They've been deprecated since 6.0.0.Alpha7, and are getting in the way of new work. --- .../mapper/orm/scope/impl/SearchScopeImpl.java | 2 +- .../search/mapper/orm/search/SearchScope.java | 16 ---------------- .../search/mapper/orm/session/SearchSession.java | 4 ++-- .../session/impl/HibernateOrmSearchSession.java | 2 +- .../orm/session/impl/LazyInitSearchSession.java | 2 +- 5 files changed, 5 insertions(+), 21 deletions(-) delete mode 100644 mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/SearchScope.java diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java index 8cbff73b746..10fec570c13 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java @@ -21,7 +21,7 @@ import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate; import org.hibernate.search.mapper.orm.common.EntityReference; -public class SearchScopeImpl implements SearchScope, org.hibernate.search.mapper.orm.search.SearchScope { +public class SearchScopeImpl implements SearchScope { private final HibernateOrmScopeMappingContext mappingContext; private final HibernateOrmScopeSessionContext sessionContext; diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/SearchScope.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/SearchScope.java deleted file mode 100644 index 166db4c60c5..00000000000 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/SearchScope.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Hibernate Search, full-text search for your domain model - * - * License: GNU Lesser General Public License (LGPL), version 2.1 or later - * See the lgpl.txt file in the root directory or . - */ -package org.hibernate.search.mapper.orm.search; - -/** - * @param A supertype of all types in this scope. - * @deprecated Use {@link org.hibernate.search.mapper.orm.scope.SearchScope} instead. - */ -@Deprecated -public interface SearchScope extends org.hibernate.search.mapper.orm.scope.SearchScope { - -} diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java index 18563a0725c..070b7c9852e 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java @@ -118,7 +118,7 @@ default MassIndexer massIndexer(Collection> types) { * @return The created scope. * @see SearchScope */ - default org.hibernate.search.mapper.orm.search.SearchScope scope(Class type) { + default SearchScope scope(Class type) { return scope( Collections.singleton( type ) ); } @@ -130,7 +130,7 @@ default org.hibernate.search.mapper.orm.search.SearchScope scope(Class * @return The created scope. * @see SearchScope */ - org.hibernate.search.mapper.orm.search.SearchScope scope(Collection> types); + SearchScope scope(Collection> types); /** * Creates a {@link MassIndexer} to rebuild the indexes of some or all indexed entity types. diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java index 2f627891f73..1e20ba19d28 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java @@ -29,10 +29,10 @@ import org.hibernate.search.mapper.orm.common.impl.EntityReferenceImpl; import org.hibernate.search.mapper.orm.logging.impl.Log; import org.hibernate.search.mapper.orm.mapping.impl.HibernateOrmMapping; +import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeIndexedTypeContext; import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeMappingContext; import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeSessionContext; -import org.hibernate.search.mapper.orm.search.SearchScope; import org.hibernate.search.mapper.orm.scope.impl.SearchScopeImpl; import org.hibernate.search.mapper.orm.session.AutomaticIndexingSynchronizationStrategy; import org.hibernate.search.mapper.orm.session.SearchSession; diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java index 67169ed8953..cd4ab967566 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java @@ -13,7 +13,7 @@ import org.hibernate.Session; import org.hibernate.engine.spi.SessionImplementor; -import org.hibernate.search.mapper.orm.search.SearchScope; +import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.AutomaticIndexingSynchronizationStrategy; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.orm.session.SearchSessionWritePlan; From da6a124b55ee0aa1a8a07485d29820f5bb4ea944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Mon, 9 Sep 2019 16:59:44 +0200 Subject: [PATCH 05/16] HSEARCH-3671 Create utils to convert from Hibernate ORM API (EntityManager, SessionFactory, ...) to SPI (*Implementor) --- .../hibernate/search/mapper/orm/Search.java | 44 +++---------------- .../orm/common/impl/HibernateOrmUtils.java | 43 ++++++++++++++++++ 2 files changed, 50 insertions(+), 37 deletions(-) create mode 100644 mapper/orm/src/main/java/org/hibernate/search/mapper/orm/common/impl/HibernateOrmUtils.java diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/Search.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/Search.java index 9c7b7e09812..b705aca6d58 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/Search.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/Search.java @@ -6,7 +6,6 @@ */ package org.hibernate.search.mapper.orm; -import java.lang.invoke.MethodHandles; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.TypedQuery; @@ -17,18 +16,15 @@ import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.query.Query; import org.hibernate.search.engine.search.query.SearchQuery; -import org.hibernate.search.mapper.orm.logging.impl.Log; +import org.hibernate.search.mapper.orm.common.impl.HibernateOrmUtils; import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.mapping.impl.HibernateSearchContextProviderService; import org.hibernate.search.mapper.orm.search.query.impl.HibernateOrmSearchQueryAdapter; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.orm.session.impl.LazyInitSearchSession; -import org.hibernate.search.util.common.logging.impl.LoggerFactory; public final class Search { - private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); - private Search() { // Private constructor } @@ -41,14 +37,8 @@ private Search() { * @throws org.hibernate.search.util.common.SearchException if the session NOT {@link Session#isOpen()}. */ public static SearchMapping mapping(SessionFactory sessionFactory) { - SessionFactoryImplementor sessionFactoryImpl; - try { - sessionFactoryImpl = sessionFactory.unwrap( SessionFactoryImplementor.class ); - } - catch (IllegalStateException e) { - throw log.hibernateSessionFactoryAccessError( e ); - } - + SessionFactoryImplementor sessionFactoryImpl = + HibernateOrmUtils.toSessionFactoryImplementor( sessionFactory ); return getSearchMapping( sessionFactoryImpl ); } @@ -60,14 +50,8 @@ public static SearchMapping mapping(SessionFactory sessionFactory) { * @throws org.hibernate.search.util.common.SearchException if the session NOT {@link Session#isOpen()}. */ public static SearchMapping mapping(EntityManagerFactory entityManagerFactory) { - SessionFactoryImplementor sessionFactoryImpl; - try { - sessionFactoryImpl = entityManagerFactory.unwrap( SessionFactoryImplementor.class ); - } - catch (IllegalStateException e) { - throw log.hibernateSessionFactoryAccessError( e ); - } - + SessionFactoryImplementor sessionFactoryImpl = + HibernateOrmUtils.toSessionFactoryImplementor( entityManagerFactory ); return getSearchMapping( sessionFactoryImpl ); } @@ -83,14 +67,7 @@ public static SearchMapping mapping(EntityManagerFactory entityManagerFactory) { * @throws org.hibernate.search.util.common.SearchException if the session NOT {@link Session#isOpen()}. */ public static SearchSession session(Session session) { - SessionImplementor sessionImpl; - try { - sessionImpl = session.unwrap( SessionImplementor.class ); - } - catch (IllegalStateException e) { - throw log.hibernateSessionAccessError( e ); - } - + SessionImplementor sessionImpl = HibernateOrmUtils.toSessionImplementor( session ); return createSearchSession( sessionImpl ); } @@ -106,14 +83,7 @@ public static SearchSession session(Session session) { * @throws org.hibernate.search.util.common.SearchException if the entity manager NOT {@link EntityManager#isOpen()}. */ public static SearchSession session(EntityManager entityManager) { - SessionImplementor sessionImpl; - try { - sessionImpl = entityManager.unwrap( SessionImplementor.class ); - } - catch (IllegalStateException e) { - throw log.hibernateSessionAccessError( e ); - } - + SessionImplementor sessionImpl = HibernateOrmUtils.toSessionImplementor( entityManager ); return createSearchSession( sessionImpl ); } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/common/impl/HibernateOrmUtils.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/common/impl/HibernateOrmUtils.java new file mode 100644 index 00000000000..c67b4cdc4b5 --- /dev/null +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/common/impl/HibernateOrmUtils.java @@ -0,0 +1,43 @@ +/* + * Hibernate Search, full-text search for your domain model + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or . + */ +package org.hibernate.search.mapper.orm.common.impl; + +import java.lang.invoke.MethodHandles; +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; + +import org.hibernate.engine.spi.SessionFactoryImplementor; +import org.hibernate.engine.spi.SessionImplementor; +import org.hibernate.search.mapper.orm.logging.impl.Log; +import org.hibernate.search.util.common.logging.impl.LoggerFactory; + +public final class HibernateOrmUtils { + + private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); + + private HibernateOrmUtils() { + } + + public static SessionFactoryImplementor toSessionFactoryImplementor(EntityManagerFactory entityManagerFactory) { + try { + return entityManagerFactory.unwrap( SessionFactoryImplementor.class ); + } + catch (IllegalStateException e) { + throw log.hibernateSessionFactoryAccessError( e ); + } + } + + public static SessionImplementor toSessionImplementor(EntityManager entityManager) { + try { + return entityManager.unwrap( SessionImplementor.class ); + } + catch (IllegalStateException e) { + throw log.hibernateSessionAccessError( e ); + } + } + +} From d8163acaa87e9fe0fbd3ad9fdf80a5815ec86f51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Mon, 9 Sep 2019 17:08:11 +0200 Subject: [PATCH 06/16] HSEARCH-3671 Use the mappingContext to retrieve the SessionFactoryImplementor from the MassIndexer Just to simplify the context passed by the SearchScope to the MassIndexer. --- .../context/impl/HibernateOrmMappingContextImpl.java | 3 +-- .../mapper/orm/mapping/impl/HibernateOrmMapping.java | 5 +++++ .../orm/massindexing/impl/BatchCoordinator.java | 10 +++------- .../massindexing/impl/BatchIndexingWorkspace.java | 12 +++++------- .../impl/HibernateOrmMassIndexingMappingContext.java | 3 +++ .../impl/IdentifierConsumerDocumentProducer.java | 10 +++------- .../orm/massindexing/impl/MassIndexerImpl.java | 8 ++------ .../mapper/orm/scope/impl/SearchScopeImpl.java | 1 - 8 files changed, 22 insertions(+), 30 deletions(-) diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/context/impl/HibernateOrmMappingContextImpl.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/context/impl/HibernateOrmMappingContextImpl.java index 2f6ce9fb156..f725248afda 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/context/impl/HibernateOrmMappingContextImpl.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/context/impl/HibernateOrmMappingContextImpl.java @@ -6,7 +6,6 @@ */ package org.hibernate.search.mapper.orm.mapping.context.impl; -import org.hibernate.SessionFactory; import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.search.mapper.orm.mapping.context.HibernateOrmMappingContext; import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoMappingContextImplementor; @@ -19,7 +18,7 @@ public HibernateOrmMappingContextImpl(SessionFactoryImplementor sessionFactory) } @Override - public SessionFactory getSessionFactory() { + public SessionFactoryImplementor getSessionFactory() { return sessionFactory; } } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java index 797862f6fe8..835f91b3ba1 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java @@ -150,6 +150,11 @@ public int getFetchSize() { return fetchSize; } + @Override + public SessionFactoryImplementor getSessionFactory() { + return mappingContext.getSessionFactory(); + } + @Override public PojoWorkPlan getCurrentWorkPlan(SessionImplementor session, boolean createIfDoesNotExist) { return HibernateOrmSearchSession.get( this, session ).getCurrentWorkPlan( createIfDoesNotExist ); diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchCoordinator.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchCoordinator.java index 01f3263798f..22cee95e763 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchCoordinator.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchCoordinator.java @@ -14,7 +14,6 @@ import java.util.concurrent.Future; import org.hibernate.CacheMode; -import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; import org.hibernate.search.mapper.orm.logging.impl.Log; import org.hibernate.search.mapper.orm.massindexing.monitor.MassIndexingMonitor; @@ -37,7 +36,6 @@ public class BatchCoordinator extends ErrorHandledRunnable { private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); - private final SessionFactoryImplementor sessionFactory; private final HibernateOrmMassIndexingMappingContext mappingContext; private final DetachedSessionContextImplementor sessionContext; private final Set> rootEntities; //entity types to reindex excluding all subtypes of each-other @@ -57,15 +55,13 @@ public class BatchCoordinator extends ErrorHandledRunnable { private final Integer transactionTimeout; private final List> indexingTasks = new ArrayList<>(); - public BatchCoordinator(SessionFactoryImplementor sessionFactory, - HibernateOrmMassIndexingMappingContext mappingContext, + public BatchCoordinator(HibernateOrmMassIndexingMappingContext mappingContext, DetachedSessionContextImplementor sessionContext, Set> rootEntities, PojoScopeWorkExecutor scopeWorkExecutor, int typesToIndexInParallel, int documentBuilderThreads, CacheMode cacheMode, int objectLoadingBatchSize, long objectsLimit, boolean optimizeAtEnd, boolean purgeAtStart, boolean optimizeAfterPurge, MassIndexingMonitor monitor, int idFetchSize, Integer transactionTimeout) { - this.sessionFactory = sessionFactory; this.mappingContext = mappingContext; this.sessionContext = sessionContext; this.rootEntities = rootEntities; @@ -132,11 +128,11 @@ private void doBatchWork() throws InterruptedException { } private BatchIndexingWorkspace createBatchIndexingWorkspace(Class indexedType) { - IdentifiableType indexTypeModel = sessionFactory.getMetamodel().entity( indexedType ); + IdentifiableType indexTypeModel = mappingContext.getSessionFactory().getMetamodel().entity( indexedType ); SingularAttribute idAttributeOfIndexedType = indexTypeModel.getId( indexTypeModel.getIdType().getJavaType() ); return new BatchIndexingWorkspace<>( - sessionFactory, mappingContext, sessionContext, + mappingContext, sessionContext, indexedType, idAttributeOfIndexedType, documentBuilderThreads, cacheMode, objectLoadingBatchSize, endAllSignal, diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchIndexingWorkspace.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchIndexingWorkspace.java index 5825fbc8b6f..a6bce9d6c10 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchIndexingWorkspace.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchIndexingWorkspace.java @@ -37,7 +37,6 @@ public class BatchIndexingWorkspace extends ErrorHandledRunnable { private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); - private final SessionFactoryImplementor sessionFactory; private final HibernateOrmMassIndexingMappingContext mappingContext; private final DetachedSessionContextImplementor sessionContext; @@ -64,14 +63,12 @@ public class BatchIndexingWorkspace extends ErrorHandledRunnable { private final List> tasks = new ArrayList<>(); - BatchIndexingWorkspace(SessionFactoryImplementor sessionFactory, - HibernateOrmMassIndexingMappingContext mappingContext, + BatchIndexingWorkspace(HibernateOrmMassIndexingMappingContext mappingContext, DetachedSessionContextImplementor sessionContext, Class type, SingularAttribute idAttributeOfIndexedType, int objectLoadingThreads, CacheMode cacheMode, int objectLoadingBatchSize, CountDownLatch endAllSignal, MassIndexingMonitor monitor, long objectsLimit, int idFetchSize, Integer transactionTimeout) { - this.sessionFactory = sessionFactory; this.mappingContext = mappingContext; this.sessionContext = sessionContext; @@ -105,7 +102,8 @@ public void runWithErrorHandler() { } try { - final BatchTransactionalContext transactionalContext = new BatchTransactionalContext( sessionFactory ); + final BatchTransactionalContext transactionalContext = + new BatchTransactionalContext( mappingContext.getSessionFactory() ); //first start the consumers, then the producers (reverse order): //from primary keys to LuceneWork ADD operations: //TODO HSEARCH-3110 implement and pass the error handler @@ -138,7 +136,7 @@ private void startProducingPrimaryKeys(BatchTransactionalContext transactionalCo final Runnable primaryKeyOutputter = new OptionallyWrapInJTATransaction( transactionalContext, new IdentifierProducer<>( - primaryKeyStream, sessionFactory, objectLoadingBatchSize, + primaryKeyStream, mappingContext.getSessionFactory(), objectLoadingBatchSize, indexedType, idAttributeOfIndexedType, monitor, objectsLimit, idFetchSize, sessionContext.getTenantIdentifier() ), @@ -157,7 +155,7 @@ private void startProducingPrimaryKeys(BatchTransactionalContext transactionalCo private void startTransformationToLuceneWork() { final Runnable documentOutputter = new IdentifierConsumerDocumentProducer<>( primaryKeyStream, monitor, - sessionFactory, mappingContext, + mappingContext, producerEndSignal, cacheMode, indexedType, idAttributeOfIndexedType, transactionTimeout, diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/HibernateOrmMassIndexingMappingContext.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/HibernateOrmMassIndexingMappingContext.java index 3a4df120fd7..eb8b0693350 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/HibernateOrmMassIndexingMappingContext.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/HibernateOrmMassIndexingMappingContext.java @@ -6,12 +6,15 @@ */ package org.hibernate.search.mapper.orm.massindexing.impl; +import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.search.engine.backend.work.execution.DocumentCommitStrategy; import org.hibernate.search.mapper.pojo.work.spi.PojoSessionWorkExecutor; public interface HibernateOrmMassIndexingMappingContext { + SessionFactoryImplementor getSessionFactory(); + PojoSessionWorkExecutor createSessionWorkExecutor(SessionImplementor sessionImplementor, DocumentCommitStrategy commitStrategy); diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/IdentifierConsumerDocumentProducer.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/IdentifierConsumerDocumentProducer.java index ada1fc39744..6ccfdfe6e6a 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/IdentifierConsumerDocumentProducer.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/IdentifierConsumerDocumentProducer.java @@ -20,8 +20,6 @@ import org.hibernate.CacheMode; import org.hibernate.FlushMode; import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.engine.transaction.jta.platform.spi.JtaPlatform; import org.hibernate.query.Query; @@ -49,7 +47,6 @@ public class IdentifierConsumerDocumentProducer implements Runnable { private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); private final ProducerConsumerQueue> source; - private final SessionFactory sessionFactory; private final HibernateOrmMassIndexingMappingContext mappingContext; private final CacheMode cacheMode; private final Class type; @@ -66,12 +63,11 @@ public class IdentifierConsumerDocumentProducer implements Runnable { IdentifierConsumerDocumentProducer( ProducerConsumerQueue> fromIdentifierListToEntities, MassIndexingMonitor monitor, - SessionFactory sessionFactory, HibernateOrmMassIndexingMappingContext mappingContext, + HibernateOrmMassIndexingMappingContext mappingContext, CountDownLatch producerEndSignal, CacheMode cacheMode, Class indexedType, SingularAttribute idAttributeOfIndexedType, Integer transactionTimeout, String tenantId) { this.source = fromIdentifierListToEntities; - this.sessionFactory = sessionFactory; this.mappingContext = mappingContext; this.cacheMode = cacheMode; this.type = indexedType; @@ -80,7 +76,7 @@ public class IdentifierConsumerDocumentProducer implements Runnable { this.producerEndSignal = producerEndSignal; this.transactionTimeout = transactionTimeout; this.tenantId = tenantId; - this.transactionManager = ( (SessionFactoryImplementor) sessionFactory ) + this.transactionManager = mappingContext.getSessionFactory() .getServiceRegistry() .getService( JtaPlatform.class ) .retrieveTransactionManager(); @@ -91,7 +87,7 @@ public class IdentifierConsumerDocumentProducer implements Runnable { @Override public void run() { log.trace( "started" ); - SessionImplementor session = (SessionImplementor) sessionFactory + SessionImplementor session = (SessionImplementor) mappingContext.getSessionFactory() .withOptions() .tenantIdentifier( tenantId ) .openSession(); diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/MassIndexerImpl.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/MassIndexerImpl.java index 50eaa0f350e..57f564b20ea 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/MassIndexerImpl.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/MassIndexerImpl.java @@ -13,7 +13,6 @@ import java.util.concurrent.CompletableFuture; import org.hibernate.CacheMode; -import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; import org.hibernate.search.mapper.orm.massindexing.MassIndexer; import org.hibernate.search.mapper.orm.logging.impl.Log; @@ -35,7 +34,6 @@ public class MassIndexerImpl implements MassIndexer { private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); private final HibernateOrmMassIndexingMappingContext mappingContext; - private final SessionFactoryImplementor sessionFactory; private final DetachedSessionContextImplementor sessionContext; private final Set> rootEntities; @@ -54,12 +52,10 @@ public class MassIndexerImpl implements MassIndexer { private int idFetchSize = 100; //reasonable default as we only load IDs private Integer idLoadingTransactionTimeout; - public MassIndexerImpl(SessionFactoryImplementor sessionFactory, - HibernateOrmMassIndexingMappingContext mappingContext, + public MassIndexerImpl(HibernateOrmMassIndexingMappingContext mappingContext, Set> targetedIndexedTypes, DetachedSessionContextImplementor sessionContext, PojoScopeWorkExecutor scopeWorkExecutor) { - this.sessionFactory = sessionFactory; this.mappingContext = mappingContext; this.sessionContext = sessionContext; this.rootEntities = toRootEntities( targetedIndexedTypes ); @@ -175,7 +171,7 @@ public void startAndWait() throws InterruptedException { protected BatchCoordinator createCoordinator() { return new BatchCoordinator( - sessionFactory, mappingContext, sessionContext, + mappingContext, sessionContext, rootEntities, scopeWorkExecutor, typesToIndexInParallel, documentBuilderThreads, cacheMode, objectLoadingBatchSize, objectsLimit, diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java index 10fec570c13..0bece196fbb 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java @@ -74,7 +74,6 @@ public SearchWriter writer() { @Override public MassIndexer massIndexer() { return new MassIndexerImpl( - sessionContext.getSession().getFactory(), mappingContext, delegate.getIncludedIndexedTypes(), sessionContext.getDetachedSessionContext(), From 1ba00d25aaed62a9eda011c26bd57b4f1fc99bfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Mon, 9 Sep 2019 17:36:49 +0200 Subject: [PATCH 07/16] HSEARCH-3671 Avoid reliance on the scope() methods in SearchSession interfaces Scope creation is about to be moved to the mapping, so we won't be able to create scope from interfaces anymore (only from implementations). --- .../mapper/javabean/session/SearchSession.java | 6 ++---- .../session/impl/JavaBeanSearchSession.java | 6 ++++++ .../mapper/orm/session/SearchSession.java | 14 ++++---------- .../impl/HibernateOrmSearchSession.java | 18 ++++++++++++++++++ .../session/impl/LazyInitSearchSession.java | 18 ++++++++++++++++++ 5 files changed, 48 insertions(+), 14 deletions(-) diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/SearchSession.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/SearchSession.java index ddb0b12f606..437905c10e2 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/SearchSession.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/SearchSession.java @@ -33,7 +33,7 @@ public interface SearchSession extends AutoCloseable { * @see SearchQueryHitTypeStep */ default SearchQueryHitTypeStep search(Class type) { - return scope( type ).search(); + return search( Collections.singleton( type ) ); } /** @@ -45,9 +45,7 @@ public interface SearchSession extends AutoCloseable { * @return The initial step of a DSL where the search query can be defined. * @see SearchQueryHitTypeStep */ - default SearchQueryHitTypeStep search(Collection> types) { - return scope( types ).search(); - } + SearchQueryHitTypeStep search(Collection> types); /** * Create a {@link SearchScope} limited to the given type. diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java index a67b6b234c1..7aa21d805da 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java @@ -12,6 +12,7 @@ import org.hibernate.search.engine.backend.work.execution.DocumentCommitStrategy; import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; import org.hibernate.search.engine.backend.common.DocumentReference; +import org.hibernate.search.engine.search.query.dsl.SearchQueryHitTypeStep; import org.hibernate.search.engine.search.loading.spi.ReferenceHitMapper; import org.hibernate.search.mapper.javabean.common.EntityReference; import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanMappingContext; @@ -53,6 +54,11 @@ public void close() { } } + @Override + public SearchQueryHitTypeStep search(Collection> types) { + return scope( types ).search(); + } + @Override public SearchScope scope(Collection> targetedTypes) { return new SearchScopeImpl( diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java index 070b7c9852e..178a11df4e2 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java @@ -31,7 +31,7 @@ public interface SearchSession { * @see HibernateOrmSearchQueryHitTypeStep */ default HibernateOrmSearchQueryHitTypeStep search(Class type) { - return scope( type ).search(); + return search( Collections.singleton( type ) ); } /** @@ -44,9 +44,7 @@ default HibernateOrmSearchQueryHitTypeStep search(Class type) { * @return The initial step of a DSL where the search query can be defined. * @see HibernateOrmSearchQueryHitTypeStep */ - default HibernateOrmSearchQueryHitTypeStep search(Collection> types) { - return scope( types ).search(); - } + HibernateOrmSearchQueryHitTypeStep search(Collection> types); /** * Create a {@link SearchWriter} for the indexes mapped to all indexed types. @@ -73,9 +71,7 @@ default SearchWriter writer(Class ... types) { * @param types A collection of indexed types, or supertypes of all indexed types that will be targeted by the writer. * @return A {@link SearchWriter}. */ - default SearchWriter writer(Collection> types) { - return scope( types ).writer(); - } + SearchWriter writer(Collection> types); /** * Creates a {@link MassIndexer} to rebuild the indexes of all indexed entity types. @@ -106,9 +102,7 @@ default MassIndexer massIndexer(Class... types) { * @param types A collection of indexed types, or supertypes of all indexed types that will be targeted by the writer. * @return A {@link SearchWriter}. */ - default MassIndexer massIndexer(Collection> types) { - return scope( types ).massIndexer(); - } + MassIndexer massIndexer(Collection> types); /** * Create a {@link SearchScope} limited to the given type. diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java index 1e20ba19d28..2615fc5954d 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java @@ -29,17 +29,20 @@ import org.hibernate.search.mapper.orm.common.impl.EntityReferenceImpl; import org.hibernate.search.mapper.orm.logging.impl.Log; import org.hibernate.search.mapper.orm.mapping.impl.HibernateOrmMapping; +import org.hibernate.search.mapper.orm.massindexing.MassIndexer; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeIndexedTypeContext; import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeMappingContext; import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeSessionContext; import org.hibernate.search.mapper.orm.scope.impl.SearchScopeImpl; +import org.hibernate.search.mapper.orm.search.query.dsl.HibernateOrmSearchQueryHitTypeStep; import org.hibernate.search.mapper.orm.session.AutomaticIndexingSynchronizationStrategy; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.orm.session.SearchSessionWritePlan; import org.hibernate.search.mapper.orm.mapping.context.impl.HibernateOrmMappingContextImpl; import org.hibernate.search.mapper.orm.session.context.impl.HibernateOrmSessionContextImpl; import org.hibernate.search.mapper.orm.common.EntityReference; +import org.hibernate.search.mapper.orm.writing.SearchWriter; import org.hibernate.search.mapper.pojo.work.spi.PojoWorkPlan; import org.hibernate.search.mapper.pojo.mapping.spi.PojoMappingDelegate; import org.hibernate.search.mapper.pojo.session.spi.AbstractPojoSearchSession; @@ -119,6 +122,21 @@ public void close() { // Nothing to do } + @Override + public HibernateOrmSearchQueryHitTypeStep search(Collection> types) { + return scope( types ).search(); + } + + @Override + public SearchWriter writer(Collection> types) { + return scope( types ).writer(); + } + + @Override + public MassIndexer massIndexer(Collection> types) { + return scope( types ).massIndexer(); + } + @Override public EntityManager toEntityManager() { return sessionContext.getSession(); diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java index cd4ab967566..ad4bde07142 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java @@ -13,10 +13,13 @@ import org.hibernate.Session; import org.hibernate.engine.spi.SessionImplementor; +import org.hibernate.search.mapper.orm.massindexing.MassIndexer; import org.hibernate.search.mapper.orm.scope.SearchScope; +import org.hibernate.search.mapper.orm.search.query.dsl.HibernateOrmSearchQueryHitTypeStep; import org.hibernate.search.mapper.orm.session.AutomaticIndexingSynchronizationStrategy; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.orm.session.SearchSessionWritePlan; +import org.hibernate.search.mapper.orm.writing.SearchWriter; /** * A lazily initializing {@link SearchSession}. @@ -36,6 +39,21 @@ public LazyInitSearchSession(Supplier HibernateOrmSearchQueryHitTypeStep search(Collection> types) { + return getDelegate().search( types ); + } + + @Override + public SearchWriter writer(Collection> types) { + return getDelegate().writer( types ); + } + + @Override + public MassIndexer massIndexer(Collection> types) { + return getDelegate().massIndexer( types ); + } + @Override public EntityManager toEntityManager() { return getDelegate().toEntityManager(); From 4d1c8de3ecba712d290f990f86092c0ec1362032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Mon, 9 Sep 2019 18:05:54 +0200 Subject: [PATCH 08/16] HSEARCH-3671 Rename the SessionContextImplementor interface (and similar) to BackendSessionContext In an attempt to clarify what these interfaces were originally intended for, at least initially: they are a view of the mapping/session from the backend. --- .../elasticsearch/ElasticsearchExtension.java | 4 +- .../impl/ElasticsearchIndexManagerImpl.java | 14 +++---- .../impl/ElasticsearchIndexScopeBuilder.java | 6 +-- .../impl/IndexManagerBackendContext.java | 16 ++++---- .../scope/impl/ElasticsearchIndexScope.java | 4 +- .../impl/ElasticsearchSearchContext.java | 4 +- .../ElasticsearchSearchPredicateContext.java | 6 +-- ...asticsearchSearchQueryHitTypeStepImpl.java | 8 ++-- .../impl/ElasticsearchSearchQueryBuilder.java | 6 +-- ...lasticsearchSearchQueryBuilderFactory.java | 12 +++--- ...lasticsearchSearchQueryExtractContext.java | 4 +- .../impl/ElasticsearchSearchQueryImpl.java | 6 +-- ...lasticsearchSearchQueryRequestContext.java | 6 +-- .../query/impl/SearchBackendContext.java | 8 ++-- ...lasticsearchIndexDocumentWorkExecutor.java | 4 +- .../impl/ElasticsearchIndexWorkExecutor.java | 6 +-- .../impl/ElasticsearchIndexWorkPlan.java | 4 +- .../impl/WorkExecutionBackendContext.java | 10 ++--- .../backend/lucene/LuceneExtension.java | 4 +- .../impl/IndexManagerBackendContext.java | 16 ++++---- .../index/impl/LuceneIndexManagerImpl.java | 14 +++---- .../index/impl/LuceneIndexScopeBuilder.java | 6 +-- .../lucene/scope/impl/LuceneIndexScope.java | 4 +- .../search/impl/LuceneSearchContext.java | 4 +- .../LuceneSearchQueryHitTypeStepImpl.java | 8 ++-- .../query/impl/LuceneSearchQueryBuilder.java | 6 +-- .../impl/LuceneSearchQueryBuilderFactory.java | 12 +++--- .../impl/LuceneSearchQueryExtractContext.java | 4 +- .../query/impl/LuceneSearchQueryImpl.java | 6 +-- .../impl/LuceneSearchQueryRequestContext.java | 6 +-- .../query/impl/SearchBackendContext.java | 8 ++-- .../impl/LuceneIndexDocumentWorkExecutor.java | 4 +- .../impl/LuceneIndexWorkExecutor.java | 6 +-- .../execution/impl/LuceneIndexWorkPlan.java | 4 +- .../impl/WorkExecutionBackendContext.java | 10 ++--- .../index/spi/IndexManagerImplementor.java | 14 +++---- .../mapping/spi/BackendMappingContext.java} | 4 +- .../session/spi/BackendSessionContext.java} | 8 ++-- .../spi/DetachedBackendSessionContext.java} | 26 ++++++------- ...mentFieldValueConvertContextExtension.java | 6 +-- ...mentFieldValueConvertContextExtension.java | 6 +-- ...mDocumentFieldValueConvertContextImpl.java | 6 +-- ...oDocumentFieldValueConvertContextImpl.java | 6 +-- ...dentifierValueConvertContextExtension.java | 6 +-- ...mentIdentifierValueConvertContextImpl.java | 6 +-- .../common/impl/MappedIndexManagerImpl.java | 14 +++---- .../impl/MappedIndexScopeBuilderImpl.java | 4 +- .../common/impl/MappedIndexScopeImpl.java | 4 +- .../mapping/spi/MappedIndexManager.java | 14 +++---- .../mapper/scope/spi/MappedIndexScope.java | 4 +- .../query/dsl/SearchQueryDslExtension.java | 6 +-- .../impl/DefaultSearchQueryHitTypeStep.java | 8 ++-- .../spi/AbstractSearchQueryHitTypeStep.java | 4 +- .../query/spi/SearchQueryBuilderFactory.java | 10 ++--- .../tck/multitenancy/MultiTenancyBaseIT.java | 14 +++---- .../multitenancy/MultiTenancyMismatchIT.java | 4 +- .../tck/search/query/SearchQueryBaseIT.java | 6 +-- .../backend/tck/work/IndexWorkExecutorIT.java | 12 +++--- .../definition/DocumentIdDefaultBridgeIT.java | 4 +- .../definition/FieldDefaultBridgeIT.java | 10 ++--- ...ava => JavaBeanBackendMappingContext.java} | 4 +- .../mapping/impl/JavaBeanMappingImpl.java | 8 ++-- ...ava => JavaBeanBackendSessionContext.java} | 12 +++--- .../session/impl/JavaBeanSearchSession.java | 16 ++++---- .../mapper/orm/HibernateOrmExtension.java | 26 ++++++------- .../impl/HibernateOrmMappingContextImpl.java | 4 +- .../orm/mapping/impl/HibernateOrmMapping.java | 14 +++---- .../massindexing/impl/BatchCoordinator.java | 6 +-- .../impl/BatchIndexingWorkspace.java | 7 ++-- .../massindexing/impl/MassIndexerImpl.java | 6 +-- .../impl/HibernateOrmScopeSessionContext.java | 4 +- .../orm/scope/impl/SearchScopeImpl.java | 2 +- .../impl/HibernateOrmSessionContextImpl.java | 4 +- .../impl/HibernateOrmSearchSession.java | 16 ++++---- ...dgeToDocumentIdentifierValueConverter.java | 10 ++--- .../impl/PojoValueBridgeContextExtension.java | 20 +++++----- .../impl/IdentifierMappingImplementor.java | 4 +- .../impl/PropertyIdentifierMapping.java | 8 ++-- .../impl/ProvidedStringIdentifierMapping.java | 8 ++-- .../RoutingKeyBridgeRoutingKeyProvider.java | 4 +- .../mapping/impl/RoutingKeyProvider.java | 4 +- .../bridge/mapping/spi/IdentifierMapping.java | 4 +- ...romDocumentIdentifierContextExtension.java | 6 +-- ...eToDocumentIdentifierContextExtension.java | 6 +-- .../PropertyBridgeWriteContextExtension.java | 6 +-- ...KeyBridgeToRoutingKeyContextExtension.java | 6 +-- .../TypeBridgeWriteContextExtension.java | 6 +-- ...ridgeFromIndexedValueContextExtension.java | 6 +-- ...eBridgeToIndexedValueContextExtension.java | 6 +-- .../runtime/impl/BridgeSessionContext.java | 6 +-- ...BridgeToDocumentIdentifierContextImpl.java | 6 +-- .../ValueBridgeToIndexedValueContextImpl.java | 6 +-- ...=> AbstractPojoBackendMappingContext.java} | 6 +-- .../impl/PojoContainedTypeManager.java | 6 +-- .../mapping/impl/PojoIndexedTypeManager.java | 20 +++++----- .../mapping/impl/PojoMappingDelegateImpl.java | 6 +-- .../pojo/mapping/spi/PojoMappingDelegate.java | 4 +- .../impl/NoOpPojoIndexingProcessor.java | 4 +- .../impl/PojoIndexingProcessor.java | 4 +- ...IndexingProcessorContainerElementNode.java | 6 +-- .../PojoIndexingProcessorPropertyNode.java | 4 +- .../impl/PojoIndexingProcessorTypeNode.java | 4 +- .../PojoIndexingProcessorValueBridgeNode.java | 4 +- .../scope/impl/PojoScopeDelegateImpl.java | 16 ++++---- .../impl/PojoScopeIndexedTypeContext.java | 4 +- ...=> AbstractPojoBackendSessionContext.java} | 10 ++--- .../impl/PojoSearchSessionDelegateImpl.java | 18 ++++----- .../spi/AbstractPojoSearchSession.java | 6 +-- .../spi/PojoSearchSessionDelegate.java | 4 +- .../work/impl/AbstractPojoTypeWorkPlan.java | 6 +-- .../work/impl/PojoContainedTypeWorkPlan.java | 4 +- .../work/impl/PojoDocumentContributor.java | 6 +-- .../impl/PojoDocumentReferenceProvider.java | 6 +-- .../work/impl/PojoIndexedTypeWorkPlan.java | 4 +- .../work/impl/PojoScopeWorkExecutorImpl.java | 4 +- .../impl/PojoSessionWorkExecutorImpl.java | 6 +-- .../impl/PojoTypeDocumentWorkExecutor.java | 6 +-- .../impl/PojoWorkContainedTypeContext.java | 6 +-- .../work/impl/PojoWorkIndexedTypeContext.java | 16 ++++---- .../pojo/work/impl/PojoWorkPlanImpl.java | 6 +-- ...xt.java => StubBackendMappingContext.java} | 6 +-- .../stub/StubBackendSessionContext.java | 39 +++++++++++++++++++ .../common/stub/StubSessionContext.java | 39 ------------------- .../impl/StubIndexDocumentWorkExecutor.java | 6 +-- .../backend/index/impl/StubIndexManager.java | 14 +++---- .../backend/index/impl/StubIndexScope.java | 6 +-- .../index/impl/StubIndexWorkExecutor.java | 6 +-- .../backend/index/impl/StubIndexWorkPlan.java | 6 +-- .../impl/StubSearchQueryBuilderFactory.java | 10 ++--- .../search/StubSearchQueryBuilder.java | 4 +- .../impl/StubSearchProjectionContext.java | 4 +- .../stub/mapper/GenericStubMappingScope.java | 6 +-- .../stub/mapper/StubMappingIndexManager.java | 30 +++++++------- .../common/stub/mapper/StubMappingScope.java | 4 +- 134 files changed, 541 insertions(+), 542 deletions(-) rename engine/src/main/java/org/hibernate/search/engine/{mapper/mapping/context/spi/MappingContextImplementor.java => backend/mapping/spi/BackendMappingContext.java} (77%) rename engine/src/main/java/org/hibernate/search/engine/{mapper/session/context/spi/SessionContextImplementor.java => backend/session/spi/BackendSessionContext.java} (63%) rename engine/src/main/java/org/hibernate/search/engine/{mapper/session/context/spi/DetachedSessionContextImplementor.java => backend/session/spi/DetachedBackendSessionContext.java} (58%) rename mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/context/impl/{JavaBeanMappingContext.java => JavaBeanBackendMappingContext.java} (75%) rename mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/context/impl/{JavaBeanSessionContext.java => JavaBeanBackendSessionContext.java} (73%) rename mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/context/spi/{AbstractPojoMappingContextImplementor.java => AbstractPojoBackendMappingContext.java} (84%) rename mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/context/spi/{AbstractPojoSessionContextImplementor.java => AbstractPojoBackendSessionContext.java} (83%) rename util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/{StubMappingContext.java => StubBackendMappingContext.java} (62%) create mode 100644 util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubBackendSessionContext.java delete mode 100644 util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubSessionContext.java diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/ElasticsearchExtension.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/ElasticsearchExtension.java index 75e6ef38ec5..30d35891d19 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/ElasticsearchExtension.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/ElasticsearchExtension.java @@ -30,7 +30,7 @@ import org.hibernate.search.backend.elasticsearch.search.predicate.impl.ElasticsearchSearchPredicateBuilderFactory; import org.hibernate.search.backend.elasticsearch.search.sort.impl.ElasticsearchSearchSortBuilder; import org.hibernate.search.backend.elasticsearch.search.sort.impl.ElasticsearchSearchSortBuilderFactory; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactoryExtension; import org.hibernate.search.engine.search.aggregation.dsl.spi.SearchAggregationDslContext; @@ -114,7 +114,7 @@ private ElasticsearchExtension() { public Optional> extendOptional( SearchQueryHitTypeStep original, IndexScope indexScope, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { if ( indexScope instanceof ElasticsearchIndexScope ) { return Optional.of( new ElasticsearchSearchQueryHitTypeStepImpl<>( diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexManagerImpl.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexManagerImpl.java index 2f8cbf65183..187d4d2b0cb 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexManagerImpl.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexManagerImpl.java @@ -32,10 +32,10 @@ import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkPlan; import org.hibernate.search.engine.cfg.spi.ConfigurationPropertySource; import org.hibernate.search.engine.cfg.spi.ConfigurationProperty; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.engine.reporting.spi.EventContexts; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.util.common.impl.SuppressingCloser; import org.hibernate.search.util.common.reporting.EventContext; import org.hibernate.search.util.common.impl.Closer; @@ -141,7 +141,7 @@ public ElasticsearchIndexModel getModel() { } @Override - public IndexWorkPlan createWorkPlan(SessionContextImplementor sessionContext, + public IndexWorkPlan createWorkPlan(BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { // The commit strategy is ignored, because Elasticsearch always commits changes to its transaction log. return backendContext.createWorkPlan( @@ -154,7 +154,7 @@ public IndexWorkPlan createWorkPlan(SessionC @Override public IndexDocumentWorkExecutor createDocumentWorkExecutor( - SessionContextImplementor sessionContext, DocumentCommitStrategy commitStrategy) { + BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy) { // The commit strategy is ignored, because Elasticsearch always commits changes to its transaction log. return backendContext.createDocumentWorkExecutor( parallelOrchestrator, elasticsearchIndexName, sessionContext @@ -162,14 +162,14 @@ public IndexDocumentWorkExecutor createDocum } @Override - public IndexWorkExecutor createWorkExecutor(DetachedSessionContextImplementor sessionContext) { + public IndexWorkExecutor createWorkExecutor(DetachedBackendSessionContext sessionContext) { return backendContext.createWorkExecutor( parallelOrchestrator, elasticsearchIndexName, sessionContext ); } @Override - public IndexScopeBuilder createScopeBuilder(MappingContextImplementor mappingContext) { + public IndexScopeBuilder createScopeBuilder(BackendMappingContext mappingContext) { return new ElasticsearchIndexScopeBuilder( backendContext, mappingContext, this ); diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexScopeBuilder.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexScopeBuilder.java index 0eea836c52f..2169cf44996 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexScopeBuilder.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexScopeBuilder.java @@ -16,7 +16,7 @@ import org.hibernate.search.backend.elasticsearch.scope.model.impl.ElasticsearchScopeModel; import org.hibernate.search.backend.elasticsearch.scope.impl.ElasticsearchIndexScope; import org.hibernate.search.engine.backend.scope.spi.IndexScopeBuilder; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.engine.backend.scope.spi.IndexScope; import org.hibernate.search.util.common.logging.impl.LoggerFactory; @@ -26,13 +26,13 @@ class ElasticsearchIndexScopeBuilder implements IndexScopeBuilder { private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); private final IndexManagerBackendContext backendContext; - private final MappingContextImplementor mappingContext; + private final BackendMappingContext mappingContext; // Use LinkedHashSet to ensure stable order when generating requests private final Set indexManagers = new LinkedHashSet<>(); ElasticsearchIndexScopeBuilder(IndexManagerBackendContext backendContext, - MappingContextImplementor mappingContext, ElasticsearchIndexManagerImpl indexManager) { + BackendMappingContext mappingContext, ElasticsearchIndexManagerImpl indexManager) { this.backendContext = backendContext; this.mappingContext = mappingContext; this.indexManagers.add( indexManager ); diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/IndexManagerBackendContext.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/IndexManagerBackendContext.java index d6a176d8157..7cda7a4a275 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/IndexManagerBackendContext.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/IndexManagerBackendContext.java @@ -33,9 +33,9 @@ import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkExecutor; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkPlan; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; import org.hibernate.search.util.common.reporting.EventContext; @@ -83,7 +83,7 @@ public IndexWorkPlan createWorkPlan( ElasticsearchWorkOrchestrator orchestrator, URLEncodedString indexName, DocumentRefreshStrategy refreshStrategy, - SessionContextImplementor sessionContext) { + BackendSessionContext sessionContext) { multiTenancyStrategy.checkTenantId( sessionContext.getTenantIdentifier(), eventContext ); return new ElasticsearchIndexWorkPlan( @@ -98,7 +98,7 @@ public IndexWorkPlan createWorkPlan( public IndexDocumentWorkExecutor createDocumentWorkExecutor( ElasticsearchWorkOrchestrator orchestrator, URLEncodedString indexName, - SessionContextImplementor sessionContext) { + BackendSessionContext sessionContext) { multiTenancyStrategy.checkTenantId( sessionContext.getTenantIdentifier(), eventContext ); return new ElasticsearchIndexDocumentWorkExecutor( link.getWorkBuilderFactory(), multiTenancyStrategy, orchestrator, @@ -107,7 +107,7 @@ public IndexDocumentWorkExecutor createDocum @Override public IndexWorkExecutor createWorkExecutor(ElasticsearchWorkOrchestrator orchestrator, URLEncodedString indexName, - DetachedSessionContextImplementor sessionContext) { + DetachedBackendSessionContext sessionContext) { multiTenancyStrategy.checkTenantId( sessionContext.getTenantIdentifier(), eventContext ); return new ElasticsearchIndexWorkExecutor( @@ -127,7 +127,7 @@ public SearchProjectionBackendContext getSearchProjectionBackendContext() { } @Override - public ElasticsearchSearchContext createSearchContext(MappingContextImplementor mappingContext, + public ElasticsearchSearchContext createSearchContext(BackendMappingContext mappingContext, ElasticsearchScopeModel scopeModel) { return new ElasticsearchSearchContext( mappingContext, @@ -140,7 +140,7 @@ public ElasticsearchSearchContext createSearchContext(MappingContextImplementor @Override public ElasticsearchSearchQueryBuilder createSearchQueryBuilder( ElasticsearchSearchContext searchContext, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, ElasticsearchSearchProjection rootProjection) { multiTenancyStrategy.checkTenantId( sessionContext.getTenantIdentifier(), eventContext ); diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/scope/impl/ElasticsearchIndexScope.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/scope/impl/ElasticsearchIndexScope.java index c5d4e9d5ba0..21e18d974d8 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/scope/impl/ElasticsearchIndexScope.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/scope/impl/ElasticsearchIndexScope.java @@ -15,7 +15,7 @@ import org.hibernate.search.backend.elasticsearch.search.query.impl.ElasticsearchSearchQueryBuilderFactory; import org.hibernate.search.backend.elasticsearch.search.query.impl.SearchBackendContext; import org.hibernate.search.backend.elasticsearch.search.sort.impl.ElasticsearchSearchSortBuilderFactoryImpl; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.engine.backend.scope.spi.IndexScope; import org.hibernate.search.engine.search.aggregation.spi.SearchAggregationBuilderFactory; @@ -30,7 +30,7 @@ public class ElasticsearchIndexScope private final ElasticsearchSearchQueryBuilderFactory searchQueryFactory; public ElasticsearchIndexScope( - MappingContextImplementor mappingContext, + BackendMappingContext mappingContext, SearchBackendContext backendContext, ElasticsearchScopeModel model) { ElasticsearchSearchContext searchContext = backendContext.createSearchContext( diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/impl/ElasticsearchSearchContext.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/impl/ElasticsearchSearchContext.java index 918081821f3..4dbf3f02aaf 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/impl/ElasticsearchSearchContext.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/impl/ElasticsearchSearchContext.java @@ -15,7 +15,7 @@ import org.hibernate.search.engine.backend.types.converter.runtime.spi.ToDocumentIdentifierValueConvertContext; import org.hibernate.search.engine.backend.types.converter.runtime.spi.ToDocumentFieldValueConvertContextImpl; import org.hibernate.search.engine.backend.types.converter.runtime.spi.ToDocumentIdentifierValueConvertContextImpl; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import com.google.gson.Gson; @@ -33,7 +33,7 @@ public final class ElasticsearchSearchContext { // Targeted indexes private final ElasticsearchScopeModel scopeModel; - public ElasticsearchSearchContext(MappingContextImplementor mappingContext, + public ElasticsearchSearchContext(BackendMappingContext mappingContext, Gson userFacingGson, ElasticsearchJsonSyntaxHelper jsonSyntaxHelper, MultiTenancyStrategy multiTenancyStrategy, ElasticsearchScopeModel scopeModel) { diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/predicate/impl/ElasticsearchSearchPredicateContext.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/predicate/impl/ElasticsearchSearchPredicateContext.java index 3801746a9de..c85bb56bc36 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/predicate/impl/ElasticsearchSearchPredicateContext.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/predicate/impl/ElasticsearchSearchPredicateContext.java @@ -6,13 +6,13 @@ */ package org.hibernate.search.backend.elasticsearch.search.predicate.impl; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; public class ElasticsearchSearchPredicateContext { - private final SessionContextImplementor sessionContext; + private final BackendSessionContext sessionContext; - public ElasticsearchSearchPredicateContext(SessionContextImplementor sessionContext) { + public ElasticsearchSearchPredicateContext(BackendSessionContext sessionContext) { this.sessionContext = sessionContext; } diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/dsl/impl/ElasticsearchSearchQueryHitTypeStepImpl.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/dsl/impl/ElasticsearchSearchQueryHitTypeStepImpl.java index 77db739f783..22e50f8dab5 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/dsl/impl/ElasticsearchSearchQueryHitTypeStepImpl.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/dsl/impl/ElasticsearchSearchQueryHitTypeStepImpl.java @@ -18,7 +18,7 @@ import org.hibernate.search.backend.elasticsearch.search.impl.ElasticsearchSearchQueryElementCollector; import org.hibernate.search.backend.elasticsearch.scope.impl.ElasticsearchIndexScope; import org.hibernate.search.backend.elasticsearch.search.query.impl.ElasticsearchSearchQueryBuilder; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.projection.SearchProjection; import org.hibernate.search.engine.search.predicate.dsl.PredicateFinalStep; @@ -38,11 +38,11 @@ public class ElasticsearchSearchQueryHitTypeStepImpl implements ElasticsearchSearchQueryHitTypeStep { private final ElasticsearchIndexScope indexScope; - private final SessionContextImplementor sessionContext; + private final BackendSessionContext sessionContext; private final LoadingContextBuilder loadingContextBuilder; public ElasticsearchSearchQueryHitTypeStepImpl(ElasticsearchIndexScope indexScope, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { this.indexScope = indexScope; this.sessionContext = sessionContext; @@ -103,7 +103,7 @@ protected ElasticsearchIndexScope getIndexScope() { } @Override - protected SessionContextImplementor getSessionContext() { + protected BackendSessionContext getSessionContext() { return sessionContext; } diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilder.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilder.java index 7d677d35015..4675ebeae60 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilder.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilder.java @@ -25,7 +25,7 @@ import org.hibernate.search.backend.elasticsearch.search.query.ElasticsearchSearchQuery; import org.hibernate.search.backend.elasticsearch.work.builder.factory.impl.ElasticsearchWorkBuilderFactory; import org.hibernate.search.backend.elasticsearch.work.impl.ElasticsearchSearchResultExtractor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.aggregation.AggregationKey; import org.hibernate.search.engine.search.loading.context.spi.LoadingContext; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; @@ -50,7 +50,7 @@ public class ElasticsearchSearchQueryBuilder private final MultiTenancyStrategy multiTenancyStrategy; private final ElasticsearchSearchContext searchContext; - private final SessionContextImplementor sessionContext; + private final BackendSessionContext sessionContext; private final ElasticsearchSearchPredicateContext rootPredicateContext; private final LoadingContextBuilder loadingContextBuilder; @@ -68,7 +68,7 @@ public ElasticsearchSearchQueryBuilder( ElasticsearchWorkOrchestrator queryOrchestrator, MultiTenancyStrategy multiTenancyStrategy, ElasticsearchSearchContext searchContext, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, ElasticsearchSearchProjection rootProjection) { this.workFactory = workFactory; diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilderFactory.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilderFactory.java index 76f2a271425..32d700cb654 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilderFactory.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilderFactory.java @@ -17,7 +17,7 @@ import org.hibernate.search.backend.elasticsearch.search.projection.impl.ElasticsearchEntityReferenceProjection; import org.hibernate.search.backend.elasticsearch.search.projection.impl.ElasticsearchSearchProjection; import org.hibernate.search.backend.elasticsearch.search.projection.impl.ElasticsearchSearchProjectionBuilderFactory; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.projection.SearchProjection; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; import org.hibernate.search.engine.search.query.spi.SearchQueryBuilderFactory; @@ -40,7 +40,7 @@ public ElasticsearchSearchQueryBuilderFactory(SearchBackendContext searchBackend @Override public ElasticsearchSearchQueryBuilder asEntity( - SessionContextImplementor sessionContext, LoadingContextBuilder loadingContextBuilder) { + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { return createSearchQueryBuilder( sessionContext, loadingContextBuilder, new ElasticsearchEntityProjection<>( searchContext.getHibernateSearchIndexNames(), searchBackendContext.getDocumentReferenceExtractorHelper() ) @@ -49,7 +49,7 @@ public ElasticsearchSearchQueryBuilder asEntity( @Override public ElasticsearchSearchQueryBuilder asReference( - SessionContextImplementor sessionContext, LoadingContextBuilder loadingContextBuilder) { + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { return createSearchQueryBuilder( sessionContext, loadingContextBuilder, new ElasticsearchEntityReferenceProjection<>( searchContext.getHibernateSearchIndexNames(), searchBackendContext.getDocumentReferenceExtractorHelper() ) @@ -58,7 +58,7 @@ public ElasticsearchSearchQueryBuilder asReference( @Override public

ElasticsearchSearchQueryBuilder

asProjection( - SessionContextImplementor sessionContext, LoadingContextBuilder loadingContextBuilder, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, SearchProjection

projection) { return createSearchQueryBuilder( sessionContext, loadingContextBuilder, @@ -68,7 +68,7 @@ public

ElasticsearchSearchQueryBuilder

asProjection( @Override public ElasticsearchSearchQueryBuilder> asProjections( - SessionContextImplementor sessionContext, LoadingContextBuilder loadingContextBuilder, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, SearchProjection... projections) { return createSearchQueryBuilder( sessionContext, loadingContextBuilder, createRootProjection( projections ) ); } @@ -84,7 +84,7 @@ private ElasticsearchSearchProjection> createRootProjection(SearchPro } private ElasticsearchSearchQueryBuilder createSearchQueryBuilder( - SessionContextImplementor sessionContext, LoadingContextBuilder loadingContextBuilder, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, ElasticsearchSearchProjection rootProjection) { return searchBackendContext.createSearchQueryBuilder( searchContext, diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryExtractContext.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryExtractContext.java index 276441100dc..e48517cf2c8 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryExtractContext.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryExtractContext.java @@ -11,7 +11,7 @@ import org.hibernate.search.backend.elasticsearch.search.projection.impl.SearchProjectionTransformContext; import org.hibernate.search.engine.backend.types.converter.runtime.FromDocumentFieldValueConvertContext; import org.hibernate.search.engine.backend.types.converter.runtime.spi.FromDocumentFieldValueConvertContextImpl; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.loading.spi.ProjectionHitMapper; import com.google.gson.JsonObject; @@ -29,7 +29,7 @@ class ElasticsearchSearchQueryExtractContext implements AggregationExtractContex private final JsonObject responseBody; ElasticsearchSearchQueryExtractContext(ElasticsearchSearchQueryRequestContext requestContext, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, ProjectionHitMapper projectionHitMapper, JsonObject responseBody) { this.requestContext = requestContext; diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryImpl.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryImpl.java index 3844ba9f2c9..30d2bbe2974 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryImpl.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryImpl.java @@ -23,7 +23,7 @@ import org.hibernate.search.backend.elasticsearch.work.impl.ElasticsearchSearchResultExtractor; import org.hibernate.search.backend.elasticsearch.work.result.impl.ExplainResult; import org.hibernate.search.engine.common.dsl.spi.DslExtensionState; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.loading.context.spi.LoadingContext; import org.hibernate.search.engine.search.query.spi.AbstractSearchQuery; import org.hibernate.search.engine.search.query.SearchQueryExtension; @@ -48,7 +48,7 @@ public class ElasticsearchSearchQueryImpl extends AbstractSearchQuery loadingContext; private final Set routingKeys; private final JsonObject payload; @@ -57,7 +57,7 @@ public class ElasticsearchSearchQueryImpl extends AbstractSearchQuery loadingContext, Set routingKeys, JsonObject payload, diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryRequestContext.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryRequestContext.java index 0d42f3927ce..dbcab2ee096 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryRequestContext.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryRequestContext.java @@ -12,7 +12,7 @@ import org.hibernate.search.backend.elasticsearch.search.aggregation.impl.AggregationRequestContext; import org.hibernate.search.backend.elasticsearch.search.projection.impl.DistanceSortKey; import org.hibernate.search.backend.elasticsearch.search.projection.impl.SearchProjectionRequestContext; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.loading.context.spi.LoadingContext; import org.hibernate.search.engine.spatial.GeoPoint; @@ -31,12 +31,12 @@ */ class ElasticsearchSearchQueryRequestContext implements SearchProjectionRequestContext, AggregationRequestContext { - private final SessionContextImplementor sessionContext; + private final BackendSessionContext sessionContext; private final LoadingContext loadingContext; private final Map distanceSorts; ElasticsearchSearchQueryRequestContext( - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContext loadingContext, Map distanceSorts) { this.sessionContext = sessionContext; diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/SearchBackendContext.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/SearchBackendContext.java index b2e496728f5..90dad2292bc 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/SearchBackendContext.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/SearchBackendContext.java @@ -11,8 +11,8 @@ import org.hibernate.search.backend.elasticsearch.search.projection.impl.DocumentReferenceExtractorHelper; import org.hibernate.search.backend.elasticsearch.search.projection.impl.ElasticsearchSearchProjection; import org.hibernate.search.backend.elasticsearch.search.projection.impl.SearchProjectionBackendContext; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; /** @@ -32,12 +32,12 @@ public interface SearchBackendContext { SearchProjectionBackendContext getSearchProjectionBackendContext(); - ElasticsearchSearchContext createSearchContext(MappingContextImplementor mappingContext, + ElasticsearchSearchContext createSearchContext(BackendMappingContext mappingContext, ElasticsearchScopeModel scopeModel); ElasticsearchSearchQueryBuilder createSearchQueryBuilder( ElasticsearchSearchContext searchContext, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, ElasticsearchSearchProjection rootProjection); diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexDocumentWorkExecutor.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexDocumentWorkExecutor.java index b8fc9fcbb9c..28a9d5202df 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexDocumentWorkExecutor.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexDocumentWorkExecutor.java @@ -17,7 +17,7 @@ import org.hibernate.search.engine.backend.work.execution.spi.DocumentContributor; import org.hibernate.search.engine.backend.work.execution.spi.DocumentReferenceProvider; import org.hibernate.search.engine.backend.work.execution.spi.IndexDocumentWorkExecutor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import com.google.gson.JsonObject; @@ -32,7 +32,7 @@ public class ElasticsearchIndexDocumentWorkExecutor implements IndexDocumentWork public ElasticsearchIndexDocumentWorkExecutor(ElasticsearchWorkBuilderFactory factory, MultiTenancyStrategy multiTenancyStrategy, ElasticsearchWorkOrchestrator orchestrator, URLEncodedString indexName, - SessionContextImplementor sessionContext) { + BackendSessionContext sessionContext) { this.factory = factory; this.multiTenancyStrategy = multiTenancyStrategy; this.orchestrator = orchestrator; diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexWorkExecutor.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexWorkExecutor.java index 3948a1cd1bc..33951bd5459 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexWorkExecutor.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexWorkExecutor.java @@ -13,7 +13,7 @@ import org.hibernate.search.backend.elasticsearch.util.spi.URLEncodedString; import org.hibernate.search.backend.elasticsearch.work.builder.factory.impl.ElasticsearchWorkBuilderFactory; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkExecutor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import com.google.gson.JsonObject; @@ -23,12 +23,12 @@ public class ElasticsearchIndexWorkExecutor implements IndexWorkExecutor { private final MultiTenancyStrategy multiTenancyStrategy; private final ElasticsearchWorkOrchestrator orchestrator; private final URLEncodedString indexName; - private final DetachedSessionContextImplementor sessionContext; + private final DetachedBackendSessionContext sessionContext; public ElasticsearchIndexWorkExecutor(ElasticsearchWorkBuilderFactory builderFactory, MultiTenancyStrategy multiTenancyStrategy, ElasticsearchWorkOrchestrator orchestrator, URLEncodedString indexName, - DetachedSessionContextImplementor sessionContext) { + DetachedBackendSessionContext sessionContext) { this.builderFactory = builderFactory; this.multiTenancyStrategy = multiTenancyStrategy; this.orchestrator = orchestrator; diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexWorkPlan.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexWorkPlan.java index 94c221d6048..042cf6c12c7 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexWorkPlan.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/ElasticsearchIndexWorkPlan.java @@ -20,7 +20,7 @@ import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkPlan; import org.hibernate.search.engine.backend.work.execution.spi.DocumentContributor; import org.hibernate.search.engine.backend.work.execution.spi.DocumentReferenceProvider; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import com.google.gson.JsonObject; @@ -42,7 +42,7 @@ public ElasticsearchIndexWorkPlan(ElasticsearchWorkBuilderFactory builderFactory ElasticsearchWorkOrchestrator orchestrator, URLEncodedString indexName, DocumentRefreshStrategy refreshStrategy, - SessionContextImplementor sessionContext) { + BackendSessionContext sessionContext) { this.builderFactory = builderFactory; this.multiTenancyStrategy = multiTenancyStrategy; this.orchestrator = orchestrator; diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/WorkExecutionBackendContext.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/WorkExecutionBackendContext.java index b20cfd264a5..142137f7d39 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/WorkExecutionBackendContext.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/WorkExecutionBackendContext.java @@ -13,8 +13,8 @@ import org.hibernate.search.engine.backend.work.execution.spi.IndexDocumentWorkExecutor; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkExecutor; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkPlan; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; /** * An interface with knowledge of the backend internals, @@ -33,14 +33,14 @@ IndexWorkPlan createWorkPlan( ElasticsearchWorkOrchestrator orchestrator, URLEncodedString indexName, DocumentRefreshStrategy refreshStrategy, - SessionContextImplementor sessionContext); + BackendSessionContext sessionContext); IndexDocumentWorkExecutor createDocumentWorkExecutor( ElasticsearchWorkOrchestrator orchestrator, URLEncodedString indexName, - SessionContextImplementor sessionContext); + BackendSessionContext sessionContext); IndexWorkExecutor createWorkExecutor(ElasticsearchWorkOrchestrator orchestrator, URLEncodedString indexName, - DetachedSessionContextImplementor sessionContext); + DetachedBackendSessionContext sessionContext); } diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/LuceneExtension.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/LuceneExtension.java index ebb7dffb8f7..e908ffb2049 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/LuceneExtension.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/LuceneExtension.java @@ -30,7 +30,7 @@ import org.hibernate.search.backend.lucene.search.predicate.impl.LuceneSearchPredicateBuilderFactory; import org.hibernate.search.backend.lucene.search.sort.impl.LuceneSearchSortBuilder; import org.hibernate.search.backend.lucene.search.sort.impl.LuceneSearchSortBuilderFactory; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactoryExtension; import org.hibernate.search.engine.search.aggregation.dsl.spi.SearchAggregationDslContext; @@ -114,7 +114,7 @@ private LuceneExtension() { public Optional> extendOptional( SearchQueryHitTypeStep original, IndexScope indexScope, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { if ( indexScope instanceof LuceneIndexScope ) { return Optional.of( new LuceneSearchQueryHitTypeStepImpl<>( diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java index af49d53ff60..642cc3a8445 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java @@ -43,9 +43,9 @@ import org.hibernate.search.backend.lucene.multitenancy.impl.MultiTenancyStrategy; import org.hibernate.search.backend.lucene.work.impl.LuceneWorkFactory; import org.hibernate.search.engine.common.spi.ErrorHandler; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.reporting.spi.EventContexts; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; import org.hibernate.search.util.common.impl.SuppressingCloser; @@ -93,7 +93,7 @@ public String toString() { public IndexWorkPlan createWorkPlan( WorkExecutionIndexManagerContext indexManagerContext, LuceneIndexEntryFactory indexEntryFactory, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { multiTenancyStrategy.checkTenantId( sessionContext.getTenantIdentifier(), eventContext ); @@ -125,7 +125,7 @@ public LuceneWriteWorkOrchestratorImplementor createOrchestrator(String indexNam public IndexDocumentWorkExecutor createDocumentWorkExecutor( WorkExecutionIndexManagerContext indexManagerContext, LuceneIndexEntryFactory indexEntryFactory, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy) { multiTenancyStrategy.checkTenantId( sessionContext.getTenantIdentifier(), eventContext ); @@ -140,14 +140,14 @@ public IndexDocumentWorkExecutor createDocumentWorkEx @Override public IndexWorkExecutor createWorkExecutor(WorkExecutionIndexManagerContext indexManagerContext, - DetachedSessionContextImplementor sessionContext) { + DetachedBackendSessionContext sessionContext) { multiTenancyStrategy.checkTenantId( sessionContext.getTenantIdentifier(), eventContext ); return new LuceneIndexWorkExecutor( workFactory, indexManagerContext, sessionContext ); } @Override - public LuceneSearchContext createSearchContext(MappingContextImplementor mappingContext, + public LuceneSearchContext createSearchContext(BackendMappingContext mappingContext, LuceneScopeModel scopeModel) { return new LuceneSearchContext( mappingContext, analysisDefinitionRegistry, multiTenancyStrategy, scopeModel @@ -157,7 +157,7 @@ public LuceneSearchContext createSearchContext(MappingContextImplementor mapping @Override public LuceneSearchQueryBuilder createSearchQueryBuilder( LuceneSearchContext searchContext, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, LuceneSearchProjection rootProjection) { multiTenancyStrategy.checkTenantId( sessionContext.getTenantIdentifier(), eventContext ); diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerImpl.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerImpl.java index 91d4ea3191a..4bd971c4211 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerImpl.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerImpl.java @@ -28,9 +28,9 @@ import org.hibernate.search.backend.lucene.document.model.impl.LuceneIndexModel; import org.hibernate.search.backend.lucene.logging.impl.Log; import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.util.common.reporting.EventContext; import org.hibernate.search.engine.reporting.spi.EventContexts; import org.hibernate.search.util.common.impl.Closer; @@ -87,7 +87,7 @@ public void close() { } @Override - public IndexWorkPlan createWorkPlan(SessionContextImplementor sessionContext, + public IndexWorkPlan createWorkPlan(BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { return backendContext.createWorkPlan( shardHolder, indexEntryFactory, @@ -97,7 +97,7 @@ public IndexWorkPlan createWorkPlan(SessionContextImp @Override public IndexDocumentWorkExecutor createDocumentWorkExecutor( - SessionContextImplementor sessionContext, DocumentCommitStrategy commitStrategy) { + BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy) { return backendContext.createDocumentWorkExecutor( shardHolder, indexEntryFactory, sessionContext, commitStrategy @@ -105,12 +105,12 @@ public IndexDocumentWorkExecutor createDocumentWorkEx } @Override - public IndexWorkExecutor createWorkExecutor(DetachedSessionContextImplementor sessionContext) { + public IndexWorkExecutor createWorkExecutor(DetachedBackendSessionContext sessionContext) { return backendContext.createWorkExecutor( shardHolder, sessionContext ); } @Override - public IndexScopeBuilder createScopeBuilder(MappingContextImplementor mappingContext) { + public IndexScopeBuilder createScopeBuilder(BackendMappingContext mappingContext) { return new LuceneIndexScopeBuilder( backendContext, mappingContext, this ); diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexScopeBuilder.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexScopeBuilder.java index 691c2a233f7..df5c7fa72f2 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexScopeBuilder.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexScopeBuilder.java @@ -17,7 +17,7 @@ import org.hibernate.search.backend.lucene.logging.impl.Log; import org.hibernate.search.backend.lucene.scope.impl.LuceneIndexScope; import org.hibernate.search.engine.backend.scope.spi.IndexScopeBuilder; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.engine.backend.scope.spi.IndexScope; import org.hibernate.search.util.common.logging.impl.LoggerFactory; @@ -27,12 +27,12 @@ class LuceneIndexScopeBuilder implements IndexScopeBuilder { private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); private final IndexManagerBackendContext backendContext; - private final MappingContextImplementor mappingContext; + private final BackendMappingContext mappingContext; // Use LinkedHashSet to ensure stable order when generating requests private final Set indexManagers = new LinkedHashSet<>(); - LuceneIndexScopeBuilder(IndexManagerBackendContext backendContext, MappingContextImplementor mappingContext, + LuceneIndexScopeBuilder(IndexManagerBackendContext backendContext, BackendMappingContext mappingContext, LuceneIndexManagerImpl indexManager) { this.backendContext = backendContext; this.mappingContext = mappingContext; diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/scope/impl/LuceneIndexScope.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/scope/impl/LuceneIndexScope.java index df56eed24fb..ba5e465d155 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/scope/impl/LuceneIndexScope.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/scope/impl/LuceneIndexScope.java @@ -15,7 +15,7 @@ import org.hibernate.search.backend.lucene.search.query.impl.LuceneSearchQueryBuilderFactory; import org.hibernate.search.backend.lucene.search.query.impl.SearchBackendContext; import org.hibernate.search.backend.lucene.search.sort.impl.LuceneSearchSortBuilderFactoryImpl; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.engine.backend.scope.spi.IndexScope; import org.hibernate.search.engine.search.aggregation.spi.SearchAggregationBuilderFactory; @@ -31,7 +31,7 @@ public class LuceneIndexScope private final LuceneSearchAggregationBuilderFactory searchAggregationFactory; public LuceneIndexScope(SearchBackendContext backendContext, - MappingContextImplementor mappingContext, + BackendMappingContext mappingContext, LuceneScopeModel model) { this.model = model; LuceneSearchContext searchContext = backendContext.createSearchContext( mappingContext, model ); diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/impl/LuceneSearchContext.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/impl/LuceneSearchContext.java index 965404df497..804acd6926e 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/impl/LuceneSearchContext.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/impl/LuceneSearchContext.java @@ -16,7 +16,7 @@ import org.hibernate.search.engine.backend.types.converter.runtime.spi.ToDocumentIdentifierValueConvertContext; import org.hibernate.search.engine.backend.types.converter.runtime.spi.ToDocumentFieldValueConvertContextImpl; import org.hibernate.search.engine.backend.types.converter.runtime.spi.ToDocumentIdentifierValueConvertContextImpl; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.apache.lucene.search.Query; @@ -33,7 +33,7 @@ public final class LuceneSearchContext { // Targeted indexes private final LuceneScopeModel scopeModel; - public LuceneSearchContext(MappingContextImplementor mappingContext, + public LuceneSearchContext(BackendMappingContext mappingContext, LuceneAnalysisDefinitionRegistry analysisDefinitionRegistry, MultiTenancyStrategy multiTenancyStrategy, LuceneScopeModel scopeModel) { diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/dsl/impl/LuceneSearchQueryHitTypeStepImpl.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/dsl/impl/LuceneSearchQueryHitTypeStepImpl.java index fb42dbec274..530db32ac07 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/dsl/impl/LuceneSearchQueryHitTypeStepImpl.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/dsl/impl/LuceneSearchQueryHitTypeStepImpl.java @@ -18,7 +18,7 @@ import org.hibernate.search.backend.lucene.search.impl.LuceneSearchQueryElementCollector; import org.hibernate.search.backend.lucene.scope.impl.LuceneIndexScope; import org.hibernate.search.backend.lucene.search.query.impl.LuceneSearchQueryBuilder; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.projection.SearchProjection; import org.hibernate.search.engine.search.predicate.dsl.PredicateFinalStep; @@ -38,11 +38,11 @@ public class LuceneSearchQueryHitTypeStepImpl implements LuceneSearchQueryHitTypeStep { private final LuceneIndexScope indexScope; - private final SessionContextImplementor sessionContext; + private final BackendSessionContext sessionContext; private final LoadingContextBuilder loadingContextBuilder; public LuceneSearchQueryHitTypeStepImpl(LuceneIndexScope indexScope, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { this.indexScope = indexScope; this.sessionContext = sessionContext; @@ -103,7 +103,7 @@ protected LuceneIndexScope getIndexScope() { } @Override - protected SessionContextImplementor getSessionContext() { + protected BackendSessionContext getSessionContext() { return sessionContext; } diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryBuilder.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryBuilder.java index 177a5dc2672..d37929d68d2 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryBuilder.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryBuilder.java @@ -32,7 +32,7 @@ import org.hibernate.search.backend.lucene.search.query.LuceneSearchQuery; import org.hibernate.search.backend.lucene.types.sort.comparatorsource.impl.LuceneFieldComparatorSource; import org.hibernate.search.backend.lucene.work.impl.LuceneWorkFactory; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.aggregation.AggregationKey; import org.hibernate.search.engine.search.loading.context.spi.LoadingContext; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; @@ -48,7 +48,7 @@ public class LuceneSearchQueryBuilder private final LuceneReadWorkOrchestrator queryOrchestrator; private final LuceneSearchContext searchContext; - private final SessionContextImplementor sessionContext; + private final BackendSessionContext sessionContext; private final Set routingKeys; private final ReusableDocumentStoredFieldVisitor storedFieldVisitor; @@ -65,7 +65,7 @@ public LuceneSearchQueryBuilder( LuceneWorkFactory workFactory, LuceneReadWorkOrchestrator queryOrchestrator, LuceneSearchContext searchContext, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, ReusableDocumentStoredFieldVisitor storedFieldVisitor, LoadingContextBuilder loadingContextBuilder, LuceneSearchProjection rootProjection) { diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryBuilderFactory.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryBuilderFactory.java index 337d1b2ad17..6cbb42e26aa 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryBuilderFactory.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryBuilderFactory.java @@ -17,7 +17,7 @@ import org.hibernate.search.backend.lucene.search.projection.impl.LuceneSearchProjectionBuilderFactory; import org.hibernate.search.backend.lucene.search.projection.impl.LuceneEntityProjection; import org.hibernate.search.backend.lucene.search.projection.impl.LuceneReferenceProjection; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.projection.SearchProjection; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; import org.hibernate.search.engine.search.query.spi.SearchQueryBuilderFactory; @@ -41,19 +41,19 @@ public LuceneSearchQueryBuilderFactory(SearchBackendContext searchBackendContext @Override public LuceneSearchQueryBuilder asEntity( - SessionContextImplementor sessionContext, LoadingContextBuilder loadingContextBuilder) { + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { return createSearchQueryBuilder( sessionContext, loadingContextBuilder, new LuceneEntityProjection( searchContext.getIndexNames() ) ); } @Override public LuceneSearchQueryBuilder asReference( - SessionContextImplementor sessionContext, LoadingContextBuilder loadingContextBuilder) { + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { return createSearchQueryBuilder( sessionContext, loadingContextBuilder, new LuceneReferenceProjection( searchContext.getIndexNames() ) ); } @Override public

LuceneSearchQueryBuilder

asProjection( - SessionContextImplementor sessionContext, LoadingContextBuilder loadingContextBuilder, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, SearchProjection

projection) { return createSearchQueryBuilder( sessionContext, loadingContextBuilder, searchProjectionFactory.toImplementation( projection ) ); @@ -61,7 +61,7 @@ public

LuceneSearchQueryBuilder

asProjection( @Override public LuceneSearchQueryBuilder> asProjections( - SessionContextImplementor sessionContext, LoadingContextBuilder loadingContextBuilder, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, SearchProjection... projections) { return createSearchQueryBuilder( sessionContext, loadingContextBuilder, createRootProjection( projections ) ); } @@ -77,7 +77,7 @@ private LuceneSearchProjection> createRootProjection(SearchProjection } private LuceneSearchQueryBuilder createSearchQueryBuilder( - SessionContextImplementor sessionContext, LoadingContextBuilder loadingContextBuilder, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, LuceneSearchProjection rootProjection) { return searchBackendContext.createSearchQueryBuilder( searchContext, sessionContext, loadingContextBuilder, rootProjection diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryExtractContext.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryExtractContext.java index fdf1b8a5b6d..cc53e831c2b 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryExtractContext.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryExtractContext.java @@ -16,7 +16,7 @@ import org.hibernate.search.backend.lucene.search.projection.impl.SearchProjectionTransformContext; import org.hibernate.search.engine.backend.types.converter.runtime.FromDocumentFieldValueConvertContext; import org.hibernate.search.engine.backend.types.converter.runtime.spi.FromDocumentFieldValueConvertContextImpl; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.loading.spi.ProjectionHitMapper; import org.apache.lucene.search.Collector; @@ -36,7 +36,7 @@ class LuceneSearchQueryExtractContext { private final Query luceneQuery; private final LuceneCollectors luceneCollectors; - LuceneSearchQueryExtractContext(SessionContextImplementor sessionContext, + LuceneSearchQueryExtractContext(BackendSessionContext sessionContext, ProjectionHitMapper projectionHitMapper, IndexSearcher indexSearcher, Query luceneQuery, LuceneCollectors luceneCollectors) { diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryImpl.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryImpl.java index 35f40753719..1a18009b7ec 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryImpl.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryImpl.java @@ -19,7 +19,7 @@ import org.hibernate.search.backend.lucene.work.impl.LuceneSearcher; import org.hibernate.search.backend.lucene.work.impl.LuceneWorkFactory; import org.hibernate.search.engine.common.dsl.spi.DslExtensionState; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.loading.context.spi.LoadingContext; import org.hibernate.search.engine.search.query.spi.AbstractSearchQuery; import org.hibernate.search.engine.search.query.SearchQueryExtension; @@ -44,7 +44,7 @@ public class LuceneSearchQueryImpl extends AbstractSearchQuery loadingContext; private final Set routingKeys; private final Query luceneQuery; @@ -53,7 +53,7 @@ public class LuceneSearchQueryImpl extends AbstractSearchQuery loadingContext, Set routingKeys, Query luceneQuery, Sort luceneSort, diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryRequestContext.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryRequestContext.java index 3ded5fb318f..82253373948 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryRequestContext.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryRequestContext.java @@ -7,7 +7,7 @@ package org.hibernate.search.backend.lucene.search.query.impl; import org.hibernate.search.backend.lucene.search.extraction.impl.LuceneCollectors; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.loading.context.spi.LoadingContext; import org.apache.lucene.search.IndexSearcher; @@ -22,13 +22,13 @@ */ class LuceneSearchQueryRequestContext { - private final SessionContextImplementor sessionContext; + private final BackendSessionContext sessionContext; private final LoadingContext loadingContext; private final Query luceneQuery; private final Sort luceneSort; LuceneSearchQueryRequestContext( - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContext loadingContext, Query luceneQuery, Sort luceneSort) { diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/SearchBackendContext.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/SearchBackendContext.java index e99f1c710cd..db84aac2505 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/SearchBackendContext.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/SearchBackendContext.java @@ -9,8 +9,8 @@ import org.hibernate.search.backend.lucene.scope.model.impl.LuceneScopeModel; import org.hibernate.search.backend.lucene.search.impl.LuceneSearchContext; import org.hibernate.search.backend.lucene.search.projection.impl.LuceneSearchProjection; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; /** @@ -26,12 +26,12 @@ */ public interface SearchBackendContext { - LuceneSearchContext createSearchContext(MappingContextImplementor mappingContext, + LuceneSearchContext createSearchContext(BackendMappingContext mappingContext, LuceneScopeModel scopeModel); LuceneSearchQueryBuilder createSearchQueryBuilder( LuceneSearchContext searchContext, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, LuceneSearchProjection rootProjection); diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexDocumentWorkExecutor.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexDocumentWorkExecutor.java index 71e1d983a71..5966308b39a 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexDocumentWorkExecutor.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexDocumentWorkExecutor.java @@ -18,7 +18,7 @@ import org.hibernate.search.engine.backend.work.execution.spi.DocumentContributor; import org.hibernate.search.engine.backend.work.execution.spi.DocumentReferenceProvider; import org.hibernate.search.engine.backend.work.execution.spi.IndexDocumentWorkExecutor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; public class LuceneIndexDocumentWorkExecutor implements IndexDocumentWorkExecutor { @@ -31,7 +31,7 @@ public class LuceneIndexDocumentWorkExecutor implements IndexDocumentWorkExecuto public LuceneIndexDocumentWorkExecutor(LuceneWorkFactory factory, LuceneIndexEntryFactory indexEntryFactory, WorkExecutionIndexManagerContext indexManagerContext, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy) { this.factory = factory; this.indexEntryFactory = indexEntryFactory; diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkExecutor.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkExecutor.java index f88f5f86659..7b359dd93d6 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkExecutor.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkExecutor.java @@ -15,17 +15,17 @@ import org.hibernate.search.engine.backend.work.execution.DocumentCommitStrategy; import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkExecutor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; public class LuceneIndexWorkExecutor implements IndexWorkExecutor { private final LuceneWorkFactory factory; private final WorkExecutionIndexManagerContext indexManagerContext; - private final DetachedSessionContextImplementor sessionContext; + private final DetachedBackendSessionContext sessionContext; public LuceneIndexWorkExecutor(LuceneWorkFactory factory, WorkExecutionIndexManagerContext indexManagerContext, - DetachedSessionContextImplementor sessionContext) { + DetachedBackendSessionContext sessionContext) { this.factory = factory; this.indexManagerContext = indexManagerContext; this.sessionContext = sessionContext; diff --git a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkPlan.java b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkPlan.java index 1d49e0238f6..bec94358666 100644 --- a/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkPlan.java +++ b/backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkPlan.java @@ -23,7 +23,7 @@ import org.hibernate.search.backend.lucene.orchestration.impl.LuceneWriteWorkOrchestrator; import org.hibernate.search.backend.lucene.work.impl.LuceneWriteWork; import org.hibernate.search.backend.lucene.work.impl.LuceneWorkFactory; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; public class LuceneIndexWorkPlan implements IndexWorkPlan { @@ -39,7 +39,7 @@ public class LuceneIndexWorkPlan implements IndexWorkPlan createWorkPlan( WorkExecutionIndexManagerContext indexManagerContext, LuceneIndexEntryFactory indexEntryFactory, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy); LuceneWriteWorkOrchestratorImplementor createOrchestrator(String indexName, Optional shardId, @@ -44,9 +44,9 @@ LuceneWriteWorkOrchestratorImplementor createOrchestrator(String indexName, Opti IndexDocumentWorkExecutor createDocumentWorkExecutor( WorkExecutionIndexManagerContext indexManagerContext, LuceneIndexEntryFactory indexEntryFactory, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy); IndexWorkExecutor createWorkExecutor(WorkExecutionIndexManagerContext indexManagerContext, - DetachedSessionContextImplementor sessionContext); + DetachedBackendSessionContext sessionContext); } diff --git a/engine/src/main/java/org/hibernate/search/engine/backend/index/spi/IndexManagerImplementor.java b/engine/src/main/java/org/hibernate/search/engine/backend/index/spi/IndexManagerImplementor.java index 098f4d9cd59..22561be96c1 100644 --- a/engine/src/main/java/org/hibernate/search/engine/backend/index/spi/IndexManagerImplementor.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/index/spi/IndexManagerImplementor.java @@ -15,9 +15,9 @@ import org.hibernate.search.engine.backend.work.execution.spi.IndexDocumentWorkExecutor; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkExecutor; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkPlan; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; /** * The object responsible for applying works and searches to a full-text index. @@ -42,15 +42,15 @@ public interface IndexManagerImplementor extends Auto */ IndexManager toAPI(); - IndexWorkPlan createWorkPlan(SessionContextImplementor sessionContext, + IndexWorkPlan createWorkPlan(BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy); - IndexDocumentWorkExecutor createDocumentWorkExecutor(SessionContextImplementor sessionContext, + IndexDocumentWorkExecutor createDocumentWorkExecutor(BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy); - IndexWorkExecutor createWorkExecutor(DetachedSessionContextImplementor sessionContext); + IndexWorkExecutor createWorkExecutor(DetachedBackendSessionContext sessionContext); - IndexScopeBuilder createScopeBuilder(MappingContextImplementor mappingContext); + IndexScopeBuilder createScopeBuilder(BackendMappingContext mappingContext); void addTo(IndexScopeBuilder builder); diff --git a/engine/src/main/java/org/hibernate/search/engine/mapper/mapping/context/spi/MappingContextImplementor.java b/engine/src/main/java/org/hibernate/search/engine/backend/mapping/spi/BackendMappingContext.java similarity index 77% rename from engine/src/main/java/org/hibernate/search/engine/mapper/mapping/context/spi/MappingContextImplementor.java rename to engine/src/main/java/org/hibernate/search/engine/backend/mapping/spi/BackendMappingContext.java index 250020f9dd1..c1d3fbe6180 100644 --- a/engine/src/main/java/org/hibernate/search/engine/mapper/mapping/context/spi/MappingContextImplementor.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/mapping/spi/BackendMappingContext.java @@ -4,11 +4,11 @@ * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or . */ -package org.hibernate.search.engine.mapper.mapping.context.spi; +package org.hibernate.search.engine.backend.mapping.spi; /** * Provides visibility from the lower layers of Hibernate Search (engine, backend) * to the mapping defined in the upper layers. */ -public interface MappingContextImplementor { +public interface BackendMappingContext { } diff --git a/engine/src/main/java/org/hibernate/search/engine/mapper/session/context/spi/SessionContextImplementor.java b/engine/src/main/java/org/hibernate/search/engine/backend/session/spi/BackendSessionContext.java similarity index 63% rename from engine/src/main/java/org/hibernate/search/engine/mapper/session/context/spi/SessionContextImplementor.java rename to engine/src/main/java/org/hibernate/search/engine/backend/session/spi/BackendSessionContext.java index 2eb332bf359..e5105a7c7fd 100644 --- a/engine/src/main/java/org/hibernate/search/engine/mapper/session/context/spi/SessionContextImplementor.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/session/spi/BackendSessionContext.java @@ -4,18 +4,18 @@ * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or . */ -package org.hibernate.search.engine.mapper.session.context.spi; +package org.hibernate.search.engine.backend.session.spi; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; /** * Provides visibility from the lower layers of Hibernate Search (engine, backend) * to the session defined in the upper layers (mapping). */ -public interface SessionContextImplementor { +public interface BackendSessionContext { - MappingContextImplementor getMappingContext(); + BackendMappingContext getMappingContext(); String getTenantIdentifier(); diff --git a/engine/src/main/java/org/hibernate/search/engine/mapper/session/context/spi/DetachedSessionContextImplementor.java b/engine/src/main/java/org/hibernate/search/engine/backend/session/spi/DetachedBackendSessionContext.java similarity index 58% rename from engine/src/main/java/org/hibernate/search/engine/mapper/session/context/spi/DetachedSessionContextImplementor.java rename to engine/src/main/java/org/hibernate/search/engine/backend/session/spi/DetachedBackendSessionContext.java index ee871004e21..42b598109b6 100644 --- a/engine/src/main/java/org/hibernate/search/engine/mapper/session/context/spi/DetachedSessionContextImplementor.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/session/spi/DetachedBackendSessionContext.java @@ -4,47 +4,47 @@ * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or . */ -package org.hibernate.search.engine.mapper.session.context.spi; +package org.hibernate.search.engine.backend.session.spi; import org.hibernate.search.engine.backend.work.execution.DocumentCommitStrategy; import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; /** * Provides visibility from the lower layers of Hibernate Search (engine, backend) * to the session defined in the upper layers (mapping). *

- * On contrary to {@link SessionContextImplementor}, + * On contrary to {@link BackendSessionContext}, * this context is expected to be detached from the actual session, * allowing it to be used after the session was closed. * The main downside is that this context cannot be used - * everywhere {@link SessionContextImplementor} can. + * everywhere {@link BackendSessionContext} can. * In particular, it cannot be used when creating document-related - * {@link org.hibernate.search.engine.backend.index.spi.IndexManagerImplementor#createWorkPlan(SessionContextImplementor, DocumentCommitStrategy, DocumentRefreshStrategy) work plans} - * or {@link org.hibernate.search.engine.backend.index.spi.IndexManagerImplementor#createDocumentWorkExecutor(SessionContextImplementor, DocumentCommitStrategy) work executors} + * {@link org.hibernate.search.engine.backend.index.spi.IndexManagerImplementor#createWorkPlan(BackendSessionContext, DocumentCommitStrategy, DocumentRefreshStrategy) work plans} + * or {@link org.hibernate.search.engine.backend.index.spi.IndexManagerImplementor#createDocumentWorkExecutor(BackendSessionContext, DocumentCommitStrategy) work executors} * because these may need access to the session. */ -public final class DetachedSessionContextImplementor { +public final class DetachedBackendSessionContext { - public static DetachedSessionContextImplementor of(SessionContextImplementor sessionContext) { - return new DetachedSessionContextImplementor( + public static DetachedBackendSessionContext of(BackendSessionContext sessionContext) { + return new DetachedBackendSessionContext( sessionContext.getMappingContext(), sessionContext.getTenantIdentifier() ); } - private final MappingContextImplementor mappingContext; + private final BackendMappingContext mappingContext; private final String tenantIdentifier; - private DetachedSessionContextImplementor( - MappingContextImplementor mappingContext, String tenantIdentifier) { + private DetachedBackendSessionContext( + BackendMappingContext mappingContext, String tenantIdentifier) { this.mappingContext = mappingContext; this.tenantIdentifier = tenantIdentifier; } - public MappingContextImplementor getMappingContext() { + public BackendMappingContext getMappingContext() { return mappingContext; } diff --git a/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/FromDocumentFieldValueConvertContextExtension.java b/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/FromDocumentFieldValueConvertContextExtension.java index 63f4f315942..53b703b1bc3 100644 --- a/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/FromDocumentFieldValueConvertContextExtension.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/FromDocumentFieldValueConvertContextExtension.java @@ -9,7 +9,7 @@ import java.util.Optional; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; /** * An extension to {@link FromDocumentFieldValueConvertContext}, allowing to access non-standard context @@ -32,10 +32,10 @@ public interface FromDocumentFieldValueConvertContextExtension { * WARNING: this method is not API, see comments at the type level. * * @param original The original, non-extended {@link FromDocumentFieldValueConvertContext}. - * @param sessionContext A {@link SessionContextImplementor}. + * @param sessionContext A {@link BackendSessionContext}. * @return An optional containing the extended context ({@link T}) in case * of success, or an empty optional otherwise. */ - Optional extendOptional(FromDocumentFieldValueConvertContext original, SessionContextImplementor sessionContext); + Optional extendOptional(FromDocumentFieldValueConvertContext original, BackendSessionContext sessionContext); } diff --git a/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/ToDocumentFieldValueConvertContextExtension.java b/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/ToDocumentFieldValueConvertContextExtension.java index d9d56e1d824..51b84d2828c 100644 --- a/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/ToDocumentFieldValueConvertContextExtension.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/ToDocumentFieldValueConvertContextExtension.java @@ -9,7 +9,7 @@ import java.util.Optional; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; /** * An extension to {@link ToDocumentFieldValueConvertContext}, allowing to access non-standard context @@ -32,10 +32,10 @@ public interface ToDocumentFieldValueConvertContextExtension { * WARNING: this method is not API, see comments at the type level. * * @param original The original, non-extended {@link ToDocumentFieldValueConvertContext}. - * @param mappingContext A {@link MappingContextImplementor}. + * @param mappingContext A {@link BackendMappingContext}. * @return An optional containing the extended context ({@link T}) in case * of success, or an empty optional otherwise. */ - Optional extendOptional(ToDocumentFieldValueConvertContext original, MappingContextImplementor mappingContext); + Optional extendOptional(ToDocumentFieldValueConvertContext original, BackendMappingContext mappingContext); } diff --git a/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/FromDocumentFieldValueConvertContextImpl.java b/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/FromDocumentFieldValueConvertContextImpl.java index 0cb33d93f25..3bcd6e3ae10 100644 --- a/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/FromDocumentFieldValueConvertContextImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/FromDocumentFieldValueConvertContextImpl.java @@ -9,12 +9,12 @@ import org.hibernate.search.engine.backend.types.converter.runtime.FromDocumentFieldValueConvertContext; import org.hibernate.search.engine.backend.types.converter.runtime.FromDocumentFieldValueConvertContextExtension; import org.hibernate.search.engine.common.dsl.spi.DslExtensionState; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; public class FromDocumentFieldValueConvertContextImpl implements FromDocumentFieldValueConvertContext { - private final SessionContextImplementor sessionContext; + private final BackendSessionContext sessionContext; - public FromDocumentFieldValueConvertContextImpl(SessionContextImplementor sessionContext) { + public FromDocumentFieldValueConvertContextImpl(BackendSessionContext sessionContext) { this.sessionContext = sessionContext; } diff --git a/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/ToDocumentFieldValueConvertContextImpl.java b/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/ToDocumentFieldValueConvertContextImpl.java index b45dc491fa7..225348f698a 100644 --- a/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/ToDocumentFieldValueConvertContextImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/ToDocumentFieldValueConvertContextImpl.java @@ -9,12 +9,12 @@ import org.hibernate.search.engine.backend.types.converter.runtime.ToDocumentFieldValueConvertContext; import org.hibernate.search.engine.backend.types.converter.runtime.ToDocumentFieldValueConvertContextExtension; import org.hibernate.search.engine.common.dsl.spi.DslExtensionState; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; public class ToDocumentFieldValueConvertContextImpl implements ToDocumentFieldValueConvertContext { - private final MappingContextImplementor mappingContext; + private final BackendMappingContext mappingContext; - public ToDocumentFieldValueConvertContextImpl(MappingContextImplementor mappingContext) { + public ToDocumentFieldValueConvertContextImpl(BackendMappingContext mappingContext) { this.mappingContext = mappingContext; } diff --git a/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/ToDocumentIdentifierValueConvertContextExtension.java b/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/ToDocumentIdentifierValueConvertContextExtension.java index 8c9ccb36e26..9fdeb3908a9 100644 --- a/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/ToDocumentIdentifierValueConvertContextExtension.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/ToDocumentIdentifierValueConvertContextExtension.java @@ -8,7 +8,7 @@ import java.util.Optional; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; /** * An extension to {@link ToDocumentIdentifierValueConvertContext}, allowing to access non-standard context @@ -31,10 +31,10 @@ public interface ToDocumentIdentifierValueConvertContextExtension { * WARNING: this method is not API, see comments at the type level. * * @param original The original, non-extended {@link ToDocumentIdentifierValueConvertContext}. - * @param mappingContext A {@link MappingContextImplementor}. + * @param mappingContext A {@link BackendMappingContext}. * @return An optional containing the extended context ({@link T}) in case * of success, or an empty optional otherwise. */ - Optional extendOptional(ToDocumentIdentifierValueConvertContext original, MappingContextImplementor mappingContext); + Optional extendOptional(ToDocumentIdentifierValueConvertContext original, BackendMappingContext mappingContext); } diff --git a/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/ToDocumentIdentifierValueConvertContextImpl.java b/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/ToDocumentIdentifierValueConvertContextImpl.java index aca26002a36..751134432d7 100644 --- a/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/ToDocumentIdentifierValueConvertContextImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/types/converter/runtime/spi/ToDocumentIdentifierValueConvertContextImpl.java @@ -7,12 +7,12 @@ package org.hibernate.search.engine.backend.types.converter.runtime.spi; import org.hibernate.search.engine.common.dsl.spi.DslExtensionState; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; public class ToDocumentIdentifierValueConvertContextImpl implements ToDocumentIdentifierValueConvertContext { - private final MappingContextImplementor mappingContext; + private final BackendMappingContext mappingContext; - public ToDocumentIdentifierValueConvertContextImpl(MappingContextImplementor mappingContext) { + public ToDocumentIdentifierValueConvertContextImpl(BackendMappingContext mappingContext) { this.mappingContext = mappingContext; } diff --git a/engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexManagerImpl.java b/engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexManagerImpl.java index 1154671f74d..e67c7ddcbc2 100644 --- a/engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexManagerImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexManagerImpl.java @@ -15,9 +15,9 @@ import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkExecutor; import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScopeBuilder; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkPlan; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.mapper.mapping.spi.MappedIndexManager; class MappedIndexManagerImpl implements MappedIndexManager { @@ -34,24 +34,24 @@ public IndexManager toAPI() { } @Override - public IndexWorkPlan createWorkPlan(SessionContextImplementor sessionContext, + public IndexWorkPlan createWorkPlan(BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { return implementor.createWorkPlan( sessionContext, commitStrategy, refreshStrategy ); } @Override - public IndexDocumentWorkExecutor createDocumentWorkExecutor(SessionContextImplementor sessionContext, + public IndexDocumentWorkExecutor createDocumentWorkExecutor(BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy) { return implementor.createDocumentWorkExecutor( sessionContext, commitStrategy ); } @Override - public IndexWorkExecutor createWorkExecutor(DetachedSessionContextImplementor sessionContext) { + public IndexWorkExecutor createWorkExecutor(DetachedBackendSessionContext sessionContext) { return implementor.createWorkExecutor( sessionContext ); } @Override - public MappedIndexScopeBuilder createScopeBuilder(MappingContextImplementor mappingContext) { + public MappedIndexScopeBuilder createScopeBuilder(BackendMappingContext mappingContext) { return new MappedIndexScopeBuilderImpl<>( implementor, mappingContext ); diff --git a/engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexScopeBuilderImpl.java b/engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexScopeBuilderImpl.java index 3c872907fc8..0f470deefc2 100644 --- a/engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexScopeBuilderImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexScopeBuilderImpl.java @@ -8,7 +8,7 @@ import org.hibernate.search.engine.backend.index.spi.IndexManagerImplementor; import org.hibernate.search.engine.backend.scope.spi.IndexScopeBuilder; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScope; import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScopeBuilder; @@ -16,7 +16,7 @@ class MappedIndexScopeBuilderImpl implements MappedIndexScopeBuilder private final IndexScopeBuilder delegate; MappedIndexScopeBuilderImpl(IndexManagerImplementor firstIndexManager, - MappingContextImplementor mappingContext) { + BackendMappingContext mappingContext) { this.delegate = firstIndexManager.createScopeBuilder( mappingContext ); } diff --git a/engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexScopeImpl.java b/engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexScopeImpl.java index 3d5ea0eef48..f514c66d396 100644 --- a/engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexScopeImpl.java +++ b/engine/src/main/java/org/hibernate/search/engine/common/impl/MappedIndexScopeImpl.java @@ -7,7 +7,7 @@ package org.hibernate.search.engine.common.impl; import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScope; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; import org.hibernate.search.engine.search.aggregation.dsl.impl.DefaultSearchAggregationFactory; import org.hibernate.search.engine.search.aggregation.dsl.impl.SearchAggregationDslContextImpl; @@ -42,7 +42,7 @@ public String toString() { @Override public SearchQueryHitTypeStep, ?> search( - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { return new DefaultSearchQueryHitTypeStep<>( delegate, sessionContext, loadingContextBuilder ); } diff --git a/engine/src/main/java/org/hibernate/search/engine/mapper/mapping/spi/MappedIndexManager.java b/engine/src/main/java/org/hibernate/search/engine/mapper/mapping/spi/MappedIndexManager.java index cee4b6291b0..28b5dc456d3 100644 --- a/engine/src/main/java/org/hibernate/search/engine/mapper/mapping/spi/MappedIndexManager.java +++ b/engine/src/main/java/org/hibernate/search/engine/mapper/mapping/spi/MappedIndexManager.java @@ -13,10 +13,10 @@ import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkExecutor; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkPlan; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScopeBuilder; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; /** * The object responsible for applying works and searches to a full-text index. @@ -27,15 +27,15 @@ public interface MappedIndexManager { IndexManager toAPI(); - IndexWorkPlan createWorkPlan(SessionContextImplementor sessionContext, + IndexWorkPlan createWorkPlan(BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy); - IndexDocumentWorkExecutor createDocumentWorkExecutor(SessionContextImplementor sessionContext, + IndexDocumentWorkExecutor createDocumentWorkExecutor(BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy); - IndexWorkExecutor createWorkExecutor(DetachedSessionContextImplementor sessionContext); + IndexWorkExecutor createWorkExecutor(DetachedBackendSessionContext sessionContext); - MappedIndexScopeBuilder createScopeBuilder(MappingContextImplementor mappingContext); + MappedIndexScopeBuilder createScopeBuilder(BackendMappingContext mappingContext); void addTo(MappedIndexScopeBuilder builder); } diff --git a/engine/src/main/java/org/hibernate/search/engine/mapper/scope/spi/MappedIndexScope.java b/engine/src/main/java/org/hibernate/search/engine/mapper/scope/spi/MappedIndexScope.java index e01f61e6d20..3df26d17f80 100644 --- a/engine/src/main/java/org/hibernate/search/engine/mapper/scope/spi/MappedIndexScope.java +++ b/engine/src/main/java/org/hibernate/search/engine/mapper/scope/spi/MappedIndexScope.java @@ -6,7 +6,7 @@ */ package org.hibernate.search.engine.mapper.scope.spi; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; @@ -31,7 +31,7 @@ public interface MappedIndexScope { * In particular, we cannot accept a LoadingContextBuilder with any T. */ SearchQueryHitTypeStep, ?> search( - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder); SearchPredicateFactory predicate(); diff --git a/engine/src/main/java/org/hibernate/search/engine/search/query/dsl/SearchQueryDslExtension.java b/engine/src/main/java/org/hibernate/search/engine/search/query/dsl/SearchQueryDslExtension.java index 7aa16678d0f..1a65b823ae0 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/query/dsl/SearchQueryDslExtension.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/query/dsl/SearchQueryDslExtension.java @@ -9,7 +9,7 @@ import java.util.Optional; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.query.dsl.spi.AbstractSearchQueryOptionsStep; import org.hibernate.search.engine.backend.scope.spi.IndexScope; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; @@ -42,14 +42,14 @@ public interface SearchQueryDslExtension { * * @param original The original, non-extended {@link SearchQueryHitTypeStep}. * @param indexScope An {@link IndexScope}. - * @param sessionContext A {@link SessionContextImplementor}. + * @param sessionContext A {@link BackendSessionContext}. * @param loadingContextBuilder A {@link LoadingContextBuilder}. * @return An optional containing the extended search query DSL step ({@link T}) in case * of success, or an empty optional otherwise. */ Optional extendOptional(SearchQueryHitTypeStep original, IndexScope indexScope, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder); } diff --git a/engine/src/main/java/org/hibernate/search/engine/search/query/dsl/impl/DefaultSearchQueryHitTypeStep.java b/engine/src/main/java/org/hibernate/search/engine/search/query/dsl/impl/DefaultSearchQueryHitTypeStep.java index 1284b7f76fd..3b9a4018ba1 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/query/dsl/impl/DefaultSearchQueryHitTypeStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/query/dsl/impl/DefaultSearchQueryHitTypeStep.java @@ -9,7 +9,7 @@ import java.util.List; import java.util.function.Function; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.predicate.SearchPredicate; import org.hibernate.search.engine.search.projection.SearchProjection; import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; @@ -34,11 +34,11 @@ public final class DefaultSearchQueryHitTypeStep > { private final IndexScope indexScope; - private final SessionContextImplementor sessionContext; + private final BackendSessionContext sessionContext; private final LoadingContextBuilder loadingContextBuilder; public DefaultSearchQueryHitTypeStep(IndexScope indexScope, - SessionContextImplementor sessionContext, + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { this.indexScope = indexScope; this.sessionContext = sessionContext; @@ -98,7 +98,7 @@ protected IndexScope getIndexScope() { } @Override - protected SessionContextImplementor getSessionContext() { + protected BackendSessionContext getSessionContext() { return sessionContext; } diff --git a/engine/src/main/java/org/hibernate/search/engine/search/query/dsl/spi/AbstractSearchQueryHitTypeStep.java b/engine/src/main/java/org/hibernate/search/engine/search/query/dsl/spi/AbstractSearchQueryHitTypeStep.java index 2731a1bf244..37663d0b40a 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/query/dsl/spi/AbstractSearchQueryHitTypeStep.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/query/dsl/spi/AbstractSearchQueryHitTypeStep.java @@ -7,7 +7,7 @@ package org.hibernate.search.engine.search.query.dsl.spi; import org.hibernate.search.engine.common.dsl.spi.DslExtensionState; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; import org.hibernate.search.engine.search.projection.dsl.impl.DefaultSearchProjectionFactory; @@ -43,7 +43,7 @@ protected final SearchProjectionFactory createDefaultProjectionFactory() { protected abstract IndexScope getIndexScope(); - protected abstract SessionContextImplementor getSessionContext(); + protected abstract BackendSessionContext getSessionContext(); protected abstract LoadingContextBuilder getLoadingContextBuilder(); } diff --git a/engine/src/main/java/org/hibernate/search/engine/search/query/spi/SearchQueryBuilderFactory.java b/engine/src/main/java/org/hibernate/search/engine/search/query/spi/SearchQueryBuilderFactory.java index d599421917b..1ea4c70c944 100644 --- a/engine/src/main/java/org/hibernate/search/engine/search/query/spi/SearchQueryBuilderFactory.java +++ b/engine/src/main/java/org/hibernate/search/engine/search/query/spi/SearchQueryBuilderFactory.java @@ -8,7 +8,7 @@ import java.util.List; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.projection.SearchProjection; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; @@ -22,16 +22,16 @@ */ public interface SearchQueryBuilderFactory { - SearchQueryBuilder asEntity(SessionContextImplementor sessionContext, + SearchQueryBuilder asEntity(BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder); - SearchQueryBuilder asReference(SessionContextImplementor sessionContext, + SearchQueryBuilder asReference(BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder); -

SearchQueryBuilder asProjection(SessionContextImplementor sessionContext, +

SearchQueryBuilder asProjection(BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, SearchProjection

projection); - SearchQueryBuilder, C> asProjections(SessionContextImplementor sessionContext, + SearchQueryBuilder, C> asProjections(BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, SearchProjection... projections); } diff --git a/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/multitenancy/MultiTenancyBaseIT.java b/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/multitenancy/MultiTenancyBaseIT.java index a2da0c21849..7c4e63c817f 100644 --- a/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/multitenancy/MultiTenancyBaseIT.java +++ b/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/multitenancy/MultiTenancyBaseIT.java @@ -26,7 +26,7 @@ import org.hibernate.search.engine.backend.common.DocumentReference; import org.hibernate.search.engine.search.query.SearchQuery; import org.hibernate.search.util.common.SearchException; -import org.hibernate.search.util.impl.integrationtest.common.stub.StubSessionContext; +import org.hibernate.search.util.impl.integrationtest.common.stub.StubBackendSessionContext; import org.hibernate.search.util.impl.test.annotation.TestForIssue; import org.junit.Before; @@ -62,8 +62,8 @@ public class MultiTenancyBaseIT { @Rule public ExpectedException thrown = ExpectedException.none(); - private final StubSessionContext tenant1SessionContext = new StubSessionContext( TENANT_1 ); - private final StubSessionContext tenant2SessionContext = new StubSessionContext( TENANT_2 ); + private final StubBackendSessionContext tenant1SessionContext = new StubBackendSessionContext( TENANT_1 ); + private final StubBackendSessionContext tenant2SessionContext = new StubBackendSessionContext( TENANT_2 ); private IndexMapping indexMapping; private StubMappingIndexManager indexManager; @@ -336,7 +336,7 @@ public void not_using_multi_tenancy_for_query_while_enabled_throws_exception() { thrown.expectMessage( "has multi-tenancy enabled, but no tenant identifier is provided." ); StubMappingScope scope = indexManager.createScope(); - SearchQuery query = scope.query( new StubSessionContext() ) + SearchQuery query = scope.query( new StubBackendSessionContext() ) .predicate( f -> f.matchAll() ) .toQuery(); } @@ -347,7 +347,7 @@ public void not_using_multi_tenancy_for_add_while_enabled_throws_exception() { thrown.expectMessage( "Backend" ); thrown.expectMessage( "has multi-tenancy enabled, but no tenant identifier is provided." ); - IndexWorkPlan workPlan = indexManager.createWorkPlan( new StubSessionContext() ); + IndexWorkPlan workPlan = indexManager.createWorkPlan( new StubBackendSessionContext() ); workPlan.add( referenceProvider( DOCUMENT_ID_3 ), document -> { document.addValue( indexMapping.string, STRING_VALUE_3 ); @@ -367,7 +367,7 @@ public void not_using_multi_tenancy_for_update_while_enabled_throws_exception() thrown.expectMessage( "Backend" ); thrown.expectMessage( "has multi-tenancy enabled, but no tenant identifier is provided." ); - IndexWorkPlan workPlan = indexManager.createWorkPlan( new StubSessionContext() ); + IndexWorkPlan workPlan = indexManager.createWorkPlan( new StubBackendSessionContext() ); workPlan.update( referenceProvider( DOCUMENT_ID_2 ), document -> { document.addValue( indexMapping.string, UPDATED_STRING ); @@ -387,7 +387,7 @@ public void not_using_multi_tenancy_for_delete_while_enabled_throws_exception() thrown.expectMessage( "Backend" ); thrown.expectMessage( "has multi-tenancy enabled, but no tenant identifier is provided." ); - IndexWorkPlan workPlan = indexManager.createWorkPlan( new StubSessionContext() ); + IndexWorkPlan workPlan = indexManager.createWorkPlan( new StubBackendSessionContext() ); workPlan.delete( referenceProvider( DOCUMENT_ID_1 ) ); workPlan.execute().join(); } diff --git a/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/multitenancy/MultiTenancyMismatchIT.java b/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/multitenancy/MultiTenancyMismatchIT.java index d91054d4647..c71831bfb6e 100644 --- a/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/multitenancy/MultiTenancyMismatchIT.java +++ b/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/multitenancy/MultiTenancyMismatchIT.java @@ -15,7 +15,7 @@ import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkPlan; import org.hibernate.search.integrationtest.backend.tck.testsupport.util.rule.SearchSetupHelper; import org.hibernate.search.util.common.SearchException; -import org.hibernate.search.util.impl.integrationtest.common.stub.StubSessionContext; +import org.hibernate.search.util.impl.integrationtest.common.stub.StubBackendSessionContext; import org.hibernate.search.util.impl.integrationtest.common.stub.mapper.StubMappingIndexManager; import org.hibernate.search.util.impl.integrationtest.common.stub.mapper.StubMappingScope; @@ -38,7 +38,7 @@ public class MultiTenancyMismatchIT { @Rule public ExpectedException thrown = ExpectedException.none(); - private final StubSessionContext tenant1SessionContext = new StubSessionContext( "tenant_1" ); + private final StubBackendSessionContext tenant1SessionContext = new StubBackendSessionContext( "tenant_1" ); private IndexMapping indexMapping; private StubMappingIndexManager indexManager; diff --git a/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/search/query/SearchQueryBaseIT.java b/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/search/query/SearchQueryBaseIT.java index 906c86248d4..63b9e59ab91 100644 --- a/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/search/query/SearchQueryBaseIT.java +++ b/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/search/query/SearchQueryBaseIT.java @@ -20,7 +20,7 @@ import org.hibernate.search.engine.backend.work.execution.DocumentCommitStrategy; import org.hibernate.search.engine.backend.work.execution.spi.IndexDocumentWorkExecutor; import org.hibernate.search.engine.backend.types.Sortable; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.backend.common.DocumentReference; import org.hibernate.search.engine.search.query.dsl.SearchQueryDslExtension; import org.hibernate.search.engine.search.query.dsl.SearchQueryPredicateStep; @@ -190,7 +190,7 @@ private static class SupportedQueryDslExtension implements SearchQueryDslExtension, R, E> { @Override public Optional> extendOptional(SearchQueryHitTypeStep original, - IndexScope indexScope, SessionContextImplementor sessionContext, + IndexScope indexScope, BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { Assertions.assertThat( original ).isNotNull(); Assertions.assertThat( indexScope ).isNotNull(); @@ -204,7 +204,7 @@ private static class UnSupportedQueryDslExtension implements SearchQueryDslExtension, R, E> { @Override public Optional> extendOptional(SearchQueryHitTypeStep original, - IndexScope indexScope, SessionContextImplementor sessionContext, + IndexScope indexScope, BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { Assertions.assertThat( original ).isNotNull(); Assertions.assertThat( indexScope ).isNotNull(); diff --git a/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/work/IndexWorkExecutorIT.java b/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/work/IndexWorkExecutorIT.java index c915f052d36..86d40729a67 100644 --- a/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/work/IndexWorkExecutorIT.java +++ b/integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/work/IndexWorkExecutorIT.java @@ -20,7 +20,7 @@ import org.hibernate.search.engine.search.query.SearchQuery; import org.hibernate.search.integrationtest.backend.tck.testsupport.util.TckBackendHelper; import org.hibernate.search.integrationtest.backend.tck.testsupport.util.rule.SearchSetupHelper; -import org.hibernate.search.util.impl.integrationtest.common.stub.StubSessionContext; +import org.hibernate.search.util.impl.integrationtest.common.stub.StubBackendSessionContext; import org.hibernate.search.util.impl.integrationtest.common.stub.mapper.StubMappingIndexManager; import org.junit.Rule; @@ -51,9 +51,9 @@ public class IndexWorkExecutorIT { @Rule public ExpectedException thrown = ExpectedException.none(); - private final StubSessionContext noTenantSessionContext = new StubSessionContext(); - private final StubSessionContext tenant1SessionContext = new StubSessionContext( TENANT_1 ); - private final StubSessionContext tenant2SessionContext = new StubSessionContext( TENANT_2 ); + private final StubBackendSessionContext noTenantSessionContext = new StubBackendSessionContext(); + private final StubBackendSessionContext tenant1SessionContext = new StubBackendSessionContext( TENANT_1 ); + private final StubBackendSessionContext tenant2SessionContext = new StubBackendSessionContext( TENANT_2 ); private IndexMapping indexMapping; private StubMappingIndexManager indexManager; @@ -118,7 +118,7 @@ public void runOptimizePurgeAndFlushWithMultiTenancy() { assertBookNumberIsEqualsTo( NUMBER_OF_BOOKS, tenant2SessionContext ); } - private void createBookIndexes(StubSessionContext sessionContext) { + private void createBookIndexes(StubBackendSessionContext sessionContext) { IndexDocumentWorkExecutor documentWorkExecutor = indexManager.createDocumentWorkExecutor( sessionContext, DocumentCommitStrategy.NONE ); CompletableFuture[] tasks = new CompletableFuture[NUMBER_OF_BOOKS]; @@ -132,7 +132,7 @@ private void createBookIndexes(StubSessionContext sessionContext) { CompletableFuture.allOf( tasks ).join(); } - private void assertBookNumberIsEqualsTo(long bookNumber, StubSessionContext sessionContext) { + private void assertBookNumberIsEqualsTo(long bookNumber, StubBackendSessionContext sessionContext) { SearchQuery query = indexManager.createScope().query( sessionContext ) .predicate( f -> f.matchAll() ) .toQuery(); diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/DocumentIdDefaultBridgeIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/DocumentIdDefaultBridgeIT.java index e1c85f2ed61..d3d6a94e68c 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/DocumentIdDefaultBridgeIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/DocumentIdDefaultBridgeIT.java @@ -20,7 +20,7 @@ import org.hibernate.search.integrationtest.mapper.pojo.testsupport.types.expectations.DefaultIdentifierBridgeExpectations; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; import org.hibernate.search.mapper.javabean.mapping.SearchMapping; -import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanMappingContext; +import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanBackendMappingContext; import org.hibernate.search.engine.search.query.SearchQuery; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.javabean.common.impl.EntityReferenceImpl; @@ -160,7 +160,7 @@ public void dslToIndexConverter() { ToDocumentIdentifierValueConverter compatibleDslToIndexConverter = index2RootSchemaNode.getIdDslConverter(); ToDocumentIdentifierValueConvertContextImpl convertContext = - new ToDocumentIdentifierValueConvertContextImpl( new JavaBeanMappingContext() ); + new ToDocumentIdentifierValueConvertContextImpl( new JavaBeanBackendMappingContext() ); // isCompatibleWith must return true when appropriate assertThat( dslToIndexConverter.isCompatibleWith( dslToIndexConverter ) ).isTrue(); diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldDefaultBridgeIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldDefaultBridgeIT.java index 67123caf1a4..c1f7562f8e1 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldDefaultBridgeIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/mapping/definition/FieldDefaultBridgeIT.java @@ -26,9 +26,9 @@ import org.hibernate.search.integrationtest.mapper.pojo.testsupport.types.expectations.DefaultValueBridgeExpectations; import org.hibernate.search.integrationtest.mapper.pojo.testsupport.util.rule.JavaBeanMappingSetupHelper; import org.hibernate.search.mapper.javabean.mapping.SearchMapping; -import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanMappingContext; +import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanBackendMappingContext; import org.hibernate.search.mapper.javabean.session.SearchSession; -import org.hibernate.search.mapper.javabean.session.context.impl.JavaBeanSessionContext; +import org.hibernate.search.mapper.javabean.session.context.impl.JavaBeanBackendSessionContext; import org.hibernate.search.mapper.pojo.model.spi.PojoRuntimeIntrospector; import org.hibernate.search.util.impl.integrationtest.common.rule.BackendMock; import org.hibernate.search.util.impl.integrationtest.common.rule.StubSearchWorkBehavior; @@ -173,7 +173,7 @@ public void dslToIndexConverter() { ToDocumentFieldValueConverter compatibleDslToIndexConverter = index2FieldSchemaNode.getConverter().getDslToIndexConverter(); ToDocumentFieldValueConvertContext toDocumentConvertContext = - new ToDocumentFieldValueConvertContextImpl( new JavaBeanMappingContext() ); + new ToDocumentFieldValueConvertContextImpl( new JavaBeanBackendMappingContext() ); // isCompatibleWith must return true when appropriate assertThat( dslToIndexConverter.isCompatibleWith( dslToIndexConverter ) ).isTrue(); @@ -224,8 +224,8 @@ public void indexToProjectionConverter() { index2FieldSchemaNode.getConverter().getIndexToProjectionConverter(); FromDocumentFieldValueConvertContext fromDocumentConvertContext = new FromDocumentFieldValueConvertContextImpl( - new JavaBeanSessionContext( - new JavaBeanMappingContext(), + new JavaBeanBackendSessionContext( + new JavaBeanBackendMappingContext(), null, PojoRuntimeIntrospector.noProxy() ) diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/context/impl/JavaBeanMappingContext.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/context/impl/JavaBeanBackendMappingContext.java similarity index 75% rename from mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/context/impl/JavaBeanMappingContext.java rename to mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/context/impl/JavaBeanBackendMappingContext.java index cedfffe7e9e..1a6235039b9 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/context/impl/JavaBeanMappingContext.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/context/impl/JavaBeanBackendMappingContext.java @@ -6,7 +6,7 @@ */ package org.hibernate.search.mapper.javabean.mapping.context.impl; -import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoMappingContextImplementor; +import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoBackendMappingContext; -public class JavaBeanMappingContext extends AbstractPojoMappingContextImplementor { +public class JavaBeanBackendMappingContext extends AbstractPojoBackendMappingContext { } diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingImpl.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingImpl.java index 91d6f2ce7e6..7742f40a213 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingImpl.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingImpl.java @@ -9,7 +9,7 @@ import org.hibernate.search.mapper.javabean.mapping.CloseableSearchMapping; import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.session.SearchSessionBuilder; -import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanMappingContext; +import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanBackendMappingContext; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.javabean.session.impl.JavaBeanSearchSession; import org.hibernate.search.mapper.pojo.mapping.spi.PojoMappingDelegate; @@ -18,12 +18,12 @@ public class JavaBeanMappingImpl extends AbstractPojoMappingImplementor implements CloseableSearchMapping { - private final JavaBeanMappingContext mappingContext; + private final JavaBeanBackendMappingContext backendMappingContext; private final JavaBeanTypeContextContainer typeContextContainer; JavaBeanMappingImpl(PojoMappingDelegate mappingDelegate, JavaBeanTypeContextContainer typeContextContainer) { super( mappingDelegate ); - this.mappingContext = new JavaBeanMappingContext(); + this.backendMappingContext = new JavaBeanBackendMappingContext(); this.typeContextContainer = typeContextContainer; } @@ -44,7 +44,7 @@ public SearchSessionBuilder createSessionWithOptions() { private SearchSessionBuilder createSearchManagerBuilder() { return new JavaBeanSearchSession.JavaBeanSearchSessionBuilder( - getDelegate(), mappingContext, typeContextContainer + getDelegate(), backendMappingContext, typeContextContainer ); } } diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/context/impl/JavaBeanSessionContext.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/context/impl/JavaBeanBackendSessionContext.java similarity index 73% rename from mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/context/impl/JavaBeanSessionContext.java rename to mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/context/impl/JavaBeanBackendSessionContext.java index 1b78d757c5c..ab67348ea65 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/context/impl/JavaBeanSessionContext.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/context/impl/JavaBeanBackendSessionContext.java @@ -6,18 +6,18 @@ */ package org.hibernate.search.mapper.javabean.session.context.impl; -import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanMappingContext; +import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanBackendMappingContext; import org.hibernate.search.mapper.pojo.model.spi.PojoRuntimeIntrospector; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; -public class JavaBeanSessionContext extends AbstractPojoSessionContextImplementor { +public class JavaBeanBackendSessionContext extends AbstractPojoBackendSessionContext { - private final JavaBeanMappingContext mappingContext; + private final JavaBeanBackendMappingContext mappingContext; private final String tenantId; private final PojoRuntimeIntrospector proxyIntrospector; - public JavaBeanSessionContext(JavaBeanMappingContext mappingContext, + public JavaBeanBackendSessionContext(JavaBeanBackendMappingContext mappingContext, String tenantId, PojoRuntimeIntrospector proxyIntrospector) { this.mappingContext = mappingContext; this.tenantId = tenantId; @@ -25,7 +25,7 @@ public JavaBeanSessionContext(JavaBeanMappingContext mappingContext, } @Override - public JavaBeanMappingContext getMappingContext() { + public JavaBeanBackendMappingContext getMappingContext() { return mappingContext; } diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java index 7aa21d805da..705c1ad7e4f 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java @@ -15,18 +15,18 @@ import org.hibernate.search.engine.search.query.dsl.SearchQueryHitTypeStep; import org.hibernate.search.engine.search.loading.spi.ReferenceHitMapper; import org.hibernate.search.mapper.javabean.common.EntityReference; -import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanMappingContext; +import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanBackendMappingContext; import org.hibernate.search.mapper.javabean.scope.SearchScope; import org.hibernate.search.mapper.javabean.scope.impl.SearchScopeImpl; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.javabean.session.SearchSessionBuilder; -import org.hibernate.search.mapper.javabean.session.context.impl.JavaBeanSessionContext; +import org.hibernate.search.mapper.javabean.session.context.impl.JavaBeanBackendSessionContext; import org.hibernate.search.mapper.javabean.work.SearchWorkPlan; import org.hibernate.search.mapper.javabean.work.impl.SearchWorkPlanImpl; import org.hibernate.search.mapper.javabean.common.impl.EntityReferenceImpl; import org.hibernate.search.mapper.pojo.mapping.spi.PojoMappingDelegate; import org.hibernate.search.mapper.pojo.model.spi.PojoRuntimeIntrospector; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.session.spi.AbstractPojoSearchSession; import org.hibernate.search.util.common.AssertionFailure; @@ -89,19 +89,19 @@ public EntityReference fromDocumentReference(DocumentReference reference) { ); } Object id = typeContext.getIdentifierMapping() - .fromDocumentIdentifier( reference.getId(), getDelegate().getSessionContext() ); + .fromDocumentIdentifier( reference.getId(), getDelegate().getBackendSessionContext() ); return new EntityReferenceImpl( typeContext.getJavaClass(), id ); } public static class JavaBeanSearchSessionBuilder extends AbstractBuilder implements SearchSessionBuilder { - private final JavaBeanMappingContext mappingContext; + private final JavaBeanBackendMappingContext mappingContext; private final JavaBeanSearchSessionTypeContextProvider typeContextProvider; private String tenantId; private DocumentCommitStrategy commitStrategy = DocumentCommitStrategy.FORCE; private DocumentRefreshStrategy refreshStrategy = DocumentRefreshStrategy.NONE; - public JavaBeanSearchSessionBuilder(PojoMappingDelegate mappingDelegate, JavaBeanMappingContext mappingContext, + public JavaBeanSearchSessionBuilder(PojoMappingDelegate mappingDelegate, JavaBeanBackendMappingContext mappingContext, JavaBeanSearchSessionTypeContextProvider typeContextProvider) { super( mappingDelegate ); this.mappingContext = mappingContext; @@ -126,8 +126,8 @@ public SearchSessionBuilder refreshStrategy(DocumentRefreshStrategy refreshStrat return this; } - protected AbstractPojoSessionContextImplementor buildSessionContext() { - return new JavaBeanSessionContext( mappingContext, tenantId, PojoRuntimeIntrospector.noProxy() ); + protected AbstractPojoBackendSessionContext buildSessionContext() { + return new JavaBeanBackendSessionContext( mappingContext, tenantId, PojoRuntimeIntrospector.noProxy() ); } @Override diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/HibernateOrmExtension.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/HibernateOrmExtension.java index 4a75914f3c6..e4acbd5c63d 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/HibernateOrmExtension.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/HibernateOrmExtension.java @@ -12,8 +12,8 @@ import org.hibernate.search.engine.backend.types.converter.runtime.FromDocumentFieldValueConvertContextExtension; import org.hibernate.search.engine.backend.types.converter.runtime.ToDocumentFieldValueConvertContext; import org.hibernate.search.engine.backend.types.converter.runtime.ToDocumentFieldValueConvertContextExtension; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.mapper.orm.mapping.context.HibernateOrmMappingContext; import org.hibernate.search.mapper.orm.session.context.HibernateOrmSessionContext; import org.hibernate.search.mapper.pojo.bridge.runtime.IdentifierBridgeFromDocumentIdentifierContext; @@ -66,7 +66,7 @@ private HibernateOrmExtension() { */ @Override public Optional extendOptional(IdentifierBridgeToDocumentIdentifierContext original, - MappingContextImplementor mappingContext) { + BackendMappingContext mappingContext) { return extendToOrmMappingContext( mappingContext ); } @@ -75,7 +75,7 @@ public Optional extendOptional(IdentifierBridgeToDoc */ @Override public Optional extendOptional(IdentifierBridgeFromDocumentIdentifierContext original, - SessionContextImplementor sessionContext) { + BackendSessionContext sessionContext) { return extendToOrmSessionContext( sessionContext ); } @@ -84,7 +84,7 @@ public Optional extendOptional(IdentifierBridgeFromD */ @Override public Optional extendOptional(RoutingKeyBridgeToRoutingKeyContext original, - SessionContextImplementor sessionContext) { + BackendSessionContext sessionContext) { return extendToOrmSessionContext( sessionContext ); } @@ -93,7 +93,7 @@ public Optional extendOptional(RoutingKeyBridgeToRou */ @Override public Optional extendOptional(TypeBridgeWriteContext original, - SessionContextImplementor sessionContext) { + BackendSessionContext sessionContext) { return extendToOrmSessionContext( sessionContext ); } @@ -102,7 +102,7 @@ public Optional extendOptional(TypeBridgeWriteContex */ @Override public Optional extendOptional(PropertyBridgeWriteContext original, - SessionContextImplementor sessionContext) { + BackendSessionContext sessionContext) { return extendToOrmSessionContext( sessionContext ); } @@ -111,7 +111,7 @@ public Optional extendOptional(PropertyBridgeWriteCo */ @Override public Optional extendOptional(ValueBridgeToIndexedValueContext original, - MappingContextImplementor mappingContext) { + BackendMappingContext mappingContext) { return extendToOrmMappingContext( mappingContext ); } @@ -120,7 +120,7 @@ public Optional extendOptional(ValueBridgeToIndexedV */ @Override public Optional extendOptional(ValueBridgeFromIndexedValueContext original, - SessionContextImplementor sessionContext) { + BackendSessionContext sessionContext) { return extendToOrmSessionContext( sessionContext ); } @@ -129,7 +129,7 @@ public Optional extendOptional(ValueBridgeFromIndexe */ @Override public Optional extendOptional(ToDocumentFieldValueConvertContext original, - MappingContextImplementor mappingContext) { + BackendMappingContext mappingContext) { return extendToOrmMappingContext( mappingContext ); } @@ -138,11 +138,11 @@ public Optional extendOptional(ToDocumentFieldValueC */ @Override public Optional extendOptional(FromDocumentFieldValueConvertContext original, - SessionContextImplementor sessionContext) { + BackendSessionContext sessionContext) { return extendToOrmSessionContext( sessionContext ); } - private Optional extendToOrmMappingContext(MappingContextImplementor mappingContext) { + private Optional extendToOrmMappingContext(BackendMappingContext mappingContext) { if ( mappingContext instanceof HibernateOrmMappingContext ) { return Optional.of( (HibernateOrmMappingContext) mappingContext ); } @@ -151,7 +151,7 @@ private Optional extendToOrmMappingContext(MappingCo } } - private Optional extendToOrmSessionContext(SessionContextImplementor sessionContext) { + private Optional extendToOrmSessionContext(BackendSessionContext sessionContext) { if ( sessionContext instanceof HibernateOrmSessionContext ) { return Optional.of( (HibernateOrmSessionContext) sessionContext ); } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/context/impl/HibernateOrmMappingContextImpl.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/context/impl/HibernateOrmMappingContextImpl.java index f725248afda..6e58f193d82 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/context/impl/HibernateOrmMappingContextImpl.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/context/impl/HibernateOrmMappingContextImpl.java @@ -8,9 +8,9 @@ import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.search.mapper.orm.mapping.context.HibernateOrmMappingContext; -import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoMappingContextImplementor; +import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoBackendMappingContext; -public class HibernateOrmMappingContextImpl extends AbstractPojoMappingContextImplementor implements HibernateOrmMappingContext { +public class HibernateOrmMappingContextImpl extends AbstractPojoBackendMappingContext implements HibernateOrmMappingContext { private final SessionFactoryImplementor sessionFactory; public HibernateOrmMappingContextImpl(SessionFactoryImplementor sessionFactory) { diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java index 835f91b3ba1..792d185431a 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java @@ -94,7 +94,7 @@ public static MappingImplementor create( ); } - private final HibernateOrmMappingContextImpl mappingContext; + private final HibernateOrmMappingContextImpl backendMappingContext; private final HibernateOrmTypeContextContainer typeContextContainer; private final AutomaticIndexingSynchronizationStrategy synchronizationStrategy; private final EntityLoadingCacheLookupStrategy cacheLookupStrategy; @@ -108,7 +108,7 @@ private HibernateOrmMapping(PojoMappingDelegate mappingDelegate, int fetchSize) { super( mappingDelegate ); this.typeContextContainer = typeContextContainer; - this.mappingContext = new HibernateOrmMappingContextImpl( sessionFactory ); + this.backendMappingContext = new HibernateOrmMappingContextImpl( sessionFactory ); this.synchronizationStrategy = synchronizationStrategy; this.cacheLookupStrategy = cacheLookupStrategy; this.fetchSize = fetchSize; @@ -116,12 +116,12 @@ private HibernateOrmMapping(PojoMappingDelegate mappingDelegate, @Override public EntityManagerFactory toEntityManagerFactory() { - return mappingContext.getSessionFactory(); + return backendMappingContext.getSessionFactory(); } @Override public SessionFactory toOrmSessionFactory() { - return mappingContext.getSessionFactory(); + return backendMappingContext.getSessionFactory(); } @Override @@ -152,7 +152,7 @@ public int getFetchSize() { @Override public SessionFactoryImplementor getSessionFactory() { - return mappingContext.getSessionFactory(); + return backendMappingContext.getSessionFactory(); } @Override @@ -168,7 +168,7 @@ public AbstractHibernateOrmTypeContext getTypeContext(Class type) { @Override public HibernateOrmSearchSession.HibernateOrmSearchSessionBuilder createSessionBuilder( SessionImplementor sessionImplementor) { - SessionFactory expectedSessionFactory = mappingContext.getSessionFactory(); + SessionFactory expectedSessionFactory = backendMappingContext.getSessionFactory(); SessionFactory givenSessionFactory = sessionImplementor.getSessionFactory(); if ( !givenSessionFactory.equals( expectedSessionFactory ) ) { @@ -176,7 +176,7 @@ public HibernateOrmSearchSession.HibernateOrmSearchSessionBuilder createSessionB } return new HibernateOrmSearchSession.HibernateOrmSearchSessionBuilder( - getDelegate(), mappingContext, this, typeContextContainer, + getDelegate(), backendMappingContext, this, typeContextContainer, sessionImplementor, synchronizationStrategy ); diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchCoordinator.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchCoordinator.java index 22cee95e763..c762d7a6de7 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchCoordinator.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchCoordinator.java @@ -14,7 +14,7 @@ import java.util.concurrent.Future; import org.hibernate.CacheMode; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.mapper.orm.logging.impl.Log; import org.hibernate.search.mapper.orm.massindexing.monitor.MassIndexingMonitor; import org.hibernate.search.mapper.pojo.work.spi.PojoScopeWorkExecutor; @@ -37,7 +37,7 @@ public class BatchCoordinator extends ErrorHandledRunnable { private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); private final HibernateOrmMassIndexingMappingContext mappingContext; - private final DetachedSessionContextImplementor sessionContext; + private final DetachedBackendSessionContext sessionContext; private final Set> rootEntities; //entity types to reindex excluding all subtypes of each-other private final PojoScopeWorkExecutor scopeWorkExecutor; @@ -56,7 +56,7 @@ public class BatchCoordinator extends ErrorHandledRunnable { private final List> indexingTasks = new ArrayList<>(); public BatchCoordinator(HibernateOrmMassIndexingMappingContext mappingContext, - DetachedSessionContextImplementor sessionContext, + DetachedBackendSessionContext sessionContext, Set> rootEntities, PojoScopeWorkExecutor scopeWorkExecutor, int typesToIndexInParallel, int documentBuilderThreads, CacheMode cacheMode, int objectLoadingBatchSize, long objectsLimit, boolean optimizeAtEnd, diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchIndexingWorkspace.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchIndexingWorkspace.java index a6bce9d6c10..488b0c72aba 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchIndexingWorkspace.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchIndexingWorkspace.java @@ -16,8 +16,7 @@ import javax.persistence.metamodel.SingularAttribute; import org.hibernate.CacheMode; -import org.hibernate.engine.spi.SessionFactoryImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.mapper.orm.logging.impl.Log; import org.hibernate.search.mapper.orm.massindexing.monitor.MassIndexingMonitor; import org.hibernate.search.util.common.AssertionFailure; @@ -38,7 +37,7 @@ public class BatchIndexingWorkspace extends ErrorHandledRunnable { private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); private final HibernateOrmMassIndexingMappingContext mappingContext; - private final DetachedSessionContextImplementor sessionContext; + private final DetachedBackendSessionContext sessionContext; private final ProducerConsumerQueue> primaryKeyStream; @@ -64,7 +63,7 @@ public class BatchIndexingWorkspace extends ErrorHandledRunnable { private final List> tasks = new ArrayList<>(); BatchIndexingWorkspace(HibernateOrmMassIndexingMappingContext mappingContext, - DetachedSessionContextImplementor sessionContext, + DetachedBackendSessionContext sessionContext, Class type, SingularAttribute idAttributeOfIndexedType, int objectLoadingThreads, CacheMode cacheMode, int objectLoadingBatchSize, CountDownLatch endAllSignal, MassIndexingMonitor monitor, long objectsLimit, diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/MassIndexerImpl.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/MassIndexerImpl.java index 57f564b20ea..d3636ef4d21 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/MassIndexerImpl.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/MassIndexerImpl.java @@ -13,7 +13,7 @@ import java.util.concurrent.CompletableFuture; import org.hibernate.CacheMode; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.mapper.orm.massindexing.MassIndexer; import org.hibernate.search.mapper.orm.logging.impl.Log; import org.hibernate.search.mapper.orm.massindexing.monitor.MassIndexingMonitor; @@ -34,7 +34,7 @@ public class MassIndexerImpl implements MassIndexer { private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); private final HibernateOrmMassIndexingMappingContext mappingContext; - private final DetachedSessionContextImplementor sessionContext; + private final DetachedBackendSessionContext sessionContext; private final Set> rootEntities; private final PojoScopeWorkExecutor scopeWorkExecutor; @@ -54,7 +54,7 @@ public class MassIndexerImpl implements MassIndexer { public MassIndexerImpl(HibernateOrmMassIndexingMappingContext mappingContext, Set> targetedIndexedTypes, - DetachedSessionContextImplementor sessionContext, + DetachedBackendSessionContext sessionContext, PojoScopeWorkExecutor scopeWorkExecutor) { this.mappingContext = mappingContext; this.sessionContext = sessionContext; diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeSessionContext.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeSessionContext.java index 623ca24eed2..cda5807494d 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeSessionContext.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeSessionContext.java @@ -7,7 +7,7 @@ package org.hibernate.search.mapper.orm.scope.impl; import org.hibernate.engine.spi.SessionImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.mapper.orm.search.loading.impl.HibernateOrmLoadingSessionContext; public interface HibernateOrmScopeSessionContext @@ -15,6 +15,6 @@ public interface HibernateOrmScopeSessionContext SessionImplementor getSession(); - DetachedSessionContextImplementor getDetachedSessionContext(); + DetachedBackendSessionContext getDetachedBackendSessionContext(); } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java index 0bece196fbb..39c7d47bcea 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java @@ -76,7 +76,7 @@ public MassIndexer massIndexer() { return new MassIndexerImpl( mappingContext, delegate.getIncludedIndexedTypes(), - sessionContext.getDetachedSessionContext(), + sessionContext.getDetachedBackendSessionContext(), delegate.executor() ); } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/context/impl/HibernateOrmSessionContextImpl.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/context/impl/HibernateOrmSessionContextImpl.java index 512a39b86e0..6973117d0eb 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/context/impl/HibernateOrmSessionContextImpl.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/context/impl/HibernateOrmSessionContextImpl.java @@ -11,9 +11,9 @@ import org.hibernate.search.mapper.orm.model.impl.HibernateOrmRuntimeIntrospector; import org.hibernate.search.mapper.orm.session.context.HibernateOrmSessionContext; import org.hibernate.search.mapper.pojo.model.spi.PojoRuntimeIntrospector; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; -public class HibernateOrmSessionContextImpl extends AbstractPojoSessionContextImplementor implements HibernateOrmSessionContext { +public class HibernateOrmSessionContextImpl extends AbstractPojoBackendSessionContext implements HibernateOrmSessionContext { private final HibernateOrmMappingContextImpl mappingContext; private final SessionImplementor sessionImplementor; diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java index 2615fc5954d..023460b00ea 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java @@ -23,7 +23,7 @@ import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.search.engine.backend.work.execution.DocumentCommitStrategy; import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.engine.backend.common.DocumentReference; import org.hibernate.search.engine.search.loading.spi.ReferenceHitMapper; import org.hibernate.search.mapper.orm.common.impl.EntityReferenceImpl; @@ -106,15 +106,15 @@ public static HibernateOrmSearchSession get(HibernateOrmSearchSessionMappingCont private SearchSessionWritePlanImpl writePlan; private HibernateOrmSearchSession(HibernateOrmSearchSessionBuilder builder) { - this( builder, builder.buildSessionContext() ); + this( builder, builder.buildBackendSessionContext() ); } private HibernateOrmSearchSession(HibernateOrmSearchSessionBuilder builder, - HibernateOrmSessionContextImpl sessionContext) { - super( builder, sessionContext ); + HibernateOrmSessionContextImpl backendSessionContext) { + super( builder, backendSessionContext ); this.scopeMappingContext = builder.scopeMappingContext; this.typeContextProvider = builder.typeContextProvider; - this.sessionContext = sessionContext; + this.sessionContext = backendSessionContext; this.synchronizationStrategy = builder.synchronizationStrategy; } @@ -179,8 +179,8 @@ public SessionImplementor getSession() { } @Override - public DetachedSessionContextImplementor getDetachedSessionContext() { - return DetachedSessionContextImplementor.of( sessionContext ); + public DetachedBackendSessionContext getDetachedBackendSessionContext() { + return DetachedBackendSessionContext.of( sessionContext ); } @Override @@ -347,7 +347,7 @@ public HibernateOrmSearchSessionBuilder(PojoMappingDelegate mappingDelegate, this.synchronizationStrategy = synchronizationStrategy; } - private HibernateOrmSessionContextImpl buildSessionContext() { + private HibernateOrmSessionContextImpl buildBackendSessionContext() { return new HibernateOrmSessionContextImpl( mappingContext, sessionImplementor ); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/binding/impl/PojoIdentifierBridgeToDocumentIdentifierValueConverter.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/binding/impl/PojoIdentifierBridgeToDocumentIdentifierValueConverter.java index 542a6670918..2a5e6c4ee09 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/binding/impl/PojoIdentifierBridgeToDocumentIdentifierValueConverter.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/binding/impl/PojoIdentifierBridgeToDocumentIdentifierValueConverter.java @@ -11,10 +11,10 @@ import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter; import org.hibernate.search.engine.backend.types.converter.runtime.spi.ToDocumentIdentifierValueConvertContext; import org.hibernate.search.engine.backend.types.converter.runtime.spi.ToDocumentIdentifierValueConvertContextExtension; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.mapper.pojo.bridge.IdentifierBridge; import org.hibernate.search.mapper.pojo.bridge.runtime.IdentifierBridgeToDocumentIdentifierContext; -import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoMappingContextImplementor; +import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoBackendMappingContext; final class PojoIdentifierBridgeToDocumentIdentifierValueConverter implements ToDocumentIdentifierValueConverter { @@ -60,9 +60,9 @@ private static class PojoIdentifierBridgeContextExtension @Override public Optional extendOptional( ToDocumentIdentifierValueConvertContext original, - MappingContextImplementor mappingContext) { - if ( mappingContext instanceof AbstractPojoMappingContextImplementor ) { - AbstractPojoMappingContextImplementor pojoMappingContext = (AbstractPojoMappingContextImplementor) mappingContext; + BackendMappingContext mappingContext) { + if ( mappingContext instanceof AbstractPojoBackendMappingContext ) { + AbstractPojoBackendMappingContext pojoMappingContext = (AbstractPojoBackendMappingContext) mappingContext; return Optional.of( pojoMappingContext.getIdentifierBridgeToDocumentIdentifierContext() ); } else { diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/binding/impl/PojoValueBridgeContextExtension.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/binding/impl/PojoValueBridgeContextExtension.java index 9d2f210e0a0..1062d74c1e1 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/binding/impl/PojoValueBridgeContextExtension.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/binding/impl/PojoValueBridgeContextExtension.java @@ -12,12 +12,12 @@ import org.hibernate.search.engine.backend.types.converter.runtime.FromDocumentFieldValueConvertContextExtension; import org.hibernate.search.engine.backend.types.converter.runtime.ToDocumentFieldValueConvertContext; import org.hibernate.search.engine.backend.types.converter.runtime.ToDocumentFieldValueConvertContextExtension; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.mapper.pojo.bridge.runtime.ValueBridgeFromIndexedValueContext; import org.hibernate.search.mapper.pojo.bridge.runtime.ValueBridgeToIndexedValueContext; -import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoMappingContextImplementor; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoBackendMappingContext; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; class PojoValueBridgeContextExtension implements ToDocumentFieldValueConvertContextExtension, @@ -26,9 +26,9 @@ class PojoValueBridgeContextExtension @Override public Optional extendOptional(ToDocumentFieldValueConvertContext original, - MappingContextImplementor mappingContext) { - if ( mappingContext instanceof AbstractPojoMappingContextImplementor ) { - AbstractPojoMappingContextImplementor pojoMappingContext = (AbstractPojoMappingContextImplementor) mappingContext; + BackendMappingContext mappingContext) { + if ( mappingContext instanceof AbstractPojoBackendMappingContext ) { + AbstractPojoBackendMappingContext pojoMappingContext = (AbstractPojoBackendMappingContext) mappingContext; return Optional.of( pojoMappingContext.getToIndexedValueContext() ); } else { @@ -38,9 +38,9 @@ public Optional extendOptional(ToDocumentField @Override public Optional extendOptional(FromDocumentFieldValueConvertContext original, - SessionContextImplementor sessionContext) { - if ( sessionContext instanceof AbstractPojoSessionContextImplementor ) { - AbstractPojoSessionContextImplementor pojoSessionContext = (AbstractPojoSessionContextImplementor) sessionContext; + BackendSessionContext sessionContext) { + if ( sessionContext instanceof AbstractPojoBackendSessionContext ) { + AbstractPojoBackendSessionContext pojoSessionContext = (AbstractPojoBackendSessionContext) sessionContext; return Optional.of( pojoSessionContext.getValueBridgeFromIndexedValueContext() ); } else { diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/IdentifierMappingImplementor.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/IdentifierMappingImplementor.java index 872b1679e17..51dc60aeb58 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/IdentifierMappingImplementor.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/IdentifierMappingImplementor.java @@ -9,7 +9,7 @@ import java.util.function.Supplier; import org.hibernate.search.mapper.pojo.bridge.mapping.spi.IdentifierMapping; -import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoMappingContextImplementor; +import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoBackendMappingContext; /** * @param The identifier type for the mapped entity type. @@ -25,6 +25,6 @@ default void close() { I getIdentifier(Object providedId, Supplier entitySupplier); - String toDocumentIdentifier(I identifier, AbstractPojoMappingContextImplementor context); + String toDocumentIdentifier(I identifier, AbstractPojoBackendMappingContext context); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/PropertyIdentifierMapping.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/PropertyIdentifierMapping.java index e16bbd12938..0eaec1a0913 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/PropertyIdentifierMapping.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/PropertyIdentifierMapping.java @@ -10,8 +10,8 @@ import org.hibernate.search.engine.environment.bean.BeanHolder; import org.hibernate.search.mapper.pojo.bridge.IdentifierBridge; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; -import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoMappingContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; +import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoBackendMappingContext; import org.hibernate.search.mapper.pojo.model.spi.PojoCaster; import org.hibernate.search.util.common.reflect.spi.ValueReadHandle; import org.hibernate.search.util.common.impl.Closer; @@ -53,12 +53,12 @@ public I getIdentifier(Object providedId, Supplier entitySupplier) } @Override - public String toDocumentIdentifier(I identifier, AbstractPojoMappingContextImplementor context) { + public String toDocumentIdentifier(I identifier, AbstractPojoBackendMappingContext context) { return bridgeHolder.get().toDocumentIdentifier( identifier, context.getIdentifierBridgeToDocumentIdentifierContext() ); } @Override - public I fromDocumentIdentifier(String documentId, AbstractPojoSessionContextImplementor context) { + public I fromDocumentIdentifier(String documentId, AbstractPojoBackendSessionContext context) { return bridgeHolder.get().fromDocumentIdentifier( documentId, context.getIdentifierBridgeFromDocumentIdentifierContext() ); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/ProvidedStringIdentifierMapping.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/ProvidedStringIdentifierMapping.java index fd4151e976c..fc25fc7a3c8 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/ProvidedStringIdentifierMapping.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/ProvidedStringIdentifierMapping.java @@ -11,8 +11,8 @@ import org.hibernate.search.mapper.pojo.logging.impl.Log; import org.hibernate.search.util.common.logging.impl.LoggerFactory; -import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoMappingContextImplementor; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoBackendMappingContext; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; public class ProvidedStringIdentifierMapping implements IdentifierMappingImplementor { @@ -40,12 +40,12 @@ public String getIdentifier(Object providedId, Supplier entityProvider) { } @Override - public String toDocumentIdentifier(String identifier, AbstractPojoMappingContextImplementor context) { + public String toDocumentIdentifier(String identifier, AbstractPojoBackendMappingContext context) { return identifier; } @Override - public String fromDocumentIdentifier(String documentId, AbstractPojoSessionContextImplementor sessionContext) { + public String fromDocumentIdentifier(String documentId, AbstractPojoBackendSessionContext sessionContext) { return documentId; } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/RoutingKeyBridgeRoutingKeyProvider.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/RoutingKeyBridgeRoutingKeyProvider.java index 0bf2d01348c..d4e19fb710e 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/RoutingKeyBridgeRoutingKeyProvider.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/RoutingKeyBridgeRoutingKeyProvider.java @@ -9,7 +9,7 @@ import java.util.function.Supplier; import org.hibernate.search.engine.environment.bean.BeanHolder; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.bridge.RoutingKeyBridge; import org.hibernate.search.util.common.impl.Closer; @@ -31,7 +31,7 @@ public void close() { @Override public String toRoutingKey(Object identifier, Supplier entitySupplier, - AbstractPojoSessionContextImplementor context) { + AbstractPojoBackendSessionContext context) { return bridgeHolder.get().toRoutingKey( context.getTenantIdentifier(), identifier, entitySupplier.get(), diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/RoutingKeyProvider.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/RoutingKeyProvider.java index a40864d879d..0ae067dea59 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/RoutingKeyProvider.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/impl/RoutingKeyProvider.java @@ -8,7 +8,7 @@ import java.util.function.Supplier; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; /** * @param The entity type mapped to an index. @@ -20,7 +20,7 @@ default void close() { } String toRoutingKey(Object identifier, Supplier entitySupplier, - AbstractPojoSessionContextImplementor context); + AbstractPojoBackendSessionContext context); static RoutingKeyProvider alwaysNull() { return (tenantIdentifier, entity, context) -> null; diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/spi/IdentifierMapping.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/spi/IdentifierMapping.java index 42dfe3b4f08..2e6050a649f 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/spi/IdentifierMapping.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/mapping/spi/IdentifierMapping.java @@ -6,10 +6,10 @@ */ package org.hibernate.search.mapper.pojo.bridge.mapping.spi; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; public interface IdentifierMapping { - Object fromDocumentIdentifier(String documentId, AbstractPojoSessionContextImplementor sessionContext); + Object fromDocumentIdentifier(String documentId, AbstractPojoBackendSessionContext sessionContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/IdentifierBridgeFromDocumentIdentifierContextExtension.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/IdentifierBridgeFromDocumentIdentifierContextExtension.java index fca9723bb81..ce2160aa53d 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/IdentifierBridgeFromDocumentIdentifierContextExtension.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/IdentifierBridgeFromDocumentIdentifierContextExtension.java @@ -9,7 +9,7 @@ import java.util.Optional; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; /** * An extension to {@link IdentifierBridgeFromDocumentIdentifierContext}, allowing to access non-standard context @@ -32,10 +32,10 @@ public interface IdentifierBridgeFromDocumentIdentifierContextExtension { * WARNING: this method is not API, see comments at the type level. * * @param original The original, non-extended {@link IdentifierBridgeFromDocumentIdentifierContext}. - * @param sessionContext A {@link SessionContextImplementor}. + * @param sessionContext A {@link BackendSessionContext}. * @return An optional containing the extended context ({@link T}) in case * of success, or an empty optional otherwise. */ - Optional extendOptional(IdentifierBridgeFromDocumentIdentifierContext original, SessionContextImplementor sessionContext); + Optional extendOptional(IdentifierBridgeFromDocumentIdentifierContext original, BackendSessionContext sessionContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/IdentifierBridgeToDocumentIdentifierContextExtension.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/IdentifierBridgeToDocumentIdentifierContextExtension.java index 1ff2fe10aeb..fbb8ce91af4 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/IdentifierBridgeToDocumentIdentifierContextExtension.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/IdentifierBridgeToDocumentIdentifierContextExtension.java @@ -9,7 +9,7 @@ import java.util.Optional; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; /** * An extension to {@link IdentifierBridgeToDocumentIdentifierContext}, allowing to access non-standard context @@ -32,11 +32,11 @@ public interface IdentifierBridgeToDocumentIdentifierContextExtension { * WARNING: this method is not API, see comments at the type level. * * @param original The original, non-extended {@link IdentifierBridgeToDocumentIdentifierContext}. - * @param mappingContext A {@link MappingContextImplementor}. + * @param mappingContext A {@link BackendMappingContext}. * @return An optional containing the extended context ({@link T}) in case * of success, or an empty optional otherwise. */ Optional extendOptional(IdentifierBridgeToDocumentIdentifierContext original, - MappingContextImplementor mappingContext); + BackendMappingContext mappingContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/PropertyBridgeWriteContextExtension.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/PropertyBridgeWriteContextExtension.java index cd13c877926..ee0c255e4fc 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/PropertyBridgeWriteContextExtension.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/PropertyBridgeWriteContextExtension.java @@ -9,7 +9,7 @@ import java.util.Optional; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; /** * An extension to {@link PropertyBridgeWriteContext}, allowing to access non-standard context @@ -32,10 +32,10 @@ public interface PropertyBridgeWriteContextExtension { * WARNING: this method is not API, see comments at the type level. * * @param original The original, non-extended {@link PropertyBridgeWriteContext}. - * @param sessionContext A {@link SessionContextImplementor}. + * @param sessionContext A {@link BackendSessionContext}. * @return An optional containing the extended context ({@link T}) in case * of success, or an empty optional otherwise. */ - Optional extendOptional(PropertyBridgeWriteContext original, SessionContextImplementor sessionContext); + Optional extendOptional(PropertyBridgeWriteContext original, BackendSessionContext sessionContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/RoutingKeyBridgeToRoutingKeyContextExtension.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/RoutingKeyBridgeToRoutingKeyContextExtension.java index 0112922a7fa..0fb53775964 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/RoutingKeyBridgeToRoutingKeyContextExtension.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/RoutingKeyBridgeToRoutingKeyContextExtension.java @@ -9,7 +9,7 @@ import java.util.Optional; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; /** * An extension to {@link RoutingKeyBridgeToRoutingKeyContext}, allowing to access non-standard context @@ -32,10 +32,10 @@ public interface RoutingKeyBridgeToRoutingKeyContextExtension { * WARNING: this method is not API, see comments at the type level. * * @param original The original, non-extended {@link RoutingKeyBridgeToRoutingKeyContext}. - * @param sessionContext A {@link SessionContextImplementor}. + * @param sessionContext A {@link BackendSessionContext}. * @return An optional containing the extended context ({@link T}) in case * of success, or an empty optional otherwise. */ - Optional extendOptional(RoutingKeyBridgeToRoutingKeyContext original, SessionContextImplementor sessionContext); + Optional extendOptional(RoutingKeyBridgeToRoutingKeyContext original, BackendSessionContext sessionContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/TypeBridgeWriteContextExtension.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/TypeBridgeWriteContextExtension.java index 18ca60992f4..eccb843e864 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/TypeBridgeWriteContextExtension.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/TypeBridgeWriteContextExtension.java @@ -9,7 +9,7 @@ import java.util.Optional; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; /** * An extension to {@link TypeBridgeWriteContext}, allowing to access non-standard context @@ -32,10 +32,10 @@ public interface TypeBridgeWriteContextExtension { * WARNING: this method is not API, see comments at the type level. * * @param original The original, non-extended {@link TypeBridgeWriteContext}. - * @param sessionContext A {@link SessionContextImplementor}. + * @param sessionContext A {@link BackendSessionContext}. * @return An optional containing the extended context ({@link T}) in case * of success, or an empty optional otherwise. */ - Optional extendOptional(TypeBridgeWriteContext original, SessionContextImplementor sessionContext); + Optional extendOptional(TypeBridgeWriteContext original, BackendSessionContext sessionContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/ValueBridgeFromIndexedValueContextExtension.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/ValueBridgeFromIndexedValueContextExtension.java index df3a7259f45..d805295e614 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/ValueBridgeFromIndexedValueContextExtension.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/ValueBridgeFromIndexedValueContextExtension.java @@ -9,7 +9,7 @@ import java.util.Optional; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; /** * An extension to {@link ValueBridgeToIndexedValueContext}, allowing to access non-standard context @@ -32,11 +32,11 @@ public interface ValueBridgeFromIndexedValueContextExtension { * WARNING: this method is not API, see comments at the type level. * * @param original The original, non-extended {@link ValueBridgeToIndexedValueContext}. - * @param sessionContext A {@link SessionContextImplementor}. + * @param sessionContext A {@link BackendSessionContext}. * @return An optional containing the extended context ({@link T}) in case * of success, or an empty optional otherwise. */ Optional extendOptional(ValueBridgeFromIndexedValueContext original, - SessionContextImplementor sessionContext); + BackendSessionContext sessionContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/ValueBridgeToIndexedValueContextExtension.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/ValueBridgeToIndexedValueContextExtension.java index f20792d9b74..acfbc99d2a8 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/ValueBridgeToIndexedValueContextExtension.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/ValueBridgeToIndexedValueContextExtension.java @@ -9,7 +9,7 @@ import java.util.Optional; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; /** * An extension to {@link ValueBridgeToIndexedValueContext}, allowing to access non-standard context @@ -32,11 +32,11 @@ public interface ValueBridgeToIndexedValueContextExtension { * WARNING: this method is not API, see comments at the type level. * * @param original The original, non-extended {@link ValueBridgeToIndexedValueContext}. - * @param mappingContext A {@link MappingContextImplementor}. + * @param mappingContext A {@link BackendMappingContext}. * @return An optional containing the extended context ({@link T}) in case * of success, or an empty optional otherwise. */ Optional extendOptional(ValueBridgeToIndexedValueContext original, - MappingContextImplementor mappingContext); + BackendMappingContext mappingContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/BridgeSessionContext.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/BridgeSessionContext.java index cda76e5c79a..c4bb8d23b41 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/BridgeSessionContext.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/BridgeSessionContext.java @@ -7,7 +7,7 @@ package org.hibernate.search.mapper.pojo.bridge.runtime.impl; import org.hibernate.search.engine.common.dsl.spi.DslExtensionState; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.mapper.pojo.bridge.runtime.IdentifierBridgeFromDocumentIdentifierContext; import org.hibernate.search.mapper.pojo.bridge.runtime.IdentifierBridgeFromDocumentIdentifierContextExtension; import org.hibernate.search.mapper.pojo.bridge.runtime.PropertyBridgeWriteContext; @@ -33,9 +33,9 @@ public final class BridgeSessionContext PropertyBridgeWriteContext, ValueBridgeFromIndexedValueContext { - private final SessionContextImplementor sessionContext; + private final BackendSessionContext sessionContext; - public BridgeSessionContext(SessionContextImplementor sessionContext) { + public BridgeSessionContext(BackendSessionContext sessionContext) { this.sessionContext = sessionContext; } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/IdentifierBridgeToDocumentIdentifierContextImpl.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/IdentifierBridgeToDocumentIdentifierContextImpl.java index 546bdf529e3..228021fbd86 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/IdentifierBridgeToDocumentIdentifierContextImpl.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/IdentifierBridgeToDocumentIdentifierContextImpl.java @@ -7,15 +7,15 @@ package org.hibernate.search.mapper.pojo.bridge.runtime.impl; import org.hibernate.search.engine.common.dsl.spi.DslExtensionState; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.mapper.pojo.bridge.runtime.IdentifierBridgeToDocumentIdentifierContext; import org.hibernate.search.mapper.pojo.bridge.runtime.IdentifierBridgeToDocumentIdentifierContextExtension; public class IdentifierBridgeToDocumentIdentifierContextImpl implements IdentifierBridgeToDocumentIdentifierContext { - private final MappingContextImplementor mappingContext; + private final BackendMappingContext mappingContext; - public IdentifierBridgeToDocumentIdentifierContextImpl(MappingContextImplementor mappingContext) { + public IdentifierBridgeToDocumentIdentifierContextImpl(BackendMappingContext mappingContext) { this.mappingContext = mappingContext; } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/ValueBridgeToIndexedValueContextImpl.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/ValueBridgeToIndexedValueContextImpl.java index 733133400f7..f2899cfb5ce 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/ValueBridgeToIndexedValueContextImpl.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/ValueBridgeToIndexedValueContextImpl.java @@ -7,15 +7,15 @@ package org.hibernate.search.mapper.pojo.bridge.runtime.impl; import org.hibernate.search.engine.common.dsl.spi.DslExtensionState; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.mapper.pojo.bridge.runtime.ValueBridgeToIndexedValueContext; import org.hibernate.search.mapper.pojo.bridge.runtime.ValueBridgeToIndexedValueContextExtension; public class ValueBridgeToIndexedValueContextImpl implements ValueBridgeToIndexedValueContext { - private final MappingContextImplementor mappingContext; + private final BackendMappingContext mappingContext; - public ValueBridgeToIndexedValueContextImpl(MappingContextImplementor mappingContext) { + public ValueBridgeToIndexedValueContextImpl(BackendMappingContext mappingContext) { this.mappingContext = mappingContext; } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/context/spi/AbstractPojoMappingContextImplementor.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/context/spi/AbstractPojoBackendMappingContext.java similarity index 84% rename from mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/context/spi/AbstractPojoMappingContextImplementor.java rename to mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/context/spi/AbstractPojoBackendMappingContext.java index 8b290209b2d..17215003459 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/context/spi/AbstractPojoMappingContextImplementor.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/context/spi/AbstractPojoBackendMappingContext.java @@ -6,18 +6,18 @@ */ package org.hibernate.search.mapper.pojo.mapping.context.spi; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.mapper.pojo.bridge.runtime.IdentifierBridgeToDocumentIdentifierContext; import org.hibernate.search.mapper.pojo.bridge.runtime.ValueBridgeToIndexedValueContext; import org.hibernate.search.mapper.pojo.bridge.runtime.impl.IdentifierBridgeToDocumentIdentifierContextImpl; import org.hibernate.search.mapper.pojo.bridge.runtime.impl.ValueBridgeToIndexedValueContextImpl; -public abstract class AbstractPojoMappingContextImplementor implements MappingContextImplementor { +public abstract class AbstractPojoBackendMappingContext implements BackendMappingContext { private final IdentifierBridgeToDocumentIdentifierContext toDocumentIdentifierContext; private final ValueBridgeToIndexedValueContext toIndexedValueContext; - protected AbstractPojoMappingContextImplementor() { + protected AbstractPojoBackendMappingContext() { this.toDocumentIdentifierContext = new IdentifierBridgeToDocumentIdentifierContextImpl( this ); this.toIndexedValueContext = new ValueBridgeToIndexedValueContextImpl( this ); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoContainedTypeManager.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoContainedTypeManager.java index 88521ad6b93..1e21335e861 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoContainedTypeManager.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoContainedTypeManager.java @@ -14,7 +14,7 @@ import org.hibernate.search.mapper.pojo.model.spi.PojoCaster; import org.hibernate.search.mapper.pojo.model.spi.PojoRuntimeIntrospector; import org.hibernate.search.mapper.pojo.scope.impl.PojoScopeContainedTypeContext; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.work.impl.CachingCastingEntitySupplier; import org.hibernate.search.mapper.pojo.work.impl.PojoContainedTypeWorkPlan; import org.hibernate.search.mapper.pojo.work.impl.PojoWorkContainedTypeContext; @@ -62,7 +62,7 @@ public Class getJavaClass() { } @Override - public Supplier toEntitySupplier(AbstractPojoSessionContextImplementor sessionContext, Object entity) { + public Supplier toEntitySupplier(AbstractPojoBackendSessionContext sessionContext, Object entity) { PojoRuntimeIntrospector introspector = sessionContext.getRuntimeIntrospector(); return new CachingCastingEntitySupplier<>( caster, introspector, entity ); } @@ -76,7 +76,7 @@ public void resolveEntitiesToReindex(PojoReindexingCollector collector, PojoRunt } @Override - public PojoContainedTypeWorkPlan createWorkPlan(AbstractPojoSessionContextImplementor sessionContext) { + public PojoContainedTypeWorkPlan createWorkPlan(AbstractPojoBackendSessionContext sessionContext) { return new PojoContainedTypeWorkPlan<>( this, sessionContext ); diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoIndexedTypeManager.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoIndexedTypeManager.java index 56c8b68486d..8d82bc5c148 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoIndexedTypeManager.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoIndexedTypeManager.java @@ -14,10 +14,10 @@ import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; import org.hibernate.search.engine.backend.work.execution.spi.DocumentReferenceProvider; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkExecutor; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.engine.mapper.mapping.spi.MappedIndexManager; import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScopeBuilder; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.mapper.pojo.bridge.mapping.impl.IdentifierMappingImplementor; import org.hibernate.search.mapper.pojo.bridge.mapping.impl.RoutingKeyProvider; import org.hibernate.search.mapper.pojo.automaticindexing.impl.PojoImplicitReindexingResolver; @@ -26,7 +26,7 @@ import org.hibernate.search.mapper.pojo.model.spi.PojoRuntimeIntrospector; import org.hibernate.search.mapper.pojo.processing.impl.PojoIndexingProcessor; import org.hibernate.search.mapper.pojo.scope.impl.PojoScopeIndexedTypeContext; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.work.impl.CachingCastingEntitySupplier; import org.hibernate.search.mapper.pojo.work.impl.PojoDocumentContributor; import org.hibernate.search.mapper.pojo.work.impl.PojoDocumentReferenceProvider; @@ -105,13 +105,13 @@ public IdentifierMappingImplementor getIdentifierMapping() { } @Override - public Supplier toEntitySupplier(AbstractPojoSessionContextImplementor sessionContext, Object entity) { + public Supplier toEntitySupplier(AbstractPojoBackendSessionContext sessionContext, Object entity) { PojoRuntimeIntrospector introspector = sessionContext.getRuntimeIntrospector(); return new CachingCastingEntitySupplier<>( caster, introspector, entity ); } @Override - public DocumentReferenceProvider toDocumentReferenceProvider(AbstractPojoSessionContextImplementor sessionContext, + public DocumentReferenceProvider toDocumentReferenceProvider(AbstractPojoBackendSessionContext sessionContext, I identifier, Supplier entitySupplier) { String documentIdentifier = identifierMapping.toDocumentIdentifier( identifier, sessionContext.getMappingContext() @@ -123,7 +123,7 @@ public DocumentReferenceProvider toDocumentReferenceProvider(AbstractPojoSession } @Override - public PojoDocumentContributor toDocumentContributor(Supplier entitySupplier, AbstractPojoSessionContextImplementor sessionContext) { + public PojoDocumentContributor toDocumentContributor(Supplier entitySupplier, AbstractPojoBackendSessionContext sessionContext) { return new PojoDocumentContributor<>( processor, sessionContext, entitySupplier ); } @@ -142,7 +142,7 @@ public void resolveEntitiesToReindex(PojoReindexingCollector collector, PojoRunt @Override public PojoTypeDocumentWorkExecutor createDocumentWorkExecutor( - AbstractPojoSessionContextImplementor sessionContext, + AbstractPojoBackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy) { return new PojoTypeDocumentWorkExecutor<>( this, sessionContext, @@ -151,12 +151,12 @@ public PojoTypeDocumentWorkExecutor createDocumentWorkExecutor( } @Override - public IndexWorkExecutor createWorkExecutor(DetachedSessionContextImplementor sessionContext) { + public IndexWorkExecutor createWorkExecutor(DetachedBackendSessionContext sessionContext) { return indexManager.createWorkExecutor( sessionContext ); } @Override - public PojoIndexedTypeWorkPlan createWorkPlan(AbstractPojoSessionContextImplementor sessionContext, + public PojoIndexedTypeWorkPlan createWorkPlan(AbstractPojoBackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { return new PojoIndexedTypeWorkPlan<>( this, sessionContext, @@ -165,7 +165,7 @@ public PojoIndexedTypeWorkPlan createWorkPlan(AbstractPojoSessionContex } @Override - public MappedIndexScopeBuilder createScopeBuilder(MappingContextImplementor mappingContext) { + public MappedIndexScopeBuilder createScopeBuilder(BackendMappingContext mappingContext) { return indexManager.createScopeBuilder( mappingContext ); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoMappingDelegateImpl.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoMappingDelegateImpl.java index c70d06ddae6..70758df5faa 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoMappingDelegateImpl.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoMappingDelegateImpl.java @@ -9,7 +9,7 @@ import org.hibernate.search.mapper.pojo.mapping.spi.PojoMappingDelegate; import org.hibernate.search.mapper.pojo.session.impl.PojoSearchSessionDelegateImpl; import org.hibernate.search.mapper.pojo.session.spi.PojoSearchSessionDelegate; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.util.common.impl.Closer; @@ -34,10 +34,10 @@ public void close() { @Override public PojoSearchSessionDelegate createSearchSessionDelegate( - AbstractPojoSessionContextImplementor sessionContextImplementor) { + AbstractPojoBackendSessionContext backendSessionContext) { return new PojoSearchSessionDelegateImpl( indexedTypeManagers, containedTypeManagers, - sessionContextImplementor + backendSessionContext ); } } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/spi/PojoMappingDelegate.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/spi/PojoMappingDelegate.java index bdc6c19e4cc..5d323144720 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/spi/PojoMappingDelegate.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/spi/PojoMappingDelegate.java @@ -6,7 +6,7 @@ */ package org.hibernate.search.mapper.pojo.mapping.spi; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.session.spi.PojoSearchSessionDelegate; public interface PojoMappingDelegate extends AutoCloseable { @@ -14,6 +14,6 @@ public interface PojoMappingDelegate extends AutoCloseable { @Override void close(); - PojoSearchSessionDelegate createSearchSessionDelegate(AbstractPojoSessionContextImplementor sessionContext); + PojoSearchSessionDelegate createSearchSessionDelegate(AbstractPojoBackendSessionContext backendSessionContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/NoOpPojoIndexingProcessor.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/NoOpPojoIndexingProcessor.java index 6a1b5554b76..daccdf5e22d 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/NoOpPojoIndexingProcessor.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/NoOpPojoIndexingProcessor.java @@ -7,7 +7,7 @@ package org.hibernate.search.mapper.pojo.processing.impl; import org.hibernate.search.engine.backend.document.DocumentElement; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.util.common.impl.ToStringTreeBuilder; class NoOpPojoIndexingProcessor extends PojoIndexingProcessor { @@ -20,7 +20,7 @@ public static PojoIndexingProcessor get() { } @Override - public void process(DocumentElement target, Object source, AbstractPojoSessionContextImplementor sessionContext) { + public void process(DocumentElement target, Object source, AbstractPojoBackendSessionContext sessionContext) { // No-op } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessor.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessor.java index 9e3301d1909..7ed4096b819 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessor.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessor.java @@ -7,7 +7,7 @@ package org.hibernate.search.mapper.pojo.processing.impl; import org.hibernate.search.engine.backend.document.DocumentElement; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.util.common.impl.ToStringTreeAppendable; import org.hibernate.search.util.common.impl.ToStringTreeBuilder; @@ -27,7 +27,7 @@ public String toString() { public void close() { } - public abstract void process(DocumentElement target, T source, AbstractPojoSessionContextImplementor sessionContext); + public abstract void process(DocumentElement target, T source, AbstractPojoBackendSessionContext sessionContext); public static PojoIndexingProcessor noOp() { return NoOpPojoIndexingProcessor.get(); diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorContainerElementNode.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorContainerElementNode.java index 9c8e9ca66a4..9fecf906568 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorContainerElementNode.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorContainerElementNode.java @@ -11,7 +11,7 @@ import org.hibernate.search.engine.backend.document.DocumentElement; import org.hibernate.search.mapper.pojo.extractor.impl.ContainerExtractorHolder; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.util.common.impl.Closer; import org.hibernate.search.util.common.impl.ToStringTreeBuilder; @@ -53,13 +53,13 @@ public void appendTo(ToStringTreeBuilder builder) { } @Override - public final void process(DocumentElement target, C source, AbstractPojoSessionContextImplementor sessionContext) { + public final void process(DocumentElement target, C source, AbstractPojoBackendSessionContext sessionContext) { try ( Stream stream = extractorHolder.get().extract( source ) ) { stream.forEach( sourceItem -> processItem( target, sourceItem, sessionContext ) ); } } - private void processItem(DocumentElement target, V sourceItem, AbstractPojoSessionContextImplementor sessionContext) { + private void processItem(DocumentElement target, V sourceItem, AbstractPojoBackendSessionContext sessionContext) { for ( PojoIndexingProcessor nestedNode : nestedNodes ) { nestedNode.process( target, sourceItem, sessionContext ); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorPropertyNode.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorPropertyNode.java index 80ad5fb9e70..5ae7fdbdc58 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorPropertyNode.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorPropertyNode.java @@ -12,7 +12,7 @@ import org.hibernate.search.engine.environment.bean.BeanHolder; import org.hibernate.search.mapper.pojo.bridge.PropertyBridge; import org.hibernate.search.util.common.reflect.spi.ValueReadHandle; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.util.common.impl.Closer; import org.hibernate.search.util.common.impl.ToStringTreeBuilder; @@ -63,7 +63,7 @@ public void appendTo(ToStringTreeBuilder builder) { } @Override - public final void process(DocumentElement target, T source, AbstractPojoSessionContextImplementor sessionContext) { + public final void process(DocumentElement target, T source, AbstractPojoBackendSessionContext sessionContext) { P propertyValue = handle.get( source ); for ( BeanHolder bridgeHolder : propertyBridgeHolders ) { bridgeHolder.get().write( target, propertyValue, sessionContext.getPropertyBridgeWriteContext() ); diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorTypeNode.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorTypeNode.java index 28b5bde14b5..3559af84bd4 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorTypeNode.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorTypeNode.java @@ -12,7 +12,7 @@ import org.hibernate.search.engine.backend.document.IndexObjectFieldReference; import org.hibernate.search.engine.environment.bean.BeanHolder; import org.hibernate.search.mapper.pojo.bridge.TypeBridge; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.util.common.impl.Closer; import org.hibernate.search.util.common.impl.ToStringTreeBuilder; @@ -63,7 +63,7 @@ public void appendTo(ToStringTreeBuilder builder) { @Override @SuppressWarnings("unchecked") // As long as T is not a proxy-specific interface, it will also be implemented by the unproxified object - public final void process(DocumentElement target, T source, AbstractPojoSessionContextImplementor sessionContext) { + public final void process(DocumentElement target, T source, AbstractPojoBackendSessionContext sessionContext) { if ( source == null ) { return; } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorValueBridgeNode.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorValueBridgeNode.java index 8cad02dac57..8940ad448b4 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorValueBridgeNode.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/processing/impl/PojoIndexingProcessorValueBridgeNode.java @@ -10,7 +10,7 @@ import org.hibernate.search.engine.backend.document.IndexFieldReference; import org.hibernate.search.engine.environment.bean.BeanHolder; import org.hibernate.search.mapper.pojo.bridge.ValueBridge; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.util.common.impl.Closer; import org.hibernate.search.util.common.impl.ToStringTreeBuilder; @@ -47,7 +47,7 @@ public void appendTo(ToStringTreeBuilder builder) { } @Override - public void process(DocumentElement target, V source, AbstractPojoSessionContextImplementor sessionContext) { + public void process(DocumentElement target, V source, AbstractPojoBackendSessionContext sessionContext) { F indexFieldValue = bridgeHolder.get().toIndexedValue( source, sessionContext.getMappingContext().getToIndexedValueContext() ); target.addValue( indexFieldReference, indexFieldValue ); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/impl/PojoScopeDelegateImpl.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/impl/PojoScopeDelegateImpl.java index e670e6b9e74..a10020aa211 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/impl/PojoScopeDelegateImpl.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/impl/PojoScopeDelegateImpl.java @@ -16,7 +16,7 @@ import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScope; import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScopeBuilder; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; import org.hibernate.search.engine.search.query.dsl.SearchQueryHitTypeStep; @@ -24,8 +24,8 @@ import org.hibernate.search.mapper.pojo.logging.impl.Log; import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate; import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeTypeExtendedContextProvider; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; -import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoMappingContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; +import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoBackendMappingContext; import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; import org.hibernate.search.engine.search.sort.dsl.SearchSortFactory; import org.hibernate.search.mapper.pojo.work.impl.PojoScopeWorkExecutorImpl; @@ -41,7 +41,7 @@ public static PojoScopeDelegate create( PojoScopeContainedTypeContextProvider containedTypeContextProvider, Collection> targetedTypes, PojoScopeTypeExtendedContextProvider indexedTypeExtendedContextProvider, - AbstractPojoSessionContextImplementor sessionContext) { + AbstractPojoBackendSessionContext sessionContext) { if ( targetedTypes.isEmpty() ) { throw log.invalidEmptyTargetForScope(); } @@ -82,13 +82,13 @@ public static PojoScopeDelegate create( private final Set> targetedTypeContexts; private final Set targetedTypeExtendedContexts; - private final AbstractPojoSessionContextImplementor sessionContext; + private final AbstractPojoBackendSessionContext sessionContext; private MappedIndexScope delegate; private PojoScopeWorkExecutor executor; private PojoScopeDelegateImpl(Set> targetedTypeContexts, Set targetedTypeExtendedContexts, - AbstractPojoSessionContextImplementor sessionContext) { + AbstractPojoBackendSessionContext sessionContext) { this.targetedTypeContexts = targetedTypeContexts; this.targetedTypeExtendedContexts = targetedTypeExtendedContexts; this.sessionContext = sessionContext; @@ -129,14 +129,14 @@ public SearchAggregationFactory aggregation() { public PojoScopeWorkExecutor executor() { if ( executor == null ) { executor = new PojoScopeWorkExecutorImpl( - targetedTypeContexts, DetachedSessionContextImplementor.of( sessionContext ) + targetedTypeContexts, DetachedBackendSessionContext.of( sessionContext ) ); } return executor; } private MappedIndexScope getIndexScope() { - AbstractPojoMappingContextImplementor mappingContext = sessionContext.getMappingContext(); + AbstractPojoBackendMappingContext mappingContext = sessionContext.getMappingContext(); if ( delegate == null ) { Iterator> iterator = targetedTypeContexts.iterator(); MappedIndexScopeBuilder builder = iterator.next().createScopeBuilder( diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/impl/PojoScopeIndexedTypeContext.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/impl/PojoScopeIndexedTypeContext.java index 5288a7611cb..6a05e066c85 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/impl/PojoScopeIndexedTypeContext.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/impl/PojoScopeIndexedTypeContext.java @@ -7,7 +7,7 @@ package org.hibernate.search.mapper.pojo.scope.impl; import org.hibernate.search.engine.backend.document.DocumentElement; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScopeBuilder; import org.hibernate.search.mapper.pojo.work.impl.PojoWorkIndexedTypeContext; @@ -19,7 +19,7 @@ public interface PojoScopeIndexedTypeContext extends PojoWorkIndexedTypeContext { - MappedIndexScopeBuilder createScopeBuilder(MappingContextImplementor mappingContext); + MappedIndexScopeBuilder createScopeBuilder(BackendMappingContext mappingContext); void addTo(MappedIndexScopeBuilder builder); diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/context/spi/AbstractPojoSessionContextImplementor.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/context/spi/AbstractPojoBackendSessionContext.java similarity index 83% rename from mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/context/spi/AbstractPojoSessionContextImplementor.java rename to mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/context/spi/AbstractPojoBackendSessionContext.java index 58dd20cabd4..468d01e4748 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/context/spi/AbstractPojoSessionContextImplementor.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/context/spi/AbstractPojoBackendSessionContext.java @@ -6,26 +6,26 @@ */ package org.hibernate.search.mapper.pojo.session.context.spi; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.mapper.pojo.bridge.runtime.IdentifierBridgeFromDocumentIdentifierContext; import org.hibernate.search.mapper.pojo.bridge.runtime.PropertyBridgeWriteContext; import org.hibernate.search.mapper.pojo.bridge.runtime.RoutingKeyBridgeToRoutingKeyContext; import org.hibernate.search.mapper.pojo.bridge.runtime.TypeBridgeWriteContext; import org.hibernate.search.mapper.pojo.bridge.runtime.ValueBridgeFromIndexedValueContext; import org.hibernate.search.mapper.pojo.bridge.runtime.impl.BridgeSessionContext; -import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoMappingContextImplementor; +import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoBackendMappingContext; import org.hibernate.search.mapper.pojo.model.spi.PojoRuntimeIntrospector; -public abstract class AbstractPojoSessionContextImplementor implements SessionContextImplementor { +public abstract class AbstractPojoBackendSessionContext implements BackendSessionContext { private final BridgeSessionContext bridgeSessionContext; - public AbstractPojoSessionContextImplementor() { + public AbstractPojoBackendSessionContext() { this.bridgeSessionContext = new BridgeSessionContext( this ); } @Override - public abstract AbstractPojoMappingContextImplementor getMappingContext(); + public abstract AbstractPojoBackendMappingContext getMappingContext(); public abstract PojoRuntimeIntrospector getRuntimeIntrospector(); diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/impl/PojoSearchSessionDelegateImpl.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/impl/PojoSearchSessionDelegateImpl.java index a37bb217667..a2aa6612b24 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/impl/PojoSearchSessionDelegateImpl.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/impl/PojoSearchSessionDelegateImpl.java @@ -15,7 +15,7 @@ import org.hibernate.search.mapper.pojo.scope.impl.PojoScopeIndexedTypeContextProvider; import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate; import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeTypeExtendedContextProvider; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.session.spi.PojoSearchSessionDelegate; import org.hibernate.search.mapper.pojo.work.impl.PojoSessionWorkExecutorImpl; import org.hibernate.search.mapper.pojo.work.impl.PojoWorkPlanImpl; @@ -26,19 +26,19 @@ public final class PojoSearchSessionDelegateImpl implements PojoSearchSessionDel private final PojoScopeIndexedTypeContextProvider indexedTypeContextProvider; private final PojoScopeContainedTypeContextProvider containedTypeContextProvider; - private final AbstractPojoSessionContextImplementor sessionContext; + private final AbstractPojoBackendSessionContext backendSessionContext; public PojoSearchSessionDelegateImpl(PojoScopeIndexedTypeContextProvider indexedTypeContextProvider, PojoScopeContainedTypeContextProvider containedTypeContextProvider, - AbstractPojoSessionContextImplementor sessionContext) { + AbstractPojoBackendSessionContext backendSessionContext) { this.indexedTypeContextProvider = indexedTypeContextProvider; this.containedTypeContextProvider = containedTypeContextProvider; - this.sessionContext = sessionContext; + this.backendSessionContext = backendSessionContext; } @Override - public AbstractPojoSessionContextImplementor getSessionContext() { - return sessionContext; + public AbstractPojoBackendSessionContext getBackendSessionContext() { + return backendSessionContext; } @Override @@ -49,21 +49,21 @@ public PojoScopeDelegate createPojoScope(Collection builder, - AbstractPojoSessionContextImplementor sessionContext) { - this.delegate = builder.mappingDelegate.createSearchSessionDelegate( sessionContext ); + AbstractPojoBackendSessionContext backendSessionContext) { + this.delegate = builder.mappingDelegate.createSearchSessionDelegate( backendSessionContext ); } protected final PojoSearchSessionDelegate getDelegate() { diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/spi/PojoSearchSessionDelegate.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/spi/PojoSearchSessionDelegate.java index a137675b287..9b2dc26d2fe 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/spi/PojoSearchSessionDelegate.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/spi/PojoSearchSessionDelegate.java @@ -12,13 +12,13 @@ import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate; import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeTypeExtendedContextProvider; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.work.spi.PojoSessionWorkExecutor; import org.hibernate.search.mapper.pojo.work.spi.PojoWorkPlan; public interface PojoSearchSessionDelegate { - AbstractPojoSessionContextImplementor getSessionContext(); + AbstractPojoBackendSessionContext getBackendSessionContext(); PojoScopeDelegate createPojoScope(Collection> targetedTypes, PojoScopeTypeExtendedContextProvider indexedTypeExtendedContextProvider); diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/AbstractPojoTypeWorkPlan.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/AbstractPojoTypeWorkPlan.java index 69479ffbcea..a98d150e7fa 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/AbstractPojoTypeWorkPlan.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/AbstractPojoTypeWorkPlan.java @@ -6,13 +6,13 @@ */ package org.hibernate.search.mapper.pojo.work.impl; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; abstract class AbstractPojoTypeWorkPlan { - final AbstractPojoSessionContextImplementor sessionContext; + final AbstractPojoBackendSessionContext sessionContext; - AbstractPojoTypeWorkPlan(AbstractPojoSessionContextImplementor sessionContext) { + AbstractPojoTypeWorkPlan(AbstractPojoBackendSessionContext sessionContext) { this.sessionContext = sessionContext; } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoContainedTypeWorkPlan.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoContainedTypeWorkPlan.java index 012ca446a45..d1485199736 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoContainedTypeWorkPlan.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoContainedTypeWorkPlan.java @@ -15,7 +15,7 @@ import org.hibernate.search.mapper.pojo.automaticindexing.impl.PojoReindexingCollector; import org.hibernate.search.mapper.pojo.logging.impl.Log; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.util.common.logging.impl.LoggerFactory; /** @@ -31,7 +31,7 @@ public class PojoContainedTypeWorkPlan extends AbstractPojoTypeWorkPlan { private final Map workPlansPerId = new LinkedHashMap<>(); public PojoContainedTypeWorkPlan(PojoWorkContainedTypeContext typeContext, - AbstractPojoSessionContextImplementor sessionContext) { + AbstractPojoBackendSessionContext sessionContext) { super( sessionContext ); this.typeContext = typeContext; } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoDocumentContributor.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoDocumentContributor.java index daa80dd5308..f4063377311 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoDocumentContributor.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoDocumentContributor.java @@ -11,7 +11,7 @@ import org.hibernate.search.engine.backend.document.DocumentElement; import org.hibernate.search.engine.backend.work.execution.spi.DocumentContributor; import org.hibernate.search.mapper.pojo.processing.impl.PojoIndexingProcessor; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; /** * @param The entity type mapped to the index. @@ -21,11 +21,11 @@ public final class PojoDocumentContributor impleme private final PojoIndexingProcessor processor; - private final AbstractPojoSessionContextImplementor sessionContext; + private final AbstractPojoBackendSessionContext sessionContext; private final Supplier entitySupplier; - public PojoDocumentContributor(PojoIndexingProcessor processor, AbstractPojoSessionContextImplementor sessionContext, + public PojoDocumentContributor(PojoIndexingProcessor processor, AbstractPojoBackendSessionContext sessionContext, Supplier entitySupplier) { this.processor = processor; this.sessionContext = sessionContext; diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoDocumentReferenceProvider.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoDocumentReferenceProvider.java index 44a26f9581b..f950376ca1c 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoDocumentReferenceProvider.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoDocumentReferenceProvider.java @@ -10,7 +10,7 @@ import org.hibernate.search.engine.backend.work.execution.spi.DocumentReferenceProvider; import org.hibernate.search.mapper.pojo.bridge.mapping.impl.RoutingKeyProvider; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; /** * @param The entity type mapped to an index. @@ -19,14 +19,14 @@ public final class PojoDocumentReferenceProvider implements DocumentReference private final RoutingKeyProvider routingKeyProvider; - private final AbstractPojoSessionContextImplementor sessionContext; + private final AbstractPojoBackendSessionContext sessionContext; private final Object identifier; private final String documentIdentifier; private final Supplier entitySupplier; public PojoDocumentReferenceProvider( RoutingKeyProvider routingKeyProvider, - AbstractPojoSessionContextImplementor sessionContext, + AbstractPojoBackendSessionContext sessionContext, Object identifier, String documentIdentifier, Supplier entitySupplier) { diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoIndexedTypeWorkPlan.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoIndexedTypeWorkPlan.java index defdf7c1adf..810ecaf3f5e 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoIndexedTypeWorkPlan.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoIndexedTypeWorkPlan.java @@ -17,7 +17,7 @@ import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkPlan; import org.hibernate.search.engine.backend.work.execution.spi.DocumentReferenceProvider; import org.hibernate.search.mapper.pojo.automaticindexing.impl.PojoReindexingCollector; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; /** * @param The identifier type for the mapped entity type. @@ -33,7 +33,7 @@ public class PojoIndexedTypeWorkPlan extends Ab private final Map workPlansPerId = new LinkedHashMap<>(); public PojoIndexedTypeWorkPlan(PojoWorkIndexedTypeContext typeContext, - AbstractPojoSessionContextImplementor sessionContext, + AbstractPojoBackendSessionContext sessionContext, IndexWorkPlan delegate) { super( sessionContext ); this.typeContext = typeContext; diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoScopeWorkExecutorImpl.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoScopeWorkExecutorImpl.java index 2dfb278393b..235a98066d8 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoScopeWorkExecutorImpl.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoScopeWorkExecutorImpl.java @@ -13,7 +13,7 @@ import java.util.function.Function; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkExecutor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.mapper.pojo.work.spi.PojoScopeWorkExecutor; public class PojoScopeWorkExecutorImpl implements PojoScopeWorkExecutor { @@ -21,7 +21,7 @@ public class PojoScopeWorkExecutorImpl implements PojoScopeWorkExecutor { private final List workExecutors = new ArrayList<>(); public PojoScopeWorkExecutorImpl(Set> targetedTypeContexts, - DetachedSessionContextImplementor sessionContext) { + DetachedBackendSessionContext sessionContext) { for ( PojoWorkIndexedTypeContext targetedTypeContext : targetedTypeContexts ) { workExecutors.add( targetedTypeContext.createWorkExecutor( sessionContext ) ); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoSessionWorkExecutorImpl.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoSessionWorkExecutorImpl.java index 1f4137346eb..71ed6b3fd9e 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoSessionWorkExecutorImpl.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoSessionWorkExecutorImpl.java @@ -15,7 +15,7 @@ import org.hibernate.search.engine.backend.work.execution.DocumentCommitStrategy; import org.hibernate.search.mapper.pojo.logging.impl.Log; import org.hibernate.search.mapper.pojo.model.spi.PojoRuntimeIntrospector; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.work.spi.PojoSessionWorkExecutor; import org.hibernate.search.util.common.logging.impl.LoggerFactory; @@ -24,14 +24,14 @@ public class PojoSessionWorkExecutorImpl implements PojoSessionWorkExecutor { private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); private final PojoWorkIndexedTypeContextProvider indexedTypeContextProvider; - private final AbstractPojoSessionContextImplementor sessionContext; + private final AbstractPojoBackendSessionContext sessionContext; private final PojoRuntimeIntrospector introspector; private final DocumentCommitStrategy commitStrategy; private final Map, PojoTypeDocumentWorkExecutor> typeExecutors = new HashMap<>(); public PojoSessionWorkExecutorImpl(PojoWorkIndexedTypeContextProvider indexedTypeContextProvider, - AbstractPojoSessionContextImplementor sessionContext, + AbstractPojoBackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy) { this.indexedTypeContextProvider = indexedTypeContextProvider; this.sessionContext = sessionContext; diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoTypeDocumentWorkExecutor.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoTypeDocumentWorkExecutor.java index 875f034c33f..7783c9dbfa1 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoTypeDocumentWorkExecutor.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoTypeDocumentWorkExecutor.java @@ -12,16 +12,16 @@ import org.hibernate.search.engine.backend.document.DocumentElement; import org.hibernate.search.engine.backend.work.execution.spi.DocumentReferenceProvider; import org.hibernate.search.engine.backend.work.execution.spi.IndexDocumentWorkExecutor; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; public class PojoTypeDocumentWorkExecutor { - private final AbstractPojoSessionContextImplementor sessionContext; + private final AbstractPojoBackendSessionContext sessionContext; private final PojoWorkIndexedTypeContext typeContext; private final IndexDocumentWorkExecutor delegate; public PojoTypeDocumentWorkExecutor(PojoWorkIndexedTypeContext typeContext, - AbstractPojoSessionContextImplementor sessionContext, + AbstractPojoBackendSessionContext sessionContext, IndexDocumentWorkExecutor delegate) { this.sessionContext = sessionContext; this.typeContext = typeContext; diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkContainedTypeContext.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkContainedTypeContext.java index 9b3cdde72c1..79b6840b977 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkContainedTypeContext.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkContainedTypeContext.java @@ -11,7 +11,7 @@ import org.hibernate.search.mapper.pojo.automaticindexing.impl.PojoReindexingCollector; import org.hibernate.search.mapper.pojo.model.spi.PojoRuntimeIntrospector; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; /** * @param The contained entity type. @@ -20,11 +20,11 @@ public interface PojoWorkContainedTypeContext { Class getJavaClass(); - Supplier toEntitySupplier(AbstractPojoSessionContextImplementor sessionContext, Object entity); + Supplier toEntitySupplier(AbstractPojoBackendSessionContext sessionContext, Object entity); void resolveEntitiesToReindex(PojoReindexingCollector collector, PojoRuntimeIntrospector runtimeIntrospector, Supplier entitySupplier, Set dirtyPaths); - PojoContainedTypeWorkPlan createWorkPlan(AbstractPojoSessionContextImplementor sessionContext); + PojoContainedTypeWorkPlan createWorkPlan(AbstractPojoBackendSessionContext sessionContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkIndexedTypeContext.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkIndexedTypeContext.java index 2959908ccff..8f93fedd30d 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkIndexedTypeContext.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkIndexedTypeContext.java @@ -14,11 +14,11 @@ import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; import org.hibernate.search.engine.backend.work.execution.spi.DocumentReferenceProvider; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkExecutor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.mapper.pojo.bridge.mapping.impl.IdentifierMappingImplementor; import org.hibernate.search.mapper.pojo.automaticindexing.impl.PojoReindexingCollector; import org.hibernate.search.mapper.pojo.model.spi.PojoRuntimeIntrospector; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; /** * @param The identifier type for the mapped entity type. @@ -31,26 +31,26 @@ public interface PojoWorkIndexedTypeContext { IdentifierMappingImplementor getIdentifierMapping(); - Supplier toEntitySupplier(AbstractPojoSessionContextImplementor sessionContext, Object entity); + Supplier toEntitySupplier(AbstractPojoBackendSessionContext sessionContext, Object entity); - DocumentReferenceProvider toDocumentReferenceProvider(AbstractPojoSessionContextImplementor sessionContext, + DocumentReferenceProvider toDocumentReferenceProvider(AbstractPojoBackendSessionContext sessionContext, I identifier, Supplier entitySupplier); PojoDocumentContributor toDocumentContributor(Supplier entitySupplier, - AbstractPojoSessionContextImplementor sessionContext); + AbstractPojoBackendSessionContext sessionContext); boolean requiresSelfReindexing(Set dirtyPaths); void resolveEntitiesToReindex(PojoReindexingCollector collector, PojoRuntimeIntrospector runtimeIntrospector, Supplier entitySupplier, Set dirtyPaths); - PojoIndexedTypeWorkPlan createWorkPlan(AbstractPojoSessionContextImplementor sessionContext, + PojoIndexedTypeWorkPlan createWorkPlan(AbstractPojoBackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy); PojoTypeDocumentWorkExecutor createDocumentWorkExecutor( - AbstractPojoSessionContextImplementor sessionContext, + AbstractPojoBackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy); - IndexWorkExecutor createWorkExecutor(DetachedSessionContextImplementor sessionContext); + IndexWorkExecutor createWorkExecutor(DetachedBackendSessionContext sessionContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkPlanImpl.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkPlanImpl.java index 9aa301d695b..dddc2fc5cbf 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkPlanImpl.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/work/impl/PojoWorkPlanImpl.java @@ -19,7 +19,7 @@ import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; import org.hibernate.search.mapper.pojo.logging.impl.Log; import org.hibernate.search.mapper.pojo.work.spi.PojoWorkPlan; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.model.spi.PojoRuntimeIntrospector; import org.hibernate.search.util.common.AssertionFailure; import org.hibernate.search.util.common.logging.impl.LoggerFactory; @@ -30,7 +30,7 @@ public class PojoWorkPlanImpl implements PojoWorkPlan { private final PojoWorkIndexedTypeContextProvider indexedTypeContextProvider; private final PojoWorkContainedTypeContextProvider containedTypeContextProvider; - private final AbstractPojoSessionContextImplementor sessionContext; + private final AbstractPojoBackendSessionContext sessionContext; private final PojoRuntimeIntrospector introspector; private final DocumentCommitStrategy commitStrategy; private final DocumentRefreshStrategy refreshStrategy; @@ -43,7 +43,7 @@ public class PojoWorkPlanImpl implements PojoWorkPlan { public PojoWorkPlanImpl(PojoWorkIndexedTypeContextProvider indexedTypeContextProvider, PojoWorkContainedTypeContextProvider containedTypeContextProvider, - AbstractPojoSessionContextImplementor sessionContext, + AbstractPojoBackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { this.indexedTypeContextProvider = indexedTypeContextProvider; diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubMappingContext.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubBackendMappingContext.java similarity index 62% rename from util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubMappingContext.java rename to util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubBackendMappingContext.java index 34607c07da8..994518ee274 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubMappingContext.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubBackendMappingContext.java @@ -6,10 +6,10 @@ */ package org.hibernate.search.util.impl.integrationtest.common.stub; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; -public class StubMappingContext implements MappingContextImplementor { +public class StubBackendMappingContext implements BackendMappingContext { - public StubMappingContext() { + public StubBackendMappingContext() { } } diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubBackendSessionContext.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubBackendSessionContext.java new file mode 100644 index 00000000000..1acb2ff5994 --- /dev/null +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubBackendSessionContext.java @@ -0,0 +1,39 @@ +/* + * Hibernate Search, full-text search for your domain model + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or . + */ +package org.hibernate.search.util.impl.integrationtest.common.stub; + +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; + +public class StubBackendSessionContext implements BackendSessionContext { + + private final StubBackendMappingContext mappingContext; + private final String tenantIdentifier; + + public StubBackendSessionContext() { + this( new StubBackendMappingContext(), null ); + } + + public StubBackendSessionContext(String tenantIdentifier) { + this( new StubBackendMappingContext(), tenantIdentifier ); + } + + public StubBackendSessionContext(StubBackendMappingContext mappingContext, String tenantIdentifier) { + this.mappingContext = mappingContext; + this.tenantIdentifier = tenantIdentifier; + } + + @Override + public BackendMappingContext getMappingContext() { + return mappingContext; + } + + @Override + public String getTenantIdentifier() { + return tenantIdentifier; + } +} diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubSessionContext.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubSessionContext.java deleted file mode 100644 index 5fef6c19dcc..00000000000 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/StubSessionContext.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Hibernate Search, full-text search for your domain model - * - * License: GNU Lesser General Public License (LGPL), version 2.1 or later - * See the lgpl.txt file in the root directory or . - */ -package org.hibernate.search.util.impl.integrationtest.common.stub; - -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; - -public class StubSessionContext implements SessionContextImplementor { - - private final StubMappingContext mappingContext; - private final String tenantIdentifier; - - public StubSessionContext() { - this( new StubMappingContext(), null ); - } - - public StubSessionContext(String tenantIdentifier) { - this( new StubMappingContext(), tenantIdentifier ); - } - - public StubSessionContext(StubMappingContext mappingContext, String tenantIdentifier) { - this.mappingContext = mappingContext; - this.tenantIdentifier = tenantIdentifier; - } - - @Override - public MappingContextImplementor getMappingContext() { - return mappingContext; - } - - @Override - public String getTenantIdentifier() { - return tenantIdentifier; - } -} diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexDocumentWorkExecutor.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexDocumentWorkExecutor.java index b185af4f950..83c926d57a4 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexDocumentWorkExecutor.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexDocumentWorkExecutor.java @@ -13,17 +13,17 @@ import org.hibernate.search.engine.backend.work.execution.spi.DocumentReferenceProvider; import org.hibernate.search.engine.backend.work.execution.spi.IndexDocumentWorkExecutor; import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.document.StubDocumentNode; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.document.impl.StubDocumentElement; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.index.StubDocumentWork; public class StubIndexDocumentWorkExecutor implements IndexDocumentWorkExecutor { private final StubIndexManager indexManager; - private final SessionContextImplementor sessionContext; + private final BackendSessionContext sessionContext; private final DocumentCommitStrategy commitStrategy; - public StubIndexDocumentWorkExecutor(StubIndexManager indexManager, SessionContextImplementor sessionContext, + public StubIndexDocumentWorkExecutor(StubIndexManager indexManager, BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy) { this.indexManager = indexManager; this.sessionContext = sessionContext; diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexManager.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexManager.java index 0a16566506e..bc7db9efd8b 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexManager.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexManager.java @@ -18,9 +18,9 @@ import org.hibernate.search.engine.backend.work.execution.spi.IndexDocumentWorkExecutor; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkPlan; import org.hibernate.search.engine.backend.index.spi.IndexManagerImplementor; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.util.common.SearchException; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.document.impl.StubDocumentElement; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.document.model.StubIndexSchemaNode; @@ -71,24 +71,24 @@ public void start(IndexManagerStartContext context) { } @Override - public IndexWorkPlan createWorkPlan(SessionContextImplementor context, + public IndexWorkPlan createWorkPlan(BackendSessionContext context, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { return new StubIndexWorkPlan( this, context, commitStrategy, refreshStrategy ); } @Override - public IndexDocumentWorkExecutor createDocumentWorkExecutor(SessionContextImplementor context, + public IndexDocumentWorkExecutor createDocumentWorkExecutor(BackendSessionContext context, DocumentCommitStrategy commitStrategy) { return new StubIndexDocumentWorkExecutor( this, context, commitStrategy ); } @Override - public IndexWorkExecutor createWorkExecutor(DetachedSessionContextImplementor sessionContext) { + public IndexWorkExecutor createWorkExecutor(DetachedBackendSessionContext sessionContext) { return new StubIndexWorkExecutor( name, backend.getBehavior(), sessionContext ); } @Override - public IndexScopeBuilder createScopeBuilder(MappingContextImplementor mappingContext) { + public IndexScopeBuilder createScopeBuilder(BackendMappingContext mappingContext) { return new StubIndexScope.Builder( backend, mappingContext, name, rootSchemaNode ); } diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexScope.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexScope.java index e7e9041a82b..27eff844595 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexScope.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexScope.java @@ -11,7 +11,7 @@ import java.util.Set; import org.hibernate.search.engine.backend.scope.spi.IndexScopeBuilder; -import org.hibernate.search.engine.mapper.mapping.context.spi.MappingContextImplementor; +import org.hibernate.search.engine.backend.mapping.spi.BackendMappingContext; import org.hibernate.search.engine.backend.scope.spi.IndexScope; import org.hibernate.search.engine.search.aggregation.spi.SearchAggregationBuilderFactory; import org.hibernate.search.engine.search.projection.spi.SearchProjectionBuilderFactory; @@ -69,11 +69,11 @@ static class Builder implements IndexScopeBuilder { private final StubBackend backend; // In a real mapper, this should be used for some features; keeping this here in case we need to stub such feature @SuppressWarnings("unused") - private final MappingContextImplementor mappingContext; + private final BackendMappingContext mappingContext; private final Set indexNames = new LinkedHashSet<>(); private final Set rootSchemaNodes = new LinkedHashSet<>(); - Builder(StubBackend backend, MappingContextImplementor mappingContext, String indexName, StubIndexSchemaNode rootSchemaNode) { + Builder(StubBackend backend, BackendMappingContext mappingContext, String indexName, StubIndexSchemaNode rootSchemaNode) { this.backend = backend; this.mappingContext = mappingContext; this.indexNames.add( indexName ); diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexWorkExecutor.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexWorkExecutor.java index 2f34ee10809..b56a1e1ad38 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexWorkExecutor.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexWorkExecutor.java @@ -10,7 +10,7 @@ import java.util.concurrent.CompletableFuture; import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkExecutor; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.StubBackendBehavior; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.index.StubIndexScopeWork; @@ -18,10 +18,10 @@ class StubIndexWorkExecutor implements IndexWorkExecutor { private final String indexName; private final StubBackendBehavior behavior; - private final DetachedSessionContextImplementor sessionContext; + private final DetachedBackendSessionContext sessionContext; StubIndexWorkExecutor(String indexName, StubBackendBehavior behavior, - DetachedSessionContextImplementor sessionContext) { + DetachedBackendSessionContext sessionContext) { this.indexName = indexName; this.behavior = behavior; this.sessionContext = sessionContext; diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexWorkPlan.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexWorkPlan.java index 40bc93764a4..7c204304aed 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexWorkPlan.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexWorkPlan.java @@ -15,14 +15,14 @@ import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkPlan; import org.hibernate.search.engine.backend.work.execution.spi.DocumentContributor; import org.hibernate.search.engine.backend.work.execution.spi.DocumentReferenceProvider; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.document.StubDocumentNode; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.index.StubDocumentWork; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.document.impl.StubDocumentElement; class StubIndexWorkPlan implements IndexWorkPlan { private final StubIndexManager indexManager; - private final SessionContextImplementor sessionContext; + private final BackendSessionContext sessionContext; private final DocumentCommitStrategy commitStrategy; private final DocumentRefreshStrategy refreshStrategy; @@ -30,7 +30,7 @@ class StubIndexWorkPlan implements IndexWorkPlan { private int preparedIndex = 0; - StubIndexWorkPlan(StubIndexManager indexManager, SessionContextImplementor sessionContext, + StubIndexWorkPlan(StubIndexManager indexManager, BackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { this.sessionContext = sessionContext; this.indexManager = indexManager; diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubSearchQueryBuilderFactory.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubSearchQueryBuilderFactory.java index 34e12ff9b4e..e546011fdf7 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubSearchQueryBuilderFactory.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubSearchQueryBuilderFactory.java @@ -10,7 +10,7 @@ import java.util.List; import java.util.function.Function; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.projection.SearchProjection; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; import org.hibernate.search.engine.search.query.spi.SearchQueryBuilder; @@ -34,7 +34,7 @@ class StubSearchQueryBuilderFactory implements SearchQueryBuilderFactory SearchQueryBuilder asEntity(SessionContextImplementor sessionContext, + public SearchQueryBuilder asEntity(BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { return new StubSearchQueryBuilder<>( backend, scopeModel, StubSearchWork.ResultType.OBJECTS, @@ -45,7 +45,7 @@ public SearchQueryBuilder asEntity(SessionCont } @Override - public SearchQueryBuilder asReference(SessionContextImplementor sessionContext, + public SearchQueryBuilder asReference(BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { return new StubSearchQueryBuilder<>( backend, scopeModel, StubSearchWork.ResultType.REFERENCES, @@ -56,7 +56,7 @@ public SearchQueryBuilder asReference(SessionC } @Override - public

SearchQueryBuilder asProjection(SessionContextImplementor sessionContext, + public

SearchQueryBuilder asProjection(BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, SearchProjection

projection) { return new StubSearchQueryBuilder<>( backend, scopeModel, StubSearchWork.ResultType.PROJECTIONS, @@ -67,7 +67,7 @@ public

SearchQueryBuilder asProjection(Session } @Override - public SearchQueryBuilder, StubQueryElementCollector> asProjections(SessionContextImplementor sessionContext, + public SearchQueryBuilder, StubQueryElementCollector> asProjections(BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder, SearchProjection... projections) { return new StubSearchQueryBuilder<>( backend, scopeModel, StubSearchWork.ResultType.PROJECTIONS, diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/StubSearchQueryBuilder.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/StubSearchQueryBuilder.java index 82bb9adeeb5..b9e783b8ada 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/StubSearchQueryBuilder.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/StubSearchQueryBuilder.java @@ -6,7 +6,7 @@ */ package org.hibernate.search.util.impl.integrationtest.common.stub.backend.search; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; import org.hibernate.search.engine.search.query.SearchQuery; import org.hibernate.search.engine.search.query.spi.SearchQueryBuilder; @@ -26,7 +26,7 @@ public class StubSearchQueryBuilder implements SearchQueryBuilder loadingContextBuilder, StubSearchProjection rootProjection) { this.backend = backend; this.scopeModel = scopeModel; diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/projection/impl/StubSearchProjectionContext.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/projection/impl/StubSearchProjectionContext.java index adf8a209e8b..9601f0e9f5b 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/projection/impl/StubSearchProjectionContext.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/projection/impl/StubSearchProjectionContext.java @@ -8,7 +8,7 @@ import org.hibernate.search.engine.backend.types.converter.runtime.FromDocumentFieldValueConvertContext; import org.hibernate.search.engine.backend.types.converter.runtime.spi.FromDocumentFieldValueConvertContextImpl; -import org.hibernate.search.engine.mapper.session.context.spi.SessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; public class StubSearchProjectionContext { @@ -16,7 +16,7 @@ public class StubSearchProjectionContext { private boolean hasFailedLoad = false; - public StubSearchProjectionContext(SessionContextImplementor sessionContext) { + public StubSearchProjectionContext(BackendSessionContext sessionContext) { this.fromDocumentFieldValueConvertContext = new FromDocumentFieldValueConvertContextImpl( sessionContext ); } diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/mapper/GenericStubMappingScope.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/mapper/GenericStubMappingScope.java index 9510d40dadb..8ac2734ffc1 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/mapper/GenericStubMappingScope.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/mapper/GenericStubMappingScope.java @@ -14,7 +14,7 @@ import org.hibernate.search.engine.search.sort.dsl.SearchSortFactory; import org.hibernate.search.engine.search.loading.context.spi.LoadingContext; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; -import org.hibernate.search.util.impl.integrationtest.common.stub.StubSessionContext; +import org.hibernate.search.util.impl.integrationtest.common.stub.StubBackendSessionContext; /** * A wrapper around {@link MappedIndexScope} providing some syntactic sugar, @@ -29,10 +29,10 @@ public class GenericStubMappingScope { } public SearchQueryHitTypeStep query(LoadingContext loadingContext) { - return query( new StubSessionContext(), loadingContext ); + return query( new StubBackendSessionContext(), loadingContext ); } - public SearchQueryHitTypeStep query(StubSessionContext sessionContext, + public SearchQueryHitTypeStep query(StubBackendSessionContext sessionContext, LoadingContext loadingContext) { LoadingContextBuilder loadingContextBuilder = () -> loadingContext; return delegate.search( sessionContext, loadingContextBuilder ); diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/mapper/StubMappingIndexManager.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/mapper/StubMappingIndexManager.java index bb28395870f..18990d9a42b 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/mapper/StubMappingIndexManager.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/mapper/StubMappingIndexManager.java @@ -14,10 +14,10 @@ import org.hibernate.search.engine.backend.work.execution.spi.IndexWorkPlan; import org.hibernate.search.engine.mapper.mapping.spi.MappedIndexManager; import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScopeBuilder; -import org.hibernate.search.engine.mapper.session.context.spi.DetachedSessionContextImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.engine.backend.common.DocumentReference; -import org.hibernate.search.util.impl.integrationtest.common.stub.StubMappingContext; -import org.hibernate.search.util.impl.integrationtest.common.stub.StubSessionContext; +import org.hibernate.search.util.impl.integrationtest.common.stub.StubBackendMappingContext; +import org.hibernate.search.util.impl.integrationtest.common.stub.StubBackendSessionContext; /** * A wrapper around {@link MappedIndexManager} providing some syntactic sugar, @@ -36,10 +36,10 @@ public T unwrapForTests(Class clazz) { } public IndexWorkPlan createWorkPlan() { - return createWorkPlan( new StubSessionContext() ); + return createWorkPlan( new StubBackendSessionContext() ); } - public IndexWorkPlan createWorkPlan(StubSessionContext sessionContext) { + public IndexWorkPlan createWorkPlan(StubBackendSessionContext sessionContext) { /* * Use the same defaults as in the ORM mapper for the commit strategy, * but force refreshes because it's more convenient for tests. @@ -47,30 +47,30 @@ public IndexWorkPlan createWorkPlan(StubSessionContex return indexManager.createWorkPlan( sessionContext, DocumentCommitStrategy.FORCE, DocumentRefreshStrategy.FORCE ); } - public IndexWorkPlan createWorkPlan(StubSessionContext sessionContext, + public IndexWorkPlan createWorkPlan(StubBackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { return indexManager.createWorkPlan( sessionContext, commitStrategy, refreshStrategy ); } public IndexDocumentWorkExecutor createDocumentWorkExecutor( DocumentCommitStrategy commitStrategy) { - return createDocumentWorkExecutor( new StubSessionContext(), commitStrategy ); + return createDocumentWorkExecutor( new StubBackendSessionContext(), commitStrategy ); } public IndexDocumentWorkExecutor createDocumentWorkExecutor( - StubSessionContext sessionContext, DocumentCommitStrategy commitStrategy) { + StubBackendSessionContext sessionContext, DocumentCommitStrategy commitStrategy) { return indexManager.createDocumentWorkExecutor( sessionContext, commitStrategy ); } public IndexWorkExecutor createWorkExecutor() { - return createWorkExecutor( new StubSessionContext() ); + return createWorkExecutor( new StubBackendSessionContext() ); } - public IndexWorkExecutor createWorkExecutor(StubSessionContext sessionContext) { - return createWorkExecutor( DetachedSessionContextImplementor.of( sessionContext ) ); + public IndexWorkExecutor createWorkExecutor(StubBackendSessionContext sessionContext) { + return createWorkExecutor( DetachedBackendSessionContext.of( sessionContext ) ); } - public IndexWorkExecutor createWorkExecutor(DetachedSessionContextImplementor sessionContext) { + public IndexWorkExecutor createWorkExecutor(DetachedBackendSessionContext sessionContext) { return indexManager.createWorkExecutor( sessionContext ); } @@ -79,7 +79,7 @@ public IndexWorkExecutor createWorkExecutor(DetachedSessionContextImplementor se */ public StubMappingScope createScope() { MappedIndexScopeBuilder builder = - indexManager.createScopeBuilder( new StubMappingContext() ); + indexManager.createScopeBuilder( new StubBackendMappingContext() ); return new StubMappingScope( builder.build() ); } @@ -88,7 +88,7 @@ public StubMappingScope createScope() { */ public StubMappingScope createScope(StubMappingIndexManager... others) { MappedIndexScopeBuilder builder = - indexManager.createScopeBuilder( new StubMappingContext() ); + indexManager.createScopeBuilder( new StubBackendMappingContext() ); for ( StubMappingIndexManager other : others ) { other.indexManager.addTo( builder ); } @@ -100,7 +100,7 @@ public StubMappingScope createScope(StubMappingIndexManager... others) { */ public GenericStubMappingScope createGenericScope(StubMappingIndexManager... others) { MappedIndexScopeBuilder builder = - indexManager.createScopeBuilder( new StubMappingContext() ); + indexManager.createScopeBuilder( new StubBackendMappingContext() ); for ( StubMappingIndexManager other : others ) { other.indexManager.addTo( builder ); } diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/mapper/StubMappingScope.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/mapper/StubMappingScope.java index 333cd9c54a0..1426c340b4e 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/mapper/StubMappingScope.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/mapper/StubMappingScope.java @@ -9,7 +9,7 @@ import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScope; import org.hibernate.search.engine.backend.common.DocumentReference; import org.hibernate.search.engine.search.query.dsl.SearchQueryHitTypeStep; -import org.hibernate.search.util.impl.integrationtest.common.stub.StubSessionContext; +import org.hibernate.search.util.impl.integrationtest.common.stub.StubBackendSessionContext; /** * A wrapper around {@link MappedIndexScope} providing some syntactic sugar, @@ -28,7 +28,7 @@ public class StubMappingScope extends GenericStubMappingScope query( - StubSessionContext sessionContext) { + StubBackendSessionContext sessionContext) { return query( sessionContext, new StubLoadingContext() ); } } From dcb5793a09a544bc0e127e928e87fb264dca0574 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Tue, 10 Sep 2019 10:27:33 +0200 Subject: [PATCH 09/16] HSEARCH-3671 Make SearchScope session-independent --- .../main/asciidoc/getting-started.asciidoc | 4 +- .../GettingStartedWithoutAnalysisIT.java | 9 ++-- .../IndexedEmbeddedIncludePathsIT.java | 42 +++++++-------- ...IndexedEmbeddedIncludePathsAndDepthIT.java | 48 ++++++++--------- .../search/aggregation/AggregationDslIT.java | 7 +-- .../search/predicate/PredicateDslIT.java | 7 +-- .../search/projection/ProjectionDslIT.java | 7 +-- .../documentation/search/sort/SortDslIT.java | 7 +-- .../mapper/orm/search/SearchQueryBaseIT.java | 19 ++++--- .../pojo/smoke/AnnotationMappingSmokeIT.java | 10 ++-- .../smoke/ProgrammaticMappingSmokeIT.java | 10 ++-- .../javabean/mapping/SearchMapping.java | 23 ++++++++ .../mapping/SearchMappingBuilder.java | 4 +- ...nMappingImpl.java => JavaBeanMapping.java} | 35 ++++++++++-- .../JavaBeanMappingPartialBuildState.java | 2 +- .../mapper/javabean/scope/SearchScope.java | 25 +++------ .../javabean/scope/impl/SearchScopeImpl.java | 16 +++--- .../javabean/session/SearchSession.java | 23 +++----- .../session/impl/JavaBeanSearchSession.java | 38 ++++++++----- .../JavaBeanSearchSessionMappingContext.java | 20 +++++++ .../mapper/orm/mapping/SearchMapping.java | 25 +++++++++ .../orm/mapping/impl/HibernateOrmMapping.java | 37 ++++++++++++- .../search/mapper/orm/scope/SearchScope.java | 19 ++++--- .../impl/HibernateOrmScopeMappingContext.java | 4 ++ .../impl/HibernateOrmScopeSessionContext.java | 4 +- .../orm/scope/impl/SearchScopeImpl.java | 36 +++++++++---- .../mapper/orm/session/SearchSession.java | 23 -------- .../impl/HibernateOrmSearchSession.java | 54 ++++++++----------- ...bernateOrmSearchSessionMappingContext.java | 8 +++ .../session/impl/LazyInitSearchSession.java | 6 --- .../mapping/impl/PojoMappingDelegateImpl.java | 20 +++++++ .../pojo/mapping/spi/PojoMappingDelegate.java | 10 ++++ .../scope/impl/PojoScopeDelegateImpl.java | 36 ++++++------- .../pojo/scope/spi/PojoScopeDelegate.java | 5 +- .../impl/PojoSearchSessionDelegateImpl.java | 17 ------ .../spi/PojoSearchSessionDelegate.java | 7 --- 36 files changed, 395 insertions(+), 272 deletions(-) rename mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/{JavaBeanMappingImpl.java => JavaBeanMapping.java} (59%) create mode 100644 mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSessionMappingContext.java diff --git a/documentation/src/main/asciidoc/getting-started.asciidoc b/documentation/src/main/asciidoc/getting-started.asciidoc index 200e9463808..73364008333 100644 --- a/documentation/src/main/asciidoc/getting-started.asciidoc +++ b/documentation/src/main/asciidoc/getting-started.asciidoc @@ -306,9 +306,9 @@ but it will be a bit more verbose: ---- include::{sourcedir}/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java[tags=searching-objects] ---- -<1> Get a Hibernate Search session, called `SearchSession`, from the `EntityManager`. +<1> Get a Hibernate Search mapping, called `SearchMapping`, from the `EntityManagerFactory`. <2> Create a "search scope", representing the indexed types that will be queried. -<3> Initiate a search query targeting the search scope. +<3> Initiate a search query targeting the search scope and relying on the given entity manager for entity loading. <4> Define that only documents matching the given predicate should be returned. The predicate is created using the same search scope as the query. <5> Build the query and fetch the results, limiting to the top 20 hits. diff --git a/documentation/src/test/java/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java b/documentation/src/test/java/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java index 1d7a3ee31f9..b645a2f4bdd 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java @@ -16,6 +16,7 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.engine.search.query.SearchResult; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.orm.massindexing.MassIndexer; @@ -100,11 +101,11 @@ public void test() { OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { // tag::searching-objects[] // Not shown: get the entity manager and open a transaction - SearchSession searchSession = Search.session( entityManager ); // <1> + SearchMapping searchMapping = Search.mapping( entityManager.getEntityManagerFactory() ); // <1> - SearchScope scope = searchSession.scope( Book.class ); // <2> + SearchScope scope = searchMapping.scope( Book.class ); // <2> - SearchResult result = scope.search() // <3> + SearchResult result = scope.search( entityManager ) // <3> .predicate( scope.predicate().match() // <4> .fields( "title", "authors.name" ) .matching( "Refactoring: Improving the Design of Existing Code" ) @@ -118,7 +119,7 @@ public void test() { List hits2 = /* ... same DSL calls as above... */ // end::searching-objects[] - scope.search() + scope.search( entityManager ) .predicate( scope.predicate().match() .fields( "title", "authors.name" ) .matching( "Refactoring: Improving the Design of Existing Code" ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/indexedembedded/includepaths/IndexedEmbeddedIncludePathsIT.java b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/indexedembedded/includepaths/IndexedEmbeddedIncludePathsIT.java index 0d78e39d51e..66b7ae97f9f 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/indexedembedded/includepaths/IndexedEmbeddedIncludePathsIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/indexedembedded/includepaths/IndexedEmbeddedIncludePathsIT.java @@ -15,6 +15,7 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.automaticindexing.AutomaticIndexingSynchronizationStrategyName; import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.util.common.SearchException; import org.hibernate.search.util.impl.integrationtest.common.rule.BackendConfiguration; @@ -105,27 +106,26 @@ public void smoke() { assertThat( result ).hasSize( 1 ); } ); - OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { - SearchSession searchSession = Search.session( entityManager ); - SubTest.expectException( - () -> { - searchSession.scope( Human.class ).predicate() - .match().onField( "parents.parents.nickname" ); - } - ) - .assertThrown() - .isInstanceOf( SearchException.class ) - .hasMessageContaining( "Unknown field" ); - SubTest.expectException( - () -> { - searchSession.scope( Human.class ).predicate() - .match().onField( "parents.parents.parents.name" ); - } - ) - .assertThrown() - .isInstanceOf( SearchException.class ) - .hasMessageContaining( "Unknown field" ); - } ); + SearchMapping searchMapping = Search.mapping( entityManagerFactory ); + + SubTest.expectException( + () -> { + searchMapping.scope( Human.class ).predicate() + .match().onField( "parents.parents.nickname" ); + } + ) + .assertThrown() + .isInstanceOf( SearchException.class ) + .hasMessageContaining( "Unknown field" ); + SubTest.expectException( + () -> { + searchMapping.scope( Human.class ).predicate() + .match().onField( "parents.parents.parents.name" ); + } + ) + .assertThrown() + .isInstanceOf( SearchException.class ) + .hasMessageContaining( "Unknown field" ); } diff --git a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/indexedembedded/includepathsanddepth/IndexedEmbeddedIncludePathsAndDepthIT.java b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/indexedembedded/includepathsanddepth/IndexedEmbeddedIncludePathsAndDepthIT.java index 8b55ba0c7b6..744a55e593e 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/indexedembedded/includepathsanddepth/IndexedEmbeddedIncludePathsAndDepthIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/indexedembedded/includepathsanddepth/IndexedEmbeddedIncludePathsAndDepthIT.java @@ -15,6 +15,7 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.automaticindexing.AutomaticIndexingSynchronizationStrategyName; import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.util.common.SearchException; import org.hibernate.search.util.impl.integrationtest.common.rule.BackendConfiguration; @@ -107,30 +108,29 @@ public void smoke() { assertThat( result ).hasSize( 1 ); } ); - OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { - SearchSession searchSession = Search.session( entityManager ); - SubTest.expectException( - () -> { - searchSession.scope( Human.class ).predicate() - .match().onField( "parents.parents.parents.nickname" ); - } - ) - .assertThrown() - .isInstanceOf( SearchException.class ) - .hasMessageContaining( "Unknown field" ); - // TODO HSEARCH-3684: an exception should be thrown here, but isn't. - /* - SubTest.expectException( - () -> { - searchSession.scope( Human.class ).predicate() - .match().onField( "parents.parents.parents.parents.name" ); - } - ) - .assertThrown() - .isInstanceOf( SearchException.class ) - .hasMessageContaining( "Unknown field" ); - */ - } ); + SearchMapping searchMapping = Search.mapping( entityManagerFactory ); + + SubTest.expectException( + () -> { + searchMapping.scope( Human.class ).predicate() + .match().onField( "parents.parents.parents.nickname" ); + } + ) + .assertThrown() + .isInstanceOf( SearchException.class ) + .hasMessageContaining( "Unknown field" ); + // TODO HSEARCH-3684: an exception should be thrown here, but isn't. + /* + SubTest.expectException( + () -> { + searchMapping.scope( Human.class ).predicate() + .match().onField( "parents.parents.parents.parents.name" ); + } + ) + .assertThrown() + .isInstanceOf( SearchException.class ) + .hasMessageContaining( "Unknown field" ); + */ } diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java index 941f3d7c165..cc287742650 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java @@ -24,6 +24,7 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.automaticindexing.AutomaticIndexingSynchronizationStrategyName; import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.util.common.data.Range; @@ -96,13 +97,13 @@ public void entryPoint() { OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { // tag::entryPoint-objects[] - SearchSession searchSession = Search.session( entityManager ); + SearchMapping searchMapping = Search.mapping( entityManager.getEntityManagerFactory() ); - SearchScope scope = searchSession.scope( Book.class ); + SearchScope scope = searchMapping.scope( Book.class ); AggregationKey> countsByGenreKey = AggregationKey.of( "countsByGenre" ); - SearchResult result = searchSession.search( Book.class ) + SearchResult result = scope.search( entityManager ) .predicate( scope.predicate().match().field( "title" ) .matching( "robot" ) .toPredicate() ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java index b5cc5c3af8f..e5a3fa9f612 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java @@ -27,6 +27,7 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.automaticindexing.AutomaticIndexingSynchronizationStrategyName; import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.util.impl.integrationtest.common.rule.BackendConfiguration; @@ -100,11 +101,11 @@ public void entryPoint() { OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { // tag::entryPoint-objects[] - SearchSession searchSession = Search.session( entityManager ); + SearchMapping searchMapping = Search.mapping( entityManager.getEntityManagerFactory() ); - SearchScope scope = searchSession.scope( Book.class ); + SearchScope scope = searchMapping.scope( Book.class ); - List result = scope.search() + List result = scope.search( entityManager ) .predicate( scope.predicate().match().field( "title" ) .matching( "robot" ) .toPredicate() ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java index 9ad76a7af8e..acc527d229f 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java @@ -30,6 +30,7 @@ import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; import org.hibernate.search.mapper.orm.common.EntityReference; import org.hibernate.search.mapper.orm.common.impl.EntityReferenceImpl; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.util.impl.integrationtest.common.assertion.SearchHitsAssert; @@ -108,11 +109,11 @@ public void entryPoint() { OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { // tag::entryPoint-objects[] - SearchSession searchSession = Search.session( entityManager ); + SearchMapping searchMapping = Search.mapping( entityManager.getEntityManagerFactory() ); - SearchScope scope = searchSession.scope( Book.class ); + SearchScope scope = searchMapping.scope( Book.class ); - List result = scope.search() + List result = scope.search( entityManager ) .asProjection( scope.projection().field( "title", String.class ) .toProjection() ) .predicate( scope.predicate().matchAll().toPredicate() ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java index ffa684c6b0d..496d93902bf 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java @@ -23,6 +23,7 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.automaticindexing.AutomaticIndexingSynchronizationStrategyName; import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.util.impl.integrationtest.common.rule.BackendConfiguration; @@ -97,11 +98,11 @@ public void entryPoint() { OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { // tag::entryPoint-objects[] - SearchSession searchSession = Search.session( entityManager ); + SearchMapping searchMapping = Search.mapping( entityManager.getEntityManagerFactory() ); - SearchScope scope = searchSession.scope( Book.class ); + SearchScope scope = searchMapping.scope( Book.class ); - List result = scope.search() + List result = scope.search( entityManager ) .predicate( scope.predicate().matchAll().toPredicate() ) .sort( scope.sort() .field( "pageCount" ).desc() diff --git a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java index eade52b27d3..6fd1ffb9365 100644 --- a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java +++ b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java @@ -21,6 +21,7 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.engine.search.query.SearchQuery; import org.hibernate.search.mapper.orm.common.impl.EntityReferenceImpl; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.GenericField; @@ -103,12 +104,11 @@ public void asEntity() { @Test public void asProjection_searchProjectionObject_single() { - OrmUtils.withinSession( sessionFactory, session -> { - SearchSession searchSession = Search.session( session ); + SearchMapping searchMapping = Search.mapping( sessionFactory ); + SearchScope scope = searchMapping.scope( Book.class ); - SearchScope scope = searchSession.scope( Book.class ); - - SearchQuery query = scope.search() + OrmUtils.withinSession( sessionFactory, session -> { + SearchQuery query = scope.search( session ) .asProjection( scope.projection().field( "title", String.class ).toProjection() ) @@ -136,12 +136,11 @@ public void asProjection_searchProjectionObject_single() { @Test public void asProjection_searchProjectionObject_multiple() { - OrmUtils.withinSession( sessionFactory, session -> { - SearchSession searchSession = Search.session( session ); + SearchMapping searchMapping = Search.mapping( sessionFactory ); + SearchScope scope = searchMapping.scope( Book.class ); - SearchScope scope = searchSession.scope( Book.class ); - - SearchQuery> query = scope.search() + OrmUtils.withinSession( sessionFactory, session -> { + SearchQuery> query = scope.search( session ) .asProjections( scope.projection().field( "title", String.class ).toProjection(), scope.projection().entityReference().toProjection(), diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/AnnotationMappingSmokeIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/AnnotationMappingSmokeIT.java index 8e5ee1c5a50..fab5453f415 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/AnnotationMappingSmokeIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/AnnotationMappingSmokeIT.java @@ -433,12 +433,12 @@ public void search_singleElementProjection() { @Test public void search_multipleElementsProjection() { - try ( SearchSession session = mapping.createSession() ) { - SearchScope scope = session.scope( - Arrays.asList( IndexedEntity.class, YetAnotherIndexedEntity.class ) - ); + SearchScope scope = mapping.scope( + Arrays.asList( IndexedEntity.class, YetAnotherIndexedEntity.class ) + ); - SearchQuery> query = scope.search() + try ( SearchSession session = mapping.createSession() ) { + SearchQuery> query = session.search( scope ) .asProjections( scope.projection().field( "myTextField", String.class ).toProjection(), scope.projection().entityReference().toProjection(), diff --git a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/ProgrammaticMappingSmokeIT.java b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/ProgrammaticMappingSmokeIT.java index dad0b064dbf..76ced1190cf 100644 --- a/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/ProgrammaticMappingSmokeIT.java +++ b/integrationtest/mapper/pojo/src/test/java/org/hibernate/search/integrationtest/mapper/pojo/smoke/ProgrammaticMappingSmokeIT.java @@ -483,12 +483,12 @@ public void search_singleElementProjection() { @Test public void search_multipleElementsProjection() { - try ( SearchSession session = mapping.createSession() ) { - SearchScope scope = session.scope( - Arrays.asList( IndexedEntity.class, YetAnotherIndexedEntity.class ) - ); + SearchScope scope = mapping.scope( + Arrays.asList( IndexedEntity.class, YetAnotherIndexedEntity.class ) + ); - SearchQuery> query = scope.search() + try ( SearchSession session = mapping.createSession() ) { + SearchQuery> query = session.search( scope ) .asProjections( scope.projection().field( "myTextField", String.class ).toProjection(), scope.projection().entityReference().toProjection(), diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMapping.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMapping.java index 474568e302e..9ac1ec771e0 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMapping.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMapping.java @@ -7,12 +7,35 @@ package org.hibernate.search.mapper.javabean.mapping; import java.lang.invoke.MethodHandles; +import java.util.Collection; +import java.util.Collections; +import org.hibernate.search.mapper.javabean.scope.SearchScope; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.javabean.session.SearchSessionBuilder; public interface SearchMapping { + /** + * Create a {@link SearchScope} limited to the given type. + * + * @param type A type to include in the scope. + * @return The created scope. + * @see SearchScope + */ + default SearchScope scope(Class type) { + return scope( Collections.singleton( type ) ); + } + + /** + * Create a {@link SearchScope} limited to the given types. + * + * @param types A collection of types to include in the scope. + * @return The created scope. + * @see SearchScope + */ + SearchScope scope(Collection> types); + /** * @return A new session allowing to {@link SearchSession#getMainWorkPlan() index} or * {@link SearchSession#search(Class) search for} entities. diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMappingBuilder.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMappingBuilder.java index c00cf004172..a405a122f7a 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMappingBuilder.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMappingBuilder.java @@ -18,7 +18,7 @@ import org.hibernate.search.engine.common.spi.SearchIntegrationFinalizer; import org.hibernate.search.engine.common.spi.SearchIntegrationPartialBuildState; import org.hibernate.search.mapper.javabean.impl.JavaBeanMappingInitiator; -import org.hibernate.search.mapper.javabean.mapping.impl.JavaBeanMappingImpl; +import org.hibernate.search.mapper.javabean.mapping.impl.JavaBeanMapping; import org.hibernate.search.mapper.javabean.mapping.impl.JavaBeanMappingKey; import org.hibernate.search.mapper.javabean.model.impl.JavaBeanBootstrapIntrospector; import org.hibernate.search.mapper.javabean.session.SearchSession; @@ -136,7 +136,7 @@ public CloseableSearchMapping build() { * Since the user doesn't have access to the integration, but only to the (closeable) mapping, * make sure to close the integration whenever the mapping is closed by the user. */ - JavaBeanMappingImpl mappingImpl = (JavaBeanMappingImpl) mapping; + JavaBeanMapping mappingImpl = (JavaBeanMapping) mapping; mappingImpl.onClose( integration::close ); return mappingImpl; } diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingImpl.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMapping.java similarity index 59% rename from mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingImpl.java rename to mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMapping.java index 7742f40a213..42e4c6bbc31 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingImpl.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMapping.java @@ -6,27 +6,37 @@ */ package org.hibernate.search.mapper.javabean.mapping.impl; +import java.util.Collection; + import org.hibernate.search.mapper.javabean.mapping.CloseableSearchMapping; import org.hibernate.search.mapper.javabean.mapping.SearchMapping; +import org.hibernate.search.mapper.javabean.scope.SearchScope; +import org.hibernate.search.mapper.javabean.scope.impl.SearchScopeImpl; import org.hibernate.search.mapper.javabean.session.SearchSessionBuilder; import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanBackendMappingContext; import org.hibernate.search.mapper.javabean.session.SearchSession; import org.hibernate.search.mapper.javabean.session.impl.JavaBeanSearchSession; +import org.hibernate.search.mapper.javabean.session.impl.JavaBeanSearchSessionMappingContext; import org.hibernate.search.mapper.pojo.mapping.spi.PojoMappingDelegate; import org.hibernate.search.mapper.pojo.mapping.spi.AbstractPojoMappingImplementor; -public class JavaBeanMappingImpl extends AbstractPojoMappingImplementor implements - CloseableSearchMapping { +public class JavaBeanMapping extends AbstractPojoMappingImplementor + implements CloseableSearchMapping, JavaBeanSearchSessionMappingContext { private final JavaBeanBackendMappingContext backendMappingContext; private final JavaBeanTypeContextContainer typeContextContainer; - JavaBeanMappingImpl(PojoMappingDelegate mappingDelegate, JavaBeanTypeContextContainer typeContextContainer) { + JavaBeanMapping(PojoMappingDelegate mappingDelegate, JavaBeanTypeContextContainer typeContextContainer) { super( mappingDelegate ); this.backendMappingContext = new JavaBeanBackendMappingContext(); this.typeContextContainer = typeContextContainer; } + @Override + public SearchScope scope(Collection> targetedTypes) { + return createScope( targetedTypes ); + } + @Override public SearchMapping toConcreteType() { return this; @@ -42,9 +52,26 @@ public SearchSessionBuilder createSessionWithOptions() { return createSearchManagerBuilder(); } + @Override + public JavaBeanBackendMappingContext getBackendMappingContext() { + return backendMappingContext; + } + + @Override + public SearchScopeImpl createScope(Collection> types) { + return new SearchScopeImpl( + getDelegate().createPojoScope( + backendMappingContext, + types, + // We don't load anything, so we don't need any additional type context + ignored -> null + ) + ); + } + private SearchSessionBuilder createSearchManagerBuilder() { return new JavaBeanSearchSession.JavaBeanSearchSessionBuilder( - getDelegate(), backendMappingContext, typeContextContainer + getDelegate(), this, typeContextContainer ); } } diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingPartialBuildState.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingPartialBuildState.java index 33459649166..64f5126a989 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingPartialBuildState.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingPartialBuildState.java @@ -28,7 +28,7 @@ public void closeOnFailure() { } public MappingImplementor finalizeMapping() { - return new JavaBeanMappingImpl( mappingDelegate, typeContextContainer ); + return new JavaBeanMapping( mappingDelegate, typeContextContainer ); } } diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/scope/SearchScope.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/scope/SearchScope.java index 83758ed049c..568149a2a8b 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/scope/SearchScope.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/scope/SearchScope.java @@ -26,21 +26,11 @@ */ public interface SearchScope { - /** - * Initiate the building of a search query. - *

- * The query will target the indexes mapped to types in this scope, or to any of their sub-types. - * - * @return The initial step of a DSL where the search query can be defined. - * @see SearchQueryHitTypeStep - */ - SearchQueryHitTypeStep search(); - /** * Initiate the building of a search predicate. *

- * The predicate will only be valid for {@link #search() search queries} created using this scope - * or a wider scope. + * The predicate will only be valid for {@link org.hibernate.search.mapper.javabean.session.SearchSession#search(SearchScope) search queries} + * created using this scope or a wider scope. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryPredicateStep#predicate(Function) define predicates with lambdas} @@ -55,8 +45,8 @@ public interface SearchScope { /** * Initiate the building of a search sort. *

- * The sort will only be valid for {@link #search() search queries} created using this scope - * or a wider scope. + * The sort will only be valid for {@link org.hibernate.search.mapper.javabean.session.SearchSession#search(SearchScope) search queries} + * created using this scope or a wider scope. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryOptionsStep#sort(Function) define sorts with lambdas} @@ -71,8 +61,8 @@ public interface SearchScope { /** * Initiate the building of a search projection that will be valid for the indexes in this scope. *

- * The projection will only be valid for {@link #search() search queries} created using this scope - * or a wider scope. + * The projection will only be valid for {@link org.hibernate.search.mapper.javabean.session.SearchSession#search(SearchScope) search queries} + * created using this scope or a wider scope. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryHitTypeStep#asProjection(Function)} define projections with lambdas} @@ -87,7 +77,8 @@ public interface SearchScope { /** * Initiate the building of a search aggregation that will be valid for the indexes in this scope. *

- * The aggregation will only be usable in {@link #search() search queries} created using this scope. + * The aggregation will only be usable in {@link org.hibernate.search.mapper.javabean.session.SearchSession#search(SearchScope) search queries} + * created using this scope or a wider scope. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryOptionsStep#aggregation(AggregationKey, SearchAggregation)} define aggregations with lambdas} diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/scope/impl/SearchScopeImpl.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/scope/impl/SearchScopeImpl.java index ad1fd5c34b7..c839f4267fb 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/scope/impl/SearchScopeImpl.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/scope/impl/SearchScopeImpl.java @@ -6,6 +6,7 @@ */ package org.hibernate.search.mapper.javabean.scope.impl; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; @@ -19,20 +20,12 @@ public class SearchScopeImpl implements SearchScope { - private final ReferenceHitMapper referenceHitMapper; private final PojoScopeDelegate delegate; - public SearchScopeImpl(ReferenceHitMapper referenceHitMapper, - PojoScopeDelegate delegate) { - this.referenceHitMapper = referenceHitMapper; + public SearchScopeImpl(PojoScopeDelegate delegate) { this.delegate = delegate; } - @Override - public SearchQueryHitTypeStep search() { - return delegate.search( new JavaBeanLoadingContext.Builder( referenceHitMapper ) ); - } - @Override public SearchPredicateFactory predicate() { return delegate.predicate(); @@ -52,4 +45,9 @@ public SearchSortFactory sort() { public SearchAggregationFactory aggregation() { return delegate.aggregation(); } + + public SearchQueryHitTypeStep search(BackendSessionContext sessionContext, + ReferenceHitMapper referenceHitMapper) { + return delegate.search( sessionContext, new JavaBeanLoadingContext.Builder( referenceHitMapper ) ); + } } diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/SearchSession.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/SearchSession.java index 437905c10e2..30305ea59dc 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/SearchSession.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/SearchSession.java @@ -48,24 +48,15 @@ public interface SearchSession extends AutoCloseable { SearchQueryHitTypeStep search(Collection> types); /** - * Create a {@link SearchScope} limited to the given type. - * - * @param type A type to include in the scope. - * @return The created scope. - * @see SearchScope - */ - default SearchScope scope(Class type) { - return scope( Collections.singleton( type ) ); - } - - /** - * Create a {@link SearchScope} limited to the given types. + * Initiate the building of a search query. + *

+ * The query will target the indexes in the given scope. * - * @param types A collection of types to include in the scope. - * @return The created scope. - * @see SearchScope + * @param scope A scope representing all indexed types that will be targeted by the search query. + * @return The initial step of a DSL where the search query can be defined. + * @see SearchQueryHitTypeStep */ - SearchScope scope(Collection> types); + SearchQueryHitTypeStep search(SearchScope scope); /** * @return The main work plan for this session. It will be executed upon closing this session. diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java index 705c1ad7e4f..1c7141b159d 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java @@ -15,7 +15,6 @@ import org.hibernate.search.engine.search.query.dsl.SearchQueryHitTypeStep; import org.hibernate.search.engine.search.loading.spi.ReferenceHitMapper; import org.hibernate.search.mapper.javabean.common.EntityReference; -import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanBackendMappingContext; import org.hibernate.search.mapper.javabean.scope.SearchScope; import org.hibernate.search.mapper.javabean.scope.impl.SearchScopeImpl; import org.hibernate.search.mapper.javabean.session.SearchSession; @@ -33,6 +32,7 @@ public class JavaBeanSearchSession extends AbstractPojoSearchSession implements SearchSession, ReferenceHitMapper { + private final JavaBeanSearchSessionMappingContext mappingContext; private final JavaBeanSearchSessionTypeContextProvider typeContextProvider; private final DocumentCommitStrategy commitStrategy; @@ -41,6 +41,7 @@ public class JavaBeanSearchSession extends AbstractPojoSearchSession private JavaBeanSearchSession(JavaBeanSearchSessionBuilder builder) { super( builder, builder.buildSessionContext() ); + this.mappingContext = builder.mappingContext; this.typeContextProvider = builder.typeContextProvider; this.commitStrategy = builder.commitStrategy; this.refreshStrategy = builder.refreshStrategy; @@ -56,19 +57,12 @@ public void close() { @Override public SearchQueryHitTypeStep search(Collection> types) { - return scope( types ).search(); + return search( createScope( types ) ); } @Override - public SearchScope scope(Collection> targetedTypes) { - return new SearchScopeImpl( - this, - getDelegate().createPojoScope( - targetedTypes, - // We don't load anything, so we don't need any additional type context - ignored -> null - ) - ); + public SearchQueryHitTypeStep search(SearchScope scope) { + return search( (SearchScopeImpl) scope ); } @Override @@ -93,15 +87,27 @@ public EntityReference fromDocumentReference(DocumentReference reference) { return new EntityReferenceImpl( typeContext.getJavaClass(), id ); } + private SearchScopeImpl createScope(Collection> types) { + return mappingContext.createScope( types ); + } + + private SearchQueryHitTypeStep search(SearchScopeImpl scope) { + return ( (SearchScopeImpl) scope ).search( + getDelegate().getBackendSessionContext(), + this + ); + } + public static class JavaBeanSearchSessionBuilder extends AbstractBuilder implements SearchSessionBuilder { - private final JavaBeanBackendMappingContext mappingContext; + private final JavaBeanSearchSessionMappingContext mappingContext; private final JavaBeanSearchSessionTypeContextProvider typeContextProvider; private String tenantId; private DocumentCommitStrategy commitStrategy = DocumentCommitStrategy.FORCE; private DocumentRefreshStrategy refreshStrategy = DocumentRefreshStrategy.NONE; - public JavaBeanSearchSessionBuilder(PojoMappingDelegate mappingDelegate, JavaBeanBackendMappingContext mappingContext, + public JavaBeanSearchSessionBuilder(PojoMappingDelegate mappingDelegate, + JavaBeanSearchSessionMappingContext mappingContext, JavaBeanSearchSessionTypeContextProvider typeContextProvider) { super( mappingDelegate ); this.mappingContext = mappingContext; @@ -127,7 +133,11 @@ public SearchSessionBuilder refreshStrategy(DocumentRefreshStrategy refreshStrat } protected AbstractPojoBackendSessionContext buildSessionContext() { - return new JavaBeanBackendSessionContext( mappingContext, tenantId, PojoRuntimeIntrospector.noProxy() ); + return new JavaBeanBackendSessionContext( + mappingContext.getBackendMappingContext(), + tenantId, + PojoRuntimeIntrospector.noProxy() + ); } @Override diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSessionMappingContext.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSessionMappingContext.java new file mode 100644 index 00000000000..c72adf69389 --- /dev/null +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSessionMappingContext.java @@ -0,0 +1,20 @@ +/* + * Hibernate Search, full-text search for your domain model + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or . + */ +package org.hibernate.search.mapper.javabean.session.impl; + +import java.util.Collection; + +import org.hibernate.search.mapper.javabean.mapping.context.impl.JavaBeanBackendMappingContext; +import org.hibernate.search.mapper.javabean.scope.impl.SearchScopeImpl; + +public interface JavaBeanSearchSessionMappingContext { + + JavaBeanBackendMappingContext getBackendMappingContext(); + + SearchScopeImpl createScope(Collection> types); + +} diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/SearchMapping.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/SearchMapping.java index 01db04499dd..49a979104ac 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/SearchMapping.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/SearchMapping.java @@ -6,9 +6,12 @@ */ package org.hibernate.search.mapper.orm.mapping; +import java.util.Collection; +import java.util.Collections; import javax.persistence.EntityManagerFactory; import org.hibernate.SessionFactory; +import org.hibernate.search.mapper.orm.scope.SearchScope; /** * The Hibernate Search mapping between the Hibernate ORM model and the backend(s). @@ -17,6 +20,28 @@ */ public interface SearchMapping { + /** + * Create a {@link SearchScope} limited to the given type. + * + * @param type A type to include in the scope. + * @param A type to include in the scope. + * @return The created scope. + * @see SearchScope + */ + default SearchScope scope(Class type) { + return scope( Collections.singleton( type ) ); + } + + /** + * Create a {@link SearchScope} limited to the given types. + * + * @param types A collection of types to include in the scope. + * @param A supertype of all types to include in the scope. + * @return The created scope. + * @see SearchScope + */ + SearchScope scope(Collection> types); + /** * @return The underlying {@link EntityManagerFactory} used by this {@link SearchMapping}. */ diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java index 792d185431a..86edcd7e1a3 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java @@ -7,7 +7,9 @@ package org.hibernate.search.mapper.orm.mapping.impl; import java.lang.invoke.MethodHandles; +import java.util.Collection; +import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import org.hibernate.SessionFactory; @@ -19,17 +21,24 @@ import org.hibernate.search.engine.mapper.mapping.spi.MappingImplementor; import org.hibernate.search.mapper.orm.automaticindexing.AutomaticIndexingSynchronizationStrategyName; import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; +import org.hibernate.search.mapper.orm.common.EntityReference; +import org.hibernate.search.mapper.orm.common.impl.HibernateOrmUtils; import org.hibernate.search.mapper.orm.event.impl.HibernateOrmListenerContextProvider; import org.hibernate.search.mapper.orm.logging.impl.Log; import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.mapping.context.impl.HibernateOrmMappingContextImpl; +import org.hibernate.search.mapper.orm.scope.SearchScope; +import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeIndexedTypeContext; import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeMappingContext; +import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeSessionContext; +import org.hibernate.search.mapper.orm.scope.impl.SearchScopeImpl; import org.hibernate.search.mapper.orm.search.loading.EntityLoadingCacheLookupStrategy; import org.hibernate.search.mapper.orm.session.AutomaticIndexingSynchronizationStrategy; import org.hibernate.search.mapper.orm.session.impl.HibernateOrmSearchSession; import org.hibernate.search.mapper.orm.session.impl.HibernateOrmSearchSessionMappingContext; import org.hibernate.search.mapper.pojo.mapping.spi.AbstractPojoMappingImplementor; import org.hibernate.search.mapper.pojo.mapping.spi.PojoMappingDelegate; +import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate; import org.hibernate.search.mapper.pojo.work.spi.PojoSessionWorkExecutor; import org.hibernate.search.mapper.pojo.work.spi.PojoWorkPlan; import org.hibernate.search.util.common.AssertionFailure; @@ -114,6 +123,11 @@ private HibernateOrmMapping(PojoMappingDelegate mappingDelegate, this.fetchSize = fetchSize; } + @Override + public SearchScope scope(Collection> types) { + return createScope( types ); + } + @Override public EntityManagerFactory toEntityManagerFactory() { return backendMappingContext.getSessionFactory(); @@ -155,6 +169,11 @@ public SessionFactoryImplementor getSessionFactory() { return backendMappingContext.getSessionFactory(); } + @Override + public HibernateOrmScopeSessionContext getSessionContext(EntityManager entityManager) { + return HibernateOrmSearchSession.get( this, HibernateOrmUtils.toSessionImplementor( entityManager ) ); + } + @Override public PojoWorkPlan getCurrentWorkPlan(SessionImplementor session, boolean createIfDoesNotExist) { return HibernateOrmSearchSession.get( this, session ).getCurrentWorkPlan( createIfDoesNotExist ); @@ -165,6 +184,22 @@ public AbstractHibernateOrmTypeContext getTypeContext(Class type) { return typeContextContainer.getByExactClass( type ); } + @Override + public HibernateOrmMappingContextImpl getBackendMappingContext() { + return backendMappingContext; + } + + @Override + public SearchScopeImpl createScope(Collection> types) { + PojoScopeDelegate> scopeDelegate = + getDelegate().createPojoScope( + backendMappingContext, + types, + typeContextContainer::getIndexedByExactClass + ); + return new SearchScopeImpl<>( this, scopeDelegate ); + } + @Override public HibernateOrmSearchSession.HibernateOrmSearchSessionBuilder createSessionBuilder( SessionImplementor sessionImplementor) { @@ -176,7 +211,7 @@ public HibernateOrmSearchSession.HibernateOrmSearchSessionBuilder createSessionB } return new HibernateOrmSearchSession.HibernateOrmSearchSessionBuilder( - getDelegate(), backendMappingContext, this, typeContextContainer, + getDelegate(), this, typeContextContainer, sessionImplementor, synchronizationStrategy ); diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java index 502090cb0df..01c03b9456c 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java @@ -8,6 +8,8 @@ import java.util.function.Function; +import javax.persistence.EntityManager; + import org.hibernate.search.engine.search.aggregation.AggregationKey; import org.hibernate.search.engine.search.aggregation.SearchAggregation; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; @@ -35,15 +37,16 @@ public interface SearchScope { *

* The query will target the indexes mapped to types in this scope, or to any of their sub-types. * + * @param entityManager The Hibernate ORM {@link EntityManager} or {@link org.hibernate.Session}. * @return The initial step of a DSL where the search query can be defined. * @see HibernateOrmSearchQueryHitTypeStep */ - HibernateOrmSearchQueryHitTypeStep search(); + HibernateOrmSearchQueryHitTypeStep search(EntityManager entityManager); /** * Initiate the building of a search predicate. *

- * The predicate will only be valid for {@link #search() search queries} created using this scope + * The predicate will only be valid for {@link #search(EntityManager) search queries} created using this scope * or a wider scope. *

* Note this method is only necessary if you do not want to use lambda expressions, @@ -59,7 +62,7 @@ public interface SearchScope { /** * Initiate the building of a search sort. *

- * The sort will only be valid for {@link #search() search queries} created using this scope + * The sort will only be valid for {@link #search(EntityManager) search queries} created using this scope * or a wider scope. *

* Note this method is only necessary if you do not want to use lambda expressions, @@ -75,7 +78,7 @@ public interface SearchScope { /** * Initiate the building of a search projection that will be valid for the indexes in this scope. *

- * The projection will only be valid for {@link #search() search queries} created using this scope + * The projection will only be valid for {@link #search(EntityManager) search queries} created using this scope * or a wider scope. *

* Note this method is only necessary if you do not want to use lambda expressions, @@ -91,7 +94,7 @@ public interface SearchScope { /** * Initiate the building of a search aggregation that will be valid for the indexes in this scope. *

- * The aggregation will only be usable in {@link #search() search queries} created using this scope. + * The aggregation will only be usable in {@link #search(EntityManager) search queries} created using this scope. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryOptionsStep#aggregation(AggregationKey, SearchAggregation)} define aggregations with lambdas} @@ -106,17 +109,19 @@ public interface SearchScope { /** * Create a {@link SearchWriter} for the indexes mapped to types in this scope, or to any of their sub-types. * + * @param entityManager The Hibernate ORM {@link EntityManager} or {@link org.hibernate.Session}. * @return A {@link SearchWriter}. */ - SearchWriter writer(); + SearchWriter writer(EntityManager entityManager); /** * Create a {@link MassIndexer} for the indexes mapped to types in this scope, or to any of their sub-types. *

* {@link MassIndexer} instances cannot be reused. * + * @param entityManager The Hibernate ORM {@link EntityManager} or {@link org.hibernate.Session}. * @return A {@link MassIndexer}. */ - MassIndexer massIndexer(); + MassIndexer massIndexer(EntityManager entityManager); } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeMappingContext.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeMappingContext.java index add0f9799c8..4e8cb137421 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeMappingContext.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeMappingContext.java @@ -6,10 +6,14 @@ */ package org.hibernate.search.mapper.orm.scope.impl; +import javax.persistence.EntityManager; + import org.hibernate.search.mapper.orm.massindexing.impl.HibernateOrmMassIndexingMappingContext; import org.hibernate.search.mapper.orm.search.loading.impl.HibernateOrmLoadingMappingContext; public interface HibernateOrmScopeMappingContext extends HibernateOrmMassIndexingMappingContext, HibernateOrmLoadingMappingContext { + HibernateOrmScopeSessionContext getSessionContext(EntityManager entityManager); + } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeSessionContext.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeSessionContext.java index cda5807494d..d914ab53366 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeSessionContext.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeSessionContext.java @@ -6,14 +6,14 @@ */ package org.hibernate.search.mapper.orm.scope.impl; -import org.hibernate.engine.spi.SessionImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.mapper.orm.search.loading.impl.HibernateOrmLoadingSessionContext; public interface HibernateOrmScopeSessionContext extends HibernateOrmLoadingSessionContext { - SessionImplementor getSession(); + BackendSessionContext getBackendSessionContext(); DetachedBackendSessionContext getDetachedBackendSessionContext(); diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java index 39c7d47bcea..6dd110f7284 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java @@ -6,6 +6,9 @@ */ package org.hibernate.search.mapper.orm.scope.impl; +import javax.persistence.EntityManager; + +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; @@ -24,24 +27,26 @@ public class SearchScopeImpl implements SearchScope { private final HibernateOrmScopeMappingContext mappingContext; - private final HibernateOrmScopeSessionContext sessionContext; private final PojoScopeDelegate> delegate; public SearchScopeImpl(HibernateOrmScopeMappingContext mappingContext, - HibernateOrmScopeSessionContext sessionContext, PojoScopeDelegate> delegate) { this.mappingContext = mappingContext; - this.sessionContext = sessionContext; this.delegate = delegate; } @Override - public HibernateOrmSearchQueryHitTypeStep search() { + public HibernateOrmSearchQueryHitTypeStep search(EntityManager entityManager) { + HibernateOrmScopeSessionContext sessionContext = mappingContext.getSessionContext( entityManager ); + return search( sessionContext ); + } + + public HibernateOrmSearchQueryHitTypeStep search(HibernateOrmScopeSessionContext sessionContext) { HibernateOrmLoadingContext.Builder loadingContextBuilder = new HibernateOrmLoadingContext.Builder<>( mappingContext, sessionContext, delegate.getIncludedIndexedTypes() ); return new HibernateOrmSearchQueryHitTypeStepImpl<>( - delegate.search( loadingContextBuilder ), + delegate.search( sessionContext.getBackendSessionContext(), loadingContextBuilder ), loadingContextBuilder ); } @@ -67,17 +72,28 @@ public SearchAggregationFactory aggregation() { } @Override - public SearchWriter writer() { - return new SearchWriterImpl( delegate.executor() ); + public SearchWriter writer(EntityManager entityManager) { + HibernateOrmScopeSessionContext sessionContext = mappingContext.getSessionContext( entityManager ); + return writer( sessionContext ); + } + + public SearchWriter writer(HibernateOrmScopeSessionContext sessionContext) { + return new SearchWriterImpl( delegate.executor( sessionContext.getDetachedBackendSessionContext() ) ); } @Override - public MassIndexer massIndexer() { + public MassIndexer massIndexer(EntityManager entityManager) { + HibernateOrmScopeSessionContext sessionContext = mappingContext.getSessionContext( entityManager ); + return massIndexer( sessionContext ); + } + + public MassIndexer massIndexer(HibernateOrmScopeSessionContext sessionContext) { + DetachedBackendSessionContext detachedSessionContext = sessionContext.getDetachedBackendSessionContext(); return new MassIndexerImpl( mappingContext, delegate.getIncludedIndexedTypes(), - sessionContext.getDetachedBackendSessionContext(), - delegate.executor() + detachedSessionContext, + delegate.executor( detachedSessionContext ) ); } } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java index 178a11df4e2..46f097534ea 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java @@ -15,7 +15,6 @@ import org.hibernate.Session; import org.hibernate.search.mapper.orm.writing.SearchWriter; import org.hibernate.search.mapper.orm.massindexing.MassIndexer; -import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.search.query.dsl.HibernateOrmSearchQueryHitTypeStep; public interface SearchSession { @@ -104,28 +103,6 @@ default MassIndexer massIndexer(Class... types) { */ MassIndexer massIndexer(Collection> types); - /** - * Create a {@link SearchScope} limited to the given type. - * - * @param type A type to include in the scope. - * @param A type to include in the scope. - * @return The created scope. - * @see SearchScope - */ - default SearchScope scope(Class type) { - return scope( Collections.singleton( type ) ); - } - - /** - * Create a {@link SearchScope} limited to the given types. - * - * @param types A collection of types to include in the scope. - * @param A supertype of all types to include in the scope. - * @return The created scope. - * @see SearchScope - */ - SearchScope scope(Collection> types); - /** * Creates a {@link MassIndexer} to rebuild the indexes of some or all indexed entity types. *

diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java index 023460b00ea..39bfed464d0 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java @@ -10,7 +10,6 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; - import javax.persistence.EntityManager; import javax.transaction.Synchronization; @@ -21,33 +20,29 @@ import org.hibernate.action.spi.BeforeTransactionCompletionProcess; import org.hibernate.engine.spi.ActionQueue; import org.hibernate.engine.spi.SessionImplementor; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.engine.backend.work.execution.DocumentCommitStrategy; import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; -import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.engine.backend.common.DocumentReference; import org.hibernate.search.engine.search.loading.spi.ReferenceHitMapper; +import org.hibernate.search.mapper.orm.common.EntityReference; import org.hibernate.search.mapper.orm.common.impl.EntityReferenceImpl; import org.hibernate.search.mapper.orm.logging.impl.Log; import org.hibernate.search.mapper.orm.mapping.impl.HibernateOrmMapping; import org.hibernate.search.mapper.orm.massindexing.MassIndexer; -import org.hibernate.search.mapper.orm.scope.SearchScope; -import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeIndexedTypeContext; -import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeMappingContext; import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeSessionContext; import org.hibernate.search.mapper.orm.scope.impl.SearchScopeImpl; import org.hibernate.search.mapper.orm.search.query.dsl.HibernateOrmSearchQueryHitTypeStep; import org.hibernate.search.mapper.orm.session.AutomaticIndexingSynchronizationStrategy; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.orm.session.SearchSessionWritePlan; -import org.hibernate.search.mapper.orm.mapping.context.impl.HibernateOrmMappingContextImpl; import org.hibernate.search.mapper.orm.session.context.impl.HibernateOrmSessionContextImpl; -import org.hibernate.search.mapper.orm.common.EntityReference; import org.hibernate.search.mapper.orm.writing.SearchWriter; -import org.hibernate.search.mapper.pojo.work.spi.PojoWorkPlan; import org.hibernate.search.mapper.pojo.mapping.spi.PojoMappingDelegate; import org.hibernate.search.mapper.pojo.session.spi.AbstractPojoSearchSession; -import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate; import org.hibernate.search.mapper.pojo.work.spi.PojoSessionWorkExecutor; +import org.hibernate.search.mapper.pojo.work.spi.PojoWorkPlan; import org.hibernate.search.util.common.AssertionFailure; import org.hibernate.search.util.common.impl.TransientReference; import org.hibernate.search.util.common.logging.impl.LoggerFactory; @@ -92,7 +87,7 @@ public static HibernateOrmSearchSession get(HibernateOrmSearchSessionMappingCont private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); - private final HibernateOrmScopeMappingContext scopeMappingContext; + private final HibernateOrmSearchSessionMappingContext mappingContext; private final HibernateOrmSessionTypeContextProvider typeContextProvider; private final HibernateOrmSessionContextImpl sessionContext; private AutomaticIndexingSynchronizationStrategy synchronizationStrategy; @@ -112,7 +107,7 @@ private HibernateOrmSearchSession(HibernateOrmSearchSessionBuilder builder) { private HibernateOrmSearchSession(HibernateOrmSearchSessionBuilder builder, HibernateOrmSessionContextImpl backendSessionContext) { super( builder, backendSessionContext ); - this.scopeMappingContext = builder.scopeMappingContext; + this.mappingContext = builder.mappingContext; this.typeContextProvider = builder.typeContextProvider; this.sessionContext = backendSessionContext; this.synchronizationStrategy = builder.synchronizationStrategy; @@ -124,17 +119,17 @@ public void close() { @Override public HibernateOrmSearchQueryHitTypeStep search(Collection> types) { - return scope( types ).search(); + return createScope( types ).search( this ); } @Override public SearchWriter writer(Collection> types) { - return scope( types ).writer(); + return createScope( types ).writer( this ); } @Override public MassIndexer massIndexer(Collection> types) { - return scope( types ).massIndexer(); + return createScope( types ).massIndexer( this ); } @Override @@ -147,18 +142,6 @@ public Session toOrmSession() { return sessionContext.getSession(); } - @Override - public SearchScope scope(Collection> types) { - checkOrmSessionIsOpen(); - - PojoScopeDelegate> scopeDelegate = - getDelegate().createPojoScope( - types, - typeContextProvider::getIndexedByExactClass - ); - return new SearchScopeImpl<>( scopeMappingContext, this, scopeDelegate ); - } - @Override public SearchSessionWritePlan writePlan() { if ( writePlan == null ) { @@ -178,6 +161,11 @@ public SessionImplementor getSession() { return sessionContext.getSession(); } + @Override + public BackendSessionContext getBackendSessionContext() { + return sessionContext; + } + @Override public DetachedBackendSessionContext getDetachedBackendSessionContext() { return DetachedBackendSessionContext.of( sessionContext ); @@ -254,6 +242,11 @@ AutomaticIndexingSynchronizationStrategy getAutomaticIndexingSynchronizationStra return synchronizationStrategy; } + private SearchScopeImpl createScope(Collection> types) { + checkOrmSessionIsOpen(); + return mappingContext.createScope( types ); + } + private PojoWorkPlan createWorkPlan(DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { return getDelegate().createWorkPlan( commitStrategy, refreshStrategy ); } @@ -327,28 +320,25 @@ static void checkOrmSessionIsOpen(SessionImplementor session) { } public static class HibernateOrmSearchSessionBuilder extends AbstractBuilder { - private final HibernateOrmMappingContextImpl mappingContext; - private final HibernateOrmScopeMappingContext scopeMappingContext; + private final HibernateOrmSearchSessionMappingContext mappingContext; private final HibernateOrmSessionTypeContextProvider typeContextProvider; private final SessionImplementor sessionImplementor; private final AutomaticIndexingSynchronizationStrategy synchronizationStrategy; public HibernateOrmSearchSessionBuilder(PojoMappingDelegate mappingDelegate, - HibernateOrmMappingContextImpl mappingContext, - HibernateOrmScopeMappingContext scopeMappingContext, + HibernateOrmSearchSessionMappingContext mappingContext, HibernateOrmSessionTypeContextProvider typeContextProvider, SessionImplementor sessionImplementor, AutomaticIndexingSynchronizationStrategy synchronizationStrategy) { super( mappingDelegate ); this.mappingContext = mappingContext; - this.scopeMappingContext = scopeMappingContext; this.typeContextProvider = typeContextProvider; this.sessionImplementor = sessionImplementor; this.synchronizationStrategy = synchronizationStrategy; } private HibernateOrmSessionContextImpl buildBackendSessionContext() { - return new HibernateOrmSessionContextImpl( mappingContext, sessionImplementor ); + return new HibernateOrmSessionContextImpl( mappingContext.getBackendMappingContext(), sessionImplementor ); } @Override diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSessionMappingContext.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSessionMappingContext.java index e469f267d7b..e0becebb368 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSessionMappingContext.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSessionMappingContext.java @@ -6,10 +6,18 @@ */ package org.hibernate.search.mapper.orm.session.impl; +import java.util.Collection; + import org.hibernate.engine.spi.SessionImplementor; +import org.hibernate.search.mapper.orm.mapping.context.impl.HibernateOrmMappingContextImpl; +import org.hibernate.search.mapper.orm.scope.impl.SearchScopeImpl; public interface HibernateOrmSearchSessionMappingContext { + HibernateOrmMappingContextImpl getBackendMappingContext(); + + SearchScopeImpl createScope(Collection> types); + HibernateOrmSearchSession.HibernateOrmSearchSessionBuilder createSessionBuilder( SessionImplementor sessionImplementor); } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java index ad4bde07142..d9ff3bb3f3e 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java @@ -14,7 +14,6 @@ import org.hibernate.Session; import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.search.mapper.orm.massindexing.MassIndexer; -import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.search.query.dsl.HibernateOrmSearchQueryHitTypeStep; import org.hibernate.search.mapper.orm.session.AutomaticIndexingSynchronizationStrategy; import org.hibernate.search.mapper.orm.session.SearchSession; @@ -64,11 +63,6 @@ public Session toOrmSession() { return getDelegate().toOrmSession(); } - @Override - public SearchScope scope(Collection> types) { - return getDelegate().scope( types ); - } - @Override public SearchSessionWritePlan writePlan() { return getDelegate().writePlan(); diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoMappingDelegateImpl.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoMappingDelegateImpl.java index 70758df5faa..44cde9be22e 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoMappingDelegateImpl.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/impl/PojoMappingDelegateImpl.java @@ -6,7 +6,13 @@ */ package org.hibernate.search.mapper.pojo.mapping.impl; +import java.util.Collection; + +import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoBackendMappingContext; import org.hibernate.search.mapper.pojo.mapping.spi.PojoMappingDelegate; +import org.hibernate.search.mapper.pojo.scope.impl.PojoScopeDelegateImpl; +import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate; +import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeTypeExtendedContextProvider; import org.hibernate.search.mapper.pojo.session.impl.PojoSearchSessionDelegateImpl; import org.hibernate.search.mapper.pojo.session.spi.PojoSearchSessionDelegate; import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; @@ -32,6 +38,20 @@ public void close() { } } + @Override + public PojoScopeDelegate createPojoScope( + AbstractPojoBackendMappingContext mappingContext, + Collection> targetedTypes, + PojoScopeTypeExtendedContextProvider indexedTypeExtendedContextProvider) { + return PojoScopeDelegateImpl.create( + mappingContext, + indexedTypeManagers, + containedTypeManagers, + targetedTypes, + indexedTypeExtendedContextProvider + ); + } + @Override public PojoSearchSessionDelegate createSearchSessionDelegate( AbstractPojoBackendSessionContext backendSessionContext) { diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/spi/PojoMappingDelegate.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/spi/PojoMappingDelegate.java index 5d323144720..d584cb3a5ac 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/spi/PojoMappingDelegate.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/mapping/spi/PojoMappingDelegate.java @@ -6,6 +6,11 @@ */ package org.hibernate.search.mapper.pojo.mapping.spi; +import java.util.Collection; + +import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoBackendMappingContext; +import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate; +import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeTypeExtendedContextProvider; import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.session.spi.PojoSearchSessionDelegate; @@ -14,6 +19,11 @@ public interface PojoMappingDelegate extends AutoCloseable { @Override void close(); + PojoScopeDelegate createPojoScope( + AbstractPojoBackendMappingContext mappingContext, + Collection> targetedTypes, + PojoScopeTypeExtendedContextProvider indexedTypeExtendedContextProvider); + PojoSearchSessionDelegate createSearchSessionDelegate(AbstractPojoBackendSessionContext backendSessionContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/impl/PojoScopeDelegateImpl.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/impl/PojoScopeDelegateImpl.java index a10020aa211..1e815bef684 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/impl/PojoScopeDelegateImpl.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/impl/PojoScopeDelegateImpl.java @@ -14,9 +14,10 @@ import java.util.Set; import java.util.stream.Collectors; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScope; import org.hibernate.search.engine.mapper.scope.spi.MappedIndexScopeBuilder; -import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; import org.hibernate.search.engine.search.query.dsl.SearchQueryHitTypeStep; @@ -24,7 +25,6 @@ import org.hibernate.search.mapper.pojo.logging.impl.Log; import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate; import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeTypeExtendedContextProvider; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.mapping.context.spi.AbstractPojoBackendMappingContext; import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; import org.hibernate.search.engine.search.sort.dsl.SearchSortFactory; @@ -37,11 +37,11 @@ public final class PojoScopeDelegateImpl implements PojoScopeDelega private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() ); public static PojoScopeDelegate create( + AbstractPojoBackendMappingContext mappingContext, PojoScopeIndexedTypeContextProvider indexedTypeContextProvider, PojoScopeContainedTypeContextProvider containedTypeContextProvider, Collection> targetedTypes, - PojoScopeTypeExtendedContextProvider indexedTypeExtendedContextProvider, - AbstractPojoBackendSessionContext sessionContext) { + PojoScopeTypeExtendedContextProvider indexedTypeExtendedContextProvider) { if ( targetedTypes.isEmpty() ) { throw log.invalidEmptyTargetForScope(); } @@ -75,23 +75,22 @@ public static PojoScopeDelegate create( .collect( Collectors.toCollection( LinkedHashSet::new ) ); return new PojoScopeDelegateImpl<>( - targetedTypeContexts, targetedTypeExtendedContexts, - sessionContext + mappingContext, + targetedTypeContexts, targetedTypeExtendedContexts ); } + private final AbstractPojoBackendMappingContext mappingContext; private final Set> targetedTypeContexts; private final Set targetedTypeExtendedContexts; - private final AbstractPojoBackendSessionContext sessionContext; private MappedIndexScope delegate; - private PojoScopeWorkExecutor executor; - private PojoScopeDelegateImpl(Set> targetedTypeContexts, - Set targetedTypeExtendedContexts, - AbstractPojoBackendSessionContext sessionContext) { + private PojoScopeDelegateImpl(AbstractPojoBackendMappingContext mappingContext, + Set> targetedTypeContexts, + Set targetedTypeExtendedContexts) { + this.mappingContext = mappingContext; this.targetedTypeContexts = targetedTypeContexts; this.targetedTypeExtendedContexts = targetedTypeExtendedContexts; - this.sessionContext = sessionContext; } @Override @@ -101,6 +100,7 @@ public Set getIncludedIndexedTypes() { @Override public SearchQueryHitTypeStep, ?> search( + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder) { return getIndexScope().search( sessionContext, loadingContextBuilder ); } @@ -126,17 +126,13 @@ public SearchAggregationFactory aggregation() { } @Override - public PojoScopeWorkExecutor executor() { - if ( executor == null ) { - executor = new PojoScopeWorkExecutorImpl( - targetedTypeContexts, DetachedBackendSessionContext.of( sessionContext ) - ); - } - return executor; + public PojoScopeWorkExecutor executor(DetachedBackendSessionContext sessionContext) { + return new PojoScopeWorkExecutorImpl( + targetedTypeContexts, sessionContext + ); } private MappedIndexScope getIndexScope() { - AbstractPojoBackendMappingContext mappingContext = sessionContext.getMappingContext(); if ( delegate == null ) { Iterator> iterator = targetedTypeContexts.iterator(); MappedIndexScopeBuilder builder = iterator.next().createScopeBuilder( diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/spi/PojoScopeDelegate.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/spi/PojoScopeDelegate.java index 2f6c1913385..06d84600e7d 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/spi/PojoScopeDelegate.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/scope/spi/PojoScopeDelegate.java @@ -8,6 +8,8 @@ import java.util.Set; +import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; import org.hibernate.search.engine.search.projection.dsl.SearchProjectionFactory; @@ -31,6 +33,7 @@ public interface PojoScopeDelegate { Set getIncludedIndexedTypes(); SearchQueryHitTypeStep, ?> search( + BackendSessionContext sessionContext, LoadingContextBuilder loadingContextBuilder); SearchPredicateFactory predicate(); @@ -41,6 +44,6 @@ public interface PojoScopeDelegate { SearchAggregationFactory aggregation(); - PojoScopeWorkExecutor executor(); + PojoScopeWorkExecutor executor(DetachedBackendSessionContext sessionContext); } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/impl/PojoSearchSessionDelegateImpl.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/impl/PojoSearchSessionDelegateImpl.java index a2aa6612b24..1b8b5a90c13 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/impl/PojoSearchSessionDelegateImpl.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/impl/PojoSearchSessionDelegateImpl.java @@ -6,15 +6,10 @@ */ package org.hibernate.search.mapper.pojo.session.impl; -import java.util.Collection; - import org.hibernate.search.engine.backend.work.execution.DocumentCommitStrategy; import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; import org.hibernate.search.mapper.pojo.scope.impl.PojoScopeContainedTypeContextProvider; -import org.hibernate.search.mapper.pojo.scope.impl.PojoScopeDelegateImpl; import org.hibernate.search.mapper.pojo.scope.impl.PojoScopeIndexedTypeContextProvider; -import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate; -import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeTypeExtendedContextProvider; import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.session.spi.PojoSearchSessionDelegate; import org.hibernate.search.mapper.pojo.work.impl.PojoSessionWorkExecutorImpl; @@ -41,18 +36,6 @@ public AbstractPojoBackendSessionContext getBackendSessionContext() { return backendSessionContext; } - @Override - public PojoScopeDelegate createPojoScope(Collection> targetedTypes, - PojoScopeTypeExtendedContextProvider indexedTypeExtendedContextProvider) { - return PojoScopeDelegateImpl.create( - indexedTypeContextProvider, - containedTypeContextProvider, - targetedTypes, - indexedTypeExtendedContextProvider, - backendSessionContext - ); - } - @Override public PojoWorkPlan createWorkPlan(DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { return new PojoWorkPlanImpl( diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/spi/PojoSearchSessionDelegate.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/spi/PojoSearchSessionDelegate.java index 9b2dc26d2fe..3eff1f8c5b6 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/spi/PojoSearchSessionDelegate.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/spi/PojoSearchSessionDelegate.java @@ -6,12 +6,8 @@ */ package org.hibernate.search.mapper.pojo.session.spi; -import java.util.Collection; - import org.hibernate.search.engine.backend.work.execution.DocumentCommitStrategy; import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy; -import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeDelegate; -import org.hibernate.search.mapper.pojo.scope.spi.PojoScopeTypeExtendedContextProvider; import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.mapper.pojo.work.spi.PojoSessionWorkExecutor; import org.hibernate.search.mapper.pojo.work.spi.PojoWorkPlan; @@ -20,9 +16,6 @@ public interface PojoSearchSessionDelegate { AbstractPojoBackendSessionContext getBackendSessionContext(); - PojoScopeDelegate createPojoScope(Collection> targetedTypes, - PojoScopeTypeExtendedContextProvider indexedTypeExtendedContextProvider); - PojoWorkPlan createWorkPlan(DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy); PojoSessionWorkExecutor createSessionWorkExecutor(DocumentCommitStrategy commitStrategy); From 62f1554c088f3ea592b2bb1886f29db7797209ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Fri, 13 Sep 2019 14:54:58 +0200 Subject: [PATCH 10/16] HSEARCH-3671 Remove the need for passing an entity manager to SearchScope.writer and SearchScope.massIndexer --- .../spi/DetachedBackendSessionContext.java | 7 ++++ .../orm/mapping/impl/HibernateOrmMapping.java | 6 ++++ .../search/mapper/orm/scope/SearchScope.java | 36 ++++++++++++++++--- .../impl/HibernateOrmScopeMappingContext.java | 3 ++ .../impl/HibernateOrmScopeSessionContext.java | 3 -- .../orm/scope/impl/SearchScopeImpl.java | 27 ++++++++------ .../impl/HibernateOrmSearchSession.java | 9 ++--- 7 files changed, 67 insertions(+), 24 deletions(-) diff --git a/engine/src/main/java/org/hibernate/search/engine/backend/session/spi/DetachedBackendSessionContext.java b/engine/src/main/java/org/hibernate/search/engine/backend/session/spi/DetachedBackendSessionContext.java index 42b598109b6..526693128d1 100644 --- a/engine/src/main/java/org/hibernate/search/engine/backend/session/spi/DetachedBackendSessionContext.java +++ b/engine/src/main/java/org/hibernate/search/engine/backend/session/spi/DetachedBackendSessionContext.java @@ -34,6 +34,13 @@ public static DetachedBackendSessionContext of(BackendSessionContext sessionCont ); } + public static DetachedBackendSessionContext of(BackendMappingContext mappingContext, String tenantIdentifier) { + return new DetachedBackendSessionContext( + mappingContext, + tenantIdentifier + ); + } + private final BackendMappingContext mappingContext; private final String tenantIdentifier; diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java index 86edcd7e1a3..93df0be8ae3 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java @@ -15,6 +15,7 @@ import org.hibernate.SessionFactory; import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.engine.spi.SessionImplementor; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.engine.backend.work.execution.DocumentCommitStrategy; import org.hibernate.search.engine.cfg.spi.ConfigurationProperty; import org.hibernate.search.engine.cfg.spi.ConfigurationPropertySource; @@ -174,6 +175,11 @@ public HibernateOrmScopeSessionContext getSessionContext(EntityManager entityMan return HibernateOrmSearchSession.get( this, HibernateOrmUtils.toSessionImplementor( entityManager ) ); } + @Override + public DetachedBackendSessionContext getDetachedBackendSessionContext(String tenantId) { + return DetachedBackendSessionContext.of( backendMappingContext, tenantId ); + } + @Override public PojoWorkPlan getCurrentWorkPlan(SessionImplementor session, boolean createIfDoesNotExist) { return HibernateOrmSearchSession.get( this, session ).getCurrentWorkPlan( createIfDoesNotExist ); diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java index 01c03b9456c..66e7859f15f 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java @@ -108,20 +108,48 @@ public interface SearchScope { /** * Create a {@link SearchWriter} for the indexes mapped to types in this scope, or to any of their sub-types. + *

+ * This method only works for single-tenant applications. + * If multi-tenancy is enabled, use {@link #writer(String)} instead. * - * @param entityManager The Hibernate ORM {@link EntityManager} or {@link org.hibernate.Session}. * @return A {@link SearchWriter}. */ - SearchWriter writer(EntityManager entityManager); + SearchWriter writer(); + + /** + * Create a {@link SearchWriter} for the indexes mapped to types in this scope, or to any of their sub-types. + *

+ * This method only works for multi-tenant applications. + * If multi-tenancy is disabled, use {@link #writer()} instead. + * + * @param tenantId The identifier of the tenant whose index content should be targeted. + * @return A {@link SearchWriter}. + */ + SearchWriter writer(String tenantId); + + /** + * Create a {@link MassIndexer} for the indexes mapped to types in this scope, or to any of their sub-types. + *

+ * This method only works for single-tenant applications. + * If multi-tenancy is enabled, use {@link #massIndexer(String)} instead. + *

+ * {@link MassIndexer} instances cannot be reused. + * + * @return A {@link MassIndexer}. + */ + MassIndexer massIndexer(); /** * Create a {@link MassIndexer} for the indexes mapped to types in this scope, or to any of their sub-types. *

+ * This method only works for multi-tenant applications. + * If multi-tenancy is disabled, use {@link #massIndexer()} instead. + *

* {@link MassIndexer} instances cannot be reused. * - * @param entityManager The Hibernate ORM {@link EntityManager} or {@link org.hibernate.Session}. + * @param tenantId The identifier of the tenant whose index content should be targeted. * @return A {@link MassIndexer}. */ - MassIndexer massIndexer(EntityManager entityManager); + MassIndexer massIndexer(String tenantId); } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeMappingContext.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeMappingContext.java index 4e8cb137421..e01e55512f5 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeMappingContext.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeMappingContext.java @@ -8,6 +8,7 @@ import javax.persistence.EntityManager; +import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.mapper.orm.massindexing.impl.HibernateOrmMassIndexingMappingContext; import org.hibernate.search.mapper.orm.search.loading.impl.HibernateOrmLoadingMappingContext; @@ -16,4 +17,6 @@ public interface HibernateOrmScopeMappingContext HibernateOrmScopeSessionContext getSessionContext(EntityManager entityManager); + DetachedBackendSessionContext getDetachedBackendSessionContext(String tenantId); + } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeSessionContext.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeSessionContext.java index d914ab53366..c2e95d3b3db 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeSessionContext.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/HibernateOrmScopeSessionContext.java @@ -7,7 +7,6 @@ package org.hibernate.search.mapper.orm.scope.impl; import org.hibernate.search.engine.backend.session.spi.BackendSessionContext; -import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.mapper.orm.search.loading.impl.HibernateOrmLoadingSessionContext; public interface HibernateOrmScopeSessionContext @@ -15,6 +14,4 @@ public interface HibernateOrmScopeSessionContext BackendSessionContext getBackendSessionContext(); - DetachedBackendSessionContext getDetachedBackendSessionContext(); - } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java index 6dd110f7284..28e85ab1590 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java @@ -72,23 +72,30 @@ public SearchAggregationFactory aggregation() { } @Override - public SearchWriter writer(EntityManager entityManager) { - HibernateOrmScopeSessionContext sessionContext = mappingContext.getSessionContext( entityManager ); - return writer( sessionContext ); + public SearchWriter writer() { + return writer( (String) null ); + } + + @Override + public SearchWriter writer(String tenantId) { + return writer( mappingContext.getDetachedBackendSessionContext( tenantId ) ); } - public SearchWriter writer(HibernateOrmScopeSessionContext sessionContext) { - return new SearchWriterImpl( delegate.executor( sessionContext.getDetachedBackendSessionContext() ) ); + public SearchWriter writer(DetachedBackendSessionContext detachedSessionContext) { + return new SearchWriterImpl( delegate.executor( detachedSessionContext ) ); } @Override - public MassIndexer massIndexer(EntityManager entityManager) { - HibernateOrmScopeSessionContext sessionContext = mappingContext.getSessionContext( entityManager ); - return massIndexer( sessionContext ); + public MassIndexer massIndexer() { + return massIndexer( (String) null ); + } + + @Override + public MassIndexer massIndexer(String tenantId) { + return massIndexer( mappingContext.getDetachedBackendSessionContext( tenantId ) ); } - public MassIndexer massIndexer(HibernateOrmScopeSessionContext sessionContext) { - DetachedBackendSessionContext detachedSessionContext = sessionContext.getDetachedBackendSessionContext(); + public MassIndexer massIndexer(DetachedBackendSessionContext detachedSessionContext) { return new MassIndexerImpl( mappingContext, delegate.getIncludedIndexedTypes(), diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java index 39bfed464d0..50b3582611f 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java @@ -124,12 +124,12 @@ public HibernateOrmSearchQueryHitTypeStep search(Collection> types) { - return createScope( types ).writer( this ); + return createScope( types ).writer( DetachedBackendSessionContext.of( sessionContext ) ); } @Override public MassIndexer massIndexer(Collection> types) { - return createScope( types ).massIndexer( this ); + return createScope( types ).massIndexer( DetachedBackendSessionContext.of( sessionContext ) ); } @Override @@ -166,11 +166,6 @@ public BackendSessionContext getBackendSessionContext() { return sessionContext; } - @Override - public DetachedBackendSessionContext getDetachedBackendSessionContext() { - return DetachedBackendSessionContext.of( sessionContext ); - } - @Override public ReferenceHitMapper getReferenceHitMapper() { return this; From 0961e89a06660935891fa9146b32a84b4854aebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Fri, 13 Sep 2019 15:04:30 +0200 Subject: [PATCH 11/16] HSEARCH-3671 Test the MassIndexer and SearchWriter when created without any session --- .../orm/massindexing/MassIndexingBaseIT.java | 43 +++++++++++++++++++ ...AbstractSearchWriterSimpleOperationIT.java | 17 ++++++++ 2 files changed, 60 insertions(+) diff --git a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/massindexing/MassIndexingBaseIT.java b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/massindexing/MassIndexingBaseIT.java index 7a118fc5840..ab53311d7eb 100644 --- a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/massindexing/MassIndexingBaseIT.java +++ b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/massindexing/MassIndexingBaseIT.java @@ -19,6 +19,7 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.automaticindexing.AutomaticIndexingStrategyName; import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.orm.massindexing.MassIndexer; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.GenericField; @@ -111,6 +112,48 @@ public void defaultMassIndexerStartAndWait() throws Exception { backendMock.verifyExpectationsMet(); } + @Test + public void fromMappingWithoutSession() throws Exception { + SearchMapping searchMapping = Search.mapping( sessionFactory ); + MassIndexer indexer = searchMapping.scope( Object.class ).massIndexer(); + + // add operations on indexes can follow any random order, + // since they are executed by different threads + backendMock.expectWorksAnyOrder( + Book.INDEX, DocumentCommitStrategy.NONE, DocumentRefreshStrategy.NONE + ) + .add( "1", b -> b + .field( "title", TITLE_1 ) + .field( "author", AUTHOR_1 ) + ) + .add( "2", b -> b + .field( "title", TITLE_2 ) + .field( "author", AUTHOR_2 ) + ) + .add( "3", b -> b + .field( "title", TITLE_3 ) + .field( "author", AUTHOR_3 ) + ) + .preparedThenExecuted(); + + // purgeAtStart, optimizeAfterPurge and purgeAtStart flags are active by default, + // so we expect 1 purge, 2 optimize and 1 flush calls in this order: + backendMock.expectIndexScopeWorks( Book.INDEX ) + .purge() + .optimize() + .optimize() + .flush(); + + try { + indexer.startAndWait(); + } + catch (InterruptedException e) { + fail( "Unexpected InterruptedException: " + e.getMessage() ); + } + + backendMock.verifyExpectationsMet(); + } + @Test public void reuseSearchSessionAfterOrmSessionIsClosed_createMassIndexer() { Session session = sessionFactory.openSession(); diff --git a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/writing/AbstractSearchWriterSimpleOperationIT.java b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/writing/AbstractSearchWriterSimpleOperationIT.java index b8593328afe..1c05b22fb21 100644 --- a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/writing/AbstractSearchWriterSimpleOperationIT.java +++ b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/writing/AbstractSearchWriterSimpleOperationIT.java @@ -160,6 +160,23 @@ public void outOfSession() { assertThat( futureFromWriter ).isSuccessful(); } + @Test + public void fromMappingWithoutSession() { + SessionFactory sessionFactory = setup(); + + SearchWriter writer = Search.mapping( sessionFactory ).scope( IndexedEntity1.class ).writer(); + + CompletableFuture futureFromBackend = new CompletableFuture<>(); + expectWork( backend1Mock, IndexedEntity1.INDEX_NAME, futureFromBackend ); + + CompletableFuture futureFromWriter = executeAsync( writer ); + backend1Mock.verifyExpectationsMet(); + assertThat( futureFromWriter ).isPending(); + + futureFromBackend.complete( new Object() ); + assertThat( futureFromWriter ).isSuccessful(); + } + protected abstract void expectWork(BackendMock backendMock, String indexName, CompletableFuture future); protected abstract void executeSync(SearchWriter writer); From 5469ea4e82e5f1488c4a648726bc285fa1537ce4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Mon, 16 Sep 2019 18:04:49 +0200 Subject: [PATCH 12/16] HSEARCH-3671 Restore the ability to create a SearchScope directly from a SearchSession The resulting scope is still session-independent, which is a bit weird, but it's a handy shortcut when one wants to perform a search immediately. --- .../main/asciidoc/getting-started.asciidoc | 4 ++-- .../GettingStartedWithoutAnalysisIT.java | 5 ++-- .../search/aggregation/AggregationDslIT.java | 5 ++-- .../search/predicate/PredicateDslIT.java | 5 ++-- .../search/projection/ProjectionDslIT.java | 5 ++-- .../documentation/search/sort/SortDslIT.java | 5 ++-- .../mapper/orm/search/SearchQueryBaseIT.java | 15 ++++++------ .../javabean/session/SearchSession.java | 20 ++++++++++++++++ .../session/impl/JavaBeanSearchSession.java | 11 +++++---- .../mapper/orm/session/SearchSession.java | 23 +++++++++++++++++++ .../impl/HibernateOrmSearchSession.java | 17 +++++++------- .../session/impl/LazyInitSearchSession.java | 6 +++++ 12 files changed, 84 insertions(+), 37 deletions(-) diff --git a/documentation/src/main/asciidoc/getting-started.asciidoc b/documentation/src/main/asciidoc/getting-started.asciidoc index 73364008333..200e9463808 100644 --- a/documentation/src/main/asciidoc/getting-started.asciidoc +++ b/documentation/src/main/asciidoc/getting-started.asciidoc @@ -306,9 +306,9 @@ but it will be a bit more verbose: ---- include::{sourcedir}/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java[tags=searching-objects] ---- -<1> Get a Hibernate Search mapping, called `SearchMapping`, from the `EntityManagerFactory`. +<1> Get a Hibernate Search session, called `SearchSession`, from the `EntityManager`. <2> Create a "search scope", representing the indexed types that will be queried. -<3> Initiate a search query targeting the search scope and relying on the given entity manager for entity loading. +<3> Initiate a search query targeting the search scope. <4> Define that only documents matching the given predicate should be returned. The predicate is created using the same search scope as the query. <5> Build the query and fetch the results, limiting to the top 20 hits. diff --git a/documentation/src/test/java/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java b/documentation/src/test/java/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java index b645a2f4bdd..a55b9419bf7 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java @@ -16,7 +16,6 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.engine.search.query.SearchResult; -import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.orm.massindexing.MassIndexer; @@ -101,9 +100,9 @@ public void test() { OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { // tag::searching-objects[] // Not shown: get the entity manager and open a transaction - SearchMapping searchMapping = Search.mapping( entityManager.getEntityManagerFactory() ); // <1> + SearchSession searchSession = Search.session( entityManager ); // <1> - SearchScope scope = searchMapping.scope( Book.class ); // <2> + SearchScope scope = searchSession.scope( Book.class ); // <2> SearchResult result = scope.search( entityManager ) // <3> .predicate( scope.predicate().match() // <4> diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java index cc287742650..b61883c999e 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java @@ -24,7 +24,6 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.automaticindexing.AutomaticIndexingSynchronizationStrategyName; import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; -import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.util.common.data.Range; @@ -97,9 +96,9 @@ public void entryPoint() { OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { // tag::entryPoint-objects[] - SearchMapping searchMapping = Search.mapping( entityManager.getEntityManagerFactory() ); + SearchSession searchSession = Search.session( entityManager ); - SearchScope scope = searchMapping.scope( Book.class ); + SearchScope scope = searchSession.scope( Book.class ); AggregationKey> countsByGenreKey = AggregationKey.of( "countsByGenre" ); diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java index e5a3fa9f612..fedf1c88d52 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java @@ -27,7 +27,6 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.automaticindexing.AutomaticIndexingSynchronizationStrategyName; import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; -import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.util.impl.integrationtest.common.rule.BackendConfiguration; @@ -101,9 +100,9 @@ public void entryPoint() { OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { // tag::entryPoint-objects[] - SearchMapping searchMapping = Search.mapping( entityManager.getEntityManagerFactory() ); + SearchSession searchSession = Search.session( entityManager ); - SearchScope scope = searchMapping.scope( Book.class ); + SearchScope scope = searchSession.scope( Book.class ); List result = scope.search( entityManager ) .predicate( scope.predicate().match().field( "title" ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java index acc527d229f..5d6cab09df7 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java @@ -30,7 +30,6 @@ import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; import org.hibernate.search.mapper.orm.common.EntityReference; import org.hibernate.search.mapper.orm.common.impl.EntityReferenceImpl; -import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.util.impl.integrationtest.common.assertion.SearchHitsAssert; @@ -109,9 +108,9 @@ public void entryPoint() { OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { // tag::entryPoint-objects[] - SearchMapping searchMapping = Search.mapping( entityManager.getEntityManagerFactory() ); + SearchSession searchSession = Search.session( entityManager ); - SearchScope scope = searchMapping.scope( Book.class ); + SearchScope scope = searchSession.scope( Book.class ); List result = scope.search( entityManager ) .asProjection( scope.projection().field( "title", String.class ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java index 496d93902bf..be821baede3 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java @@ -23,7 +23,6 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.mapper.orm.automaticindexing.AutomaticIndexingSynchronizationStrategyName; import org.hibernate.search.mapper.orm.cfg.HibernateOrmMapperSettings; -import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.util.impl.integrationtest.common.rule.BackendConfiguration; @@ -98,9 +97,9 @@ public void entryPoint() { OrmUtils.withinJPATransaction( entityManagerFactory, entityManager -> { // tag::entryPoint-objects[] - SearchMapping searchMapping = Search.mapping( entityManager.getEntityManagerFactory() ); + SearchSession searchSession = Search.session( entityManager ); - SearchScope scope = searchMapping.scope( Book.class ); + SearchScope scope = searchSession.scope( Book.class ); List result = scope.search( entityManager ) .predicate( scope.predicate().matchAll().toPredicate() ) diff --git a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java index 6fd1ffb9365..8ce4a91ce0a 100644 --- a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java +++ b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java @@ -21,7 +21,6 @@ import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.engine.search.query.SearchQuery; import org.hibernate.search.mapper.orm.common.impl.EntityReferenceImpl; -import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.GenericField; @@ -104,10 +103,11 @@ public void asEntity() { @Test public void asProjection_searchProjectionObject_single() { - SearchMapping searchMapping = Search.mapping( sessionFactory ); - SearchScope scope = searchMapping.scope( Book.class ); - OrmUtils.withinSession( sessionFactory, session -> { + SearchSession searchSession = Search.session( session ); + + SearchScope scope = searchSession.scope( Book.class ); + SearchQuery query = scope.search( session ) .asProjection( scope.projection().field( "title", String.class ).toProjection() @@ -136,10 +136,11 @@ public void asProjection_searchProjectionObject_single() { @Test public void asProjection_searchProjectionObject_multiple() { - SearchMapping searchMapping = Search.mapping( sessionFactory ); - SearchScope scope = searchMapping.scope( Book.class ); - OrmUtils.withinSession( sessionFactory, session -> { + SearchSession searchSession = Search.session( session ); + + SearchScope scope = searchSession.scope( Book.class ); + SearchQuery> query = scope.search( session ) .asProjections( scope.projection().field( "title", String.class ).toProjection(), diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/SearchSession.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/SearchSession.java index 30305ea59dc..d96565bb42c 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/SearchSession.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/SearchSession.java @@ -58,6 +58,26 @@ public interface SearchSession extends AutoCloseable { */ SearchQueryHitTypeStep search(SearchScope scope); + /** + * Create a {@link SearchScope} limited to the given type. + * + * @param type A type to include in the scope. + * @return The created scope. + * @see SearchScope + */ + default SearchScope scope(Class type) { + return scope( Collections.singleton( type ) ); + } + + /** + * Create a {@link SearchScope} limited to the given types. + * + * @param types A collection of types to include in the scope. + * @return The created scope. + * @see SearchScope + */ + SearchScope scope(Collection> types); + /** * @return The main work plan for this session. It will be executed upon closing this session. */ diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java index 1c7141b159d..0a0fb2803aa 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/session/impl/JavaBeanSearchSession.java @@ -57,7 +57,7 @@ public void close() { @Override public SearchQueryHitTypeStep search(Collection> types) { - return search( createScope( types ) ); + return search( scope( types ) ); } @Override @@ -65,6 +65,11 @@ public void close() { return search( (SearchScopeImpl) scope ); } + @Override + public SearchScopeImpl scope(Collection> types) { + return mappingContext.createScope( types ); + } + @Override public SearchWorkPlan getMainWorkPlan() { if ( workPlan == null ) { @@ -87,10 +92,6 @@ public EntityReference fromDocumentReference(DocumentReference reference) { return new EntityReferenceImpl( typeContext.getJavaClass(), id ); } - private SearchScopeImpl createScope(Collection> types) { - return mappingContext.createScope( types ); - } - private SearchQueryHitTypeStep search(SearchScopeImpl scope) { return ( (SearchScopeImpl) scope ).search( getDelegate().getBackendSessionContext(), diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java index 46f097534ea..584e61f979a 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java @@ -13,6 +13,7 @@ import javax.persistence.EntityManager; import org.hibernate.Session; +import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.writing.SearchWriter; import org.hibernate.search.mapper.orm.massindexing.MassIndexer; import org.hibernate.search.mapper.orm.search.query.dsl.HibernateOrmSearchQueryHitTypeStep; @@ -103,6 +104,28 @@ default MassIndexer massIndexer(Class... types) { */ MassIndexer massIndexer(Collection> types); + /** + * Create a {@link SearchScope} limited to the given type. + * + * @param type A type to include in the scope. + * @param A type to include in the scope. + * @return The created scope. + * @see SearchScope + */ + default SearchScope scope(Class type) { + return scope( Collections.singleton( type ) ); + } + + /** + * Create a {@link SearchScope} limited to the given types. + * + * @param types A collection of types to include in the scope. + * @param A supertype of all types to include in the scope. + * @return The created scope. + * @see SearchScope + */ + SearchScope scope(Collection> types); + /** * Creates a {@link MassIndexer} to rebuild the indexes of some or all indexed entity types. *

diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java index 50b3582611f..c1ea8fa4c71 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java @@ -119,17 +119,23 @@ public void close() { @Override public HibernateOrmSearchQueryHitTypeStep search(Collection> types) { - return createScope( types ).search( this ); + return scope( types ).search( this ); } @Override public SearchWriter writer(Collection> types) { - return createScope( types ).writer( DetachedBackendSessionContext.of( sessionContext ) ); + return scope( types ).writer( DetachedBackendSessionContext.of( sessionContext ) ); } @Override public MassIndexer massIndexer(Collection> types) { - return createScope( types ).massIndexer( DetachedBackendSessionContext.of( sessionContext ) ); + return scope( types ).massIndexer( DetachedBackendSessionContext.of( sessionContext ) ); + } + + @Override + public SearchScopeImpl scope(Collection> types) { + checkOrmSessionIsOpen(); + return mappingContext.createScope( types ); } @Override @@ -237,11 +243,6 @@ AutomaticIndexingSynchronizationStrategy getAutomaticIndexingSynchronizationStra return synchronizationStrategy; } - private SearchScopeImpl createScope(Collection> types) { - checkOrmSessionIsOpen(); - return mappingContext.createScope( types ); - } - private PojoWorkPlan createWorkPlan(DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { return getDelegate().createWorkPlan( commitStrategy, refreshStrategy ); } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java index d9ff3bb3f3e..c85c6aa6855 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java @@ -14,6 +14,7 @@ import org.hibernate.Session; import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.search.mapper.orm.massindexing.MassIndexer; +import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.search.query.dsl.HibernateOrmSearchQueryHitTypeStep; import org.hibernate.search.mapper.orm.session.AutomaticIndexingSynchronizationStrategy; import org.hibernate.search.mapper.orm.session.SearchSession; @@ -53,6 +54,11 @@ public MassIndexer massIndexer(Collection> types) { return getDelegate().massIndexer( types ); } + @Override + public SearchScope scope(Collection> types) { + return getDelegate().scope( types ); + } + @Override public EntityManager toEntityManager() { return getDelegate().toEntityManager(); From b22b6061ecf0a67c9104708ba778a32bbfb1ffa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Tue, 17 Sep 2019 08:58:34 +0200 Subject: [PATCH 13/16] HSEARCH-3671 Replace scope.search(entityManager) with searchSession.search(scope) The implementation is ugly and requires casting, but at least the syntax is easier on the eye for users. --- .../GettingStartedWithoutAnalysisIT.java | 4 +-- .../search/aggregation/AggregationDslIT.java | 2 +- .../search/predicate/PredicateDslIT.java | 2 +- .../search/projection/ProjectionDslIT.java | 2 +- .../documentation/search/sort/SortDslIT.java | 2 +- .../mapper/orm/search/SearchQueryBaseIT.java | 4 +-- .../search/mapper/orm/scope/SearchScope.java | 27 ++++++------------- .../orm/scope/impl/SearchScopeImpl.java | 8 ------ .../mapper/orm/session/SearchSession.java | 12 +++++++++ .../impl/HibernateOrmSearchSession.java | 12 ++++++++- .../session/impl/LazyInitSearchSession.java | 5 ++++ 11 files changed, 44 insertions(+), 36 deletions(-) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java b/documentation/src/test/java/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java index a55b9419bf7..0552edbe162 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/gettingstarted/withhsearch/withoutanalysis/GettingStartedWithoutAnalysisIT.java @@ -104,7 +104,7 @@ public void test() { SearchScope scope = searchSession.scope( Book.class ); // <2> - SearchResult result = scope.search( entityManager ) // <3> + SearchResult result = searchSession.search( scope ) // <3> .predicate( scope.predicate().match() // <4> .fields( "title", "authors.name" ) .matching( "Refactoring: Improving the Design of Existing Code" ) @@ -118,7 +118,7 @@ public void test() { List hits2 = /* ... same DSL calls as above... */ // end::searching-objects[] - scope.search( entityManager ) + searchSession.search( scope ) .predicate( scope.predicate().match() .fields( "title", "authors.name" ) .matching( "Refactoring: Improving the Design of Existing Code" ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java index b61883c999e..e7ff43de5bb 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/aggregation/AggregationDslIT.java @@ -102,7 +102,7 @@ public void entryPoint() { AggregationKey> countsByGenreKey = AggregationKey.of( "countsByGenre" ); - SearchResult result = scope.search( entityManager ) + SearchResult result = searchSession.search( scope ) .predicate( scope.predicate().match().field( "title" ) .matching( "robot" ) .toPredicate() ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java index fedf1c88d52..cdb23ce9d35 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/predicate/PredicateDslIT.java @@ -104,7 +104,7 @@ public void entryPoint() { SearchScope scope = searchSession.scope( Book.class ); - List result = scope.search( entityManager ) + List result = searchSession.search( scope ) .predicate( scope.predicate().match().field( "title" ) .matching( "robot" ) .toPredicate() ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java index 5d6cab09df7..c20167b123f 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/projection/ProjectionDslIT.java @@ -112,7 +112,7 @@ public void entryPoint() { SearchScope scope = searchSession.scope( Book.class ); - List result = scope.search( entityManager ) + List result = searchSession.search( scope ) .asProjection( scope.projection().field( "title", String.class ) .toProjection() ) .predicate( scope.predicate().matchAll().toPredicate() ) diff --git a/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java b/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java index be821baede3..f9e69767191 100644 --- a/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java +++ b/documentation/src/test/java/org/hibernate/search/documentation/search/sort/SortDslIT.java @@ -101,7 +101,7 @@ public void entryPoint() { SearchScope scope = searchSession.scope( Book.class ); - List result = scope.search( entityManager ) + List result = searchSession.search( scope ) .predicate( scope.predicate().matchAll().toPredicate() ) .sort( scope.sort() .field( "pageCount" ).desc() diff --git a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java index 8ce4a91ce0a..89225cdecd1 100644 --- a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java +++ b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java @@ -108,7 +108,7 @@ public void asProjection_searchProjectionObject_single() { SearchScope scope = searchSession.scope( Book.class ); - SearchQuery query = scope.search( session ) + SearchQuery query = searchSession.search( scope ) .asProjection( scope.projection().field( "title", String.class ).toProjection() ) @@ -141,7 +141,7 @@ public void asProjection_searchProjectionObject_multiple() { SearchScope scope = searchSession.scope( Book.class ); - SearchQuery> query = scope.search( session ) + SearchQuery> query = searchSession.search( scope ) .asProjections( scope.projection().field( "title", String.class ).toProjection(), scope.projection().entityReference().toProjection(), diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java index 66e7859f15f..6fc6b9216a1 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java @@ -8,8 +8,6 @@ import java.util.function.Function; -import javax.persistence.EntityManager; - import org.hibernate.search.engine.search.aggregation.AggregationKey; import org.hibernate.search.engine.search.aggregation.SearchAggregation; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; @@ -32,22 +30,11 @@ */ public interface SearchScope { - /** - * Initiate the building of a search query. - *

- * The query will target the indexes mapped to types in this scope, or to any of their sub-types. - * - * @param entityManager The Hibernate ORM {@link EntityManager} or {@link org.hibernate.Session}. - * @return The initial step of a DSL where the search query can be defined. - * @see HibernateOrmSearchQueryHitTypeStep - */ - HibernateOrmSearchQueryHitTypeStep search(EntityManager entityManager); - /** * Initiate the building of a search predicate. *

- * The predicate will only be valid for {@link #search(EntityManager) search queries} created using this scope - * or a wider scope. + * The predicate will only be valid for {@link org.hibernate.search.mapper.orm.session.SearchSession#search(SearchScope) search queries} + * created using this scope or a wider scope. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryPredicateStep#predicate(Function) define predicates with lambdas} @@ -62,7 +49,8 @@ public interface SearchScope { /** * Initiate the building of a search sort. *

- * The sort will only be valid for {@link #search(EntityManager) search queries} created using this scope + * The sort will only be valid for {@link org.hibernate.search.mapper.orm.session.SearchSession#search(SearchScope) search queries} + * created using this scope or a wider scope. * or a wider scope. *

* Note this method is only necessary if you do not want to use lambda expressions, @@ -78,8 +66,8 @@ public interface SearchScope { /** * Initiate the building of a search projection that will be valid for the indexes in this scope. *

- * The projection will only be valid for {@link #search(EntityManager) search queries} created using this scope - * or a wider scope. + * The projection will only be valid for {@link org.hibernate.search.mapper.orm.session.SearchSession#search(SearchScope) search queries} + * created using this scope or a wider scope. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link HibernateOrmSearchQueryHitTypeStep#asProjection(Function)} define projections with lambdas} @@ -94,7 +82,8 @@ public interface SearchScope { /** * Initiate the building of a search aggregation that will be valid for the indexes in this scope. *

- * The aggregation will only be usable in {@link #search(EntityManager) search queries} created using this scope. + * The aggregation will only be usable in {@link org.hibernate.search.mapper.orm.session.SearchSession#search(SearchScope) search queries} + * created using this scope or a wider scope. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryOptionsStep#aggregation(AggregationKey, SearchAggregation)} define aggregations with lambdas} diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java index 28e85ab1590..9d2f919b4de 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/impl/SearchScopeImpl.java @@ -6,8 +6,6 @@ */ package org.hibernate.search.mapper.orm.scope.impl; -import javax.persistence.EntityManager; - import org.hibernate.search.engine.backend.session.spi.DetachedBackendSessionContext; import org.hibernate.search.engine.search.aggregation.dsl.SearchAggregationFactory; import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory; @@ -35,12 +33,6 @@ public SearchScopeImpl(HibernateOrmScopeMappingContext mappingContext, this.delegate = delegate; } - @Override - public HibernateOrmSearchQueryHitTypeStep search(EntityManager entityManager) { - HibernateOrmScopeSessionContext sessionContext = mappingContext.getSessionContext( entityManager ); - return search( sessionContext ); - } - public HibernateOrmSearchQueryHitTypeStep search(HibernateOrmScopeSessionContext sessionContext) { HibernateOrmLoadingContext.Builder loadingContextBuilder = new HibernateOrmLoadingContext.Builder<>( mappingContext, sessionContext, delegate.getIncludedIndexedTypes() diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java index 584e61f979a..b6502a67929 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/SearchSession.java @@ -46,6 +46,18 @@ default HibernateOrmSearchQueryHitTypeStep search(Class type) { */ HibernateOrmSearchQueryHitTypeStep search(Collection> types); + /** + * Initiate the building of a search query. + *

+ * The query will target the indexes in the given scope. + * + * @param scope A scope representing all indexed types that will be targeted by the search query. + * @param A supertype of all types in the given scope. + * @return The initial step of a DSL where the search query can be defined. + * @see HibernateOrmSearchQueryHitTypeStep + */ + HibernateOrmSearchQueryHitTypeStep search(SearchScope scope); + /** * Create a {@link SearchWriter} for the indexes mapped to all indexed types. * diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java index c1ea8fa4c71..4d0fbe38d6b 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java @@ -31,6 +31,7 @@ import org.hibernate.search.mapper.orm.logging.impl.Log; import org.hibernate.search.mapper.orm.mapping.impl.HibernateOrmMapping; import org.hibernate.search.mapper.orm.massindexing.MassIndexer; +import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeSessionContext; import org.hibernate.search.mapper.orm.scope.impl.SearchScopeImpl; import org.hibernate.search.mapper.orm.search.query.dsl.HibernateOrmSearchQueryHitTypeStep; @@ -119,7 +120,16 @@ public void close() { @Override public HibernateOrmSearchQueryHitTypeStep search(Collection> types) { - return scope( types ).search( this ); + return search( scope( types ) ); + } + + @Override + public HibernateOrmSearchQueryHitTypeStep search(SearchScope scope) { + return search( (SearchScopeImpl) scope ); + } + + private HibernateOrmSearchQueryHitTypeStep search(SearchScopeImpl scope) { + return scope.search( this ); } @Override diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java index c85c6aa6855..b3603e70dbc 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java @@ -44,6 +44,11 @@ public HibernateOrmSearchQueryHitTypeStep search(Collection HibernateOrmSearchQueryHitTypeStep search(SearchScope scope) { + return getDelegate().search( scope ); + } + @Override public SearchWriter writer(Collection> types) { return getDelegate().writer( types ); From 0faa1e40c74bbc247c83487d9722a4953e6e8336 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Tue, 17 Sep 2019 09:01:01 +0200 Subject: [PATCH 14/16] HSEARCH-3671 Fix erroneous documentation about the compatibility of search scopes --- .../search/mapper/javabean/scope/SearchScope.java | 8 ++++---- .../hibernate/search/mapper/orm/scope/SearchScope.java | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/scope/SearchScope.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/scope/SearchScope.java index 568149a2a8b..d3201e914aa 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/scope/SearchScope.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/scope/SearchScope.java @@ -30,7 +30,7 @@ public interface SearchScope { * Initiate the building of a search predicate. *

* The predicate will only be valid for {@link org.hibernate.search.mapper.javabean.session.SearchSession#search(SearchScope) search queries} - * created using this scope or a wider scope. + * created using this scope or another scope instance targeting the same indexes. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryPredicateStep#predicate(Function) define predicates with lambdas} @@ -46,7 +46,7 @@ public interface SearchScope { * Initiate the building of a search sort. *

* The sort will only be valid for {@link org.hibernate.search.mapper.javabean.session.SearchSession#search(SearchScope) search queries} - * created using this scope or a wider scope. + * created using this scope or another scope instance targeting the same indexes. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryOptionsStep#sort(Function) define sorts with lambdas} @@ -62,7 +62,7 @@ public interface SearchScope { * Initiate the building of a search projection that will be valid for the indexes in this scope. *

* The projection will only be valid for {@link org.hibernate.search.mapper.javabean.session.SearchSession#search(SearchScope) search queries} - * created using this scope or a wider scope. + * created using this scope or another scope instance targeting the same indexes. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryHitTypeStep#asProjection(Function)} define projections with lambdas} @@ -78,7 +78,7 @@ public interface SearchScope { * Initiate the building of a search aggregation that will be valid for the indexes in this scope. *

* The aggregation will only be usable in {@link org.hibernate.search.mapper.javabean.session.SearchSession#search(SearchScope) search queries} - * created using this scope or a wider scope. + * created using this scope or another scope instance targeting the same indexes. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryOptionsStep#aggregation(AggregationKey, SearchAggregation)} define aggregations with lambdas} diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java index 6fc6b9216a1..7870dfcde57 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java @@ -34,7 +34,7 @@ public interface SearchScope { * Initiate the building of a search predicate. *

* The predicate will only be valid for {@link org.hibernate.search.mapper.orm.session.SearchSession#search(SearchScope) search queries} - * created using this scope or a wider scope. + * created using this scope or another scope instance targeting the same indexes. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryPredicateStep#predicate(Function) define predicates with lambdas} @@ -50,7 +50,7 @@ public interface SearchScope { * Initiate the building of a search sort. *

* The sort will only be valid for {@link org.hibernate.search.mapper.orm.session.SearchSession#search(SearchScope) search queries} - * created using this scope or a wider scope. + * created using this scope or another scope instance targeting the same indexes. * or a wider scope. *

* Note this method is only necessary if you do not want to use lambda expressions, @@ -67,7 +67,7 @@ public interface SearchScope { * Initiate the building of a search projection that will be valid for the indexes in this scope. *

* The projection will only be valid for {@link org.hibernate.search.mapper.orm.session.SearchSession#search(SearchScope) search queries} - * created using this scope or a wider scope. + * created using this scope or another scope instance targeting the same indexes. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link HibernateOrmSearchQueryHitTypeStep#asProjection(Function)} define projections with lambdas} @@ -83,7 +83,7 @@ public interface SearchScope { * Initiate the building of a search aggregation that will be valid for the indexes in this scope. *

* The aggregation will only be usable in {@link org.hibernate.search.mapper.orm.session.SearchSession#search(SearchScope) search queries} - * created using this scope or a wider scope. + * created using this scope or another scope instance targeting the same indexes. *

* Note this method is only necessary if you do not want to use lambda expressions, * since you can {@link SearchQueryOptionsStep#aggregation(AggregationKey, SearchAggregation)} define aggregations with lambdas} From 702def109a4bece932568d049a21189d6d965f40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Tue, 17 Sep 2019 09:29:02 +0200 Subject: [PATCH 15/16] HSEARCH-3671 Implement stub aggregations It was forgotten in a previous PR. --- .../backend/index/impl/StubIndexScope.java | 7 ++- .../impl/StubAggregationBuilder.java | 13 +++++ .../impl/StubRangeAggregationBuilder.java | 27 ++++++++++ .../impl/StubSearchAggregation.java | 21 ++++++++ .../StubSearchAggregationBuilderFactory.java | 40 +++++++++++++++ .../impl/StubTermsAggregationBuilder.java | 51 +++++++++++++++++++ 6 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubAggregationBuilder.java create mode 100644 util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubRangeAggregationBuilder.java create mode 100644 util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubSearchAggregation.java create mode 100644 util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubSearchAggregationBuilderFactory.java create mode 100644 util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubTermsAggregationBuilder.java diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexScope.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexScope.java index 27eff844595..7062cbf266c 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexScope.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/index/impl/StubIndexScope.java @@ -17,6 +17,7 @@ import org.hibernate.search.engine.search.projection.spi.SearchProjectionBuilderFactory; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.document.model.StubIndexSchemaNode; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.StubQueryElementCollector; +import org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.aggregation.impl.StubSearchAggregationBuilderFactory; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.impl.StubScopeModel; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.predicate.impl.StubSearchPredicateBuilderFactory; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.projection.impl.StubSearchProjectionBuilderFactory; @@ -25,8 +26,9 @@ class StubIndexScope implements IndexScope { private final StubSearchPredicateBuilderFactory predicateFactory; private final StubSearchSortBuilderFactory sortFactory; - private final StubSearchQueryBuilderFactory queryFactory; private final StubSearchProjectionBuilderFactory projectionFactory; + private final StubSearchAggregationBuilderFactory aggregationFactory; + private final StubSearchQueryBuilderFactory queryFactory; private StubIndexScope(Builder builder) { Set immutableIndexNames = Collections.unmodifiableSet( new LinkedHashSet<>( builder.indexNames ) ); @@ -36,6 +38,7 @@ private StubIndexScope(Builder builder) { this.predicateFactory = new StubSearchPredicateBuilderFactory(); this.sortFactory = new StubSearchSortBuilderFactory(); this.projectionFactory = new StubSearchProjectionBuilderFactory( model ); + this.aggregationFactory = new StubSearchAggregationBuilderFactory(); this.queryFactory = new StubSearchQueryBuilderFactory( builder.backend, model ); } @@ -61,7 +64,7 @@ public SearchProjectionBuilderFactory getSearchProjectionFactory() { @Override public SearchAggregationBuilderFactory getSearchAggregationFactory() { - throw new UnsupportedOperationException( "Not implemented yet" ); + return aggregationFactory; } static class Builder implements IndexScopeBuilder { diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubAggregationBuilder.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubAggregationBuilder.java new file mode 100644 index 00000000000..754c2cdfb95 --- /dev/null +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubAggregationBuilder.java @@ -0,0 +1,13 @@ +/* + * Hibernate Search, full-text search for your domain model + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or . + */ +package org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.aggregation.impl; + +import org.hibernate.search.engine.search.aggregation.spi.SearchAggregationBuilder; + +interface StubAggregationBuilder extends SearchAggregationBuilder { + +} diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubRangeAggregationBuilder.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubRangeAggregationBuilder.java new file mode 100644 index 00000000000..384618a42cc --- /dev/null +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubRangeAggregationBuilder.java @@ -0,0 +1,27 @@ +/* + * Hibernate Search, full-text search for your domain model + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or . + */ +package org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.aggregation.impl; + +import java.util.Map; + +import org.hibernate.search.engine.search.aggregation.SearchAggregation; +import org.hibernate.search.engine.search.aggregation.spi.RangeAggregationBuilder; +import org.hibernate.search.util.common.data.Range; + +class StubRangeAggregationBuilder + implements StubAggregationBuilder, Long>>, RangeAggregationBuilder { + + @Override + public void range(Range range) { + // No-op + } + + @Override + public SearchAggregation, Long>> build() { + return new StubSearchAggregation<>( this ); + } +} diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubSearchAggregation.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubSearchAggregation.java new file mode 100644 index 00000000000..8dfb660afcd --- /dev/null +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubSearchAggregation.java @@ -0,0 +1,21 @@ +/* + * Hibernate Search, full-text search for your domain model + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or . + */ +package org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.aggregation.impl; + +import org.hibernate.search.engine.search.aggregation.SearchAggregation; + +class StubSearchAggregation implements SearchAggregation { + private final StubAggregationBuilder builder; + + StubSearchAggregation(StubAggregationBuilder builder) { + this.builder = builder; + } + + StubAggregationBuilder get() { + return builder; + } +} diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubSearchAggregationBuilderFactory.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubSearchAggregationBuilderFactory.java new file mode 100644 index 00000000000..38748c6e735 --- /dev/null +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubSearchAggregationBuilderFactory.java @@ -0,0 +1,40 @@ +/* + * Hibernate Search, full-text search for your domain model + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or . + */ +package org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.aggregation.impl; + +import org.hibernate.search.engine.search.aggregation.AggregationKey; +import org.hibernate.search.engine.search.aggregation.SearchAggregation; +import org.hibernate.search.engine.search.aggregation.spi.RangeAggregationBuilder; +import org.hibernate.search.engine.search.aggregation.spi.SearchAggregationBuilderFactory; +import org.hibernate.search.engine.search.aggregation.spi.TermsAggregationBuilder; +import org.hibernate.search.engine.search.common.ValueConvert; +import org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.StubQueryElementCollector; + +public class StubSearchAggregationBuilderFactory + implements SearchAggregationBuilderFactory { + + @Override + public void contribute(StubQueryElementCollector collector, AggregationKey key, + SearchAggregation aggregation) { + // Just check the type and simulate collection + StubSearchAggregation.class.cast( aggregation ); + collector.simulateCollectCall(); + } + + @Override + public TermsAggregationBuilder createTermsAggregationBuilder(String absoluteFieldPath, Class expectedType, + ValueConvert convert) { + return new StubTermsAggregationBuilder<>(); + } + + @Override + public RangeAggregationBuilder createRangeAggregationBuilder(String absoluteFieldPath, Class expectedType, + ValueConvert convert) { + return new StubRangeAggregationBuilder<>(); + } + +} diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubTermsAggregationBuilder.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubTermsAggregationBuilder.java new file mode 100644 index 00000000000..61c435c5fd1 --- /dev/null +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubTermsAggregationBuilder.java @@ -0,0 +1,51 @@ +/* + * Hibernate Search, full-text search for your domain model + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or . + */ +package org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.aggregation.impl; + +import java.util.Map; + +import org.hibernate.search.engine.search.aggregation.SearchAggregation; +import org.hibernate.search.engine.search.aggregation.spi.TermsAggregationBuilder; + +class StubTermsAggregationBuilder + implements StubAggregationBuilder>, TermsAggregationBuilder { + + @Override + public void orderByCountDescending() { + // No-op + } + + @Override + public void orderByCountAscending() { + // No-op + } + + @Override + public void orderByTermDescending() { + // No-op + } + + @Override + public void orderByTermAscending() { + // No-op + } + + @Override + public void minDocumentCount(int minDocumentCount) { + // No-op + } + + @Override + public void maxTermCount(int maxTermCount) { + // No-op + } + + @Override + public SearchAggregation> build() { + return new StubSearchAggregation<>( this ); + } +} From cdb630b9dab2eea6ca4b17783802582d2fbd4c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Tue, 17 Sep 2019 09:36:37 +0200 Subject: [PATCH 16/16] HSEARCH-3671 Test the creation of search components (predicate, sort, ...) directly from the mapping --- .../mapper/orm/search/SearchQueryBaseIT.java | 75 +++++++++++++++++++ .../impl/StubSearchAggregation.java | 2 +- .../predicate/impl/StubSearchPredicate.java | 2 +- .../backend/search/sort/StubSearchSort.java | 2 +- 4 files changed, 78 insertions(+), 3 deletions(-) diff --git a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java index 89225cdecd1..092057cda19 100644 --- a/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java +++ b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java @@ -10,6 +10,7 @@ import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.Objects; import javax.persistence.Entity; @@ -17,10 +18,19 @@ import javax.persistence.Table; import org.assertj.core.api.Assertions; +import org.assertj.core.api.SoftAssertions; + import org.hibernate.SessionFactory; +import org.hibernate.search.engine.search.aggregation.AggregationKey; +import org.hibernate.search.engine.search.aggregation.SearchAggregation; +import org.hibernate.search.engine.search.predicate.SearchPredicate; +import org.hibernate.search.engine.search.projection.SearchProjection; +import org.hibernate.search.engine.search.sort.SearchSort; import org.hibernate.search.mapper.orm.Search; import org.hibernate.search.engine.search.query.SearchQuery; +import org.hibernate.search.mapper.orm.common.EntityReference; import org.hibernate.search.mapper.orm.common.impl.EntityReferenceImpl; +import org.hibernate.search.mapper.orm.mapping.SearchMapping; import org.hibernate.search.mapper.orm.scope.SearchScope; import org.hibernate.search.mapper.orm.session.SearchSession; import org.hibernate.search.mapper.pojo.mapping.definition.annotation.GenericField; @@ -28,8 +38,13 @@ import org.hibernate.search.util.impl.integrationtest.common.rule.BackendMock; import org.hibernate.search.util.impl.integrationtest.common.rule.StubSearchWorkBehavior; import org.hibernate.search.util.impl.integrationtest.common.stub.backend.StubBackendUtils; +import org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.aggregation.impl.StubSearchAggregation; +import org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.predicate.impl.StubSearchPredicate; +import org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.projection.impl.StubSearchProjection; +import org.hibernate.search.util.impl.integrationtest.common.stub.backend.search.sort.StubSearchSort; import org.hibernate.search.util.impl.integrationtest.orm.OrmSetupHelper; import org.hibernate.search.util.impl.integrationtest.orm.OrmUtils; +import org.hibernate.search.util.impl.test.annotation.TestForIssue; import org.junit.Before; import org.junit.Rule; @@ -296,6 +311,66 @@ public void asProjection_compositeAndLoading() { } ); } + /** + * A smoke test for components (predicate, sort, ...) created from the mapping without a session + */ + @Test + @TestForIssue(jiraKey = "HSEARCH-3671") + public void componentsFromMappingWithoutSession() { + SearchMapping mapping = Search.mapping( sessionFactory ); + SearchScope scope = mapping.scope( Book.class ); + + /* + * The backend is a stub, so these components are stub too: + * we simply test that the mapper correctly delegates to the backend. + */ + SearchProjection projection = scope.projection().entityReference().toProjection(); + SearchPredicate predicate = scope.predicate().matchAll().toPredicate(); + SearchSort sort = scope.sort().field( "title" ).toSort(); + SearchAggregation> aggregation = scope.aggregation().terms() + .field( "title", String.class ).toAggregation(); + SoftAssertions.assertSoftly( a -> { + a.assertThat( projection ).isInstanceOf( StubSearchProjection.class ); + a.assertThat( predicate ).isInstanceOf( StubSearchPredicate.class ); + a.assertThat( sort ).isInstanceOf( StubSearchSort.class ); + a.assertThat( aggregation ).isInstanceOf( StubSearchAggregation.class ); + } ); + + /* + * ... and below we test that passing these objects to the DSL will work correctly. + * Objects are casted explicitly by the stub backend, + * so if a wrong object was passed, the whole query would fail. + */ + AggregationKey> aggregationKey = AggregationKey.of( "titleAgg" ); + OrmUtils.withinSession( sessionFactory, session -> { + SearchSession searchSession = Search.session( session ); + + SearchQuery query = searchSession.search( scope ) + .asProjection( projection ) + .predicate( predicate ) + .sort( sort ) + .aggregation( aggregationKey, aggregation ) + .toQuery(); + + backendMock.expectSearchProjection( + Arrays.asList( Book.INDEX ), + b -> { }, + StubSearchWorkBehavior.of( + 3L, + StubBackendUtils.reference( Book.INDEX, "1" ), + StubBackendUtils.reference( Book.INDEX, "2" ), + StubBackendUtils.reference( Book.INDEX, "3" ) + ) + ); + + Assertions.assertThat( query.fetchHits() ).containsExactlyInAnyOrder( + new EntityReferenceImpl( Book.class, 1 ), + new EntityReferenceImpl( Book.class, 2 ), + new EntityReferenceImpl( Book.class, 3 ) + ); + } ); + } + private void initData() { OrmUtils.withinTransaction( sessionFactory, session -> { session.persist( new Book( 1, TITLE_4_3_2_1, AUTHOR_4_3_2_1 ) ); diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubSearchAggregation.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubSearchAggregation.java index 8dfb660afcd..5be36926544 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubSearchAggregation.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/aggregation/impl/StubSearchAggregation.java @@ -8,7 +8,7 @@ import org.hibernate.search.engine.search.aggregation.SearchAggregation; -class StubSearchAggregation implements SearchAggregation { +public class StubSearchAggregation implements SearchAggregation { private final StubAggregationBuilder builder; StubSearchAggregation(StubAggregationBuilder builder) { diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/predicate/impl/StubSearchPredicate.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/predicate/impl/StubSearchPredicate.java index a668beb7194..b2142aa4bb4 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/predicate/impl/StubSearchPredicate.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/predicate/impl/StubSearchPredicate.java @@ -8,7 +8,7 @@ import org.hibernate.search.engine.search.predicate.SearchPredicate; -class StubSearchPredicate implements SearchPredicate { +public class StubSearchPredicate implements SearchPredicate { private final StubPredicateBuilder builder; StubSearchPredicate( diff --git a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/sort/StubSearchSort.java b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/sort/StubSearchSort.java index c3ab1d6e272..09db76f692e 100644 --- a/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/sort/StubSearchSort.java +++ b/util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/stub/backend/search/sort/StubSearchSort.java @@ -10,7 +10,7 @@ import org.hibernate.search.engine.search.sort.SearchSort; -class StubSearchSort extends StubSortBuilder implements SearchSort { +public class StubSearchSort extends StubSortBuilder implements SearchSort { private final List builders; StubSearchSort(List builders) {