This is an automated email from the ASF dual-hosted git repository.

pvillard pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-maven.git


The following commit(s) were added to refs/heads/main by this push:
     new b079dd1  NIFI-13264 Add extension-manifest.xml to the build artifacts 
produced by the NAR plugin
b079dd1 is described below

commit b079dd163b2366dc33c935a6fff49540b5e41872
Author: Bryan Bende <[email protected]>
AuthorDate: Mon May 20 10:02:18 2024 -0400

    NIFI-13264 Add extension-manifest.xml to the build artifacts produced by 
the NAR plugin
    
    Signed-off-by: Pierre Villard <[email protected]>
    
    This closes #37.
---
 src/main/java/org/apache/nifi/NarMojo.java | 30 +++++++++++++++++++++++++++---
 1 file changed, 27 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/nifi/NarMojo.java 
b/src/main/java/org/apache/nifi/NarMojo.java
index 333bc72..4429e73 100644
--- a/src/main/java/org/apache/nifi/NarMojo.java
+++ b/src/main/java/org/apache/nifi/NarMojo.java
@@ -1041,16 +1041,22 @@ public class NarMojo extends AbstractMojo {
     }
 
     private void makeNar() throws MojoExecutionException {
-        File narFile = createArchive();
+        final NarResult narResult = createArchive();
+        final File narFile = narResult.getNarFile();
 
         if (classifier != null) {
             projectHelper.attachArtifact(project, "nar", classifier, narFile);
         } else {
             project.getArtifact().setFile(narFile);
         }
+
+        final File extensionDocsFile = narResult.getExtensionDocsFile();
+        if (extensionDocsFile != null && !skipDocGeneration) {
+            projectHelper.attachArtifact(project, "xml", 
"nar-extension-manifest", extensionDocsFile);
+        }
     }
 
-    public File createArchive() throws MojoExecutionException {
+    private NarResult createArchive() throws MojoExecutionException {
         final File outputDirectory = projectBuildDirectory;
         File narFile = getNarFile(outputDirectory, finalName, classifier);
         MavenArchiver archiver = new MavenArchiver();
@@ -1122,7 +1128,7 @@ public class NarMojo extends AbstractMojo {
             archive.addManifestEntry("Clone-During-Instance-Class-Loading", 
String.valueOf(cloneDuringInstanceClassLoading));
 
             archiver.createArchive(session, project, archive);
-            return narFile;
+            return new NarResult(narFile, extensionDocsFile);
         } catch (ArchiverException | MojoExecutionException | 
ManifestException | IOException | DependencyResolutionRequiredException e) {
             throw new MojoExecutionException("Error assembling NAR", e);
         }
@@ -1219,4 +1225,22 @@ public class NarMojo extends AbstractMojo {
         }
     }
 
+    private static class NarResult {
+        private final File narFile;
+        private final File extensionDocsFile;
+
+        public NarResult(final File narFile, final File extensionDocsFile) {
+            this.narFile = narFile;
+            this.extensionDocsFile = extensionDocsFile;
+        }
+
+        public File getNarFile() {
+            return narFile;
+        }
+
+        public File getExtensionDocsFile() {
+            return extensionDocsFile;
+        }
+    }
+
 }

Reply via email to