Uploaded image for project: 'Cayenne'
  1. Cayenne
  2. CAY-2351

Remove commons-collections usage completely

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.1.M1
    • Fix Version/s: 4.1.M1
    • Component/s: Core Library
    • Labels:
      None

      Description

      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)

      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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ntimofeev Nikita Timofeev
                Reporter:
                ntimofeev Nikita Timofeev
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: