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>

Reply via email to