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

briansolo1985 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 646391a5a4 NIFI-14455 Unbind MiNiFi asset repository parent directory 
from c2.asset.directory
646391a5a4 is described below

commit 646391a5a4879d17014a4a00186530cd5d2a8d5d
Author: Peter Kedvessy <[email protected]>
AuthorDate: Thu Apr 10 09:31:05 2025 +0200

    NIFI-14455 Unbind MiNiFi asset repository parent directory from 
c2.asset.directory
    
    This closes #9867.
    
    Signed-off-by: Ferenc Kis <[email protected]>
---
 .../main/java/org/apache/nifi/c2/client/C2ClientConfig.java  | 12 ++++++++++++
 .../org/apache/nifi/minifi/commons/api/MiNiFiProperties.java |  1 +
 .../java/org/apache/nifi/minifi/c2/C2NifiClientService.java  |  4 +++-
 .../c2/command/syncresource/FileResourceRepository.java      |  5 ++---
 .../c2/command/syncresource/FileResourceRepositoryTest.java  |  7 ++-----
 5 files changed, 20 insertions(+), 9 deletions(-)

diff --git 
a/c2/c2-client-bundle/c2-client-base/src/main/java/org/apache/nifi/c2/client/C2ClientConfig.java
 
b/c2/c2-client-bundle/c2-client-base/src/main/java/org/apache/nifi/c2/client/C2ClientConfig.java
index 03b3f2491a..3c96d21fae 100644
--- 
a/c2/c2-client-bundle/c2-client-base/src/main/java/org/apache/nifi/c2/client/C2ClientConfig.java
+++ 
b/c2/c2-client-bundle/c2-client-base/src/main/java/org/apache/nifi/c2/client/C2ClientConfig.java
@@ -57,6 +57,7 @@ public class C2ClientConfig {
     private final long keepAliveDuration;
     private final String c2RequestCompression;
     private final String c2AssetDirectory;
+    private final String c2AssetRepositoryDirectory;
     private final long bootstrapAcknowledgeTimeout;
     private final int c2FlowInfoProcessorBulletinLimit;
     private final boolean c2FlowInfoProcessorStatusEnabled;
@@ -89,6 +90,7 @@ public class C2ClientConfig {
         this.keepAliveDuration = builder.keepAliveDuration;
         this.c2RequestCompression = builder.c2RequestCompression;
         this.c2AssetDirectory = builder.c2AssetDirectory;
+        this.c2AssetRepositoryDirectory = builder.c2AssetRepositoryDirectory;
         this.bootstrapAcknowledgeTimeout = builder.bootstrapAcknowledgeTimeout;
         this.c2FlowInfoProcessorBulletinLimit = 
builder.c2FlowInfoProcessorBulletinLimit;
         this.c2FlowInfoProcessorStatusEnabled = 
builder.c2FlowInfoProcessorStatusEnabled;
@@ -194,6 +196,10 @@ public class C2ClientConfig {
         return c2AssetDirectory;
     }
 
+    public String getC2AssetRepositoryDirectory() {
+        return c2AssetRepositoryDirectory;
+    }
+
     public int getMaxIdleConnections() {
         return maxIdleConnections;
     }
@@ -248,6 +254,7 @@ public class C2ClientConfig {
         private long keepAliveDuration;
         private String c2RequestCompression;
         private String c2AssetDirectory;
+        private String c2AssetRepositoryDirectory;
         private long bootstrapAcknowledgeTimeout;
         private int c2FlowInfoProcessorBulletinLimit;
         private boolean c2FlowInfoProcessorStatusEnabled;
@@ -397,6 +404,11 @@ public class C2ClientConfig {
             return this;
         }
 
+        public Builder c2AssetRepositoryDirectory(String 
c2AssetRepositoryDirectory) {
+            this.c2AssetRepositoryDirectory = c2AssetRepositoryDirectory;
+            return this;
+        }
+
         public Builder bootstrapAcknowledgeTimeout(long 
bootstrapAcknowledgeTimeout) {
             this.bootstrapAcknowledgeTimeout = bootstrapAcknowledgeTimeout;
             return this;
diff --git 
a/minifi/minifi-commons/minifi-commons-api/src/main/java/org/apache/nifi/minifi/commons/api/MiNiFiProperties.java
 
b/minifi/minifi-commons/minifi-commons-api/src/main/java/org/apache/nifi/minifi/commons/api/MiNiFiProperties.java
index 94c43d58a9..42b6a8c01d 100644
--- 
a/minifi/minifi-commons/minifi-commons-api/src/main/java/org/apache/nifi/minifi/commons/api/MiNiFiProperties.java
+++ 
b/minifi/minifi-commons/minifi-commons-api/src/main/java/org/apache/nifi/minifi/commons/api/MiNiFiProperties.java
@@ -84,6 +84,7 @@ public enum MiNiFiProperties {
     C2_RUNTIME_MANIFEST_IDENTIFIER("c2.runtime.manifest.identifier", "minifi", 
false, true, VALID),
     C2_RUNTIME_TYPE("c2.runtime.type", "minifi-java", false, true, VALID),
     C2_ASSET_DIRECTORY("c2.asset.directory", "./asset", false, true, VALID),
+    C2_ASSET_REPOSITORY_DIRECTORY("c2.asset.repository.directory", 
"./asset/repository", false, false, VALID),
     C2_SECURITY_TRUSTSTORE_LOCATION("c2.security.truststore.location", "", 
false, false, VALID),
     C2_SECURITY_TRUSTSTORE_PASSWORD("c2.security.truststore.password", "", 
true, false, VALID),
     C2_SECURITY_TRUSTSTORE_TYPE("c2.security.truststore.type", "JKS", false, 
false, VALID),
diff --git 
a/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/main/java/org/apache/nifi/minifi/c2/C2NifiClientService.java
 
b/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/main/java/org/apache/nifi/minifi/c2/C2NifiClientService.java
index 4493f6194e..97a5e31450 100644
--- 
a/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/main/java/org/apache/nifi/minifi/c2/C2NifiClientService.java
+++ 
b/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/main/java/org/apache/nifi/minifi/c2/C2NifiClientService.java
@@ -31,6 +31,7 @@ import static 
org.apache.nifi.minifi.commons.api.MiNiFiProperties.C2_AGENT_CLASS
 import static 
org.apache.nifi.minifi.commons.api.MiNiFiProperties.C2_AGENT_HEARTBEAT_PERIOD;
 import static 
org.apache.nifi.minifi.commons.api.MiNiFiProperties.C2_AGENT_IDENTIFIER;
 import static 
org.apache.nifi.minifi.commons.api.MiNiFiProperties.C2_ASSET_DIRECTORY;
+import static 
org.apache.nifi.minifi.commons.api.MiNiFiProperties.C2_ASSET_REPOSITORY_DIRECTORY;
 import static 
org.apache.nifi.minifi.commons.api.MiNiFiProperties.C2_BOOTSTRAP_ACKNOWLEDGE_TIMEOUT;
 import static 
org.apache.nifi.minifi.commons.api.MiNiFiProperties.C2_CONFIG_DIRECTORY;
 import static 
org.apache.nifi.minifi.commons.api.MiNiFiProperties.C2_FLOW_INFO_PROCESSOR_STATUS_ENABLED;
@@ -170,7 +171,7 @@ public class C2NifiClientService {
         this.flowController = flowController;
         C2Serializer c2Serializer = new C2JacksonSerializer();
         ResourceRepository resourceRepository =
-            new 
FileResourceRepository(Path.of(clientConfig.getC2AssetDirectory()), 
niFiProperties.getNarAutoLoadDirectory().toPath(),
+            new 
FileResourceRepository(Path.of(clientConfig.getC2AssetRepositoryDirectory()), 
niFiProperties.getNarAutoLoadDirectory().toPath(),
                 niFiProperties.getFlowConfigurationFileDir().toPath(), 
c2Serializer);
         C2HttpClient client = C2HttpClient.create(clientConfig, c2Serializer);
         FlowIdHolder flowIdHolder = new 
FlowIdHolder(clientConfig.getConfDirectory());
@@ -209,6 +210,7 @@ public class C2NifiClientService {
             .httpHeaders(properties.getProperty(C2_REST_HTTP_HEADERS.getKey(), 
C2_REST_HTTP_HEADERS.getDefaultValue()))
             
.c2RequestCompression(properties.getProperty(C2_REQUEST_COMPRESSION.getKey(), 
C2_REQUEST_COMPRESSION.getDefaultValue()))
             
.c2AssetDirectory(properties.getProperty(C2_ASSET_DIRECTORY.getKey(), 
C2_ASSET_DIRECTORY.getDefaultValue()))
+            
.c2AssetRepositoryDirectory(properties.getProperty(C2_ASSET_REPOSITORY_DIRECTORY.getKey(),
 C2_ASSET_REPOSITORY_DIRECTORY.getDefaultValue()))
             
.confDirectory(properties.getProperty(C2_CONFIG_DIRECTORY.getKey(), 
C2_CONFIG_DIRECTORY.getDefaultValue()))
             
.runtimeManifestIdentifier(properties.getProperty(C2_RUNTIME_MANIFEST_IDENTIFIER.getKey(),
 C2_RUNTIME_MANIFEST_IDENTIFIER.getDefaultValue()))
             .runtimeType(properties.getProperty(C2_RUNTIME_TYPE.getKey(), 
C2_RUNTIME_TYPE.getDefaultValue()))
diff --git 
a/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/main/java/org/apache/nifi/minifi/c2/command/syncresource/FileResourceRepository.java
 
b/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/main/java/org/apache/nifi/minifi/c2/command/syncresource/FileResourceRepository.java
index 5b5ca5b622..6ed8b2f3e4 100644
--- 
a/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/main/java/org/apache/nifi/minifi/c2/command/syncresource/FileResourceRepository.java
+++ 
b/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/main/java/org/apache/nifi/minifi/c2/command/syncresource/FileResourceRepository.java
@@ -58,7 +58,6 @@ import org.slf4j.LoggerFactory;
 
 public class FileResourceRepository implements ResourceRepository {
 
-    static final String ASSET_REPOSITORY_DIRECTORY = "repository";
     static final String RESOURCE_REPOSITORY_FILE_NAME = "resources.json";
 
     private static final Logger LOG = 
LoggerFactory.getLogger(FileResourceRepository.class);
@@ -71,10 +70,10 @@ public class FileResourceRepository implements 
ResourceRepository {
 
     private ResourceRepositoryDescriptor resourceRepositoryDescriptor;
 
-    public FileResourceRepository(Path assetDirectory, Path 
extensionDirectory, Path configDirectory, C2Serializer c2Serializer) {
+    public FileResourceRepository(Path assetRepositoryDirectory, Path 
extensionDirectory, Path configDirectory, C2Serializer c2Serializer) {
         this.resourceRepositoryFile = 
configDirectory.resolve(RESOURCE_REPOSITORY_FILE_NAME);
         this.c2Serializer = c2Serializer;
-        this.assetRepositoryDirectory = 
assetDirectory.resolve(ASSET_REPOSITORY_DIRECTORY);
+        this.assetRepositoryDirectory = assetRepositoryDirectory;
         this.extensionDirectory = extensionDirectory;
         initialize();
     }
diff --git 
a/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/test/java/org/apache/nifi/minifi/c2/command/syncresource/FileResourceRepositoryTest.java
 
b/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/test/java/org/apache/nifi/minifi/c2/command/syncresource/FileResourceRepositoryTest.java
index 608d29369f..ed13fb1648 100644
--- 
a/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/test/java/org/apache/nifi/minifi/c2/command/syncresource/FileResourceRepositoryTest.java
+++ 
b/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-framework-core/src/test/java/org/apache/nifi/minifi/c2/command/syncresource/FileResourceRepositoryTest.java
@@ -30,7 +30,6 @@ import static 
org.apache.commons.codec.digest.DigestUtils.sha512Hex;
 import static org.apache.commons.lang3.StringUtils.isBlank;
 import static org.apache.nifi.c2.protocol.api.ResourceType.ASSET;
 import static org.apache.nifi.c2.protocol.api.ResourceType.EXTENSION;
-import static 
org.apache.nifi.minifi.c2.command.syncresource.FileResourceRepository.ASSET_REPOSITORY_DIRECTORY;
 import static 
org.apache.nifi.minifi.c2.command.syncresource.FileResourceRepository.RESOURCE_REPOSITORY_FILE_NAME;
 import static org.apache.nifi.util.StringUtils.EMPTY;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -72,7 +71,6 @@ public class FileResourceRepositoryTest {
 
     private C2Serializer c2Serializer;
 
-    private Path assetDirectory;
     private Path assetRepositoryDirectory;
     private Path extensionDirectory;
     private Path repositoryFile;
@@ -83,8 +81,7 @@ public class FileResourceRepositoryTest {
         c2Serializer = new C2JacksonSerializer();
         configDirectoryPath = testBaseDirectory.resolve("conf");
         createDirectories(configDirectoryPath);
-        assetDirectory = testBaseDirectory.resolve("assets");
-        assetRepositoryDirectory = 
assetDirectory.resolve(ASSET_REPOSITORY_DIRECTORY);
+        assetRepositoryDirectory = 
testBaseDirectory.resolve("assets").resolve("repository");
         createDirectories(assetRepositoryDirectory);
         extensionDirectory = testBaseDirectory.resolve("extensions");
         createDirectories(extensionDirectory);
@@ -390,7 +387,7 @@ public class FileResourceRepositoryTest {
     }
 
     private FileResourceRepository createTestRepository() {
-        return new FileResourceRepository(assetDirectory, extensionDirectory, 
configDirectoryPath, c2Serializer);
+        return new FileResourceRepository(assetRepositoryDirectory, 
extensionDirectory, configDirectoryPath, c2Serializer);
     }
 
     private ResourcesGlobalHash resourcesGlobalHash(String digest, String 
hashType) {

Reply via email to