Versions Compared

Key

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

...

  • Make sure Plexus AbstractLogEnabled is not used (extended) any more: Maven since 3.x uses SLF4J API instead.
  • Make sure ancient org.codehaus.plexus:plexus-container-default is NOT used as dependency IN ANY SCOPE: use Sisu Plexus Shim instead (but only in test scope) = org.eclipse.sisu:org.eclipse.sisu.plexus (currently 0.3.5, soon 1.0.0), because in general, all shared components should be migrated to JSR330, while use of Plexus Container MAY BE still needed in UTs (due to Plexus Components present in dependencies).
  • Make sure components in project use JSR330 annotations and not org.codehaus.plexus:plexus-component-annotations or EVEN WORSE, the Plexus QDox Javadoc annotations.
  • Drop use of Plexus Component Descriptor (META-INF/plexus/components.xml) and org.codehaus.plexus:plexus-component-metadata plugin: use org.eclipse.sisu:sisu-maven-plugin instead.
  • Use JSR330 (javax.inject) consistently.
  • Sisu tutorials:Migration help

    Maven

    • ... should really drop Maven 2.x support (was it 10 years?), so maven-compat must go.

    ...

    Phase 2

    ...

    • up major version (2.x)
    • Drop ServiceLocator, as it currently forces us to use bad practices: create mutable components, and is just cruft (member population is "circumvented" by init method, no way for ctor injection). Anyway, anyone integrating resolver w/o guice should just manually craft the "component graph", basically all they need is a "factory pattern" w/o the half-ass DI-like cruft in SL (that forces how components are created), see
      Jira
      serverASF JIRA
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      keyMRESOLVER-157
    • make all things proper ctor injection and final (lot of code breakage)

    ...

    Maven version lineJava levelPlexus XMLSisu indexResolverLatest Maven release
    Java package (code)Artifact GA (dependency)Version
    3.0.x5YesNoorg.sonatype.aetherorg.sonatype.aether:aether-api1.113.0.5, 2013-02-19
    3.1.xYesorg.eclipse.aetherorg.eclipse.aether:aether-api0.9.0.M23.1.1, 2013-09-17
    3.2.x61.0.0.v201405183.2.5, 2014-12-14
    3.3.x71.0.2.v201501143.3.9, 2015-11-10
    3.5.xorg.apache.maven.resolver:maven-resolver-api1.1.13.5.4, 2018-06-21
    3.6.x1.4.13.6.3, 2019-11-19
    3.8.x1.6.3

    3.8.6, 2022-06-118, ?

    3.9.x ?81.9.x (1.9.1+18)3.9.6, ?
    4.0.x (old + new Maven API)8?2.x (compat with 1.9.x)?
    4.1.x (only Maven API)?2.x (direct resolver access removed)?
    5.x ??No ?org.apache.maven.resolver3.x (direct resolver access removed)?

    ...

    Phase 2 (post release)

    • drop all deprecated modules/providers/classes
    • up major version?
    • make it Java 8?
    • Get rid of Plexus DI
    • Get rid of Doxia Logging

    ...

    Phase 2 (post release)

    • drop all deprecated modules/providers/classes
    • up major version?
    • make it Java 8?
    • Get rid of Plexus DI
    • Get rid of Doxia Logging

    ...