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>