In general, this class resembles very much to snap remover, a very involved beast with all of it's "features" (coded against plexus when no guava was present in Nexus). While this does not mean this is wrong, following comments are meant generally to this class:

* do not use commons-*, use Guava instead. Classes like Strings are available
* use Maps, Lists for construction of those