<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Thu, Aug 6, 2015 at 10:39 PM Radim Vansa &lt;<a href="mailto:rvansa@redhat.com">rvansa@redhat.com</a>&gt; 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&#39;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>
&gt;<br>
&gt;<br>
&gt; On Thu, Aug 6, 2015 at 4:42 AM Tristan Tarrant &lt;<a href="mailto:ttarrant@redhat.com" target="_blank">ttarrant@redhat.com</a><br>
&gt; &lt;mailto:<a href="mailto:ttarrant@redhat.com" target="_blank">ttarrant@redhat.com</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;     On 06/08/2015 10:30, Sanne Grinovero wrote:<br>
&gt;     &gt; On 6 August 2015 at 03:01, William Burns &lt;<a href="mailto:mudokonman@gmail.com" target="_blank">mudokonman@gmail.com</a><br>
&gt;     &lt;mailto:<a href="mailto:mudokonman@gmail.com" target="_blank">mudokonman@gmail.com</a>&gt;&gt; wrote:<br>
&gt;     &gt;&gt; It seems ORM was compiled with a version earlier than Beta1 but<br>
&gt;     then ran<br>
&gt;     &gt;&gt; with Beta2?  The keySet method was changed to return a subclass of<br>
&gt;     &gt;&gt; CloseableIteratorSet with Beta2 to support distributed streams [1].<br>
&gt;     &gt;<br>
&gt;     &gt; BTW that CacheSet API change looks like it was intended to be<br>
&gt;     &gt; backwards compatible? It&#39;s not, as we just realised. I you want<br>
&gt;     it to<br>
&gt;     &gt; be backwards compatible you&#39;ll have to revert that API change.<br>
&gt;<br>
&gt;      From the ORM version numbers (CR4) I guess we are near endgame and we<br>
&gt;     MUST ensure that ORM works with both Infinispan 7.x and 8.x.<br>
&gt;     Will is it possible to make the signature of the method backwards<br>
&gt;     compatible ?<br>
&gt;<br>
&gt;<br>
&gt; The method is backwards compatible when compiling and running against<br>
&gt; ISPN 8.<br>
&gt;<br>
&gt; I don&#39;t think there is any way here to make this backwards compatible<br>
&gt; changing only ISPN with varying versions at runtime without adding new<br>
&gt; methods in ISPN 8 which are identical to keySet, values and entrySet<br>
&gt; except the return type for them are defined as returning the new<br>
&gt; CacheSet/CacheCollection interfaces.  The underlying implementation<br>
&gt; for the duplicates would be identical however.  Without those new<br>
&gt; methods we wouldn&#39;t have access to the more advanced options when<br>
&gt; using distributed streams unless we manually casted.  This doesn&#39;t<br>
&gt; sound too appealing to me.<br>
&gt;<br>
&gt;     If this is inconvenient, what can be done in Hibernate Infinispan to<br>
&gt;     insulate it from this change ?<br>
&gt;<br>
&gt;<br>
&gt; This code is essentially doing a clear, but can this code live with<br>
&gt; the semantics of clear [1] that are the same between ISPN 7 &amp; 8?  I am<br>
&gt; guessing not.<br>
&gt;<br>
&gt; We could add a utility method in ISPN 7 &amp; 8 that is defined as<br>
&gt; returning a ClosebaleIteratorSet/Collection that would be identical in<br>
&gt; both versions that we could also do [2].  Then if ORM calls the<br>
&gt; appropriate static method instead of keySet, values, entrySet it would<br>
&gt; be backwards runtime compatible as well.<br>
&gt;<br>
&gt;<br>
&gt;     Still, I&#39;m wondering whether hibernate-infinispan shouldn&#39;t be<br>
&gt;     subclassed into multiple versions so that we can be a bit more liberal<br>
&gt;     with some changes.<br>
&gt;<br>
&gt;<br>
&gt; This does hamper changes quite a bit.  This change was pretty minor, I<br>
&gt; can&#39;t imagine if they are using some class/method that we are removing<br>
&gt; in ISPN 8.<br>
&gt;<br>
&gt;<br>
&gt;     Tristan<br>
&gt;<br>
&gt;     --<br>
&gt;     Tristan Tarrant<br>
&gt;     Infinispan Lead<br>
&gt;     JBoss, a division of Red Hat<br>
&gt;     _______________________________________________<br>
&gt;     infinispan-dev mailing list<br>
&gt;     <a href="mailto:infinispan-dev@lists.jboss.org" target="_blank">infinispan-dev@lists.jboss.org</a> &lt;mailto:<a href="mailto:infinispan-dev@lists.jboss.org" target="_blank">infinispan-dev@lists.jboss.org</a>&gt;<br>
&gt;     <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br>
&gt;<br>
&gt;<br>
&gt; [1]<br>
&gt; <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>
&gt;<br>
&gt; [2] <a href="https://gist.github.com/wburns/c3d3d95483d35be4b8c6" rel="noreferrer" target="_blank">https://gist.github.com/wburns/c3d3d95483d35be4b8c6</a><br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; infinispan-dev mailing list<br>
&gt; <a href="mailto:infinispan-dev@lists.jboss.org" target="_blank">infinispan-dev@lists.jboss.org</a><br>
&gt; <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 &lt;<a href="mailto:rvansa@redhat.com" target="_blank">rvansa@redhat.com</a>&gt;<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>