Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

maven-shared-utils is a replacement for plexus-utils. It is not a drop-in replacement though as all packages are under org.apache.maven.shared.utils.

Rational

  1. A lot of old plugins use plexus-utils, thus it's crucial to remain backward compatible. By moving to an own package space and largely remain API compatible we can finally remove old obsolete code.
  1. For implementing new features we need a quick turnaround time. This is only possible for internally maintained projects.
  1. We can finally upgrade that stuff to proper 2012 style and don't need to keep em 2005ish anymore (wink)
  1. Many classes of plexus utils are forks of classes from Ant / jakarta / commons / maven1-utils and a whole lot other Apache projects. Having this stuff maintained outside the ASF makes it hard to contribute back changes and apply important fixes from the original projects.

h2 Status

This effort is ongoing WorkInProgress.

h3 Open Questions

  1. How to deal with stuff which is available in commons-io and other commons projects? Simply shade them in? I'd not suggest to move to commons-* directly as this might cause problems with plugins which use very old commons libraries themselfs. But otoh I do not like to maintain any commons code in our own codebase!

Compatibility Matrix

plexus-utils Class

maven-shared-utils Class

Status

IP-cleaned

Note

AbstractScanner

 

 

 

 

Base64

 

 

 

 

CachedMap

 

 

 

 

CollectionUtils

 

 

 

 

DirectoryScanner

 

 

 

 

DirectoryWalkListener

 

 

 

 

ExceptionUtils

 

 

 

 

Expand

 

 

 

 

FastMap

 

 

 

 

FileUtils

 

 

 

 

IOUtil

 

 

 

 

InterpolationFilterReader

 

 

 

 

LineOrientedInterpolatingReader

 

 

 

 

Os

 

 

 

 

PathTool

 

 

 

 

PropertyUtils

 

 

 

 

ReaderFactory

 

 

 

 

ReflectionUtils

 

 

 

 

Scanner

 

 

 

 

SelectorUtils

 

 

 

 

StringInputStream

 

 

 

 

StringOutputStream

 

 

 

 

StringUtils

 

 

 

 

SweeperPool

 

 

 

 

TypeFormat

 

 

 

 

WriterFactory