<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Thu, Aug 6, 2015 at 10:39 PM Radim Vansa <<a href="mailto:rvansa@redhat.com">rvansa@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I have already solved that using filterEntries [1], but that's not end<br>
of the pain. Another change is ISPN removing<br>
ExtendedModuleCommandsFactory - I could not get around that with<br>
Infinispan snapshot. And if Infinispan does not keep fixed API even<br>
between major versions, these attempts to sync it seem quite futile.<br></blockquote><div><br></div><div>I integrated the module command factory change in ISPN master earlier today. I was able to run the infinispan hibernate tests and they worked for me with your PR applied. Is there some other thing I needed to run?</div><div><br></div><div>And since we know to watch out for the binary compatibility we can make sure it stays that way for the 8.0 Final release.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Radim<br>
<br>
[1] <a href="https://github.com/hibernate/hibernate-orm/pull/1045" rel="noreferrer" target="_blank">https://github.com/hibernate/hibernate-orm/pull/1045</a><br>
<br>
On 08/06/2015 04:17 PM, William Burns wrote:<br>
><br>
><br>
> On Thu, Aug 6, 2015 at 4:42 AM Tristan Tarrant <<a href="mailto:ttarrant@redhat.com" target="_blank">ttarrant@redhat.com</a><br>
> <mailto:<a href="mailto:ttarrant@redhat.com" target="_blank">ttarrant@redhat.com</a>>> wrote:<br>
><br>
><br>
><br>
> On 06/08/2015 10:30, Sanne Grinovero wrote:<br>
> > On 6 August 2015 at 03:01, William Burns <<a href="mailto:mudokonman@gmail.com" target="_blank">mudokonman@gmail.com</a><br>
> <mailto:<a href="mailto:mudokonman@gmail.com" target="_blank">mudokonman@gmail.com</a>>> wrote:<br>
> >> It seems ORM was compiled with a version earlier than Beta1 but<br>
> then ran<br>
> >> with Beta2? The keySet method was changed to return a subclass of<br>
> >> CloseableIteratorSet with Beta2 to support distributed streams [1].<br>
> ><br>
> > BTW that CacheSet API change looks like it was intended to be<br>
> > backwards compatible? It's not, as we just realised. I you want<br>
> it to<br>
> > be backwards compatible you'll have to revert that API change.<br>
><br>
> From the ORM version numbers (CR4) I guess we are near endgame and we<br>
> MUST ensure that ORM works with both Infinispan 7.x and 8.x.<br>
> Will is it possible to make the signature of the method backwards<br>
> compatible ?<br>
><br>
><br>
> The method is backwards compatible when compiling and running against<br>
> ISPN 8.<br>
><br>
> I don't think there is any way here to make this backwards compatible<br>
> changing only ISPN with varying versions at runtime without adding new<br>
> methods in ISPN 8 which are identical to keySet, values and entrySet<br>
> except the return type for them are defined as returning the new<br>
> CacheSet/CacheCollection interfaces. The underlying implementation<br>
> for the duplicates would be identical however. Without those new<br>
> methods we wouldn't have access to the more advanced options when<br>
> using distributed streams unless we manually casted. This doesn't<br>
> sound too appealing to me.<br>
><br>
> If this is inconvenient, what can be done in Hibernate Infinispan to<br>
> insulate it from this change ?<br>
><br>
><br>
> This code is essentially doing a clear, but can this code live with<br>
> the semantics of clear [1] that are the same between ISPN 7 & 8? I am<br>
> guessing not.<br>
><br>
> We could add a utility method in ISPN 7 & 8 that is defined as<br>
> returning a ClosebaleIteratorSet/Collection that would be identical in<br>
> both versions that we could also do [2]. Then if ORM calls the<br>
> appropriate static method instead of keySet, values, entrySet it would<br>
> be backwards runtime compatible as well.<br>
><br>
><br>
> Still, I'm wondering whether hibernate-infinispan shouldn't be<br>
> subclassed into multiple versions so that we can be a bit more liberal<br>
> with some changes.<br>
><br>
><br>
> This does hamper changes quite a bit. This change was pretty minor, I<br>
> can't imagine if they are using some class/method that we are removing<br>
> in ISPN 8.<br>
><br>
><br>
> Tristan<br>
><br>
> --<br>
> Tristan Tarrant<br>
> Infinispan Lead<br>
> JBoss, a division of Red Hat<br>
> _______________________________________________<br>
> infinispan-dev mailing list<br>
> <a href="mailto:infinispan-dev@lists.jboss.org" target="_blank">infinispan-dev@lists.jboss.org</a> <mailto:<a href="mailto:infinispan-dev@lists.jboss.org" target="_blank">infinispan-dev@lists.jboss.org</a>><br>
> <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br>
><br>
><br>
> [1]<br>
> <a href="https://github.com/infinispan/infinispan/blob/7.2.x/core/src/main/java/org/infinispan/Cache.java#L329" rel="noreferrer" target="_blank">https://github.com/infinispan/infinispan/blob/7.2.x/core/src/main/java/org/infinispan/Cache.java#L329</a><br>
><br>
> [2] <a href="https://gist.github.com/wburns/c3d3d95483d35be4b8c6" rel="noreferrer" target="_blank">https://gist.github.com/wburns/c3d3d95483d35be4b8c6</a><br>
><br>
><br>
> _______________________________________________<br>
> infinispan-dev mailing list<br>
> <a href="mailto:infinispan-dev@lists.jboss.org" target="_blank">infinispan-dev@lists.jboss.org</a><br>
> <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br>
<br>
<br>
--<br>
Radim Vansa <<a href="mailto:rvansa@redhat.com" target="_blank">rvansa@redhat.com</a>><br>
JBoss Performance Team<br>
<br>
_______________________________________________<br>
infinispan-dev mailing list<br>
<a href="mailto:infinispan-dev@lists.jboss.org" target="_blank">infinispan-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br>
</blockquote></div></div>