Skip to content

Commit

Permalink
HSEARCH-4615 Remove remaining methods from builder that were moved to…
Browse files Browse the repository at this point in the history
… configurer
  • Loading branch information
marko-bekhta authored and yrodiere committed Dec 22, 2022
1 parent 66f1b3d commit 2b1681e
Show file tree
Hide file tree
Showing 28 changed files with 251 additions and 319 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,20 +34,6 @@ at the moment.

Starting up Hibernate Search with the Standalone POJO Mapper is explicit and involves a builder:

.Starting up Hibernate Search with the Standalone POJO Mapper
====
[source, JAVA, indent=0]
----
include::{sourcedir}/org/hibernate/search/documentation/mapper/pojo/standalone/entrypoints/StandalonePojoEntryPointsIT.java[tags=setup]
----
<1> Create a builder.
<2> Declare *all* entity types that Hibernate Search may need to work with.
<3> Set configuration properties (see also <<configuration>>).
<4> Build the `SearchMapping`.
====

Alternatively a configurer class implementing `StandalonePojoMappingConfigurer` can be provided.

.Starting up Hibernate Search with the Standalone POJO Mapper and Configurer
====
[source, JAVA, indent=0]
Expand All @@ -57,7 +43,7 @@ include::{sourcedir}/org/hibernate/search/documentation/mapper/pojo/standalone/e
<1> Declare *all* entity types that Hibernate Search may need to work with.
<2> Set additional configuration exposed through the context.
----
include::{sourcedir}/org/hibernate/search/documentation/mapper/pojo/standalone/entrypoints/StandalonePojoConfigurerIT.java[tags=setup]
include::{sourcedir}/org/hibernate/search/documentation/mapper/pojo/standalone/entrypoints/StandalonePojoEntryPointsIT.java[tags=setup]
----
<1> Create a builder.
<2> Set configurer.
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,19 @@ public class StandalonePojoEntryPointsIT {
public void setup() {
// tag::setup[]
CloseableSearchMapping searchMapping = SearchMapping.builder() // <1>
.addEntityType( Book.class ) // <2>
.addEntityType( Associate.class )
.addEntityType( Manager.class )
.property( "hibernate.search.backend.hosts", // <3>
"elasticsearch.mycompany.com" )
.property(
"hibernate.search.mapping.configurer", // <2>
"class:org.hibernate.search.documentation.mapper.pojo.standalone.entrypoints.StandalonePojoConfigurer"
)
.property(
"hibernate.search.backend.hosts", // <3>
"elasticsearch.mycompany.com"
)
// end::setup[]
.properties( TestConfiguration.standalonePojoMapperProperties( configurationProvider,
BackendConfigurations.simple() ) )
.properties( TestConfiguration.standalonePojoMapperProperties(
configurationProvider,
BackendConfigurations.simple()
) )
// tag::setup[]
.build(); // <4>
// end::setup[]
Expand All @@ -64,6 +69,14 @@ public void cleanup() {
}
}

@Test
public void mappingContainsExpectedEntities() {
assertThat( theSearchMapping.allIndexedEntities() )
.extracting( SearchIndexedEntity::name )
.contains( "Book", "Associate", "Manager" )
;
}

@Test
public void searchSession() {
// tag::searchSession-simple[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import org.hibernate.search.engine.search.query.SearchResult;
import org.hibernate.search.mapper.pojo.standalone.mapping.CloseableSearchMapping;
import org.hibernate.search.mapper.pojo.standalone.mapping.SearchMapping;
import org.hibernate.search.mapper.pojo.standalone.mapping.StandalonePojoMappingConfigurer;
import org.hibernate.search.mapper.pojo.standalone.session.SearchSession;
import org.hibernate.search.util.impl.integrationtest.common.TestConfigurationProvider;
import org.hibernate.search.util.impl.integrationtest.common.rule.BackendConfiguration;
Expand All @@ -36,8 +37,13 @@ public void setup() {
if ( BackendConfiguration.isLucene() ) {
// tag::setup-lucene[]
CloseableSearchMapping searchMapping = SearchMapping.builder()
.addEntityType( Book.class )
.addEntityType( Author.class )
.property(
"hibernate.search.mapping.configurer",
(StandalonePojoMappingConfigurer) context -> {
context.addEntityType( Book.class )
.addEntityType( Author.class );
}
)
.property( "hibernate.search.backend.directory.root",
"some/filesystem/path" )
.property( "hibernate.search.backend.analysis.configurer",
Expand All @@ -53,8 +59,13 @@ public void setup() {
else if ( BackendConfiguration.isElasticsearch() ) {
// tag::setup-elasticsearch[]
CloseableSearchMapping searchMapping = SearchMapping.builder()
.addEntityType( Book.class )
.addEntityType( Author.class )
.property(
"hibernate.search.mapping.configurer",
(StandalonePojoMappingConfigurer) context -> {
context.addEntityType( Book.class )
.addEntityType( Author.class );
}
)
.property( "hibernate.search.backend.hosts",
"elasticsearch.mycompany.com" )
.property( "hibernate.search.backend.analysis.configurer",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import org.hibernate.search.engine.search.query.SearchResult;
import org.hibernate.search.mapper.pojo.standalone.mapping.CloseableSearchMapping;
import org.hibernate.search.mapper.pojo.standalone.mapping.SearchMapping;
import org.hibernate.search.mapper.pojo.standalone.mapping.StandalonePojoMappingConfigurer;
import org.hibernate.search.mapper.pojo.standalone.scope.SearchScope;
import org.hibernate.search.mapper.pojo.standalone.session.SearchSession;
import org.hibernate.search.util.impl.integrationtest.common.TestConfigurationProvider;
Expand All @@ -38,8 +39,13 @@ public void setup() {
if ( BackendConfiguration.isLucene() ) {
// tag::setup-lucene[]
CloseableSearchMapping searchMapping = SearchMapping.builder() // <1>
.addEntityType( Book.class ) // <2>
.addEntityType( Author.class )
.property(
"hibernate.search.mapping.configurer",
(StandalonePojoMappingConfigurer) context -> {
context.addEntityType( Book.class ) // <2>
.addEntityType( Author.class );
}
)
.property( "hibernate.search.backend.directory.root",
"some/filesystem/path" ) // <3>
// end::setup-lucene[]
Expand All @@ -53,8 +59,13 @@ public void setup() {
else if ( BackendConfiguration.isElasticsearch() ) {
// tag::setup-elasticsearch[]
CloseableSearchMapping searchMapping = SearchMapping.builder() // <1>
.addEntityType( Book.class ) // <2>
.addEntityType( Author.class )
.property(
"hibernate.search.mapping.configurer",
(StandalonePojoMappingConfigurer) context -> {
context.addEntityType( Book.class ) // <2>
.addEntityType( Author.class );
}
)
.property( "hibernate.search.backend.hosts",
"elasticsearch.mycompany.com" ) // <3>
.property( "hibernate.search.backend.protocol",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.hibernate.search.documentation.testsupport.TestConfiguration;
import org.hibernate.search.mapper.pojo.standalone.mapping.CloseableSearchMapping;
import org.hibernate.search.mapper.pojo.standalone.mapping.SearchMapping;
import org.hibernate.search.mapper.pojo.standalone.mapping.StandalonePojoMappingConfigurer;
import org.hibernate.search.mapper.pojo.standalone.session.SearchSession;
import org.hibernate.search.util.impl.integrationtest.common.TestConfigurationProvider;

Expand Down Expand Up @@ -51,10 +52,15 @@ public void setup() {
new MyDatastore( entities );
// tag::setup[]
CloseableSearchMapping searchMapping = SearchMapping.builder() // <2>
.addEntityType( Book.class, context -> // <3>
context.massLoadingStrategy(
new MyMassLoadingStrategy<>( datastore, Book.class )
) )
.property(
"hibernate.search.mapping.configurer",
(StandalonePojoMappingConfigurer) configurerContext -> {
configurerContext.addEntityType( Book.class, context -> // <3>
context.massLoadingStrategy(
new MyMassLoadingStrategy<>( datastore, Book.class )
) );
}
)
// end::setup[]
.properties( TestConfiguration.standalonePojoMapperProperties(
configurationProvider,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.hibernate.search.engine.backend.work.execution.DocumentRefreshStrategy;
import org.hibernate.search.mapper.pojo.standalone.mapping.CloseableSearchMapping;
import org.hibernate.search.mapper.pojo.standalone.mapping.SearchMapping;
import org.hibernate.search.mapper.pojo.standalone.mapping.StandalonePojoMappingConfigurer;
import org.hibernate.search.mapper.pojo.standalone.session.SearchSession;
import org.hibernate.search.util.impl.integrationtest.common.TestConfigurationProvider;

Expand Down Expand Up @@ -52,10 +53,15 @@ public void setup() {

// tag::setup[]
CloseableSearchMapping searchMapping = SearchMapping.builder() // <1>
.addEntityType( Book.class, context -> // <2>
context.selectionLoadingStrategy(
new MySelectionLoadingStrategy<>( Book.class )
) )
.property(
"hibernate.search.mapping.configurer",
(StandalonePojoMappingConfigurer) c -> {
c.addEntityType( Book.class, context -> // <2>
context.selectionLoadingStrategy(
new MySelectionLoadingStrategy<>( Book.class )
) );
}
)
// end::setup[]
.properties( TestConfiguration.standalonePojoMapperProperties(
configurationProvider,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.hibernate.search.mapper.pojo.standalone.mapping.CloseableSearchMapping;
import org.hibernate.search.mapper.pojo.standalone.mapping.SearchMapping;
import org.hibernate.search.mapper.pojo.standalone.mapping.SearchMappingBuilder;
import org.hibernate.search.mapper.pojo.standalone.mapping.StandalonePojoMappingConfigurer;
import org.hibernate.search.mapper.pojo.standalone.session.SearchSession;
import org.hibernate.search.util.impl.integrationtest.common.TestConfigurationProvider;

Expand All @@ -38,21 +39,28 @@ public void setup() {
// tag::setup[]
SearchMappingBuilder builder = SearchMapping.builder()
// end::setup[]
.properties( TestConfiguration.standalonePojoMapperProperties( configurationProvider,
BackendConfigurations.simple() ) )
.properties( TestConfiguration.standalonePojoMapperProperties(
configurationProvider,
BackendConfigurations.simple()
) )
// tag::setup[]
.addEntityType( Book.class ); // <1>

builder.annotationMapping() // <2>
.discoverAnnotationsFromReferencedTypes( false )
.discoverAnnotatedTypesFromRootMappingAnnotations( false );

ProgrammaticMappingConfigurationContext mappingContext = builder.programmaticMapping(); // <3>
TypeMappingStep bookMapping = mappingContext.type( Book.class );
bookMapping.indexed();
bookMapping.property( "id" ).documentId();
bookMapping.property( "title" )
.fullTextField().analyzer( "english" );
.property(
"hibernate.search.mapping.configurer",
(StandalonePojoMappingConfigurer) context -> {
context.addEntityType( Book.class ); // <1>

context.annotationMapping() // <2>
.discoverAnnotationsFromReferencedTypes( false )
.discoverAnnotatedTypesFromRootMappingAnnotations( false );

ProgrammaticMappingConfigurationContext mappingContext = context.programmaticMapping(); // <3>
TypeMappingStep bookMapping = mappingContext.type( Book.class );
bookMapping.indexed();
bookMapping.property( "id" ).documentId();
bookMapping.property( "title" )
.fullTextField().analyzer( "english" );
}
);

CloseableSearchMapping searchMapping = builder.build();
// end::setup[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.hibernate.search.documentation.testsupport.TestConfiguration;
import org.hibernate.search.mapper.pojo.standalone.mapping.CloseableSearchMapping;
import org.hibernate.search.mapper.pojo.standalone.mapping.SearchMapping;
import org.hibernate.search.mapper.pojo.standalone.mapping.StandalonePojoMappingConfigurer;
import org.hibernate.search.mapper.pojo.standalone.session.SearchSession;
import org.hibernate.search.util.impl.integrationtest.common.TestConfigurationProvider;

Expand All @@ -31,11 +32,14 @@ public class StandalonePojoMultiTenancyIT {
public void setup() {
// tag::setup[]
CloseableSearchMapping searchMapping = SearchMapping.builder() // <1>
.addEntityType( Book.class )
// ...
.property( "hibernate.search.mapping.multi_tenancy.enabled", true ) // <2>
// end::setup[]
.properties( TestConfiguration.standalonePojoMapperProperties( configurationProvider,
BackendConfigurations.simple() ) )
.property( "hibernate.search.mapping.configurer",
(StandalonePojoMappingConfigurer) context -> context.addEntityTypes( Book.class )
)
// tag::setup[]
.build(); // <3>
// end::setup[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public static BackendConfiguration hashBasedSharding(int shardCount) {
case "lucene":
return new DocumentationLuceneBackendConfiguration() {
@Override
public <C extends MappingSetupHelper<C, ?, ?>.AbstractSetupContext> C setup(C setupContext,
public <C extends MappingSetupHelper<C, ?, ?, ?>.AbstractSetupContext> C setup(C setupContext,
String backendNameOrNull, TestConfigurationProvider configurationProvider) {
return super.setup( setupContext, backendNameOrNull, configurationProvider )
.withBackendProperty(
Expand All @@ -63,7 +63,7 @@ public static BackendConfiguration hashBasedSharding(int shardCount) {
case "elasticsearch":
return new DocumentationElasticsearchBackendConfiguration() {
@Override
public <C extends MappingSetupHelper<C, ?, ?>.AbstractSetupContext> C setup(C setupContext,
public <C extends MappingSetupHelper<C, ?, ?, ?>.AbstractSetupContext> C setup(C setupContext,
String backendNameOrNull, TestConfigurationProvider configurationProvider) {
return super.setup( setupContext, backendNameOrNull, configurationProvider )
.withBackendProperty( ElasticsearchIndexSettings.SCHEMA_MANAGEMENT_SETTINGS_FILE,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
import org.hibernate.search.util.impl.integrationtest.mapper.orm.SimpleSessionFactoryBuilder;

public final class DocumentationSetupHelper
extends MappingSetupHelper<DocumentationSetupHelper.SetupContext, SimpleSessionFactoryBuilder, SessionFactory> {
extends MappingSetupHelper<DocumentationSetupHelper.SetupContext, SimpleSessionFactoryBuilder, SimpleSessionFactoryBuilder, SessionFactory> {

public static List<DocumentationSetupHelper> testParamsForBothAnnotationsAndProgrammatic(
BackendConfiguration backendConfiguration,
Expand Down Expand Up @@ -130,7 +130,7 @@ protected void close(SessionFactory toClose) {
}

public final class SetupContext
extends MappingSetupHelper<SetupContext, SimpleSessionFactoryBuilder, SessionFactory>.AbstractSetupContext {
extends MappingSetupHelper<SetupContext, SimpleSessionFactoryBuilder, SimpleSessionFactoryBuilder, SessionFactory>.AbstractSetupContext {

// Use a LinkedHashMap for deterministic iteration
private final Map<String, Object> overriddenProperties = new LinkedHashMap<>();
Expand Down Expand Up @@ -172,6 +172,11 @@ protected SimpleSessionFactoryBuilder createBuilder() {
return new SimpleSessionFactoryBuilder();
}

@Override
protected void consumeBeforeBuildConfigurations(SimpleSessionFactoryBuilder builder, List<Consumer<SimpleSessionFactoryBuilder>> consumers) {
consumers.forEach( c -> c.accept( builder ) );
}

@Override
protected SessionFactory build(SimpleSessionFactoryBuilder builder) {
return builder.build();
Expand Down

0 comments on commit 2b1681e

Please sign in to comment.