[ 
https://issues.apache.org/jira/browse/CAY-2351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16130179#comment-16130179
 ] 

ASF GitHub Bot commented on CAY-2351:
-------------------------------------

GitHub user stariy95 opened a pull request:

    https://github.com/apache/cayenne/pull/239

    CAY-2351 remove commons collections

    This is a big final part of removing external dependencies in Cayenne.
    PR is removing all usages of **commons-collections** and **commons-lang**, 
see [CAY-2351](https://issues.apache.org/jira/browse/CAY-2351) for details.
    
    **Important changes**:
    - **Java 8** is made minimal supported version (see this 
[user@](https://lists.apache.org/thread.html/e7cedd8daa07986a9ecde4e252e4b82fffef269bbac428629bc4341c@%3Cuser.cayenne.apache.org%3E)
 and 
[dev@](https://lists.apache.org/thread.html/35fd12dafc30eac3b3390c5ae0ba7bda00185e085af669e4dc5c6fac@%3Cdev.cayenne.apache.org%3E)
 threads)
    - new utility collections are implemented: `WeakValueMap` and 
`SoftValueMap` they are just a wrapper around `HashMap` that store values in 
`Weak-` and `SoftReference`.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/stariy95/cayenne 
CAY-2351-remove-commons-collections

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cayenne/pull/239.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #239
    
----
commit fddb229d616d9cc29ea46da2a4b1994c73528755
Author: Nikita Timofeev <stari...@gmail.com>
Date:   2017-08-03T15:33:53Z

    CAY-2351 Remove commons-collections usage completely
      enable java 8 by default
      replace commons-collections with plain java

commit 10e070695d6ecd60976e3812630df8dd38b219cd
Author: Nikita Timofeev <stari...@gmail.com>
Date:   2017-08-04T09:16:16Z

    CAY-2351 Remove commons-collections usage completely
      replace commons-collections with plain java

commit e70c5a51174e63e4a36f83fb6aa877c3f85e0729
Author: Nikita Timofeev <stari...@gmail.com>
Date:   2017-08-04T14:58:18Z

    CAY-2351 Remove commons-collections usage completely
      own ReferenceMap implementation
      copy of CompositeCollection

commit 4e623e32eed2142ac332a7aca449896e1f3c13f3
Author: Nikita Timofeev <stari...@gmail.com>
Date:   2017-08-10T11:35:39Z

    Remove java7 support from travis

commit bc7399a313b4fa55f3f083106cbe2012c9397e97
Author: Nikita Timofeev <stari...@gmail.com>
Date:   2017-08-10T15:27:21Z

    CAY-2351 Remove commons-collections usage completely
      Own ReferenceMap implementation

commit 7f7aca813d3eba5eedb9c75567d7f42320a1529b
Author: Nikita Timofeev <stari...@gmail.com>
Date:   2017-08-14T14:41:41Z

    CAY-2351 Remove dependency on commons-collection
      performance optimizations of Weak- and SoftValueMap

commit 3c215ef168b93d2185e3fae61e820ab20ec28b1f
Author: Nikita Timofeev <stari...@gmail.com>
Date:   2017-08-17T09:44:46Z

    CAY-2351 Remove dependency on commons-collection
      release notes
      final cleanup

----


> Remove commons-collections usage completely
> -------------------------------------------
>
>                 Key: CAY-2351
>                 URL: https://issues.apache.org/jira/browse/CAY-2351
>             Project: Cayenne
>          Issue Type: Improvement
>          Components: Core Library
>    Affects Versions: 4.1.M1
>            Reporter: Nikita Timofeev
>            Assignee: Nikita Timofeev
>             Fix For: 4.1.M1
>
>
> This task is final part of effort of removing all external dependencies from 
> *cayenne-server*.
> *Why to do so*:
> * keeping cayenne free of outer dependencies will allow easier integration of 
> Cayenne in projects, reducing issues in case of dependencies incompatibilities
> * most of commons-collections code used by Cayenne can be replaced by plain 
> java (this will require Java 8) so it will be easier to maintain
> * commons-collections v3.2.1 used now have security vulnerabilities (see this 
> [issue|https://issues.apache.org/jira/browse/COLLECTIONS-580])
> *Negative impact*
> Cayenne use some tricky collections from that lib now and will require to 
> deal with their replacement
> Those collections are:
> - {{LRUMap}} this will be seamlessly replaced by already used 
> {{ConcurrentLinkedHashMap}}
> - {{CompositeCollection}} this will be copied into Cayenne code base as it 
> has almost no dependencies and relatively small
> - {{ReferenceMap}} this should be implemented by Cayenne as copying this will 
> lead to copying significant part of commons-collections code base, luckily 
> Cayenne actually use only two variants of this map: strong keys + weak values 
> and strong keys + soft values.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to