The org.codehaus.classworlds package is the original Classworlds 1.x API (pre-2010). It has been
deprecated since 2014 (version 2.5.2) in favour of org.codehaus.plexus.classworlds. It cannot
be removed without coordinating with the Eclipse Sisu and Apache Maven teams.
In April 2026, PR #141 removed this package after 12 years of deprecation, expecting that all consumers had migrated. The change was reverted within days (commit 223416e) because:
org.eclipse.sisu:org.eclipse.sisu.plexus (the DI framework used by Maven 3+) contains compiled
bytecode that directly references classes in this package.
Inspecting org.eclipse.sisu.plexus-1.0.0.jar:
org.codehaus.plexus.component.configurator.converters.special.ClassRealmConverter
references:
org/codehaus/classworlds/ClassRealm
org/codehaus/classworlds/ClassRealmAdapter
org/codehaus/classworlds/ClassRealmReverseAdapter
ClassRealmConverter is a core Sisu component that handles injection of ClassRealm instances
into Plexus components. Without these three classes on the classpath at runtime, any Maven 3+
build or any application embedding Sisu fails with ClassNotFoundException or
NoClassDefFoundError before it can do any useful work.
This is a binary dependency on a released artifact, not a source-level dependency. The fix cannot be on the plexus-classworlds side alone.
org.codehaus.classworlds
├── ClassRealm (interface) <- referenced by Sisu
├── ClassRealmAdapter (wraps new → old) <- referenced by Sisu
├── ClassRealmReverseAdapter (wraps old → new) <- referenced by Sisu
├── ClassWorld (interface)
├── ClassWorldAdapter (wraps new → old)
├── ClassWorldReverseAdapter (wraps old → new)
├── DefaultClassRealm (adapter impl)
├── ClassWorldException
├── DuplicateRealmException
├── NoSuchRealmException
├── ConfigurationException
├── Configurator
├── ConfiguratorAdapter
├── Launcher
├── BytesURLConnection
└── BytesURLStreamHandler
The adapter classes use the standard Adapter pattern to bridge between the old interface and the
modern org.codehaus.plexus.classworlds.realm.ClassRealm implementation.
Do not remove classes or change any public API in org.codehaus.classworlds.
Do not add new API to this package. Any new features belong in org.codehaus.plexus.classworlds.
Before any release that touches this package, verify with the Sisu test suite:
mvn clean install # build plexus-classworlds locally
cd /path/to/sisu.plexus
mvn clean test -Dplexus-classworlds.version=<snapshot>Removal requires the following preconditions to all be true:
- A release of
org.eclipse.sisu:org.eclipse.sisu.plexusships that no longer referencesorg.codehaus.classworlds.*in its bytecode. - That Sisu release has been adopted by a stable Apache Maven release.
- The Maven release is widely deployed (typically means it shipped in at least two Maven minor versions and toolchains like Maven Wrapper have picked it up).
Until those conditions are met, this package stays.
When those conditions are met, the removal should be done in a major version of plexus-classworlds with a clear upgrade notice in the release notes.
- Original PR that removed the package: #141
- Original removal issue: #130
- Revert commit: 223416e
- Eclipse Sisu: https://github.com/eclipse/sisu.plexus