On 6 August 2015 at 09:42, Tristan Tarrant <[email protected]> wrote: > > > On 06/08/2015 10:30, Sanne Grinovero wrote: >> On 6 August 2015 at 03:01, William Burns <[email protected]> wrote: >>> It seems ORM was compiled with a version earlier than Beta1 but then ran >>> with Beta2? The keySet method was changed to return a subclass of >>> CloseableIteratorSet with Beta2 to support distributed streams [1]. >> >> BTW that CacheSet API change looks like it was intended to be >> backwards compatible? It's not, as we just realised. I you want it to >> be backwards compatible you'll have to revert that API change. > > From the ORM version numbers (CR4) I guess we are near endgame and we > MUST ensure that ORM works with both Infinispan 7.x and 8.x. > Will is it possible to make the signature of the method backwards > compatible ? > If this is inconvenient, what can be done in Hibernate Infinispan to > insulate it from this change ? > > Still, I'm wondering whether hibernate-infinispan shouldn't be > subclassed into multiple versions so that we can be a bit more liberal > with some changes.
It has always been maintained by the Infinispan team. You can do that, or you could even move the sources to the Infinispan project so you get to pick the versions; that would solve the current version entanglement but I wonder if we'd end up being stuck in the opposite but similar situation.. just something to consider. In particular the upgrade to Hibernate ORM 5 did change the Caching SPI, but that's not happening often at all. It looks like Infinispan moves much quicker, so owning the module in Infinispan might make these issues less frequent. On a different note: it turns out it's quite easy for Gradle to compile vs Infinispan 7 but test vs Infinispan 8, so I've setup such a job now to trigger on each Hibernate commit, but it will depend on a hardcoded version Infinispan 8.0.0.Beta2 because that's all we have on Nexus. You can checkout Hibernate ORM's master and build it with: ./gradlew clean :hibernate-infinispan:test -PoverrideInfinispanVersionForTesting=8.0.0.Beta2 to have it run the Infinispan integration tests only. Or replace the property value to test vs a different Infinispan version: '8.0.0.Beta1' works fine, '8.0.0.Beta2' produces quite some failures, we'll probably switch to use '8.0.0-SNAPSHOT' on ci.hibernate.org when Sebastian gets Infinispan to upload nightly builds, but ideally you should get similar jobs setup on ci.infinispan.org. HTH Sanne _______________________________________________ infinispan-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/infinispan-dev
