Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 76 additions & 34 deletions src/site/apt/index.apt
Original file line number Diff line number Diff line change
Expand Up @@ -8,70 +8,112 @@

Overview

Codehaus Plexus -- or more precisely <<Codehaus Plexus Tools and Components>> now -- is a collection of tools and components used by {{{http://maven.apache.org/} Apache Maven}}:
Codehaus Plexus is a collection of small Java libraries that {{{https://maven.apache.org/}Apache Maven}} and
its plugins are built on: archive handling, compiler abstraction, file I/O, XML, string interpolation,
classloader management and code generation.

[[1]] <<tools>>:
If you write Maven plugins you almost certainly depend on several of these already, usually transitively.

* {{{./modello/} Modello}}: tool for code generation from a simple model,
Each project has its own site, linked below, with Javadoc and reports. Sources and issues are on
{{{https://github.com/codehaus-plexus}GitHub}}.

* {{{./plexus-classworlds/}Plexus Classworlds}}: tool for advanced Java ClassLoader management.
* A note on the name

[[2]] <<Plexus components>> (ie. implemented as {{{https://jcp.org/en/jsr/detail?id=330}JSR-330}} compliant components with <Plexus Container (deprecated)>/{{{https://www.eclipse.org/sisu/}Sisu}}):
Plexus originally had two halves: an IoC container, and a set of components written for it.
<<The container is retired.>> Maven moved to {{{https://www.eclipse.org/sisu/}Eclipse Sisu}} and
{{{https://jcp.org/en/jsr/detail?id=330}JSR-330}} years ago, and nothing listed below needs a Plexus
container to run -- the components are ordinary JSR-330 beans.

* {{{./plexus-archiver/}plexus-archiver}}: components to manipulate archives,
What remains, and what this project is now, is the second half: the libraries below. The container
documentation is still on this site, under <Old IoC Documentation>, because a great deal of writing
from that era links to it. See {{{./ref/feature-comparison.html}Feature Comparison}} for how Plexus
related to other IoC ecosystems of the time.

* {{{./plexus-compiler/}plexus-compiler}}: components to manipulate compilers,
Libraries

* {{{./plexus-digest/}plexus-digest}}:
* {{{./plexus-utils/}plexus-utils}} -- utilities for strings, files, command lines and process execution.

* {{{./plexus-i18n/}plexus-i18n}}:
* {{{./plexus-xml/}plexus-xml}} -- XML classes split out of <plexus-utils> 4 (<<<Xpp3Dom>>> and friends).

* {{{./plexus-interactivity/}plexus-interactivity}}:
* {{{./plexus-io/}plexus-io}} -- file and resource abstractions, selectors and mappers.

* {{{./plexus-interpolation/}plexus-interpolation}}: flexible interpolation framework,
* {{{./plexus-interpolation/}plexus-interpolation}} -- resolves expressions in the <<<$\{...\}>>> style;
the engine behind POM interpolation.

* {{{./plexus-io/}plexus-io}}: components designed for use in I/O operations,
* {{{./plexus-classworlds/}plexus-classworlds}} -- classloader management; how Maven isolates plugins
from itself.

* {{{./plexus-languages/}plexus-languages}}: shared language-oriented features (Java, ...),
[]

Components

* {{{./plexus-archiver/}plexus-archiver}} -- one API over zip, jar, tar and their compressed variants.

* {{{./plexus-compiler/}plexus-compiler}} -- one API over javac, ECJ, AspectJ and others; used by
<maven-compiler-plugin>.

* {{{./plexus-languages/}plexus-languages}} -- reads <<<module-info>>> and splits the classpath from
the module path (<plexus-java>).

* {{{./plexus-sec-dispatcher/}plexus-sec-dispatcher}} -- encrypts and decrypts passwords in
<<<settings.xml>>>. See the
{{{https://maven.apache.org/guides/mini/guide-encryption-4.html}Maven encryption guide}} for usage.

* {{{./plexus-resources/}plexus-resources}}: a component to transparently retrieve resources from the filesystem, classpath or internet,
* {{{./plexus-resources/}plexus-resources}} -- reads a resource from the filesystem, the classpath or a URL.

* {{{./plexus-velocity/}plexus-velocity}}: component to render velocity templates.
* {{{./plexus-velocity/}plexus-velocity}} -- Apache Velocity integration.

[]
* {{{./plexus-i18n/}plexus-i18n}} -- resource bundle lookup for localised messages.

[[3]] <<Parent POM>>:
* {{{./plexus-interactivity/}plexus-interactivity}} -- prompts the user on the console.

* Plexus Parent POM: {{{./plexus-pom/}plexus}},
* {{{./plexus-build-api/}plexus-build-api}} -- lets plugins report file changes to an incremental
build, such as m2e.

[[4]] <<utilities>>:
[]

Tooling

* {{{./plexus-utils/} Plexus Utils}},
* {{{./modello/}Modello}} -- generates Java classes, readers and writers, XSD and documentation from a
single model file. MIT licensed; everything else here is Apache-2.0.

* {{{./plexus-xml/} Plexus XML}}.
* {{{./plexus-testing/}plexus-testing}} -- JUnit 5 support for testing JSR-330 components.

[[5]] <(deprecated) {{{./plexus-containers/}Plexus Container}} (IoC container and companion tools)>, replaced by {{{https://www.eclipse.org/sisu/}Eclipse Sisu}} and {{{https://jcp.org/en/jsr/detail?id=330}JSR-330}}
* {{{./plexus-pom/}plexus}} -- the parent POM every project here inherits.

[]

Retired

These are archived and receive no fixes, including security fixes. Don't start anything new on them.

============================
* {{{./plexus-containers/}plexus-containers}} -- use {{{https://www.eclipse.org/sisu/}Eclipse Sisu}}
with JSR-330 annotations.

IMPORTANT NOTICE:
Plexus Container and Companion Tools History
* {{{https://github.com/codehaus-plexus/plexus-cipher}plexus-cipher}} -- absorbed into
{{{./plexus-sec-dispatcher/}plexus-sec-dispatcher}} 4.x.

Plexus was initially composed of 2 parts: Plexus Container (IoC and companion tools) and Plexus Components (like Spring IoC and Spring Components).
* {{{./plexus-digest/}plexus-digest}} -- use <<<java.security.MessageDigest>>>, or Commons Codec.

The project was previously focused on {{{./plexus-containers/}Plexus Container (IoC and companion tools)}}, not so much on Plexus Components:
<<Plexus Container (IoC and companion tools)>> is now replaced with {{{https://www.eclipse.org/sisu/}Eclipse Sisu}}, written as a {{{https://jcp.org/en/jsr/detail?id=330}JSR-330}}-compliant extension on Google Guice.
We kept the whole IoC + components content in this site for IoC historical reference, even if the <{{{./plexus-containers/}IoC and companion tools}}> part is now obsolete.
* {{{https://github.com/codehaus-plexus/plexus-cli}plexus-cli}} -- use Commons CLI or picocli.

============================
* {{{https://github.com/codehaus-plexus/plexus-component-factories}plexus-component-factories}} and
{{{https://github.com/codehaus-plexus/plexus-maven-plugin}plexus-maven-plugin}} -- container concerns
that no longer exist under Sisu.

See the {{{./ref/feature-comparison.html} Feature Comparison}} page for more information on
the differences between Plexus and other IoC ecosystems.
* {{{https://github.com/codehaus-plexus/plexus-swizzle}plexus-swizzle}} -- no replacement.

* {{{https://github.com/codehaus-plexus/plexus-components}plexus-components}} -- split into the
individual repositories above.

[]

The Plexus project provides a number of pre-built components for common tasks and toolkits
such as Velocity, i18n, and {{{./ref/available-components.html} many more}}.
Contributing

Issues and pull requests are welcome on each repository. See
{{{https://github.com/codehaus-plexus/.github/blob/master/CONTRIBUTING.md}CONTRIBUTING}} for building,
the Java baseline and code formatting.

To report a security vulnerability, please follow
{{{https://github.com/codehaus-plexus/.github/blob/master/SECURITY.md}SECURITY}} rather than opening a
public issue.
129 changes: 45 additions & 84 deletions src/site/xdoc/ref/available-components.xml
Original file line number Diff line number Diff line change
@@ -1,91 +1,52 @@
<document>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd">
<properties>
<title>Available Plexus Components</title>
<author email="rahul@codehaus.org">Rahul Thakur</author>
<author email="olamy@codehaus.org">Olivier Lamy</author>
<author>Rahul Thakur</author>
<author>Olivier Lamy</author>
</properties>

<body>
<section name="List of Available Plexus Components">
<subsection name="Main Components">
<table>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="/plexus-archiver">plexus-archiver</a></td>
<td>Component to manipulate archives.</td>
</tr>
<tr>
<td><a href="/plexus-compiler">plexus-compiler</a></td>
<td>Components to manipulate compilers.</td>
</tr>
<tr>
<td><a href="/plexus-digest">plexus-digest</a></td>
<td></td>
</tr>
<tr>
<td><a href="/plexus-i18n">plexus-i18n</a></td>
<td></td>
</tr>
<tr>
<td><a href="/plexus-interactivity">plexus-interactivity</a></td>
<td></td>
</tr>
<tr>
<td><a href="/plexus-interpolation">plexus-interpolation</a></td>
<td>Flexible interpolation Framework.</td>
</tr>
<tr>
<td><a href="/plexus-io">plexus-io</a></td>
<td>Components designed for use in I/O operations.</td>
</tr>
<tr>
<td><a href="/plexus-resources">plexus-resources</a></td>
<td>A component to transparently retrieve resources from the filesystem, classpath or internet.</td>
</tr>
<tr>
<td><a href="/plexus-velocity">plexus-velocity</a></td>
<td>Component to render velocity templates</td>
</tr>
</table>
</subsection>
<subsection name="Sandboxed or Archived Components">
<table>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
<tr>
<td><a href="/plexus-cli">plexus-cli</a></td>
<td>Components to easily create CLIs.</td>
</tr>
<tr>
<td>plexus-spring</td>
<td>Adapter to use plexus components in a springframework application context</td>
</tr>
<tr>
<td>plexus-contextualizer</td>
<td>Component to add values in your Plexus Context.</td>
</tr>
<tr>
<td>plexus-xwork-integration</td>
<td>Provide an easy integration of Plexus with webwork.</td>
</tr>
<tr>
<td>plexus-mail-sender</td>
<td>Mail sender with different providers (javamail, simple)</td>
</tr>
<tr>
<td>plexus-cache</td>
<td>Cache API with different providers (oscache, whirlycache, hashmap)</td>
</tr>
<tr>
<td>plexus-swizzle</td>
<td>A component adaptated from David Blevin's Swizzle project to generate reports from an issue tracking system (JIRA).</td>
</tr>
</table>
</subsection>
<section name="Available Plexus Components">

<p>
<b>This page is out of date and is kept only so existing links to it keep working.</b>
</p>

<p>
The current list of Plexus libraries and components, with links to their sites, is on the
<a href="../index.html">overview page</a>.
</p>

<p>
The list that used to be here described the components as they stood when Plexus was still an
IoC container. Most of what it advertised no longer exists in any form — <code>plexus-cli</code>,
<code>plexus-spring</code>, <code>plexus-contextualizer</code>, <code>plexus-xwork-integration</code>,
<code>plexus-mail-sender</code>, <code>plexus-cache</code> and <code>plexus-swizzle</code> are all
gone or archived — and it listed none of the components that are actually maintained today.
Rather than leave that standing, the content has been removed and the overview page is now the
single index.
</p>

</section>
</body>
</document>