Skip to content

Commit 5fbc649

Browse files
committed
Rewrite README with usage, status and version guidance
Adds what the library does - realms as a directed graph rather than a hierarchy, which is how Maven isolates plugins - plus the launcher, a dependency snippet, the Java baseline and documentation links. The Backward Compatibility section is kept verbatim. It is the most valuable documentation in the organisation: it records why the legacy org.codehaus.classworlds package cannot be removed, which Sisu bytecode references it, and the PR that tried and had to be reverted. The skeleton is built around it rather than over it. Drops the 2015 'current master is now at' line. Part of codehaus-plexus/.github#58
1 parent 3b2de05 commit 5fbc649

1 file changed

Lines changed: 49 additions & 8 deletions

File tree

README.md

Lines changed: 49 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,42 @@
1-
Plexus-Classworlds
2-
==================
1+
# Plexus Classworlds
32

4-
[![Apache License, Version 2.0, January 2004](https://img.shields.io/github/license/codehaus-plexus/plexus-classworlds.svg?label=License)](http://www.apache.org/licenses/)
5-
[![Maven Central](https://img.shields.io/maven-central/v/org.codehaus.plexus/plexus-classworlds.svg?label=Maven%20Central)](https://search.maven.org/artifact/org.codehaus.plexus/plexus-classworlds)
3+
[![Maven Central](https://img.shields.io/maven-central/v/org.codehaus.plexus/plexus-classworlds.svg?label=Maven%20Central)](https://central.sonatype.com/artifact/org.codehaus.plexus/plexus-classworlds)
4+
[![GitHub CI](https://github.com/codehaus-plexus/plexus-classworlds/workflows/GitHub%20CI/badge.svg)](https://github.com/codehaus-plexus/plexus-classworlds/actions)
65
[![Reproducible Builds](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/jvm-repo-rebuild/reproducible-central/master/content/org/codehaus/plexus/plexus-classworlds/badge.json)](https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/codehaus/plexus/plexus-classworlds/README.md)
7-
![Build Status](https://github.com/codehaus-plexus/plexus-classworlds/workflows/GitHub%20CI/badge.svg)
6+
[![License](https://img.shields.io/github/license/codehaus-plexus/plexus-classworlds.svg?label=License)](https://www.apache.org/licenses/LICENSE-2.0)
87

9-
Current master is now at https://github.com/codehaus-plexus/plexus-classworlds
8+
A classloader framework for container developers who need more than Java's built-in hierarchy.
109

11-
Backward Compatibility
12-
----------------------
10+
Classworlds replaces the strict parent-child classloader tree with a pool of **realms** that can import
11+
specific packages from each other — a directed graph rather than a hierarchy. That is how Maven keeps a
12+
plugin's dependencies from colliding with its own, and how it loads plugins in isolation from one another.
13+
14+
It also ships a [launcher](https://codehaus-plexus.github.io/plexus-classworlds/launcher.html) that builds
15+
the realms from a configuration file and invokes an application's `main` method in the right one. Maven's
16+
own startup scripts use it.
17+
18+
## Status
19+
20+
Maintained, conservatively. Maven's startup depends on this, so changes are deliberate and public API is
21+
kept compatible.
22+
23+
## Using it
24+
25+
```xml
26+
<dependency>
27+
<groupId>org.codehaus.plexus</groupId>
28+
<artifactId>plexus-classworlds</artifactId>
29+
<version>2.12.0</version>
30+
</dependency>
31+
```
32+
33+
Check the badge above for the current version.
34+
35+
## Requirements
36+
37+
Java 8 or later.
38+
39+
## Backward Compatibility
1340

1441
This project maintains a legacy compatibility layer in the `org.codehaus.classworlds` package.
1542
This package **cannot be removed** without coordinating with the Eclipse Sisu and Apache Maven teams.
@@ -24,3 +51,17 @@ PR #141 removed this package and had to be reverted immediately (see commit 2234
2451
New code should use the `org.codehaus.plexus.classworlds` package.
2552
See [COMPATIBILITY.md](COMPATIBILITY.md) for the full picture, including what Sisu references
2653
and what is required before any future removal can be considered.
54+
55+
## Documentation
56+
57+
- [Project site](https://codehaus-plexus.github.io/plexus-classworlds/) — including [API usage](https://codehaus-plexus.github.io/plexus-classworlds/apiusage.html) and the [launcher](https://codehaus-plexus.github.io/plexus-classworlds/launcher.html)
58+
- [Javadoc](https://javadoc.io/doc/org.codehaus.plexus/plexus-classworlds)
59+
- [Release notes](https://github.com/codehaus-plexus/plexus-classworlds/releases)
60+
61+
## Contributing
62+
63+
See [CONTRIBUTING.md](https://github.com/codehaus-plexus/.github/blob/master/CONTRIBUTING.md). In short:
64+
`mvn verify` builds, and run `mvn spotless:apply` before pushing or CI will fail on formatting.
65+
66+
Please report security vulnerabilities privately — see
67+
[SECURITY.md](https://github.com/codehaus-plexus/.github/blob/master/SECURITY.md), not a public issue.

0 commit comments

Comments
 (0)