Restore binary compatibility with applications compiled against Hibernate Search 5.5

Description

In order for 5.10 to be included into WildFly 13 (and then JBoss EAP), we need it to be binary compatible with applications compiled against Search 5.5 (the Search version included in WildFly 12 and EAP 7.1).

After a detailed analysis, it seems only the following changes are not binary compatible:

  • org.hibernate.search.query.dsl.QueryCustomization#filteredBy(Filter) changed and now accepts a parameter of type Query instead of Filter (Query is a supertype of Filter).
    This class is supposed to be called by users.

  • org.hibernate.search.filter.FilterCachingStrategy#getCachedFilter changed and returns a value of type Query instead of Filter (Query is a supertype of Filter).
    This class is supposed to be implemented by users.

Complete integration tests showing the incompatibility are available here: https://github.com/yrodiere/hibernate-test-case-templates/tree/search-5-5-vs-5-10-binary-compatibility/search/hibernate-search-wildfly

The first change could be made binary compatible by adding a default method, but it's not something we can do for the second change. Thus we will need to use bridger to alter the bytecode after it is compiled.

Environment

None

Status

Assignee

Yoann Rodière

Reporter

Yoann Rodière

Labels

None

Suitable for new contributors

None

Feedback Requested

None

Components

Fix versions

Priority

Critical
Configure