This is an automated email from the ASF dual-hosted git repository. kwin pushed a commit to branch feature/MNG-7609-clarify-extension-descriptor in repository https://gitbox.apache.org/repos/asf/maven.git
commit 8cecf3ee6db4afb75078a1578002073375a258d9 Author: Konrad Windszus <k...@apache.org> AuthorDate: Fri Dec 2 13:37:27 2022 +0100 [MNG-7609] Clarify extension descriptor documentation --- maven-core/src/main/mdo/extension.mdo | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/maven-core/src/main/mdo/extension.mdo b/maven-core/src/main/mdo/extension.mdo index 9e94581ba..e80a8001d 100644 --- a/maven-core/src/main/mdo/extension.mdo +++ b/maven-core/src/main/mdo/extension.mdo @@ -23,7 +23,9 @@ under the License. <name>ExtensionDescriptor</name> <description><![CDATA[ Extension descriptor, stored in <code>META-INF/maven/extension.xml</code> in an extension's jar artifact to - precisely control parts of the extension and dependencies to expose. + precisely control parts of the extension and dependencies to expose in the API class loader. + Maven uses Plexus Classworlds to build the class loader hierarchy, therefore some concepts used in this extensions + stem from Plexus Classworlds originally. <p><i>Notice:</i> this documentation is generated from a Modello model but the code executed is not generated from this descriptor. Please report if you find anything wrong.</p> ]]></description> @@ -46,8 +48,10 @@ under the License. <type>String</type> <multiplicity>*</multiplicity> </association> - <description>Packages from the artifact that are exposed.</description> - <!-- TODO explain package vs package.class vs package.* --> + <description><![CDATA[Restricts the classes/resources from the current artifacts class realm that are exposed. Values ending with ".*" expose all classes/resources which are directly contained in the given package in binary form. + Other values define only the prefix of classes/resources being exposed. Their binary name must be equal to the prefix or starting with the prefix (followed by "." or "$"). + In particular this includes all subpackages. Despite the element name one can also only expose individual classes of a particular package by adding their binary name as value. + ]]></description> </field> <field> <name>exportedArtifacts</name> @@ -56,7 +60,8 @@ under the License. <type>String</type> <multiplicity>*</multiplicity> </association> - <description><![CDATA[Artifacts that are exposed: <code>groupId:artifactId</code> file.]]> + <description><![CDATA[Artifacts in the format <code>groupId:artifactId</code>. All the ones listed here are filtered (i.e. removed) from plugin and build extension class realms, i.e. giving those coordinates in plugin/build extension dependencies + has no effect.]]> </description> </field> </fields>