Uploaded image for project: 'Hibernate Search'
  1. HSEARCH-3138

Restore binary compatibility with applications compiled against Hibernate Search 5.5

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.10.0.CR1
    • Component/s: engine, wildfly
    • Labels:
      None

      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.

        Attachments

          Activity

            People

            • Assignee:
              yrodiere Yoann Rodière
              Reporter:
              yrodiere Yoann Rodière
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: