[hibernate-commits] [hibernate/hibernate-search] a7b59c: HSEARCH-3314 Include the routing key in Elasticsea...

Yoann Rodière noreply at github.com
Tue Aug 6 03:09:06 EDT 2019


  Branch: refs/heads/master
  Home:   https://github.com/hibernate/hibernate-search
  Commit: a7b59c14bdddc09e88164783b54a66d37a72ef5d
      https://github.com/hibernate/hibernate-search/commit/a7b59c14bdddc09e88164783b54a66d37a72ef5d
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/DeleteWork.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/impl/IndexWork.java

  Log Message:
  -----------
  HSEARCH-3314 Include the routing key in Elasticsearch bulk request elements

Otherwise, index/delete requests won't be routed to the correct shard.


  Commit: c8a4cb3b70af0ef07b0e25ddb8c76752133bf62e
      https://github.com/hibernate/hibernate-search/commit/c8a4cb3b70af0ef07b0e25ddb8c76752133bf62e
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexingBackendContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/multitenancy/impl/DiscriminatorMultiTenancyStrategy.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/multitenancy/impl/MultiTenancyStrategy.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/multitenancy/impl/NoMultiTenancyStrategy.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkExecutionContextImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneWriteWorkProcessor.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexDocumentWorkExecutor.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkExecutor.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkPlan.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractLuceneDeleteAllEntriesWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractLuceneDeleteEntryWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractLuceneUpdateEntryWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/AbstractLuceneWriteWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneAddEntryWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneDeleteAllEntriesWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneExplainWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneFlushWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneOptimizeWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneQueryBasedDeleteAllEntriesWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneQueryBasedDeleteEntryWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneQueryBasedUpdateEntryWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneSearchWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneTermBasedDeleteEntryWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneTermBasedUpdateEntryWork.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactory.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWorkFactoryImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/impl/LuceneWriteWorkExecutionContext.java

  Log Message:
  -----------
  HSEARCH-3314 Remove references to index name and routing key in Lucene works

This information is not used in the work itself, but in the component
that creates the work, to route the work to the appropriate executor.
So the work has no control over where it will be routed, and thus having
this information in the work itself is useless at best, misleading at
worst.


  Commit: cdeae3589c702e7220039618afed7ff8d5c80842
      https://github.com/hibernate/hibernate-search/commit/cdeae3589c702e7220039618afed7ff8d5c80842
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/impl/ElasticsearchBackendImpl.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexManagerBuilder.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexManagerImpl.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexScopeBuilder.java
    A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/IndexManagerBackendContext.java
    R backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/IndexingBackendContext.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/scope/impl/ElasticsearchIndexScope.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/ElasticsearchSearchQueryBuilder.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/query/impl/SearchBackendContext.java
    A backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/work/execution/impl/WorkExecutionBackendContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/impl/LuceneBackendImpl.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java
    R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexingBackendContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerBuilder.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexScopeBuilder.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/scope/impl/LuceneIndexScope.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryBuilder.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/SearchBackendContext.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/WorkExecutionBackendContext.java

  Log Message:
  -----------
  HSEARCH-3314 Reorganize the various *BackendContext classes

In short, we define callback interfaces in packages that require
access to backend context, and we implement these interfaces in a single
class that gets passed down from the backend to wherever it's necessary.

This allows clean inter-package dependencies, like the previous
solution, but the new solution will be more suitable when we start
adding index writing features to the IndexScope interface:
we'll need to access multiple such interfaces in the index scope,
not just the one about search.


  Commit: 44a56a15edffbe7ddc63b688330a419ea5dcbaf8
      https://github.com/hibernate/hibernate-search/commit/44a56a15edffbe7ddc63b688330a419ea5dcbaf8
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexScopeBuilder.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/impl/ManagedMultiReader.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/impl/MultiReaderFactory.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestrator.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestratorImpl.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/scope/model/impl/LuceneScopeIndexManagerContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/scope/model/impl/LuceneScopeModel.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/impl/LuceneSearchContext.java

  Log Message:
  -----------
  HSEARCH-3314 Introduce a specific interface for LuceneScope to access the index manager context

Similar to what we do for the backend context. We'll need this when
access to index readers will become more complex because of sharding.


  Commit: 8713204eb78abf67857ca734f70fe765345818fb
      https://github.com/hibernate/hibernate-search/commit/8713204eb78abf67857ca734f70fe765345818fb
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/impl/ElasticsearchBackendImpl.java
    M backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/index/impl/ElasticsearchIndexManagerImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/impl/LuceneBackendImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerImpl.java

  Log Message:
  -----------
  HSEARCH-3314 Use a more consistent order for the more basic methods (toString, lifecycle) of the backends and indexManagers


  Commit: 2d71831cfd2860d03e9e6dc011fdfa25ea0d0ec3
      https://github.com/hibernate/hibernate-search/commit/2d71831cfd2860d03e9e6dc011fdfa25ea0d0ec3
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerImpl.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/impl/ReadIndexManagerContext.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/spi/IndexReaderHolder.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/spi/SimpleIndexReaderHolder.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestrator.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestratorImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/scope/model/impl/LuceneScopeIndexManagerContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/impl/LuceneSearchContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexDocumentWorkExecutor.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkExecutor.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkPlan.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/WorkExecutionBackendContext.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/WorkExecutionIndexManagerContext.java

  Log Message:
  -----------
  HSEARCH-3314 Rework access to per-index resources (write orchestrator, readers) to prepare for sharding

Essentially we will need a design that allows work executors and queries
to dynamically retrieve a list of resources based on a set of strings, so
we can't just pass these resources directly to the work
executors/queries.


  Commit: 1e0769b4ede5969774ddc8e4b22a7517a7f890d1
      https://github.com/hibernate/hibernate-search/commit/1e0769b4ede5969774ddc8e4b22a7517a7f890d1
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerImpl.java
    R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/spi/ReaderProvider.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/logging/impl/Log.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/impl/HolderMultiReader.java
    R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/impl/ManagedMultiReader.java
    R backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/impl/MultiReaderFactory.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/impl/ReadIndexManagerContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestrator.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestratorImpl.java

  Log Message:
  -----------
  HSEARCH-3314 Replace the ReaderProvider SPI with an object-oriented one

If we have a set of objects that require specific behavior when closing,
then let's use a dedicated object to represent them and this closing
behavior: the IndexReaderHolder.


  Commit: fa59bf9027f8485104d76bbc7912d56020934fae
      https://github.com/hibernate/hibernate-search/commit/fa59bf9027f8485104d76bbc7912d56020934fae
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/cfg/LuceneIndexSettings.java

  Log Message:
  -----------
  HSEARCH-3314 Add configuration options for static sharding in Lucene


  Commit: 604356739f6e3847f8448b3bc0fbed63238975ad
      https://github.com/hibernate/hibernate-search/commit/604356739f6e3847f8448b3bc0fbed63238975ad
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/document/model/dsl/impl/LuceneIndexSchemaRootNodeBuilder.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerBuilder.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/LuceneIndexManagerImpl.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/Shard.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/ShardHolder.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/impl/DirectoryCreationContextImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/impl/LocalFileSystemDirectoryProvider.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/spi/DirectoryCreationContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/impl/HolderMultiReader.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/reader/impl/ReadIndexManagerContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestrator.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/orchestration/impl/LuceneReadWorkOrchestratorImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryBuilder.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/search/query/impl/LuceneSearchQueryImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexDocumentWorkExecutor.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkExecutor.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/LuceneIndexWorkPlan.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/WorkExecutionBackendContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/WorkExecutionIndexManagerContext.java
    M engine/src/main/java/org/hibernate/search/engine/reporting/impl/EngineEventContextMessages.java
    M engine/src/main/java/org/hibernate/search/engine/reporting/spi/EventContexts.java
    M integrationtest/backend/lucene/src/test/java/org/hibernate/search/integrationtest/backend/lucene/lowlevel/directory/AbstractBuiltInDirectoryIT.java
    M integrationtest/backend/lucene/src/test/java/org/hibernate/search/integrationtest/backend/lucene/lowlevel/directory/LuceneLocalFileSystemDirectoryIT.java
    M integrationtest/backend/lucene/src/test/java/org/hibernate/search/integrationtest/backend/lucene/lowlevel/directory/LuceneLocalHeapDirectoryIT.java
    M util/common/src/main/java/org/hibernate/search/util/common/SearchException.java

  Log Message:
  -----------
  HSEARCH-3314 Implement basic, static, hash-based sharding in the Lucene backend


  Commit: b411aa09b6265565e58956abc7ae21fb5ee1341d
      https://github.com/hibernate/hibernate-search/commit/b411aa09b6265565e58956abc7ae21fb5ee1341d
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/testsupport/util/ElasticsearchTckBackendHelper.java
    M integrationtest/backend/lucene/src/test/java/org/hibernate/search/integrationtest/backend/lucene/testsupport/util/LuceneTckBackendHelper.java
    A integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/sharding/AbstractShardingIT.java
    A integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/sharding/ShardingDisabledRoutingKeyIT.java
    A integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/sharding/ShardingHashDocumentIdIT.java
    A integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/sharding/ShardingHashRoutingKeyIT.java
    M integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/testsupport/util/TckBackendHelper.java
    M legacy/orm/src/test/java/org/hibernate/search/test/shards/ShardsTest.java

  Log Message:
  -----------
  HSEARCH-3314 Test sharding in backends


  Commit: 7291449b5d65daf239dd67b52de56e8304ba897d
      https://github.com/hibernate/hibernate-search/commit/7291449b5d65daf239dd67b52de56e8304ba897d
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M engine/src/main/java/org/hibernate/search/engine/backend/index/spi/IndexManagerStartContext.java
    M engine/src/main/java/org/hibernate/search/engine/backend/spi/BackendStartContext.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/BackendPartialBuildState.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/BackendStartContextImpl.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/IndexManagerPartialBuildState.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/IndexManagerStartContextImpl.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/SearchIntegrationBuilderImpl.java
    M engine/src/main/java/org/hibernate/search/engine/common/impl/SearchIntegrationPartialBuildStateImpl.java

  Log Message:
  -----------
  HSEARCH-3314 Give access to the bean resolver from the index manager and backend start contexts

So that beans such as a sharding strategy can be initialized on
backend/index manager start.


  Commit: bf69dcf5b3f98babd521b18dc9b9ee61c7c7e3c6
      https://github.com/hibernate/hibernate-search/commit/bf69dcf5b3f98babd521b18dc9b9ee61c7c7e3c6
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/cfg/LuceneIndexSettings.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/impl/LuceneBeanConfigurer.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/HashShardingStrategy.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/IndexManagerBackendContext.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/NoShardingStrategy.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/Shard.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/ShardHolder.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/ShardingStrategyInitializationContextImpl.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/spi/ShardingStrategy.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/spi/ShardingStrategyInitializationContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/logging/impl/Log.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/impl/DirectoryCreationContextImpl.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/impl/LocalFileSystemDirectoryProvider.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/lowlevel/directory/spi/DirectoryCreationContext.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/work/execution/impl/WorkExecutionBackendContext.java
    M engine/src/main/java/org/hibernate/search/engine/reporting/impl/EngineEventContextMessages.java
    M engine/src/main/java/org/hibernate/search/engine/reporting/spi/EventContexts.java
    M integrationtest/backend/lucene/src/test/java/org/hibernate/search/integrationtest/backend/lucene/testsupport/util/LuceneTckBackendHelper.java

  Log Message:
  -----------
  HSEARCH-3314 Add an SPI to define the sharding strategy


  Commit: ee7831d5d0911424ae3bc352a6982c1621d76e79
      https://github.com/hibernate/hibernate-search/commit/ee7831d5d0911424ae3bc352a6982c1621d76e79
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/cfg/LuceneIndexSettings.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/impl/LuceneBeanConfigurer.java
    A backend/lucene/src/main/java/org/hibernate/search/backend/lucene/index/impl/ExplicitShardingStrategy.java
    M backend/lucene/src/main/java/org/hibernate/search/backend/lucene/logging/impl/Log.java

  Log Message:
  -----------
  HSEARCH-3314 Add an "explicit" sharding strategy to the Lucene backend

The main point of this strategy is to only put documents with the same
routing key in each shard, which isn't the case with the hash-based
strategy.
It may be useful for cases where document fall in fixed number of
categories, and cross-category searches are rare.


  Commit: 47f8e2d30ed8c6394e21e9c4c7c3a36c4fbf59c7
      https://github.com/hibernate/hibernate-search/commit/47f8e2d30ed8c6394e21e9c4c7c3a36c4fbf59c7
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    A integrationtest/backend/lucene/src/test/java/org/hibernate/search/integrationtest/backend/lucene/sharding/ShardingExplicitIT.java

  Log Message:
  -----------
  HSEARCH-3314 Test the "explicit" sharding strategy in the Lucene backend


  Commit: ad370a82629ebc437f72464876917c082a6559c8
      https://github.com/hibernate/hibernate-search/commit/ad370a82629ebc437f72464876917c082a6559c8
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-05 (Mon, 05 Aug 2019)

  Changed paths:
    M documentation/src/main/asciidoc/backend-elasticsearch.asciidoc
    M documentation/src/main/asciidoc/backend-lucene.asciidoc
    A documentation/src/main/asciidoc/components/sharding-intro-note.asciidoc
    M documentation/src/main/asciidoc/concepts.asciidoc
    M documentation/src/main/asciidoc/search-dsl.asciidoc
    A documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/routing/Book.java
    A documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/routing/BookRoutingKeyBinding.java
    A documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/routing/BookRoutingKeyBridge.java
    A documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/routing/Genre.java
    A documentation/src/test/java/org/hibernate/search/documentation/mapper/orm/routing/HibernateOrmRoutingIT.java
    M documentation/src/test/java/org/hibernate/search/documentation/testsupport/BackendConfigurations.java
    M util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/rule/MappingSetupHelper.java

  Log Message:
  -----------
  HSEARCH-3314 Document sharding


  Commit: 70eebd6d55665fbfae25f90a4e14d5ab34757cfb
      https://github.com/hibernate/hibernate-search/commit/70eebd6d55665fbfae25f90a4e14d5ab34757cfb
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M pom.xml

  Log Message:
  -----------
  HSEARCH-3644 Do not set hibernate.service.allow_crawling in integration tests


  Commit: 706c9588db78ba91b499bc09aa02619361853021
      https://github.com/hibernate/hibernate-search/commit/706c9588db78ba91b499bc09aa02619361853021
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    A integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/bootstrap/BootstrapFailureIT.java
    R integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/bootstrap/FailingBootIT.java

  Log Message:
  -----------
  HSEARCH-3644 Rename FailingBootIT to BootstrapFailureIT

Just so we can introduce other boot tests with consistent naming.


  Commit: 897c95cddd3341f8b2d1f5d52c60451dffa94978
      https://github.com/hibernate/hibernate-search/commit/897c95cddd3341f8b2d1f5d52c60451dffa94978
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M util/internal/test/src/main/java/org/hibernate/search/util/impl/test/rule/ExpectedLog4jLog.java

  Log Message:
  -----------
  HSEARCH-3644 Fix a bug in ExpectedLog4jLog where all log events were reported in error messages instead of just the problematic events


  Commit: eb5ef8ab1e99f3d813a35e97d83fd76ad510fb93
      https://github.com/hibernate/hibernate-search/commit/eb5ef8ab1e99f3d813a35e97d83fd76ad510fb93
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    A integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/bootstrap/BootstrapLogsIT.java

  Log Message:
  -----------
  HSEARCH-3644 Test that no suspicious log events happen on a simple bootstrap


  Commit: 88a0c92788b15d6dd2a5ebc91193ba8a2e664bc1
      https://github.com/hibernate/hibernate-search/commit/88a0c92788b15d6dd2a5ebc91193ba8a2e664bc1
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToHibernateOrmIT.java
    M integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/hibernateormapis/ToJpaIT.java
    M integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/massindexing/MassIndexingBaseIT.java
    M integrationtest/mapper/orm/src/test/java/org/hibernate/search/integrationtest/mapper/orm/spi/DifferentSessionFactoriesIT.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/Search.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmIntegrationBooterImpl.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateSearchIntegrator.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateOrmMapping.java
    A mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateSearchContextProviderService.java
    A mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateSearchContextProviderServiceContributor.java
    R mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateSearchContextService.java
    R mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/HibernateSearchContextServiceContributor.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSession.java
    R mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSessionContextProvider.java
    A mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/HibernateOrmSearchSessionMappingContext.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/session/impl/LazyInitSearchSession.java
    M mapper/orm/src/main/resources/META-INF/services/org.hibernate.service.spi.ServiceContributor

  Log Message:
  -----------
  HSEARCH-3644 Avoid warning "Encountered request for Service by non-primary service role" at bootstrap

We just have to make sure each service interface is completely
independent, and that they don't extend each other. Otherwise ORM gets
confused during bootstrap and thinks we're relying on legacy behavior
(we're not).


  Commit: 31959910e09da93d69f7aef16c0a3b9dbb14d5dd
      https://github.com/hibernate/hibernate-search/commit/31959910e09da93d69f7aef16c0a3b9dbb14d5dd
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchCoordinator.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/BatchIndexingWorkspace.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/IdentifierConsumerDocumentProducer.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/massindexing/impl/IdentifierProducer.java

  Log Message:
  -----------
  HSEARCH-3447 Replace uses of deprecated Hibernate criteria with JPA criteria


  Commit: c3272c7dc2f57c6567dc1b874b1cecccf1afdff6
      https://github.com/hibernate/hibernate-search/commit/c3272c7dc2f57c6567dc1b874b1cecccf1afdff6
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M integrationtest/mapper/orm/pom.xml

  Log Message:
  -----------
  HSEARCH-3447 Remove an unnecessary dependency to the ES backend in ORM integration tests


  Commit: 20014e6512ceb88fe99411b363f1c65e9dde7397
      https://github.com/hibernate/hibernate-search/commit/20014e6512ceb88fe99411b363f1c65e9dde7397
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M build-config/src/main/resources/forbidden-runtime.txt

  Log Message:
  -----------
  HSEARCH-3447 Add native ORM Criteria to forbidden APIs


  Commit: 15db31bf75f2b8d12c195ed05cc30bef3a57eb90
      https://github.com/hibernate/hibernate-search/commit/15db31bf75f2b8d12c195ed05cc30bef3a57eb90
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M backend/elasticsearch/pom.xml
    M backend/lucene/pom.xml
    M engine/pom.xml
    M mapper/javabean/pom.xml
    M mapper/orm/pom.xml
    M mapper/pojo/pom.xml
    M util/common/pom.xml

  Log Message:
  -----------
  HSEARCH-3551 Disable generation of module-info.java by default

It's not working yet, and we want to test if using Hibernate Search
works correctly with the artifacts generated by the JDK8 build, i.e.
when using Hibernate Search as an automatic module.

Let's only re-enable these when we produce multi-release JARs.


  Commit: 4bd091ee357dc7ae1cef9e82ddaa78c0b0353d86
      https://github.com/hibernate/hibernate-search/commit/4bd091ee357dc7ae1cef9e82ddaa78c0b0353d86
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M engine/src/main/java/org/hibernate/search/engine/common/impl/SearchIntegrationBuilderImpl.java
    R engine/src/main/java/org/hibernate/search/engine/environment/classpath/impl/AggregatedClassLoader.java
    A engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/AggregatedClassLoader.java
    R engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultClassAndResourceResolver.java
    A engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultClassResolver.java
    A engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultResourceResolver.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmClassLoaderServiceClassAndResourceResolver.java
    M util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/TestConfigurationProvider.java

  Log Message:
  -----------
  HSEARCH-3551 Split DefaultClassAndResourceResolver in two and move classloader-related code to AggregatedClassLoader

So that we can introduce a separate ServiceResolver interface.


  Commit: 83cff40f7ece881d98daff27687844b2688ef1f0
      https://github.com/hibernate/hibernate-search/commit/83cff40f7ece881d98daff27687844b2688ef1f0
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M engine/src/main/java/org/hibernate/search/engine/common/impl/SearchIntegrationBuilderImpl.java
    M engine/src/main/java/org/hibernate/search/engine/common/spi/SearchIntegrationBuilder.java
    M engine/src/main/java/org/hibernate/search/engine/environment/bean/impl/ConfiguredBeanResolver.java
    M engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ClassResolver.java
    M engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultClassResolver.java
    A engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultServiceResolver.java
    A engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ServiceResolver.java
    M engine/src/test/java/org/hibernate/search/engine/environment/bean/impl/ConfiguredBeanResolverTest.java
    A mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmClassLoaderServiceClassAndResourceAndServiceResolver.java
    R mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmClassLoaderServiceClassAndResourceResolver.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmIntegrationBooterImpl.java
    M util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/TestConfigurationProvider.java

  Log Message:
  -----------
  HSEARCH-3551 Extract service loading features from ClassResolver to a new ServiceResolver interface


  Commit: a7ad7a0e253dee769fd43fae64a1e5f8a0086c2c
      https://github.com/hibernate/hibernate-search/commit/a7ad7a0e253dee769fd43fae64a1e5f8a0086c2c
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M engine/src/main/java/org/hibernate/search/engine/common/impl/SearchIntegrationBuilderImpl.java
    M engine/src/main/java/org/hibernate/search/engine/environment/bean/spi/ReflectionBeanProvider.java
    M engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultClassResolver.java
    M engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultResourceResolver.java
    M engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultServiceResolver.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmClassLoaderServiceClassAndResourceAndServiceResolver.java
    M mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmIntegrationBooterImpl.java
    M util/internal/integrationtest/common/src/main/java/org/hibernate/search/util/impl/integrationtest/common/TestConfigurationProvider.java

  Log Message:
  -----------
  HSEARCH-3551 Expose factory method instead of constructors for default resolver implementations

So that we can decide on the actual implementation ourselves at runtime.
Will be useful to implement things differently for JDK8 and JDK9+ in
particular.


  Commit: ddfd842a092c88fe88259ea2488a9b40b6099447
      https://github.com/hibernate/hibernate-search/commit/ddfd842a092c88fe88259ea2488a9b40b6099447
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M integrationtest/jdk/java-modules/pom.xml
    M integrationtest/jdk/java-modules/src/main/java/module-info.java
    M integrationtest/jdk/java-modules/src/main/resources/hibernate.properties
    R integrationtest/jdk/java-modules/src/test/java/org/hibernate/search/integrationtest/java/module/service/AuthorServiceIT.java
    A integrationtest/jdk/java-modules/src/test/java/org/hibernate/search/integrationtest/java/module/service/JavaModulePathIT.java

  Log Message:
  -----------
  HSEARCH-3551 Fix and restore integration tests in the java module path


  Commit: a157e31d133c07b6589b32dfe57cea328172537c
      https://github.com/hibernate/hibernate-search/commit/a157e31d133c07b6589b32dfe57cea328172537c
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M integrationtest/jdk/java-modules/pom.xml
    A integrationtest/jdk/java-modules/src/test/resources/log4j.properties

  Log Message:
  -----------
  HSEARCH-3551 Add logging to tests in the java module path


  Commit: 9df7b0931367548cd1e9e24be2b87a867eaea0d3
      https://github.com/hibernate/hibernate-search/commit/9df7b0931367548cd1e9e24be2b87a867eaea0d3
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/AggregatedClassLoader.java
    M engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultServiceResolver.java

  Log Message:
  -----------
  HSEARCH-3551 Make DefaultServiceResolver compatible with the module path (JDK9+)


  Commit: 9c223158db1259dfe0b2585d2a0c30b89d77ac02
      https://github.com/hibernate/hibernate-search/commit/9c223158db1259dfe0b2585d2a0c30b89d77ac02
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultServiceResolver.java

  Log Message:
  -----------
  HSEARCH-3551 Rework DefaultServiceresolver to minimize the risk of regression

In particular:

* Keep the old behavior when retrieving services on JDK8
* On JDK9+, query the AggregatedClassLoader first (before individual
class loaders) when retrieving services.
* On JDK9+, use ServiceLoader.Provider to avoid instantiating services
a second time if we know we already instantiated them with another class
loader.


  Commit: 4d2d8502f577cc4decd71720acf897df44d86dec
      https://github.com/hibernate/hibernate-search/commit/4d2d8502f577cc4decd71720acf897df44d86dec
  Author: Yoann Rodière <yoann at hibernate.org>
  Date:   2019-08-06 (Tue, 06 Aug 2019)

  Changed paths:
    M jqassistant/rules.xml

  Log Message:
  -----------
  HSEARCH-3551 Ignore synthetic constructors in JQAssistant rules

For some reason the compiler seem to create a synthetic constructor in
DefaultServiceResolver and this triggers a failure for some of our
constraints.

We don't care about synthetic constructors, so let's ignore them.


Compare: https://github.com/hibernate/hibernate-search/compare/1c1fc0bcf2f4...4d2d8502f577



More information about the hibernate-commits mailing list