Hello Gary, SNAPSHOT works for us expected :) There is no rush, I just want to get some ETA :)
On Tue, 16 Oct 2018 at 00:07, Gary Gregory <garydgreg...@gmail.com> wrote: > Are there any open issues we want to address for 4.3 is the SNAPSHOT OK as > is? > > Gary > > On Mon, Oct 15, 2018 at 10:42 AM Maxim Solodovnik <solomax...@gmail.com> > wrote: > > > Hello Benedikt, > > > > I would like to remind you about 4.3 release :) > > > > On Tue, 25 Sep 2018 at 20:45, Maxim Solodovnik <solomax...@gmail.com> > > wrote: > > > > > > Great, > > > > > > Thanks a million! > > > > > > On Tue, 25 Sep 2018 at 20:39, Benedikt Ritter <brit...@apache.org> > > wrote: > > >> > > >> Am Di., 25. Sep. 2018 um 15:36 Uhr schrieb Benedikt Ritter < > > >> brit...@apache.org>: > > >> > > >> > Hello Maxim, > > >> > Am Mo., 24. Sep. 2018 um 05:32 Uhr schrieb Maxim Solodovnik < > > >> > solomax...@gmail.com>: > > >> > > > >> >> Hello, > > >> >> > > >> >> could you please create 4.3-SNAPSHOT build? > > >> >> > > >> > > > >> > I'll check whether I have permission to publish a SNAPSHOT build to > > the > > >> > SNAPSHOT repo. > > >> > > > >> > > >> I've deployed the latest code to > > >> > > > https://repository.apache.org/content/repositories/snapshots/org/apache/commons/commons-collections4/4.3-SNAPSHOT/ > > >> > > >> Regards, > > >> Benedikt > > >> > > >> > > >> > > > >> > > > >> >> > > >> >> And if you have any estimates on 4.3 release, could you please > share > > it? > > >> >> :) > > >> >> > > >> > > > >> > We don't have estimates or a roadmap. But I've this on my list, > > because I > > >> > know you're depending on it. I have two days vacation next week. > That > > may > > >> > be an opportunity for me to work towards a 4.3 release. > > >> > > > >> > Regards, > > >> > Benedikt > > >> > > > >> > > > >> >> > > >> >> > > >> >> > > >> >> On Thu, 20 Sep 2018 at 17:58, Maxim Solodovnik < > solomax...@gmail.com > > > > > >> >> wrote: > > >> >> > > >> >> > One more question: it seems there is no 4.3-SNAPSHOT build > > available > > >> >> > Could you please create it? > > >> >> > > > >> >> > On Thu, 20 Sep 2018 at 12:47, Maxim Solodovnik < > > solomax...@gmail.com> > > >> >> > wrote: > > >> >> > > > > >> >> > > Hello Gary, > > >> >> > > > > >> >> > > I have tested changes, everything works as expected > > >> >> > > Thanks a lot! > > >> >> > > > > >> >> > > I have closed PR, but have no rights to close JIRA :( > > >> >> > > > > >> >> > > Do you have any plans for 4.3 release? > > >> >> > > On Wed, 19 Sep 2018 at 22:11, Gary Gregory < > > garydgreg...@gmail.com> > > >> >> > wrote: > > >> >> > > > > > >> >> > > > Maxim, > > >> >> > > > Thank you for your patch. > > >> >> > > > I created > > https://issues.apache.org/jira/browse/COLLECTIONS-696 and > > >> >> > > > committed you patch to git master. > > >> >> > > > Please verify and close the Jira ticket and GitHub PR. > > >> >> > > > > > >> >> > > > Thank you, > > >> >> > > > Gary > > >> >> > > > > > >> >> > > > On Wed, Sep 19, 2018 at 1:24 AM Maxim Solodovnik < > > >> >> solomax...@gmail.com > > >> >> > > > > >> >> > > > wrote: > > >> >> > > > > > >> >> > > > > Done: > https://github.com/apache/commons-collections/pull/51 > > >> >> > > > > Could you please take a look at this PR? > > >> >> > > > > On Thu, 6 Sep 2018 at 03:17, Gary Gregory < > > garydgreg...@gmail.com > > >> >> > > > >> >> > wrote: > > >> >> > > > > > > > >> >> > > > > > Hi, > > >> >> > > > > > > > >> >> > > > > > Your best shot would be to submit a PR on GitHub which > > includes > > >> >> a > > >> >> > unit > > >> >> > > > > test > > >> >> > > > > > that exercises the new code. > > >> >> > > > > > > > >> >> > > > > > https://github.com/apache/commons-collections > > >> >> > > > > > > > >> >> > > > > > Thank you, > > >> >> > > > > > Gary > > >> >> > > > > > > > >> >> > > > > > On Wed, Sep 5, 2018 at 10:12 AM Maxim Solodovnik < > > >> >> > solomax...@gmail.com> > > >> >> > > > > > wrote: > > >> >> > > > > > > > >> >> > > > > > > Would it be possible to modify the code of > > >> >> > AbstractReferenceMap.java as > > >> >> > > > > > > follows? > > >> >> > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > diff --git > > >> >> > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > >> >> > > > >> >> > > > a/src/main/java/org/apache/commons/collections4/map/AbstractReferenceMap.java > > >> >> > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > >> >> > > > >> >> > > > b/src/main/java/org/apache/commons/collections4/map/AbstractReferenceMap.java > > >> >> > > > > > > index 0eda632f..81f60b4b 100644 > > >> >> > > > > > > --- > > >> >> > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > >> >> > > > >> >> > > > a/src/main/java/org/apache/commons/collections4/map/AbstractReferenceMap.java > > >> >> > > > > > > +++ > > >> >> > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > >> >> > > > >> >> > > > b/src/main/java/org/apache/commons/collections4/map/AbstractReferenceMap.java > > >> >> > > > > > > @@ -400,13 +400,15 @@ public abstract class > > >> >> > AbstractReferenceMap<K, V> > > >> >> > > > > > > extends AbstractHashedMap<K, V> > > >> >> > > > > > > HashEntry<K, V> previous = null; > > >> >> > > > > > > HashEntry<K, V> entry = data[index]; > > >> >> > > > > > > while (entry != null) { > > >> >> > > > > > > - if (((ReferenceEntry<K, V>) > > entry).purge(ref)) { > > >> >> > > > > > > + ReferenceEntry<K, V> refEntry = > > >> >> (ReferenceEntry<K, > > >> >> > V>) > > >> >> > > > > entry; > > >> >> > > > > > > + if (refEntry.purge(ref)) { > > >> >> > > > > > > if (previous == null) { > > >> >> > > > > > > data[index] = entry.next; > > >> >> > > > > > > } else { > > >> >> > > > > > > previous.next = entry.next; > > >> >> > > > > > > } > > >> >> > > > > > > this.size--; > > >> >> > > > > > > + refEntry.onPurge(); > > >> >> > > > > > > return; > > >> >> > > > > > > } > > >> >> > > > > > > previous = entry; > > >> >> > > > > > > @@ -721,12 +723,15 @@ public abstract class > > >> >> > AbstractReferenceMap<K, V> > > >> >> > > > > > > extends AbstractHashedMap<K, V> > > >> >> > > > > > > throw new Error(); > > >> >> > > > > > > } > > >> >> > > > > > > > > >> >> > > > > > > + protected void onPurge() { > > >> >> > > > > > > + } > > >> >> > > > > > > + > > >> >> > > > > > > /** > > >> >> > > > > > > * Purges the specified reference > > >> >> > > > > > > * @param ref the reference to purge > > >> >> > > > > > > * @return true or false > > >> >> > > > > > > */ > > >> >> > > > > > > - boolean purge(final Reference<?> ref) { > > >> >> > > > > > > + protected boolean purge(final Reference<?> > ref) > > { > > >> >> > > > > > > boolean r = parent.keyType != > > >> >> > ReferenceStrength.HARD && > > >> >> > > > > key == > > >> >> > > > > > > ref; > > >> >> > > > > > > r = r || parent.valueType != > > >> >> ReferenceStrength.HARD > > >> >> > && > > >> >> > > > > value > > >> >> > > > > > > == ref; > > >> >> > > > > > > if (r) { > > >> >> > > > > > > @@ -1073,4 +1078,17 @@ public abstract class > > >> >> > AbstractReferenceMap<K, V> > > >> >> > > > > > > extends AbstractHashedMap<K, V> > > >> >> > > > > > > protected boolean isKeyType(final > ReferenceStrength > > >> >> type) { > > >> >> > > > > > > return this.keyType == type; > > >> >> > > > > > > } > > >> >> > > > > > > + > > >> >> > > > > > > + /** > > >> >> > > > > > > + * Provided protected read-only access to the > value > > type. > > >> >> > > > > > > + * @param type the type to check against. > > >> >> > > > > > > + * @return true if valueType has the specified > type > > >> >> > > > > > > + */ > > >> >> > > > > > > + protected boolean isValueType(final > > ReferenceStrength > > >> >> type) > > >> >> > { > > >> >> > > > > > > + return this.valueType == type; > > >> >> > > > > > > + } > > >> >> > > > > > > + > > >> >> > > > > > > + public boolean isPurgeValues() { > > >> >> > > > > > > + return purgeValues; > > >> >> > > > > > > + } > > >> >> > > > > > > } > > >> >> > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > On Mon, 3 Sep 2018 at 20:08, Maxim Solodovnik < > > >> >> > solomax...@gmail.com> > > >> >> > > > > > > wrote: > > >> >> > > > > > > > > >> >> > > > > > > > Thanks a lot for the answer, > > >> >> > > > > > > > > > >> >> > > > > > > > OpenJPA ReferenceHashMap overrides purge method to be > > able > > >> >> to > > >> >> > call > > >> >> > > > > > > > custom methods keyExpired/valueExpired [1] > > >> >> > > > > > > > I see no way to migrate this code without massive > > >> >> copy/paste or > > >> >> > > > > > > reflection > > >> >> > > > > > > > ... > > >> >> > > > > > > > > > >> >> > > > > > > > Maybe you can suggest something? > > >> >> > > > > > > > Or maybe commons-collections API can be enhanced so > > this > > >> >> task > > >> >> > will be > > >> >> > > > > > > > trivial :) > > >> >> > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > >> >> > > > >> >> > > > https://github.com/apache/openjpa/blob/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/ReferenceHashMap.java#L138 > > >> >> > > > > > > > > > >> >> > > > > > > > On Mon, 3 Sep 2018 at 20:03, Julio Oliveira > > >> >> > > > > > > > <julio.julioolive...@gmail.com> wrote: > > >> >> > > > > > > > > > > >> >> > > > > > > > > What is realy your problem??.. > > >> >> > > > > > > > > > > >> >> > > > > > > > > On Sat, Sep 1, 2018, 5:46 AM Maxim Solodovnik < > > >> >> > > > > solomax...@gmail.com> > > >> >> > > > > > > > wrote: > > >> >> > > > > > > > > > > >> >> > > > > > > > > > Hello, > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > I'm trying to migrate code of Apache OpenJPA from > > >> >> > > > > commons-collections > > >> >> > > > > > > > > > to commons-collections4 > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > The only real issue so far with migrating this > > class > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > >> >> > > > >> >> > > > https://github.com/apache/openjpa/blob/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/ReferenceHashMap.java#L112 > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > code of commons-collections4 is more restrictive > > could > > >> >> you > > >> >> > please > > >> >> > > > > > > > > > suggest how custom purge can be implemented? > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > -- > > >> >> > > > > > > > > > WBR > > >> >> > > > > > > > > > Maxim aka solomax > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > > > > > >> >> > --------------------------------------------------------------------- > > >> >> > > > > > > > > > To unsubscribe, e-mail: > > >> >> > user-unsubscr...@commons.apache.org > > >> >> > > > > > > > > > For additional commands, e-mail: > > >> >> > user-h...@commons.apache.org > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > -- > > >> >> > > > > > > > WBR > > >> >> > > > > > > > Maxim aka solomax > > >> >> > > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > > > >> >> > > > > > > -- > > >> >> > > > > > > WBR > > >> >> > > > > > > Maxim aka solomax > > >> >> > > > > > > > > >> >> > > > > > > >> >> > > > > > > >> >> > > > > > > >> >> > > > > -- > > >> >> > > > > WBR > > >> >> > > > > Maxim aka solomax > > >> >> > > > > > > >> >> > > > > > > >> >> > --------------------------------------------------------------------- > > >> >> > > > > To unsubscribe, e-mail: > user-unsubscr...@commons.apache.org > > >> >> > > > > For additional commands, e-mail: > > user-h...@commons.apache.org > > >> >> > > > > > > >> >> > > > > > > >> >> > > > > >> >> > > > > >> >> > > > > >> >> > > -- > > >> >> > > WBR > > >> >> > > Maxim aka solomax > > >> >> > > > >> >> > > > >> >> > > > >> >> > -- > > >> >> > WBR > > >> >> > Maxim aka solomax > > >> >> > > > >> >> > > >> >> > > >> >> -- > > >> >> WBR > > >> >> Maxim aka solomax > > >> >> > > >> > > > > > > > > > > > > > -- > > > WBR > > > Maxim aka solomax > > > > > > > > -- > > WBR > > Maxim aka solomax > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org > > For additional commands, e-mail: user-h...@commons.apache.org > > > > > -- WBR Maxim aka solomax