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/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..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() // <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() + 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/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..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 = searchSession.search( Book.class ) + 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 b5cc5c3af8f..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() + 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 9ad76a7af8e..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() + 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 ffa684c6b0d..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() + List result = searchSession.search( scope ) .predicate( scope.predicate().matchAll().toPredicate() ) .sort( scope.sort() .field( "pageCount" ).desc() 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 55% 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..526693128d1 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,54 @@ * 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; + public static DetachedBackendSessionContext of(BackendMappingContext mappingContext, String tenantIdentifier) { + return new DetachedBackendSessionContext( + mappingContext, + tenantIdentifier + ); + } + + 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/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 99eba0afa9b..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 @@ -13,16 +13,17 @@ 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; +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; @@ -49,17 +50,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)" ); @@ -82,9 +83,15 @@ 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( sessionFactory, entityManager -> { + OrmUtils.withinEntityManager( entityManagerFactory, entityManager -> { SearchSession searchSession = Search.session( entityManager ); assertThat( searchSession.toEntityManager() ).isSameAs( entityManager ); } ); @@ -92,9 +99,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 +120,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 +129,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 +154,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 +217,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 +245,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 +262,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(); 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/search/SearchQueryBaseIT.java b/integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/search/SearchQueryBaseIT.java index eade52b27d3..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; @@ -108,7 +123,7 @@ public void asProjection_searchProjectionObject_single() { SearchScope scope = searchSession.scope( Book.class ); - SearchQuery query = scope.search() + SearchQuery query = searchSession.search( scope ) .asProjection( scope.projection().field( "title", String.class ).toProjection() ) @@ -141,7 +156,7 @@ public void asProjection_searchProjectionObject_multiple() { SearchScope scope = searchSession.scope( Book.class ); - SearchQuery> query = scope.search() + SearchQuery> query = searchSession.search( scope ) .asProjections( scope.projection().field( "title", String.class ).toProjection(), scope.projection().entityReference().toProjection(), @@ -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/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); 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..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 @@ -19,8 +19,8 @@ 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.context.impl.JavaBeanMappingContext; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; +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; @@ -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; @@ -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/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..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 @@ -25,10 +25,10 @@ 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.context.impl.JavaBeanMappingContext; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; +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; @@ -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; @@ -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/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..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 @@ -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() { @@ -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 472d07c82c1..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 @@ -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() { @@ -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/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/JavaBeanMapping.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/JavaBeanMapping.java deleted file mode 100644 index 2ce50b644ed..00000000000 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/JavaBeanMapping.java +++ /dev/null @@ -1,37 +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.javabean; - -import java.lang.invoke.MethodHandles; - -import org.hibernate.search.mapper.javabean.session.SearchSession; -import org.hibernate.search.mapper.javabean.session.SearchSessionBuilder; - -public interface JavaBeanMapping { - - /** - * @return A new session allowing to {@link SearchSession#getMainWorkPlan() index} or - * {@link SearchSession#search(Class) search for} entities. - * @see #createSessionWithOptions() - */ - SearchSession createSession(); - - /** - * @return A session builder allowing to more finely configure the new session. - * @see #createSession() - */ - SearchSessionBuilder createSessionWithOptions(); - - static JavaBeanMappingBuilder builder() { - return builder( MethodHandles.publicLookup() ); - } - - static JavaBeanMappingBuilder builder(MethodHandles.Lookup lookup) { - return new JavaBeanMappingBuilder( lookup ); - } - -} 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/mapping/SearchMapping.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMapping.java new file mode 100644 index 00000000000..9ac1ec771e0 --- /dev/null +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/SearchMapping.java @@ -0,0 +1,60 @@ +/* + * 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.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. + * @see #createSessionWithOptions() + */ + SearchSession createSession(); + + /** + * @return A session builder allowing to more finely configure the new session. + * @see #createSession() + */ + SearchSessionBuilder createSessionWithOptions(); + + static SearchMappingBuilder builder() { + return builder( MethodHandles.publicLookup() ); + } + + 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 85% 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..a405a122f7a 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; @@ -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; @@ -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 ); @@ -136,7 +136,7 @@ public CloseableJavaBeanMapping 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/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/JavaBeanMapping.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMapping.java new file mode 100644 index 00000000000..42e4c6bbc31 --- /dev/null +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMapping.java @@ -0,0 +1,77 @@ +/* + * 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.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 JavaBeanMapping extends AbstractPojoMappingImplementor + implements CloseableSearchMapping, JavaBeanSearchSessionMappingContext { + + private final JavaBeanBackendMappingContext backendMappingContext; + private final 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; + } + + @Override + public SearchSession createSession() { + return createSearchManagerBuilder().build(); + } + + @Override + 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(), this, typeContextContainer + ); + } +} 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 deleted file mode 100644 index 1a69c7e4725..00000000000 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingImpl.java +++ /dev/null @@ -1,49 +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.javabean.mapping.impl; - -import org.hibernate.search.mapper.javabean.CloseableJavaBeanMapping; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; -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; -import org.hibernate.search.mapper.javabean.session.impl.JavaBeanSearchSession; -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 { - - private final JavaBeanMappingContext mappingContext; - private final JavaBeanTypeContextContainer typeContextContainer; - - JavaBeanMappingImpl(PojoMappingDelegate mappingDelegate, JavaBeanTypeContextContainer typeContextContainer) { - super( mappingDelegate ); - this.mappingContext = new JavaBeanMappingContext(); - this.typeContextContainer = typeContextContainer; - } - - @Override - public JavaBeanMapping toConcreteType() { - return this; - } - - @Override - public SearchSession createSession() { - return createSearchManagerBuilder().build(); - } - - @Override - public SearchSessionBuilder createSessionWithOptions() { - return createSearchManagerBuilder(); - } - - private SearchSessionBuilder createSearchManagerBuilder() { - return new JavaBeanSearchSession.JavaBeanSearchSessionBuilder( - getDelegate(), mappingContext, typeContextContainer - ); - } -} diff --git a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingKey.java b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingKey.java index d0a865a4961..4e47625bf1e 100644 --- a/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingKey.java +++ b/mapper/javabean/src/main/java/org/hibernate/search/mapper/javabean/mapping/impl/JavaBeanMappingKey.java @@ -6,13 +6,13 @@ */ package org.hibernate.search.mapper.javabean.mapping.impl; -import org.hibernate.search.mapper.javabean.JavaBeanMapping; +import org.hibernate.search.mapper.javabean.mapping.SearchMapping; import org.hibernate.search.mapper.javabean.log.impl.JavaBeanEventContextMessages; import org.hibernate.search.engine.mapper.mapping.spi.MappingKey; import org.jboss.logging.Messages; -public final class JavaBeanMappingKey implements MappingKey { +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..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 @@ -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,8 +27,8 @@ public void closeOnFailure() { mappingDelegate.close(); } - public MappingImplementor finalizeMapping() { - return new JavaBeanMappingImpl( mappingDelegate, typeContextContainer ); + public MappingImplementor finalizeMapping() { + 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..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 @@ -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 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} @@ -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 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} @@ -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 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} @@ -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 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/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 ddb0b12f606..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 @@ -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,18 @@ 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); + + /** + * 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. + * @return The initial step of a DSL where the search query can be defined. + * @see SearchQueryHitTypeStep + */ + SearchQueryHitTypeStep search(SearchScope scope); /** * Create a {@link SearchScope} limited to the given type. 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 a67b6b234c1..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 @@ -12,26 +12,27 @@ 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; 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; public class JavaBeanSearchSession extends AbstractPojoSearchSession implements SearchSession, ReferenceHitMapper { + private final JavaBeanSearchSessionMappingContext mappingContext; private final JavaBeanSearchSessionTypeContextProvider typeContextProvider; private final DocumentCommitStrategy commitStrategy; @@ -40,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; @@ -54,15 +56,18 @@ public void close() { } @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(Collection> types) { + return search( scope( types ) ); + } + + @Override + public SearchQueryHitTypeStep search(SearchScope scope) { + return search( (SearchScopeImpl) scope ); + } + + @Override + public SearchScopeImpl scope(Collection> types) { + return mappingContext.createScope( types ); } @Override @@ -83,19 +88,27 @@ 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 ); } + private SearchQueryHitTypeStep search(SearchScopeImpl scope) { + return ( (SearchScopeImpl) scope ).search( + getDelegate().getBackendSessionContext(), + this + ); + } + public static class JavaBeanSearchSessionBuilder extends AbstractBuilder implements SearchSessionBuilder { - private final JavaBeanMappingContext 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, JavaBeanMappingContext mappingContext, + public JavaBeanSearchSessionBuilder(PojoMappingDelegate mappingDelegate, + JavaBeanSearchSessionMappingContext mappingContext, JavaBeanSearchSessionTypeContextProvider typeContextProvider) { super( mappingDelegate ); this.mappingContext = mappingContext; @@ -120,8 +133,12 @@ public SearchSessionBuilder refreshStrategy(DocumentRefreshStrategy refreshStrat return this; } - protected AbstractPojoSessionContextImplementor buildSessionContext() { - return new JavaBeanSessionContext( mappingContext, tenantId, PojoRuntimeIntrospector.noProxy() ); + protected AbstractPojoBackendSessionContext buildSessionContext() { + 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/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/Search.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/Search.java index 872773d6503..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,29 +6,55 @@ */ package org.hibernate.search.mapper.orm; -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.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 } + /** + * 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 = + HibernateOrmUtils.toSessionFactoryImplementor( sessionFactory ); + 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 = + HibernateOrmUtils.toSessionFactoryImplementor( entityManagerFactory ); + return getSearchMapping( sessionFactoryImpl ); + } + /** * Retrieve the {@link SearchSession} from a Hibernate ORM {@link Session}. *

@@ -41,14 +67,7 @@ private Search() { * @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 ); } @@ -64,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 ); } @@ -133,10 +145,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/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 ); + } + } + +} 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..49a979104ac --- /dev/null +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/SearchMapping.java @@ -0,0 +1,55 @@ +/* + * 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 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). + *

+ * Provides entry points to Hibernate Search operations that are not tied to a specific ORM session. + */ +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}. + */ + 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/context/impl/HibernateOrmMappingContextImpl.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/context/impl/HibernateOrmMappingContextImpl.java index 2f6ce9fb156..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 @@ -6,12 +6,11 @@ */ 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; +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) { @@ -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 2396e9420a2..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 @@ -7,33 +7,47 @@ 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; 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; 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; 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() ); @@ -90,7 +104,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; @@ -104,12 +118,27 @@ 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; } + @Override + public SearchScope scope(Collection> types) { + return createScope( types ); + } + + @Override + public EntityManagerFactory toEntityManagerFactory() { + return backendMappingContext.getSessionFactory(); + } + + @Override + public SessionFactory toOrmSessionFactory() { + return backendMappingContext.getSessionFactory(); + } + @Override public HibernateOrmMapping toConcreteType() { return this; @@ -136,6 +165,21 @@ public int getFetchSize() { return fetchSize; } + @Override + public SessionFactoryImplementor getSessionFactory() { + return backendMappingContext.getSessionFactory(); + } + + @Override + public HibernateOrmScopeSessionContext getSessionContext(EntityManager entityManager) { + 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 ); @@ -146,10 +190,26 @@ 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) { - SessionFactory expectedSessionFactory = mappingContext.getSessionFactory(); + SessionFactory expectedSessionFactory = backendMappingContext.getSessionFactory(); SessionFactory givenSessionFactory = sessionImplementor.getSessionFactory(); if ( !givenSessionFactory.equals( expectedSessionFactory ) ) { @@ -157,7 +217,7 @@ public HibernateOrmSearchSession.HibernateOrmSearchSessionBuilder createSessionB } return new HibernateOrmSearchSession.HibernateOrmSearchSessionBuilder( - getDelegate(), mappingContext, this, typeContextContainer, + getDelegate(), 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 01f3263798f..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,8 +14,7 @@ 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.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,9 +36,8 @@ 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 DetachedBackendSessionContext sessionContext; private final Set> rootEntities; //entity types to reindex excluding all subtypes of each-other private final PojoScopeWorkExecutor scopeWorkExecutor; @@ -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, - DetachedSessionContextImplementor sessionContext, + public BatchCoordinator(HibernateOrmMassIndexingMappingContext mappingContext, + DetachedBackendSessionContext 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..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; @@ -37,9 +36,8 @@ 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; + private final DetachedBackendSessionContext sessionContext; private final ProducerConsumerQueue> primaryKeyStream; @@ -64,14 +62,12 @@ public class BatchIndexingWorkspace extends ErrorHandledRunnable { private final List> tasks = new ArrayList<>(); - BatchIndexingWorkspace(SessionFactoryImplementor sessionFactory, - HibernateOrmMassIndexingMappingContext mappingContext, - DetachedSessionContextImplementor sessionContext, + BatchIndexingWorkspace(HibernateOrmMassIndexingMappingContext mappingContext, + DetachedBackendSessionContext 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 +101,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 +135,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 +154,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..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,8 +13,7 @@ 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.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; @@ -35,8 +34,7 @@ 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 DetachedBackendSessionContext sessionContext; private final Set> rootEntities; private final PojoScopeWorkExecutor scopeWorkExecutor; @@ -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, + DetachedBackendSessionContext 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/SearchScope.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/scope/SearchScope.java index 502090cb0df..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 @@ -30,21 +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. - * - * @return The initial step of a DSL where the search query can be defined. - * @see HibernateOrmSearchQueryHitTypeStep - */ - HibernateOrmSearchQueryHitTypeStep 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.orm.session.SearchSession#search(SearchScope) search queries} + * 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} @@ -59,7 +49,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 + * The sort will only be valid for {@link org.hibernate.search.mapper.orm.session.SearchSession#search(SearchScope) search queries} + * 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, @@ -75,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() 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 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} @@ -91,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() 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 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} @@ -105,18 +97,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. * * @return A {@link SearchWriter}. */ 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 tenantId The identifier of the tenant whose index content should be targeted. + * @return A {@link MassIndexer}. + */ + 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 add0f9799c8..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 @@ -6,10 +6,17 @@ */ 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.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); + + 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 623ca24eed2..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 @@ -6,15 +6,12 @@ */ 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.BackendSessionContext; import org.hibernate.search.mapper.orm.search.loading.impl.HibernateOrmLoadingSessionContext; public interface HibernateOrmScopeSessionContext extends HibernateOrmLoadingSessionContext { - SessionImplementor getSession(); - - DetachedSessionContextImplementor getDetachedSessionContext(); + BackendSessionContext getBackendSessionContext(); } 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..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,6 +6,7 @@ */ package org.hibernate.search.mapper.orm.scope.impl; +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; @@ -21,27 +22,23 @@ 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; 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(HibernateOrmScopeSessionContext sessionContext) { HibernateOrmLoadingContext.Builder loadingContextBuilder = new HibernateOrmLoadingContext.Builder<>( mappingContext, sessionContext, delegate.getIncludedIndexedTypes() ); return new HibernateOrmSearchQueryHitTypeStepImpl<>( - delegate.search( loadingContextBuilder ), + delegate.search( sessionContext.getBackendSessionContext(), loadingContextBuilder ), loadingContextBuilder ); } @@ -68,17 +65,34 @@ public SearchAggregationFactory aggregation() { @Override public SearchWriter writer() { - return new SearchWriterImpl( delegate.executor() ); + return writer( (String) null ); + } + + @Override + public SearchWriter writer(String tenantId) { + return writer( mappingContext.getDetachedBackendSessionContext( tenantId ) ); + } + + public SearchWriter writer(DetachedBackendSessionContext detachedSessionContext) { + return new SearchWriterImpl( delegate.executor( detachedSessionContext ) ); } @Override public MassIndexer massIndexer() { + return massIndexer( (String) null ); + } + + @Override + public MassIndexer massIndexer(String tenantId) { + return massIndexer( mappingContext.getDetachedBackendSessionContext( tenantId ) ); + } + + public MassIndexer massIndexer(DetachedBackendSessionContext detachedSessionContext) { return new MassIndexerImpl( - sessionContext.getSession().getFactory(), mappingContext, delegate.getIncludedIndexedTypes(), - sessionContext.getDetachedSessionContext(), - delegate.executor() + detachedSessionContext, + delegate.executor( detachedSessionContext ) ); } } 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..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 @@ -13,9 +13,9 @@ 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.scope.SearchScope; import org.hibernate.search.mapper.orm.search.query.dsl.HibernateOrmSearchQueryHitTypeStep; public interface SearchSession { @@ -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,19 @@ 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); + + /** + * 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. @@ -73,9 +83,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 +114,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. @@ -118,7 +124,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 +136,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/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 2f627891f73..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 @@ -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,30 +20,30 @@ 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.mapper.session.context.spi.DetachedSessionContextImplementor; 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.scope.impl.HibernateOrmScopeIndexedTypeContext; -import org.hibernate.search.mapper.orm.scope.impl.HibernateOrmScopeMappingContext; +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.search.SearchScope; 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.pojo.work.spi.PojoWorkPlan; +import org.hibernate.search.mapper.orm.writing.SearchWriter; 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; @@ -89,7 +88,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; @@ -103,15 +102,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 ); - this.scopeMappingContext = builder.scopeMappingContext; + HibernateOrmSessionContextImpl backendSessionContext) { + super( builder, backendSessionContext ); + this.mappingContext = builder.mappingContext; this.typeContextProvider = builder.typeContextProvider; - this.sessionContext = sessionContext; + this.sessionContext = backendSessionContext; this.synchronizationStrategy = builder.synchronizationStrategy; } @@ -120,25 +119,43 @@ public void close() { } @Override - public EntityManager toEntityManager() { - return sessionContext.getSession(); + public HibernateOrmSearchQueryHitTypeStep search(Collection> types) { + return search( scope( types ) ); } @Override - public Session toOrmSession() { - return sessionContext.getSession(); + public HibernateOrmSearchQueryHitTypeStep search(SearchScope scope) { + return search( (SearchScopeImpl) scope ); + } + + private HibernateOrmSearchQueryHitTypeStep search(SearchScopeImpl scope) { + return scope.search( this ); + } + + @Override + public SearchWriter writer(Collection> types) { + return scope( types ).writer( DetachedBackendSessionContext.of( sessionContext ) ); + } + + @Override + public MassIndexer massIndexer(Collection> types) { + return scope( types ).massIndexer( DetachedBackendSessionContext.of( sessionContext ) ); } @Override - public SearchScope scope(Collection> types) { + public SearchScopeImpl scope(Collection> types) { checkOrmSessionIsOpen(); + return mappingContext.createScope( types ); + } - PojoScopeDelegate> scopeDelegate = - getDelegate().createPojoScope( - types, - typeContextProvider::getIndexedByExactClass - ); - return new SearchScopeImpl<>( scopeMappingContext, this, scopeDelegate ); + @Override + public EntityManager toEntityManager() { + return sessionContext.getSession(); + } + + @Override + public Session toOrmSession() { + return sessionContext.getSession(); } @Override @@ -161,8 +178,8 @@ public SessionImplementor getSession() { } @Override - public DetachedSessionContextImplementor getDetachedSessionContext() { - return DetachedSessionContextImplementor.of( sessionContext ); + public BackendSessionContext getBackendSessionContext() { + return sessionContext; } @Override @@ -309,28 +326,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 buildSessionContext() { - return new HibernateOrmSessionContextImpl( mappingContext, sessionImplementor ); + private HibernateOrmSessionContextImpl buildBackendSessionContext() { + 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 67169ed8953..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 @@ -13,10 +13,13 @@ import org.hibernate.Session; import org.hibernate.engine.spi.SessionImplementor; -import org.hibernate.search.mapper.orm.search.SearchScope; +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}. @@ -37,13 +40,23 @@ public LazyInitSearchSession(Supplier HibernateOrmSearchQueryHitTypeStep search(Collection> types) { + return getDelegate().search( types ); } @Override - public Session toOrmSession() { - return getDelegate().toOrmSession(); + public HibernateOrmSearchQueryHitTypeStep search(SearchScope scope) { + return getDelegate().search( scope ); + } + + @Override + public SearchWriter writer(Collection> types) { + return getDelegate().writer( types ); + } + + @Override + public MassIndexer massIndexer(Collection> types) { + return getDelegate().massIndexer( types ); } @Override @@ -51,6 +64,16 @@ public SearchScope scope(Collection> types) return getDelegate().scope( types ); } + @Override + public EntityManager toEntityManager() { + return getDelegate().toEntityManager(); + } + + @Override + public Session toOrmSession() { + return getDelegate().toOrmSession(); + } + @Override public SearchSessionWritePlan writePlan() { return getDelegate().writePlan(); 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..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,10 +6,16 @@ */ 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.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; import org.hibernate.search.util.common.impl.Closer; @@ -32,12 +38,26 @@ 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( - 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..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,7 +6,12 @@ */ package org.hibernate.search.mapper.pojo.mapping.spi; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +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; public interface PojoMappingDelegate extends AutoCloseable { @@ -14,6 +19,11 @@ public interface PojoMappingDelegate extends AutoCloseable { @Override void close(); - PojoSearchSessionDelegate createSearchSessionDelegate(AbstractPojoSessionContextImplementor sessionContext); + 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/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..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.mapper.session.context.spi.DetachedSessionContextImplementor; 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 +25,7 @@ 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.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; @@ -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, - AbstractPojoSessionContextImplementor 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 AbstractPojoSessionContextImplementor sessionContext; private MappedIndexScope delegate; - private PojoScopeWorkExecutor executor; - private PojoScopeDelegateImpl(Set> targetedTypeContexts, - Set targetedTypeExtendedContexts, - AbstractPojoSessionContextImplementor 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, DetachedSessionContextImplementor.of( sessionContext ) - ); - } - return executor; + public PojoScopeWorkExecutor executor(DetachedBackendSessionContext sessionContext) { + return new PojoScopeWorkExecutorImpl( + targetedTypeContexts, sessionContext + ); } private MappedIndexScope getIndexScope() { - AbstractPojoMappingContextImplementor 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/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/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..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,16 +6,11 @@ */ 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.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,44 +21,32 @@ 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; - } - - @Override - public PojoScopeDelegate createPojoScope(Collection> targetedTypes, - PojoScopeTypeExtendedContextProvider indexedTypeExtendedContextProvider) { - return PojoScopeDelegateImpl.create( - indexedTypeContextProvider, - containedTypeContextProvider, - targetedTypes, - indexedTypeExtendedContextProvider, - sessionContext - ); + public AbstractPojoBackendSessionContext getBackendSessionContext() { + return backendSessionContext; } @Override public PojoWorkPlan createWorkPlan(DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy) { return new PojoWorkPlanImpl( - indexedTypeContextProvider, containedTypeContextProvider, sessionContext, + indexedTypeContextProvider, containedTypeContextProvider, backendSessionContext, commitStrategy, refreshStrategy ); } @Override public PojoSessionWorkExecutor createSessionWorkExecutor(DocumentCommitStrategy commitStrategy) { - return new PojoSessionWorkExecutorImpl( indexedTypeContextProvider, sessionContext, commitStrategy ); + return new PojoSessionWorkExecutorImpl( indexedTypeContextProvider, backendSessionContext, commitStrategy ); } } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/spi/AbstractPojoSearchSession.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/spi/AbstractPojoSearchSession.java index 7846c222844..7b9121f694c 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/spi/AbstractPojoSearchSession.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/session/spi/AbstractPojoSearchSession.java @@ -7,7 +7,7 @@ package org.hibernate.search.mapper.pojo.session.spi; import org.hibernate.search.mapper.pojo.mapping.spi.PojoMappingDelegate; -import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoSessionContextImplementor; +import org.hibernate.search.mapper.pojo.session.context.spi.AbstractPojoBackendSessionContext; public abstract class AbstractPojoSearchSession { @@ -15,8 +15,8 @@ public abstract class AbstractPojoSearchSession { private final PojoSearchSessionDelegate delegate; protected AbstractPojoSearchSession(AbstractBuilder 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..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,22 +6,15 @@ */ 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.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(); - - PojoScopeDelegate createPojoScope(Collection> targetedTypes, - PojoScopeTypeExtendedContextProvider indexedTypeExtendedContextProvider); + AbstractPojoBackendSessionContext getBackendSessionContext(); PojoWorkPlan createWorkPlan(DocumentCommitStrategy commitStrategy, DocumentRefreshStrategy refreshStrategy); 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..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 @@ -11,12 +11,13 @@ 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; 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 { @@ -69,11 +72,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/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..5be36926544 --- /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; + +public 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 ); + } +} 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/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/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) { 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() ); } }