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.

Rationale

  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.

Status

This effort is onoing WorkInProgress: see maven-shared-utils.

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

 

we shall shade in commons-io Base64 where this class is taken from originally anyway

Yes, ALv2 and ASF already

 

CachedMap

 

 

 

 

CollectionUtils

CollectionUtils

 

Yes, moved from maven-verifier + additional rewrites

 

DirectoryScanner

io/DirectoryScanner

 

Yes, moved from maven-verifier + patches from iCLA folks

 

DirectoryWalkListener

io/DirectoryWalkListener

 

Yes, imported ALv2 (c) ASF

 

DirectoryWalker

io/DirectoryWalker

 

Yes, imported ALv2 (c) ASF

 

ExceptionUtils

ExceptionUtils

 

Yes, complete clean rewrite

 

Expand

Expand

 

Yes, complete clean rewrite

 

FastMap

 

doubt that is of any use nowadays. java.util maps are much faster these days.

Yes, not needed as it's not implemented

 

FileUtils

io/FileUtils

 

Yes, moved from maven-verifier + patches from iCLA folks

 

IOUtil

io/IOUtil

 

Yes, moved from maven-verifier + patches from iCLA folks

 

InterpolationFilterReader

 

 

 

 

LineOrientedInterpolatingReader

 

 

 

 

Os

Os

 

Yes, moved from maven-verifier + patches from iCLA folks

 

PathTool

PathTool

 

Yes, complete clean rewrite

 

PropertyUtils

PropertyUtils

 

Yes, complete clean rewrite

 

ReaderFactory

 

 

 

 

ReflectionUtils

 

 

 

 

Scanner

 

 

 

 

SelectorUtils

io/SelectorUtils

 

Yes, moved from maven-verifier + patches from iCLA folks

 

StringInputStream

 

 

 

 

StringOutputStream

 

 

 

 

StringUtils

StringUtils

 

Yes, moved from maven-verifier + patches from iCLA folks

 

SweeperPool

 

 

 

 

TypeFormat

 

 

 

 

WalkCollector

io/WalkCollector

 

Yes, clean rewrite

 

WriterFactory

 

 

 

 

cli/*

cli/*

Just missing the import of 3 classes which krosenvold authored to 100%

Yes, moved from maven-verifier + patches from iCLA folks

 

 

 

 

 

 

  • No labels