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

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


The following commit(s) were added to refs/heads/main by this push:
     new 9606102c49 NIFI-13267 - Bump NiFi NAR Maven plugin version (#8860)
9606102c49 is described below

commit 9606102c49af70dd140aa5027dec45ae4c9f18bb
Author: Pierre Villard <[email protected]>
AuthorDate: Fri May 31 16:19:50 2024 +0200

    NIFI-13267 - Bump NiFi NAR Maven plugin version (#8860)
    
    * NIFI-13267 - Bump NiFi NAR Maven plugin version
    * Review - adding Parameter Providers and Flow Analaysis Rules in 
c2-protocol-component-api ComponentManifest
    * Review - fix build() of ComponentManifest
---
 .../protocol/component/api/ComponentManifest.java  | 20 +++++++++++++++
 .../component/api/FlowAnalysisRuleDefinition.java  | 13 +++-------
 .../component/api/ParameterProviderDefinition.java | 13 +++-------
 .../nifi/extension/manifest/ExtensionType.java     |  6 ++++-
 .../runtime/manifest/ComponentManifestBuilder.java | 14 ++++++++++
 .../impl/StandardComponentManifestBuilder.java     | 30 +++++++++++++++++++---
 .../impl/StandardRuntimeManifestBuilder.java       | 26 +++++++++++++++++++
 pom.xml                                            |  2 +-
 8 files changed, 99 insertions(+), 25 deletions(-)

diff --git 
a/c2/c2-protocol/c2-protocol-component-api/src/main/java/org/apache/nifi/c2/protocol/component/api/ComponentManifest.java
 
b/c2/c2-protocol/c2-protocol-component-api/src/main/java/org/apache/nifi/c2/protocol/component/api/ComponentManifest.java
index d7199d5467..3c15969611 100644
--- 
a/c2/c2-protocol/c2-protocol-component-api/src/main/java/org/apache/nifi/c2/protocol/component/api/ComponentManifest.java
+++ 
b/c2/c2-protocol/c2-protocol-component-api/src/main/java/org/apache/nifi/c2/protocol/component/api/ComponentManifest.java
@@ -30,6 +30,8 @@ public class ComponentManifest implements Serializable {
     private List<ControllerServiceDefinition> controllerServices;
     private List<ProcessorDefinition> processors;
     private List<ReportingTaskDefinition> reportingTasks;
+    private List<ParameterProviderDefinition> parameterProviders;
+    private List<FlowAnalysisRuleDefinition> flowAnalysisRules;
 
     @Schema(description = "Public interfaces defined in this bundle")
     public List<DefinedType> getApis() {
@@ -67,4 +69,22 @@ public class ComponentManifest implements Serializable {
         this.reportingTasks = reportingTasks;
     }
 
+    @Schema(description = "Parameter Providers provided in this bundle")
+    public List<ParameterProviderDefinition> getParameterProviders() {
+        return (parameterProviders != null ? 
Collections.unmodifiableList(parameterProviders) : null);
+    }
+
+    public void setParameterProviders(List<ParameterProviderDefinition> 
parameterProviders) {
+        this.parameterProviders = parameterProviders;
+    }
+
+    @Schema(description = "Flow Analysis Rules provided in this bundle")
+    public List<FlowAnalysisRuleDefinition> getFlowAnalysisRules() {
+        return (flowAnalysisRules != null ? 
Collections.unmodifiableList(flowAnalysisRules) : null);
+    }
+
+    public void setFlowAnalysisRules(List<FlowAnalysisRuleDefinition> 
flowAnalysisRules) {
+        this.flowAnalysisRules = flowAnalysisRules;
+    }
+
 }
diff --git 
a/nifi-manifest/nifi-extension-manifest-model/src/main/java/org/apache/nifi/extension/manifest/ExtensionType.java
 
b/c2/c2-protocol/c2-protocol-component-api/src/main/java/org/apache/nifi/c2/protocol/component/api/FlowAnalysisRuleDefinition.java
similarity index 81%
copy from 
nifi-manifest/nifi-extension-manifest-model/src/main/java/org/apache/nifi/extension/manifest/ExtensionType.java
copy to 
c2/c2-protocol/c2-protocol-component-api/src/main/java/org/apache/nifi/c2/protocol/component/api/FlowAnalysisRuleDefinition.java
index 14b1d8cd97..efc2889d15 100644
--- 
a/nifi-manifest/nifi-extension-manifest-model/src/main/java/org/apache/nifi/extension/manifest/ExtensionType.java
+++ 
b/c2/c2-protocol/c2-protocol-component-api/src/main/java/org/apache/nifi/c2/protocol/component/api/FlowAnalysisRuleDefinition.java
@@ -14,17 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.nifi.extension.manifest;
 
-/**
- * Possible types of extensions.
- */
-public enum ExtensionType {
-
-    PROCESSOR,
-
-    CONTROLLER_SERVICE,
+package org.apache.nifi.c2.protocol.component.api;
 
-    REPORTING_TASK;
+public class FlowAnalysisRuleDefinition extends 
ConfigurableExtensionDefinition {
+    private static final long serialVersionUID = 1L;
 
 }
diff --git 
a/nifi-manifest/nifi-extension-manifest-model/src/main/java/org/apache/nifi/extension/manifest/ExtensionType.java
 
b/c2/c2-protocol/c2-protocol-component-api/src/main/java/org/apache/nifi/c2/protocol/component/api/ParameterProviderDefinition.java
similarity index 81%
copy from 
nifi-manifest/nifi-extension-manifest-model/src/main/java/org/apache/nifi/extension/manifest/ExtensionType.java
copy to 
c2/c2-protocol/c2-protocol-component-api/src/main/java/org/apache/nifi/c2/protocol/component/api/ParameterProviderDefinition.java
index 14b1d8cd97..8a05a1fd2b 100644
--- 
a/nifi-manifest/nifi-extension-manifest-model/src/main/java/org/apache/nifi/extension/manifest/ExtensionType.java
+++ 
b/c2/c2-protocol/c2-protocol-component-api/src/main/java/org/apache/nifi/c2/protocol/component/api/ParameterProviderDefinition.java
@@ -14,17 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.nifi.extension.manifest;
 
-/**
- * Possible types of extensions.
- */
-public enum ExtensionType {
-
-    PROCESSOR,
-
-    CONTROLLER_SERVICE,
+package org.apache.nifi.c2.protocol.component.api;
 
-    REPORTING_TASK;
+public class ParameterProviderDefinition extends 
ConfigurableExtensionDefinition {
+    private static final long serialVersionUID = 1L;
 
 }
diff --git 
a/nifi-manifest/nifi-extension-manifest-model/src/main/java/org/apache/nifi/extension/manifest/ExtensionType.java
 
b/nifi-manifest/nifi-extension-manifest-model/src/main/java/org/apache/nifi/extension/manifest/ExtensionType.java
index 14b1d8cd97..20654c53cd 100644
--- 
a/nifi-manifest/nifi-extension-manifest-model/src/main/java/org/apache/nifi/extension/manifest/ExtensionType.java
+++ 
b/nifi-manifest/nifi-extension-manifest-model/src/main/java/org/apache/nifi/extension/manifest/ExtensionType.java
@@ -25,6 +25,10 @@ public enum ExtensionType {
 
     CONTROLLER_SERVICE,
 
-    REPORTING_TASK;
+    REPORTING_TASK,
+
+    FLOW_ANALYSIS_RULE,
+
+    PARAMETER_PROVIDER;
 
 }
diff --git 
a/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/ComponentManifestBuilder.java
 
b/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/ComponentManifestBuilder.java
index b649f69ccd..204f6c4f96 100644
--- 
a/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/ComponentManifestBuilder.java
+++ 
b/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/ComponentManifestBuilder.java
@@ -18,6 +18,8 @@ package org.apache.nifi.runtime.manifest;
 
 import org.apache.nifi.c2.protocol.component.api.ComponentManifest;
 import org.apache.nifi.c2.protocol.component.api.ControllerServiceDefinition;
+import org.apache.nifi.c2.protocol.component.api.FlowAnalysisRuleDefinition;
+import org.apache.nifi.c2.protocol.component.api.ParameterProviderDefinition;
 import org.apache.nifi.c2.protocol.component.api.ProcessorDefinition;
 import org.apache.nifi.c2.protocol.component.api.ReportingTaskDefinition;
 
@@ -44,6 +46,18 @@ public interface ComponentManifestBuilder {
      */
     ComponentManifestBuilder addReportingTask(ReportingTaskDefinition 
reportingTaskDefinition);
 
+    /**
+     * @param parameterProviderDefinition a parameter provider definition to 
add
+     * @return the builder
+     */
+    ComponentManifestBuilder addParameterProvider(ParameterProviderDefinition 
parameterProviderDefinition);
+
+    /**
+     * @param flowAnalysisRuleDefinition a flow analysis rule definition to add
+     * @return the builder
+     */
+    ComponentManifestBuilder addFlowAnalysisRule(FlowAnalysisRuleDefinition 
flowAnalysisRuleDefinition);
+
     /**
      * @return a component manifest containing all the added definitions
      */
diff --git 
a/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/impl/StandardComponentManifestBuilder.java
 
b/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/impl/StandardComponentManifestBuilder.java
index 8b76e72f32..8edb662757 100644
--- 
a/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/impl/StandardComponentManifestBuilder.java
+++ 
b/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/impl/StandardComponentManifestBuilder.java
@@ -18,6 +18,8 @@ package org.apache.nifi.runtime.manifest.impl;
 
 import org.apache.nifi.c2.protocol.component.api.ComponentManifest;
 import org.apache.nifi.c2.protocol.component.api.ControllerServiceDefinition;
+import org.apache.nifi.c2.protocol.component.api.FlowAnalysisRuleDefinition;
+import org.apache.nifi.c2.protocol.component.api.ParameterProviderDefinition;
 import org.apache.nifi.c2.protocol.component.api.ProcessorDefinition;
 import org.apache.nifi.c2.protocol.component.api.ReportingTaskDefinition;
 import org.apache.nifi.runtime.manifest.ComponentManifestBuilder;
@@ -33,6 +35,8 @@ public class StandardComponentManifestBuilder implements 
ComponentManifestBuilde
     private final List<ProcessorDefinition> processors = new ArrayList<>();
     private final List<ControllerServiceDefinition> controllerServices = new 
ArrayList<>();
     private final List<ReportingTaskDefinition> reportingTasks = new 
ArrayList<>();
+    private final List<ParameterProviderDefinition> parameterProviders = new 
ArrayList<>();
+    private final List<FlowAnalysisRuleDefinition> flowAnalysisRules = new 
ArrayList<>();
 
     @Override
     public ComponentManifestBuilder addProcessor(final ProcessorDefinition 
processorDefinition) {
@@ -61,12 +65,32 @@ public class StandardComponentManifestBuilder implements 
ComponentManifestBuilde
         return this;
     }
 
+    @Override
+    public ComponentManifestBuilder 
addParameterProvider(ParameterProviderDefinition parameterProviderDefinition) {
+        if (parameterProviderDefinition == null) {
+            throw new IllegalArgumentException("Parameter Provider definition 
cannot be null");
+        }
+        parameterProviders.add(parameterProviderDefinition);
+        return this;
+    }
+
+    @Override
+    public ComponentManifestBuilder 
addFlowAnalysisRule(FlowAnalysisRuleDefinition flowAnalysisRuleDefinition) {
+        if (flowAnalysisRuleDefinition == null) {
+            throw new IllegalArgumentException("Flow Analysis Rule definition 
cannot be null");
+        }
+        flowAnalysisRules.add(flowAnalysisRuleDefinition);
+        return this;
+    }
+
     @Override
     public ComponentManifest build() {
         final ComponentManifest componentManifest = new ComponentManifest();
-        componentManifest.setProcessors(new ArrayList<>(processors));
-        componentManifest.setControllerServices(new 
ArrayList<>(controllerServices));
-        componentManifest.setReportingTasks(new ArrayList<>(reportingTasks));
+        componentManifest.setProcessors(new 
ArrayList<ProcessorDefinition>(processors));
+        componentManifest.setControllerServices(new 
ArrayList<ControllerServiceDefinition>(controllerServices));
+        componentManifest.setReportingTasks(new 
ArrayList<ReportingTaskDefinition>(reportingTasks));
+        componentManifest.setParameterProviders(new 
ArrayList<ParameterProviderDefinition>(parameterProviders));
+        componentManifest.setFlowAnalysisRules(new 
ArrayList<FlowAnalysisRuleDefinition>(flowAnalysisRules));
         return componentManifest;
     }
 
diff --git 
a/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/impl/StandardRuntimeManifestBuilder.java
 
b/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/impl/StandardRuntimeManifestBuilder.java
index 9472c95ef7..753221a13c 100644
--- 
a/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/impl/StandardRuntimeManifestBuilder.java
+++ 
b/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/impl/StandardRuntimeManifestBuilder.java
@@ -23,7 +23,9 @@ import 
org.apache.nifi.c2.protocol.component.api.ConfigurableComponentDefinition
 import org.apache.nifi.c2.protocol.component.api.ControllerServiceDefinition;
 import org.apache.nifi.c2.protocol.component.api.DefinedType;
 import org.apache.nifi.c2.protocol.component.api.ExtensionComponent;
+import org.apache.nifi.c2.protocol.component.api.FlowAnalysisRuleDefinition;
 import org.apache.nifi.c2.protocol.component.api.MultiProcessorUseCase;
+import org.apache.nifi.c2.protocol.component.api.ParameterProviderDefinition;
 import org.apache.nifi.c2.protocol.component.api.ProcessorConfiguration;
 import org.apache.nifi.c2.protocol.component.api.ProcessorDefinition;
 import org.apache.nifi.c2.protocol.component.api.PropertyAllowableValue;
@@ -201,6 +203,12 @@ public class StandardRuntimeManifestBuilder implements 
RuntimeManifestBuilder {
             case REPORTING_TASK:
                 addReportingTaskDefinition(extensionManifest, extension, 
additionalDetails, componentManifestBuilder);
                 break;
+            case FLOW_ANALYSIS_RULE:
+                addFlowAnalysisRuleDefinition(extensionManifest, extension, 
additionalDetails, componentManifestBuilder);
+                break;
+            case PARAMETER_PROVIDER:
+                addParameterProviderDefinition(extensionManifest, extension, 
additionalDetails, componentManifestBuilder);
+                break;
             default:
                 throw new IllegalArgumentException("Unknown extension type: " 
+ extension.getType());
         }
@@ -369,6 +377,24 @@ public class StandardRuntimeManifestBuilder implements 
RuntimeManifestBuilder {
         
componentManifestBuilder.addControllerService(controllerServiceDefinition);
     }
 
+    private void addParameterProviderDefinition(final ExtensionManifest 
extensionManifest, final Extension extension, final String additionalDetails,
+                                                final ComponentManifestBuilder 
componentManifestBuilder) {
+        final ParameterProviderDefinition parameterProviderDefinition = new 
ParameterProviderDefinition();
+        populateDefinedType(extensionManifest, extension, 
parameterProviderDefinition);
+        populateExtensionComponent(extensionManifest, extension, 
additionalDetails, parameterProviderDefinition);
+        populateConfigurableComponent(extension, parameterProviderDefinition);
+        
componentManifestBuilder.addParameterProvider(parameterProviderDefinition);
+    }
+
+    private void addFlowAnalysisRuleDefinition(final ExtensionManifest 
extensionManifest, final Extension extension, final String additionalDetails,
+                                                final ComponentManifestBuilder 
componentManifestBuilder) {
+        final FlowAnalysisRuleDefinition flowAnalysisRuleDefinition = new 
FlowAnalysisRuleDefinition();
+        populateDefinedType(extensionManifest, extension, 
flowAnalysisRuleDefinition);
+        populateExtensionComponent(extensionManifest, extension, 
additionalDetails, flowAnalysisRuleDefinition);
+        populateConfigurableComponent(extension, flowAnalysisRuleDefinition);
+        
componentManifestBuilder.addFlowAnalysisRule(flowAnalysisRuleDefinition);
+    }
+
     private void addReportingTaskDefinition(final ExtensionManifest 
extensionManifest, final Extension extension, final String additionalDetails,
                                             final ComponentManifestBuilder 
componentManifestBuilder) {
         final ReportingTaskDefinition reportingTaskDefinition = new 
ReportingTaskDefinition();
diff --git a/pom.xml b/pom.xml
index 637ed2975a..df53c6879a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -104,7 +104,7 @@
         <docker.image.tag>21</docker.image.tag>
         <node.version>v22.1.0</node.version>
         <frontend.mvn.plugin.version>1.15.0</frontend.mvn.plugin.version>
-        <nifi.nar.maven.plugin.version>1.5.1</nifi.nar.maven.plugin.version>
+        <nifi.nar.maven.plugin.version>2.0.0</nifi.nar.maven.plugin.version>
         
<project.build.outputTimestamp>1706227889</project.build.outputTimestamp>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

Reply via email to