Release Notes - Hibernate Search - Version 6.0.0.Alpha1 - HTML format

Sub-task

  • [HSEARCH-3368] - Search 6 groundwork - Add javadoc to the Predicate and Sort DSL

Bug

  • [HSEARCH-383] - Hibernate Search does not respect the @AccessType annotation in respect to @Id fields.
  • [HSEARCH-1357] - Remove LuceneOptions from the FieldBridge#set(String, Object, Document, LuceneOptions ) signature
  • [HSEARCH-1394] - SPI shouldn't expose impl types
  • [HSEARCH-1710] - Child collection being unnecessarily initialized through @ContainedIn
  • [HSEARCH-2194] - Handling of @IndexedEmbedded not working correctly for multi-level hierarchies
  • [HSEARCH-2328] - Code examples in the documentations are not automatically checked for correctness
  • [HSEARCH-2490] - SortedMap is not supported for MapFieldBridge and IndexedEmbeddeds
  • [HSEARCH-2552] - @IndexedEmbedded.includePaths should not allow to pick paths that were excluded from the embedded entity
  • [HSEARCH-2554] - Using array/iterable/map field bridges requires the @IndexedEmbedded annotation (second attempt)
  • [HSEARCH-3148] - Search 6 groundwork - Lucene - Support bool() predicate with only mustNot() predicates
  • [HSEARCH-3163] - On bootstrap failure the SessionFactory is closed without propagating the root cause
  • [HSEARCH-3167] - Exceptions may not be reported in the right order when internals use Closer.split
  • [HSEARCH-3212] - Class bridges are applied regardless of @IndexedEmbedded.includePaths
  • [HSEARCH-3215] - Reference guide typos
  • [HSEARCH-3216] - Deprecated API usage in example Implementing a class bridge
  • [HSEARCH-3267] - Restore option to run WildFly integration tests against manually prepared distribution
  • [HSEARCH-3389] - Fix bugs in the Lucene backend when maxResults is set to 0

New Feature

  • [HSEARCH-175] - Use domain specific annotations to plug custom bridges
  • [HSEARCH-2263] - Use nested objects mapping and parent-child relationship mapping
  • [HSEARCH-2485] - Allow to use different ES clusters for different entities (i.e. introduce IndexingService)
  • [HSEARCH-3088] - Add ID predicates to the predicate DSL
  • [HSEARCH-3206] - Allow to selectively disable part of the reindexing
  • [HSEARCH-3222] - Introduce a projection DSL
  • [HSEARCH-3390] - Composite projections

Task

  • [HSEARCH-840] - Split IndexManager interface in API and SPI
  • [HSEARCH-1597] - Have DocumentBuilderHelper methods used for projection use metadata rather than type guessing
  • [HSEARCH-1664] - Set-up tooling for detecting implementation types leaking into public API
  • [HSEARCH-2385] - Create separate backend testing projects?
  • [HSEARCH-2557] - Change groupId to org.hibernate.search
  • [HSEARCH-2768] - Carefully control how and when engine APIs are exposed in the ORM integration
  • [HSEARCH-2769] - Remove methods using Class<?> as indexed type identifier in the engine
  • [HSEARCH-2933] - Upgrade integration tests to a version of the MariaDB driver not affected by CONJ-541
  • [HSEARCH-3059] - Search 6 groundwork - Test multi-index searches
  • [HSEARCH-3060] - Search 6 groundwork - Test predicate DSL more extensively
  • [HSEARCH-3061] - Search 6 groundwork - Test query execution more extensively
  • [HSEARCH-3064] - Search 6 groundwork - Add more checks to detect unsortable fields in the sort DSL
  • [HSEARCH-3065] - Search 6 groundwork - Support multiple levels of document nesting in Lucene
  • [HSEARCH-3073] - Search 6 groundwork - Restore support for using JPA's @Id as a default for document IDs
  • [HSEARCH-3078] - Search 6 groundwork - Add a mapping annotation for routing key bridges
  • [HSEARCH-3079] - Search 6 groundwork - Throw an error when mixing different ORM SessionFactories
  • [HSEARCH-3082] - Search 6 groundwork - Create all SearchExceptions using a JBoss Logger
  • [HSEARCH-3083] - Search 6 groundwork - Properly close all resources in the event of a bootstrap failure
  • [HSEARCH-3087] - Search 6 groundwork - Add spatial querying support
  • [HSEARCH-3094] - Search 6 groundwork - match() queries on GeoPoint fields
  • [HSEARCH-3095] - Search 6 groundwork - Lucene native predicates/sorts
  • [HSEARCH-3098] - Search 6 groundwork - Support primitive property types
  • [HSEARCH-3105] - Search 6 groundwork - Fail-fast in Lucene DSL
  • [HSEARCH-3111] - Search 6 groundwork - Add documentation about the internal architecture of Hibernate Search
  • [HSEARCH-3115] - Search 6 groundwork - Restore the analyzer infrastructure
  • [HSEARCH-3119] - Search 6 groundwork - Implement multi-tenancy properly
  • [HSEARCH-3123] - Search 6 groundwork - Clean up the backend internals
  • [HSEARCH-3126] - Search 6 groundwork - Rework the syntax when using extensions
  • [HSEARCH-3127] - Search 6 groundwork - Lucene native field types
  • [HSEARCH-3128] - Search 6 groundwork - Allow per-backend access to the Elasticsearch RestClient
  • [HSEARCH-3140] - Add more forbidden dependencies to the JQAssistant rules
  • [HSEARCH-3141] - Search 6 groundwork - Test the model definition API in the backend TCK
  • [HSEARCH-3151] - Upgrade to Apache Karaf 4.2.1 to be able to test in JDK10, hopefully JDK11
  • [HSEARCH-3152] - Search 6 groundwork - Implement more of the field definition DSL in the engine
  • [HSEARCH-3160] - Configure an integration with SonarCloud
  • [HSEARCH-3162] - Fix bugs and vulnerabilities detected by Sonar - 20180516
  • [HSEARCH-3165] - Search 6 groundwork - Add a a test utils module for classes useful for any test (even unit tests)
  • [HSEARCH-3166] - Search 6 groundwork - Use LinkedHashMap/LinkedHashSet for maps/sets that are iterated on for easier debugging
  • [HSEARCH-3169] - Search 6 groundwork - Upgrade to ORM 5.3
  • [HSEARCH-3172] - Avoid JaCoCo-related properties not being translated correctly and failing ITs in IDEA
  • [HSEARCH-3173] - Upgrade to Hibernate ORM 5.3.1
  • [HSEARCH-3175] - Split the BeanResolver interface into two: the implementor interface, and the user interface
  • [HSEARCH-3176] - Replace Objects.requireNonNull occurrences by calls to the new Contracts class
  • [HSEARCH-3177] - Search 6 groundwork - Simplify the bootstrapping of mappings
  • [HSEARCH-3179] - Search 6 groundwork - Merge the Search 6 Proof-of-concept into the main repository
  • [HSEARCH-3181] - Search 6 groundwork - Port the Checkstyle/ForbiddenAPI changes from Search 5
  • [HSEARCH-3183] - Remove obsolete and invalid Maven configuration in hibernate-search-jbossmodules-parent
  • [HSEARCH-3184] - Fix invalid references to repository.jboss-public.url in the build configuration
  • [HSEARCH-3185] - Build-config module should not attempt to apply checkstyle or forbiddenapi rules
  • [HSEARCH-3186] - Forward maven settings to JBoss Modules when applying patches to WildFly nodes
  • [HSEARCH-3187] - Use POM packaging for relocation artifacts
  • [HSEARCH-3188] - Fix the phase for plugin executions generating integration test environment
  • [HSEARCH-3189] - Instantiate immutable implementations of data-carrier interfaces through static factory methods only
  • [HSEARCH-3190] - Search 6 groundwork - Restore support for "distance" projections
  • [HSEARCH-3191] - Search 6 groundwork - Use .end() terminal calls for all predicates/sorts/etc. in the DSL
  • [HSEARCH-3194] - Upgrade feature packs and integration tests to WildFly 13
  • [HSEARCH-3196] - Give up on per-module project codes and book ranges of IDs per module instead
  • [HSEARCH-3198] - Strip down the README and redirect to the website for getting started information
  • [HSEARCH-3199] - Search 6 groundwork - Restore support for fine-grained dirty detection
  • [HSEARCH-3201] - Use a safe pattern to check for exception in tests
  • [HSEARCH-3205] - Search 6 groundwork - Allow to map annotations to bridges directly, without requiring a builder
  • [HSEARCH-3207] - Search 6 groundwork - Avoid duplicate clauses when .end() is called unnecessarily
  • [HSEARCH-3217] - Search 6 groundwork - Make sure the index schema definition DSL allows for non-standard or extended accessor types
  • [HSEARCH-3218] - Prepare for checkstyle 8.11
  • [HSEARCH-3219] - Remove no longer required Java 9 compatibility flags from WildFly integration tests
  • [HSEARCH-3220] - Search 6 groundwork - Stop using the contributor/collector pattern in the predicate/sort builders
  • [HSEARCH-3221] - Search 6 groundwork - Restore support for applying bridges automatically to predicate/sort DSL parameters
  • [HSEARCH-3223] - Search 6 groundwork - Restore support for applying bridges automatically to projections
  • [HSEARCH-3224] - Upgrade to Byteman 4.0.3
  • [HSEARCH-3225] - Search 6 groundwork - Remove search() methods that implicitly create a search target encompassing all mapped types
  • [HSEARCH-3226] - Add test dependencies to javax.xml.bind when building with JDK9 and above
  • [HSEARCH-3228] - Upgrade GSON 2.8.5
  • [HSEARCH-3229] - Search 6 groundwork - Update to Lucene 7.4.0
  • [HSEARCH-3231] - Search 6 groundwork - Internalize index name normalization
  • [HSEARCH-3232] - Upgrade to Byteman 4.0.4
  • [HSEARCH-3235] - Introduce a profile for JDK11 testing
  • [HSEARCH-3236] - Forbid restricted signatures from all JDK versions we plan to support
  • [HSEARCH-3238] - Upgrade EasyMock to a version compatible with JDK11
  • [HSEARCH-3239] - Setup a Jenkins pipeline build with a Jenkinsfile
  • [HSEARCH-3240] - Use the pre-installed JDK in the Travis build instead of trying to update it in each build
  • [HSEARCH-3241] - Reorganize and clarify Maven properties used to pass JVM args
  • [HSEARCH-3242] - Search 6 groundwork - Add back the built-in enum bridge
  • [HSEARCH-3246] - Generate Coveralls and Sonar reports from the Jenkinsfile instead of Travis
  • [HSEARCH-3248] - Restore lenient illegal access checks on the client side of Arquillian during integration tests
  • [HSEARCH-3250] - Search 6 groundwork - Add a complex bridge example to the Library showcase
  • [HSEARCH-3252] - Avoid using _JAVA_OPTIONS in Travis builds
  • [HSEARCH-3253] - Search 6 groundwork - Add more checks to detect un-projectable fields in the query DSL
  • [HSEARCH-3259] - Search 6 groundwork - Restore support for projections on fields within flattened object fields in Elasticsearch
  • [HSEARCH-3261] - Rename *Worker interfaces and methods to *WorkPlan
  • [HSEARCH-3264] - Search 6 groundwork - Add some basic documentation for 6.0.0.Alpha1
  • [HSEARCH-3265] - Search 6 groundwork - Add support for enough types to release an Alpha
  • [HSEARCH-3284] - Search 6 groundwork - Make sure that each module has a unique, non-default package at its root
  • [HSEARCH-3285] - Search 6 groundwork - Move to a less "flat" directory structure
  • [HSEARCH-3288] - Document naming conventions in the technical documentation and ensure all classes comply with them
  • [HSEARCH-3289] - Search 6 groundwork - Remove any mention of "stream" workers/workplans
  • [HSEARCH-3290] - Search 6 groundwork - Finalize the Search DSL syntaxes
  • [HSEARCH-3294] - Send email notifications upon build failures in the Jenkinsfile
  • [HSEARCH-3296] - Search 6 groundwork - Pass context objects to bridges
  • [HSEARCH-3302] - Search 6 groundwork - Draft Search 6 APIs and implementations in a prototype
  • [HSEARCH-3331] - Finalize the switch to Jenkinsfiles
  • [HSEARCH-3332] - Activate GitHub pull request decoration in Sonar
  • [HSEARCH-3334] - Remove usage of deprecated nexus-maven-plugin
  • [HSEARCH-3335] - Search 6 groundwork - Restore the distribution module
  • [HSEARCH-3336] - Rename artifact hibernate-search-orm to hibernate-search-mapper-orm (and change jigsaw module name)
  • [HSEARCH-3337] - Generate external javadoc URLs automatically from version properties
  • [HSEARCH-3338] - Search 6 groundwork - Fix javadoc to avoid warnings in Search 6 code
  • [HSEARCH-3340] - Add support for snapshot releases to the Jenkinsfile
  • [HSEARCH-3341] - Do not send SUCCESS notifications when a Jenkins pipeline build fails or is cancelled
  • [HSEARCH-3343] - Upgrade to Hibernate ORM 5.3.6.Final
  • [HSEARCH-3346] - Only enable Sonar analysis on select Jenkins jobs
  • [HSEARCH-3347] - Update the README for Search 6
  • [HSEARCH-3348] - Consider backend TCK and test utils as test code during the Sonar analysis
  • [HSEARCH-3357] - Rename DocumentReferenceHitExtractor to ReferenceHitExtractor
  • [HSEARCH-3359] - Search 6 groundwork - Cleanup and organize mapper integration tests
  • [HSEARCH-3361] - Test behavior of default value bridges when projecting
  • [HSEARCH-3362] - Avoid forbiddenapis errors caused by auto-generated Objects.requireNotNull calls
  • [HSEARCH-3363] - Don't try to report to Coveralls.io or SonarCloud in the Jenkinsfile when coverage data is missing
  • [HSEARCH-3377] - Upgrade EasyMock to a version compatible with JDK10
  • [HSEARCH-3379] - Reference the Hibernate ORM feature from the OSGi tests
  • [HSEARCH-3380] - Find a way to add JAXB modules to the OSGi feature in OSGi integration tests
  • [HSEARCH-3381] - Move part of the Jenkinsfile to an external, shared library
  • [HSEARCH-3382] - Upgrade to Lucene 7.5.0
  • [HSEARCH-3383] - Upgrade to a version of jqassistant that works correctly when we skip modules
  • [HSEARCH-3384] - Search 6 groundwork - Restore support for ClassLoaderService
  • [HSEARCH-3388] - Search 6 groundwork - Output the full property key (as provided by the user) in case of parsing error
  • [HSEARCH-3394] - Upgrade HCANN to 5.0.5.Final
  • [HSEARCH-3396] - Allow to use snapshot artifacts in OSGi integration tests
  • [HSEARCH-3398] - Search 6 groundwork - Use dedicated APIs for the ORM mapper instead of extending the POJO mapper APIs, where possible
  • [HSEARCH-3399] - Search 6 groundwork - Use "builder factories" consistently for DSL builders in backends
  • [HSEARCH-3404] - Upgrade to Elasticsearch 6.4.2
  • [HSEARCH-3406] - Fix (and test) exceptions not being thrown because we call "log.someMethod();" instead of "throw log.someMethod();"
  • [HSEARCH-3408] - Add a checkstyle rule to force using uppercase L for Long constants
  • [HSEARCH-3409] - Add support for the Instant type in backends and use it to provide support for java.util.Date
  • [HSEARCH-3411] - Add gitter room notification for Jenkins builds
  • [HSEARCH-3412] - Projection DSL should detect (and prevent) projections on fields that have a different projection converter on the targeted indexes
  • [HSEARCH-3413] - Search 6 groundwork - Restore support for implicit index name
  • [HSEARCH-3415] - Upgrade Elasticsearch to 6.5.0
  • [HSEARCH-3417] - Remove the snapshot dependencies trigger from the Jenkinsfile
  • [HSEARCH-3420] - Make the build fully compatible with JDK11
  • [HSEARCH-3422] - Change IndexOrderSortContributor to use _doc instead of _uid
  • [HSEARCH-3428] - Get back to the default, virtualized infrastructure for Travis builds
  • [HSEARCH-3431] - Upgrade to Hibernate ORM 5.3.7.Final
  • [HSEARCH-3436] - Fix the release process in Jenkinsfile
  • [HSEARCH-3437] - Restore the <extensions>true</extensions> for the JQAssistant plugin

Improvement

  • [HSEARCH-797] - Split programmatic mapping API classes to impl
  • [HSEARCH-863] - Use JBoss Logging to create i18n exceptions
  • [HSEARCH-976] - Refactor document builder and introduce clear configuration processing phases
  • [HSEARCH-1051] - Refactor package names under org.hibernate.search in hibernate-search-engine module
  • [HSEARCH-1093] - Smarter dirty checking with @Transient fields
  • [HSEARCH-1306] - Allow access to the SearchIntegrator from within a class bridge
  • [HSEARCH-1364] - Add code examples from documentation as actual compiling code to the documentation module
  • [HSEARCH-1398] - Provide built-in briges for more basic element collections
  • [HSEARCH-1561] - Create clean split between orm and engine
  • [HSEARCH-1788] - Projection of a single element through FullTextQuery should not be wrapped in a single-element array
  • [HSEARCH-1833] - Better mapping validation to require a single field to be used at ID term
  • [HSEARCH-1869] - Validate for each hibernate.search prefixed configuration property to be consumed
  • [HSEARCH-2055] - FieldBridge 2.0: generalize FieldBridge contract to deal with other backends
  • [HSEARCH-2181] - Remove StringHelper from public API
  • [HSEARCH-2186] - Abstract from direct usage of Lucene's Document as the internal data container
  • [HSEARCH-2225] - Consider adding typed version of query on FullTextEntityManager
  • [HSEARCH-2294] - Decide of the type of a range query based on the field instead of the value
  • [HSEARCH-2329] - Provide support for more distance units
  • [HSEARCH-2331] - Enable creating a QueryBuilder with a multi-entity scope
  • [HSEARCH-2462] - Split internal metadata into two: agnostic metadata and indexing service specific metadata
  • [HSEARCH-2496] - Smarter dirty checking when using @ContainedIn with custom field bridges
  • [HSEARCH-2498] - Use a generic representation of queries in the DSL
  • [HSEARCH-2546] - Give more context when there are errors while generating metadata
  • [HSEARCH-2641] - Allow for Elasticsearch analyzer definitions to be applied in class bridges/custom field bridges
  • [HSEARCH-2756] - Improve naming schemes of Elasticsearch configuration properties
  • [HSEARCH-2759] - Handle private/protected field access for @Spatial fields
  • [HSEARCH-2765] - Rename the SearchFactory API
  • [HSEARCH-2847] - Comply with Hibernate ORM's access mode in @Spatial bridges
  • [HSEARCH-3139] - Avoid SPIs leaking into APIs
  • [HSEARCH-3145] - Rename the all() predicate to matchAll()
  • [HSEARCH-3164] - Search 6 groundwork - Do not create unnecessary identifier/routingKey bridges for @IndexedEmbeddeds
  • [HSEARCH-3168] - JBoss Modules should not use the deprecated module of Hibernate ORM
  • [HSEARCH-3182] - Sort Hibernate ORM metadata before processing it
  • [HSEARCH-3197] - Allow to set the minimum number of should clauses required to match for boolean predicates in the DSL
  • [HSEARCH-3208] - Add advanced, conditional syntax to set the minimum number of should clauses required to match for boolean predicates in the DSL
  • [HSEARCH-3210] - Upgrade to HCANN 5.0.4.Final
  • [HSEARCH-3211] - Upgrade to ORM 5.3.2
  • [HSEARCH-3227] - Upgrade to Elasticsearch 6
  • [HSEARCH-3233] - Overriding an analyzer in the queryBuilder with an unknown analyzer should lead to a proper SearchException
  • [HSEARCH-3234] - Upgrade to ORM 5.3.3
  • [HSEARCH-3287] - Change the syntax of index configuration properties from h.s.index.myIndex.someProperty to h.s.indexes.myIndex.someProperty
  • [HSEARCH-3310] - Split the @Field annotation into multiple, type-specific annotations
  • [HSEARCH-3395] - Make the .reference() and .object() projections type-safe in the Projection DSL
  • [HSEARCH-3401] - Merge the two "Search" classes into one

Remove Feature

  • [HSEARCH-1890] - Consider removal of Properties type on integration SPIs for configuration
  • [HSEARCH-2460] - Prevent field bridges from bypassing @IndexedEmbedded prefixes
  • [HSEARCH-2466] - Prevent mappings that assign multiple types to a single field
  • [HSEARCH-2543] - Do not allow to customize the document id field (@DocumentId) anymore
  • [HSEARCH-3263] - Remove support for Elasticsearch < 5.6

The text area below allows the project release notes to be copied to another document.