Hello Benedikt, I would like to remind you about 4.3 release :)
On Tue, 25 Sep 2018 at 20:45, Maxim Solodovnik <[email protected]> wrote: > > Great, > > Thanks a million! > > On Tue, 25 Sep 2018 at 20:39, Benedikt Ritter <[email protected]> wrote: >> >> Am Di., 25. Sep. 2018 um 15:36 Uhr schrieb Benedikt Ritter < >> [email protected]>: >> >> > Hello Maxim, >> > Am Mo., 24. Sep. 2018 um 05:32 Uhr schrieb Maxim Solodovnik < >> > [email protected]>: >> > >> >> 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 <[email protected]> >> >> 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 <[email protected]> >> >> > 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 <[email protected]> >> >> > 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 < >> >> [email protected] >> >> > > >> >> > > > 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 <[email protected] >> >> > >> >> > 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 < >> >> > [email protected]> >> >> > > > > > 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 < >> >> > [email protected]> >> >> > > > > > > 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 >> >> > > > > > > > <[email protected]> wrote: >> >> > > > > > > > > >> >> > > > > > > > > What is realy your problem??.. >> >> > > > > > > > > >> >> > > > > > > > > On Sat, Sep 1, 2018, 5:46 AM Maxim Solodovnik < >> >> > > > > [email protected]> >> >> > > > > > > > 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: >> >> > [email protected] >> >> > > > > > > > > > For additional commands, e-mail: >> >> > [email protected] >> >> > > > > > > > > > >> >> > > > > > > > > > >> >> > > > > > > > >> >> > > > > > > > >> >> > > > > > > > >> >> > > > > > > > -- >> >> > > > > > > > WBR >> >> > > > > > > > Maxim aka solomax >> >> > > > > > > > >> >> > > > > > > >> >> > > > > > > >> >> > > > > > > -- >> >> > > > > > > WBR >> >> > > > > > > Maxim aka solomax >> >> > > > > > > >> >> > > > > >> >> > > > > >> >> > > > > >> >> > > > > -- >> >> > > > > WBR >> >> > > > > Maxim aka solomax >> >> > > > > >> >> > > > > >> >> --------------------------------------------------------------------- >> >> > > > > To unsubscribe, e-mail: [email protected] >> >> > > > > For additional commands, e-mail: [email protected] >> >> > > > > >> >> > > > > >> >> > > >> >> > > >> >> > > >> >> > > -- >> >> > > WBR >> >> > > Maxim aka solomax >> >> > >> >> > >> >> > >> >> > -- >> >> > WBR >> >> > Maxim aka solomax >> >> > >> >> >> >> >> >> -- >> >> WBR >> >> Maxim aka solomax >> >> >> > > > > > -- > WBR > Maxim aka solomax -- WBR Maxim aka solomax --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
