Adaptation of commons-beanutils

The Apache Commons commons-beanutils library is used by the client to access some bean style getter and setter methods using its PropertyUtils class and some type conversions using ConvertUtils. This library was very old and certainly didn't fit well with the Java 9+ module system.

We've taken a copy of the commons-beanutils 1.9.4 code and updated it to both be in a proper module and to use newer dependencies. The changes in our 1.10.x versions are these:

  1. Compile with OpenJDK 11.
  2. Addition of module-info.java to the code, putting the code into a package org.apache.commons.beanutils.
  3. Removed dependencies on commons-logging and commons-collections.
  4. Added dependency on commons-collections4. This is marked as optional in the POM; whether it is optional will depend on which parts of the library you are using.
  5. Commented out all logging calls, which were going to commons-logging.
  6. Changed commons-collection classes to their commons-collections4 equivalents.
  7. Changed references to org.apache.commons.collections.FastHashMap from commons-collection to java.util.concurrent.ConcurrentHashMap. This is as advised in the Commons Collections 4 release note.
  8. Changed references to WeakFastHashMap in PropertyUtils to use java.util.WeakHashMap.

This code is deployed as a Maven artefact with source JAR in our publicly available repository as described on the installation page. The code is not deployed on GitHub as the original code is not either. If anyone needs to see the source we can supply it.

The web site for commons-beanutils is https://commons.apache.org/proper/commons-beanutils