From 10aeddff7014bf3ae771064a66487c40a705dd05 Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Wed, 14 May 2025 17:49:37 +0800 Subject: [PATCH] =?UTF-8?q?(nfeatifi):=20=E6=B7=BB=E5=8A=A0=20NiFi=20API?= =?UTF-8?q?=20=E5=AE=A2=E6=88=B7=E7=AB=AF=E5=92=8C=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 NiFi API客户端类 NifiClient,实现与 NiFi 服务器的通信 - 添加多个 NiFi 模型类,用于解析和处理 NiFi API 响应数据 - 新增 Jackson 配置类和 JSON 工具类,用于 JSON 数据处理 - 移除无用的 Main 类 --- fw-nifi/pom.xml | 19 +- .../src/main/java/com/hzya/frame/Main.java | 7 - .../com/hzya/frame/nifi/NifiApplication.java | 11 ++ .../hzya/frame/nifi/client/NifiClient.java | 173 ++++++++++++++++++ .../frame/nifi/config/HttpClientConfig.java | 59 ++++++ .../hzya/frame/nifi/config/JacksonConfig.java | 25 +++ .../frame/nifi/config/NifiServiceConfig.java | 49 +++++ .../frame/nifi/model/ProcessorConfig.java | 27 +++ .../processgroupid/AggregateSnapshot.java | 30 +++ .../model/processgroupid/AllowableValue.java | 9 + .../model/processgroupid/AllowableValues.java | 9 + .../processgroupid/AttributesToIgnore.java | 18 ++ .../AttributesToIgnoreRegex.java | 18 ++ .../model/processgroupid/AttributesToLog.java | 18 ++ .../processgroupid/AttributesToLogRegex.java | 19 ++ .../nifi/model/processgroupid/Breadcrumb.java | 9 + .../nifi/model/processgroupid/Bulletin.java | 15 ++ .../nifi/model/processgroupid/Bulletins.java | 13 ++ .../nifi/model/processgroupid/Bundle.java | 10 + .../model/processgroupid/CharacterSet.java | 19 ++ .../nifi/model/processgroupid/Component.java | 9 + .../nifi/model/processgroupid/Component2.java | 31 ++++ .../nifi/model/processgroupid/Config.java | 27 +++ .../model/processgroupid/Connections.java | 24 +++ .../DefaultConcurrentTasks.java | 14 ++ .../DefaultSchedulingPeriod.java | 12 ++ .../model/processgroupid/Descriptors.java | 37 ++++ .../model/processgroupid/Destination.java | 14 ++ .../nifi/model/processgroupid/Dimensions.java | 9 + .../frame/nifi/model/processgroupid/Flow.java | 17 ++ .../nifi/model/processgroupid/InputPorts.java | 19 ++ .../nifi/model/processgroupid/Labels.java | 15 ++ .../processgroupid/LogFlowFileProperties.java | 20 ++ .../nifi/model/processgroupid/LogLevel.java | 20 ++ .../nifi/model/processgroupid/LogPayload.java | 20 ++ .../nifi/model/processgroupid/LogPrefix.java | 18 ++ .../processgroupid/OperatePermissions.java | 9 + .../model/processgroupid/OutputFormat.java | 20 ++ .../model/processgroupid/OutputPorts.java | 19 ++ .../processgroupid/ParameterContext.java | 10 + .../processgroupid/ParentBreadcrumb.java | 10 + .../model/processgroupid/Permissions.java | 9 + .../nifi/model/processgroupid/Position.java | 9 + .../processgroupid/ProcessGroupFlow.java | 14 ++ .../model/processgroupid/ProcessGroupsId.java | 9 + .../ProcessingPerformanceStatus.java | 13 ++ .../nifi/model/processgroupid/Processors.java | 19 ++ .../nifi/model/processgroupid/Properties.java | 44 +++++ .../model/processgroupid/Relationships.java | 11 ++ .../nifi/model/processgroupid/Revision.java | 8 + .../nifi/model/processgroupid/Source.java | 14 ++ .../nifi/model/processgroupid/Status.java | 13 ++ .../nifi/model/processgroupid/Style.java | 7 + .../processgrouproot/AggregateSnapshot.java | 43 +++++ .../model/processgrouproot/Breadcrumb.java | 10 + .../model/processgrouproot/Breadcrumb2.java | 9 + .../nifi/model/processgrouproot/Bulletin.java | 23 +++ .../model/processgrouproot/Bulletins.java | 21 +++ .../model/processgrouproot/Component.java | 37 ++++ .../model/processgrouproot/Component2.java | 9 + .../nifi/model/processgrouproot/Flow.java | 17 ++ .../processgrouproot/ParameterContext.java | 18 ++ .../model/processgrouproot/Permissions.java | 9 + .../nifi/model/processgrouproot/Position.java | 9 + .../processgrouproot/ProcessGroupFlow.java | 16 ++ .../model/processgrouproot/ProcessGroups.java | 34 ++++ .../processgrouproot/ProcessGroupsRoot.java | 9 + .../ProcessingPerformanceStatus.java | 13 ++ .../nifi/model/processgrouproot/Revision.java | 8 + .../nifi/model/processgrouproot/Status.java | 11 ++ .../model/processgrouproot/Variables.java | 8 + .../frame/nifi/service/NifiApiService.java | 46 +++++ .../com/hzya/frame/nifi/util/JsonUtil.java | 31 ++++ fw-nifi/src/test/java/JSONata4Java.java | 43 +++++ fw-nifi/src/test/java/TestNifiConfig.java | 28 +++ fw-nifi/src/test/java/spec.json | 35 ++++ .../NifiClient$IOExceptionRunnable.class | Bin 0 -> 482 bytes .../hzya/frame/nifi/client/NifiClient.class | Bin 0 -> 9499 bytes .../nifi/config/HttpClientConfig$1.class | Bin 0 -> 1250 bytes .../frame/nifi/config/HttpClientConfig.class | Bin 0 -> 2846 bytes .../frame/nifi/config/JacksonConfig.class | Bin 0 -> 766 bytes .../frame/nifi/config/NifiServiceConfig.class | Bin 0 -> 1356 bytes .../frame/nifi/model/ProcessorConfig.class | Bin 0 -> 2925 bytes .../processgrouproot/AggregateSnapshot.class | Bin 0 -> 17361 bytes .../model/processgrouproot/Breadcrumb.class | Bin 0 -> 2810 bytes .../model/processgrouproot/Breadcrumb2.class | Bin 0 -> 1894 bytes .../model/processgrouproot/Bulletin.class | Bin 0 -> 4596 bytes .../model/processgrouproot/Bulletins.class | Bin 0 -> 3914 bytes .../model/processgrouproot/Component.class | Bin 0 -> 18645 bytes .../nifi/model/processgrouproot/Flow.class | Bin 0 -> 5609 bytes .../model/processgrouproot/Permissions.class | Bin 0 -> 1957 bytes .../model/processgrouproot/Position.class | Bin 0 -> 1854 bytes .../processgrouproot/ProcessGroupFlow.class | Bin 0 -> 4137 bytes .../processgrouproot/ProcessGroups.class | Bin 0 -> 15810 bytes .../processgrouproot/ProcessGroupsRoot.class | Bin 0 -> 2457 bytes .../ProcessingPerformanceStatus.class | Bin 0 -> 4210 bytes .../model/processgrouproot/Revision.class | Bin 0 -> 1516 bytes .../nifi/model/processgrouproot/Status.class | Bin 0 -> 3141 bytes .../model/processgrouproot/Variables.class | Bin 0 -> 891 bytes .../frame/nifi/service/NifiApiService.class | Bin 0 -> 1600 bytes .../com/hzya/frame/nifi/util/JsonUtil.class | Bin 0 -> 1276 bytes .../classes/main/webapp/WEB-INF/web.xml | 6 + fw-nifi/target/classes/test/java/spec.json | 35 ++++ .../target/test-classes/TestNifiConfig.class | Bin 0 -> 364 bytes 104 files changed, 1619 insertions(+), 10 deletions(-) delete mode 100644 fw-nifi/src/main/java/com/hzya/frame/Main.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/NifiApplication.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/client/NifiClient.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/config/HttpClientConfig.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/config/JacksonConfig.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/config/NifiServiceConfig.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/ProcessorConfig.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AggregateSnapshot.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AllowableValue.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AllowableValues.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToIgnore.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToIgnoreRegex.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToLog.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToLogRegex.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Breadcrumb.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Bulletin.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Bulletins.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Bundle.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/CharacterSet.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Component.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Component2.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Config.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Connections.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/DefaultConcurrentTasks.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/DefaultSchedulingPeriod.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Descriptors.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Destination.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Dimensions.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Flow.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/InputPorts.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Labels.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogFlowFileProperties.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogLevel.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogPayload.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogPrefix.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/OperatePermissions.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/OutputFormat.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/OutputPorts.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ParameterContext.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ParentBreadcrumb.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Permissions.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Position.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ProcessGroupFlow.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ProcessGroupsId.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ProcessingPerformanceStatus.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Processors.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Properties.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Relationships.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Revision.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Source.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Status.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Style.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/AggregateSnapshot.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Breadcrumb.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Breadcrumb2.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Bulletin.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Bulletins.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Component.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Component2.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Flow.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ParameterContext.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Permissions.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Position.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupFlow.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessGroups.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupsRoot.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessingPerformanceStatus.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Revision.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Status.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Variables.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/service/NifiApiService.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/util/JsonUtil.java create mode 100644 fw-nifi/src/test/java/JSONata4Java.java create mode 100644 fw-nifi/src/test/java/TestNifiConfig.java create mode 100644 fw-nifi/src/test/java/spec.json create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/client/NifiClient$IOExceptionRunnable.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/client/NifiClient.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/config/HttpClientConfig$1.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/config/HttpClientConfig.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/config/JacksonConfig.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/config/NifiServiceConfig.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/ProcessorConfig.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/AggregateSnapshot.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Breadcrumb.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Breadcrumb2.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Bulletin.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Bulletins.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Component.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Flow.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Permissions.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Position.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupFlow.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/ProcessGroups.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupsRoot.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/ProcessingPerformanceStatus.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Revision.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Status.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Variables.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/service/NifiApiService.class create mode 100644 fw-nifi/target/classes/com/hzya/frame/nifi/util/JsonUtil.class create mode 100644 fw-nifi/target/classes/main/webapp/WEB-INF/web.xml create mode 100644 fw-nifi/target/classes/test/java/spec.json create mode 100644 fw-nifi/target/test-classes/TestNifiConfig.class diff --git a/fw-nifi/pom.xml b/fw-nifi/pom.xml index 5c29d5d9..8168cf66 100644 --- a/fw-nifi/pom.xml +++ b/fw-nifi/pom.xml @@ -19,10 +19,23 @@ base-service ${revision} + + + + + + + + + - mysql - mysql-connector-java - ${mysql-connector-java} + com.squareup.okhttp3 + okhttp + + + + com.fasterxml.jackson.core + jackson-databind diff --git a/fw-nifi/src/main/java/com/hzya/frame/Main.java b/fw-nifi/src/main/java/com/hzya/frame/Main.java deleted file mode 100644 index 16eea576..00000000 --- a/fw-nifi/src/main/java/com/hzya/frame/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.hzya.frame; - -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/NifiApplication.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/NifiApplication.java new file mode 100644 index 00000000..f8763903 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/NifiApplication.java @@ -0,0 +1,11 @@ +//package com.hzya.frame.nifi; +// +//import org.springframework.boot.SpringApplication; +//import org.springframework.boot.autoconfigure.SpringBootApplication; +// +//@SpringBootApplication(scanBasePackages = "com.hzya.frame.nifi") +//public class NifiApplication { +// public static void main(String[] args) { +// SpringApplication.run(NifiApplication.class, args); +// } +//} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/client/NifiClient.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/client/NifiClient.java new file mode 100644 index 00000000..9b2f9027 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/client/NifiClient.java @@ -0,0 +1,173 @@ +package com.hzya.frame.nifi.client; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.hzya.frame.nifi.config.NifiServiceConfig; +import okhttp3.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.security.SecureRandom; +import java.security.cert.X509Certificate; +import java.util.concurrent.atomic.AtomicReference; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.nifi.client + * @Project:fw-nifi + * @name:NifiClient + * @Date:2025/5/14 10:00 + * @Filename:NifiClient + */ +@Component +public class NifiClient { + private final NifiServiceConfig config; + private final OkHttpClient httpClient; + private final ObjectMapper objectMapper; + private final AtomicReference accessToken = new AtomicReference<>(); + private volatile long tokenIssueTime; // Token 发行时间(毫秒) + private volatile long tokenExpiration; // Token 过期时间(毫秒) + + @Autowired + public NifiClient(NifiServiceConfig config, OkHttpClient httpClient, ObjectMapper objectMapper) { + this.config = config; + this.httpClient = httpClient; + this.objectMapper = objectMapper; + initializeToken(); + } + + private void initializeToken() { + try { + accessToken.set(getAccessToken()); + tokenIssueTime = System.currentTimeMillis(); + tokenExpiration = tokenIssueTime + (12 * 60 * 60 * 1000); // 默认 12 小时 + System.out.println("令牌已初始化,过期时间:" + new java.util.Date(tokenExpiration)); + } catch (Exception e) { + throw new RuntimeException("初始化NiFi访问令牌失败: " + e.getMessage()); + } + } + + public T get(String path, Class responseType) throws IOException { + return executeRequestWithRetry(() -> { + Request request = new Request.Builder() + .url(config.getApiUrl() + path) + .get() + .header("Authorization", "Bearer " + accessToken.get()). + build(); + return executeRequest(request, responseType); + }); + } + + public T post(String path, Object requestBody, Class responseType) throws IOException { + String jsonBody = objectMapper.writeValueAsString(requestBody); + RequestBody body = RequestBody.create(jsonBody, MediaType.get("application/json; charset=utf-8")); + return executeRequestWithRetry(() -> { + Request request = new Request.Builder().url(config.getApiUrl() + path).post(body).header("Authorization", "Bearer " + accessToken.get()).build(); + return executeRequest(request, responseType); + }); + } + + private T executeRequestWithRetry(IOExceptionRunnable runnable) throws IOException { + int maxRetries = 2; + for (int attempt = 0; attempt < maxRetries; attempt++) { + try { + checkAndRefreshToken(); + return runnable.run(); + } catch (IOException e) { + if (attempt == maxRetries - 1 || !isTokenExpiredError(e)) { + throw e; + } + System.out.println("令牌可能已过期,请刷新并重试。。。"); + try { + accessToken.set(getAccessToken()); + tokenIssueTime = System.currentTimeMillis(); + tokenExpiration = tokenIssueTime + (12 * 60 * 60 * 1000); // 默认 12 小时 + } catch (Exception ex) { + throw new IOException("刷新令牌失败: " + ex.getMessage(), e); + } + } + } + throw new IOException("已达到最大重试次数"); + } + + private void checkAndRefreshToken() throws IOException { + long currentTime = System.currentTimeMillis(); + if (currentTime > tokenExpiration - 300000) { // 提前 5 分钟刷新 + try { + accessToken.set(getAccessToken()); + tokenIssueTime = System.currentTimeMillis(); + tokenExpiration = tokenIssueTime + (12 * 60 * 60 * 1000); // 默认 12 小时 + System.out.println("令牌已刷新,到期时间: " + new java.util.Date(tokenExpiration)); + } catch (Exception e) { + throw new IOException("刷新令牌失败: " + e.getMessage()); + } + } + } + + private boolean isTokenExpiredError(IOException e) { + // 判断是否为 401 错误(Token 过期) + return e.getMessage().contains("401") || e.getMessage().contains("Unauthorized"); + } + + private T executeRequest(Request request, Class responseType) throws IOException { + try (Response response = httpClient.newCall(request).execute()) { + if (!response.isSuccessful()) { + throw new IOException("意外的响应码: " + response); + } + String responseBody = response.body().string(); + return objectMapper.readValue(responseBody, responseType); + } + } + + public synchronized String getAccessToken() throws Exception { + // 创建信任所有证书的 OkHttpClient +// OkHttpClient client = httpClient.newBuilder().sslSocketFactory(createTrustAllSslSocketFactory(), createTrustAllTrustManager()).hostnameVerifier((hostname, session) -> true).build(); + + MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); + RequestBody body = RequestBody.create(mediaType, "username=" + config.getUsername() + "&password=" + config.getPassword()); + Request request = new Request.Builder().url(config.getApiUrl() + "/access/token").post(body).addHeader("Content-Type", "application/x-www-form-urlencoded").addHeader("Accept", "*/*").addHeader("User-Agent", "fw-nifi-client/1.0").addHeader("Connection", "keep-alive").build(); + + try (Response response = httpClient.newCall(request).execute()) { + if (!response.isSuccessful()) { + throw new IOException("获取访问令牌失败,响应码: " + response.code() + " - " + response.message()); + } + byte[] bytes = response.body().bytes(); + String newToken = new String(bytes, StandardCharsets.UTF_8); + return newToken; + } + } + +// private SSLSocketFactory createTrustAllSslSocketFactory() throws Exception { +// SSLContext sslContext = SSLContext.getInstance("SSL"); +// sslContext.init(null, new TrustManager[]{createTrustAllTrustManager()}, new SecureRandom()); +// return sslContext.getSocketFactory(); +// } + +// private X509TrustManager createTrustAllTrustManager() { +// return new X509TrustManager() { +// @Override +// public void checkClientTrusted(X509Certificate[] chain, String authType) { +// } +// +// @Override +// public void checkServerTrusted(X509Certificate[] chain, String authType) { +// } +// +// @Override +// public X509Certificate[] getAcceptedIssuers() { +// return new X509Certificate[0]; +// } +// }; +// } + + // 功能接口,用于重试逻辑 + @FunctionalInterface + private interface IOExceptionRunnable { + T run() throws IOException; + } +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/config/HttpClientConfig.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/config/HttpClientConfig.java new file mode 100644 index 00000000..da9273d1 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/config/HttpClientConfig.java @@ -0,0 +1,59 @@ +package com.hzya.frame.nifi.config; + +import okhttp3.OkHttpClient; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import java.security.SecureRandom; +import java.security.cert.X509Certificate; +import java.util.concurrent.TimeUnit; + +/** + * OkHttpClient配置类 + * @Author:liuyang + * @Package:com.hzya.frame.nifi.config + * @Project:fw-nifi + * @name:HttpClientConfig + * @Date:2025/5/14 11:45 + * @Filename:HttpClientConfig + */ +@Configuration +public class HttpClientConfig { + + @Bean + public OkHttpClient okHttpClient() throws Exception { + return new OkHttpClient.Builder().sslSocketFactory(createTrustAllSslSocketFactory(), createTrustAllTrustManager()) + .hostnameVerifier((hostname, session) -> true) + .connectTimeout(60, TimeUnit.SECONDS) // 连接超时时间 + .readTimeout(60, TimeUnit.SECONDS) // 读取超时时间 + .writeTimeout(60, TimeUnit.SECONDS) // 写入超时时间 + .build(); + } + + private SSLSocketFactory createTrustAllSslSocketFactory() throws Exception { + SSLContext sslContext = SSLContext.getInstance("SSL"); + sslContext.init(null, new TrustManager[]{createTrustAllTrustManager()}, new SecureRandom()); + return sslContext.getSocketFactory(); + } + + private X509TrustManager createTrustAllTrustManager() { + return new X509TrustManager() { + @Override + public void checkClientTrusted(X509Certificate[] chain, String authType) { + } + + @Override + public void checkServerTrusted(X509Certificate[] chain, String authType) { + } + + @Override + public X509Certificate[] getAcceptedIssuers() { + return new X509Certificate[0]; + } + }; + } +} diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/config/JacksonConfig.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/config/JacksonConfig.java new file mode 100644 index 00000000..5229efcb --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/config/JacksonConfig.java @@ -0,0 +1,25 @@ +package com.hzya.frame.nifi.config; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.nifi.config + * @Project:fw-nifi + * @name:JacksonConfig + * @Date:2025/5/14 11:54 + * @Filename:JacksonConfig + */ +@Configuration +public class JacksonConfig { + + @Bean + public ObjectMapper objectMapper() { + ObjectMapper objectMapper = new ObjectMapper(); + // 可根据需求自定义配置,例如: + objectMapper.findAndRegisterModules(); // 自动注册模块 + return objectMapper; + } +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/config/NifiServiceConfig.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/config/NifiServiceConfig.java new file mode 100644 index 00000000..1a4e1c63 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/config/NifiServiceConfig.java @@ -0,0 +1,49 @@ +package com.hzya.frame.nifi.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.nifi.config + * @Project:fw-nifi + * @name:NifiConfig + * @Date:2025/5/14 09:59 + * @Filename:NifiConfig + */ +@Configuration +public class NifiServiceConfig { + + @Value("${nifi.api.url:https://192.168.2.233:8443/nifi-api}") + private String apiUrl; + + @Value("${nifi.api.username:hzya}") + private String username; + + @Value("${nifi.api.password:hzya1314*nifi}") + private String password; + + public String getApiUrl() { + return apiUrl; + } + + public void setApiUrl(String apiUrl) { + this.apiUrl = apiUrl; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/ProcessorConfig.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/ProcessorConfig.java new file mode 100644 index 00000000..dfe2b68d --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/ProcessorConfig.java @@ -0,0 +1,27 @@ +package com.hzya.frame.nifi.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.nifi.model + * @Project:fw-nifi + * @name:ProcessorConfig + * @Date:2025/5/14 10:01 + * @Filename:ProcessorConfig + */ +@Data +public class ProcessorConfig { + @JsonProperty("name") + private String name; + + @JsonProperty("type") + private String type; + + @JsonProperty("id") + private String id; + + @JsonProperty("state") + private String state; +} diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AggregateSnapshot.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AggregateSnapshot.java new file mode 100644 index 00000000..70b2166e --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AggregateSnapshot.java @@ -0,0 +1,30 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class AggregateSnapshot { + private String id; + private String groupId; + private String name; + private String type; + private String runStatus; + private String executionNode; + private String bytesRead; + private String bytesWritten; + private String read; + private String written; + private String flowFilesIn; + private String bytesIn; + private String input; + private String flowFilesOut; + private String bytesOut; + private String output; + private String taskCount; + private String tasksDurationNanos; + private String tasks; + private String tasksDuration; + private String activeThreadCount; + private String terminatedThreadCount; + private ProcessingPerformanceStatus processingPerformanceStatus; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AllowableValue.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AllowableValue.java new file mode 100644 index 00000000..57200351 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AllowableValue.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class AllowableValue { + private String displayName; + private String value; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AllowableValues.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AllowableValues.java new file mode 100644 index 00000000..f2d87dd8 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AllowableValues.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class AllowableValues { + private AllowableValue allowableValue; + private String canRead; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToIgnore.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToIgnore.java new file mode 100644 index 00000000..5ae2a179 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToIgnore.java @@ -0,0 +1,18 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class AttributesToIgnore { + private String name; + private String displayName; + private String description; + private String required; + private String sensitive; + private String dynamic; + private String supportsEl; + private String expressionLanguageScope; + private List dependencies; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToIgnoreRegex.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToIgnoreRegex.java new file mode 100644 index 00000000..2d78b142 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToIgnoreRegex.java @@ -0,0 +1,18 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class AttributesToIgnoreRegex { + private String name; + private String displayName; + private String description; + private String required; + private String sensitive; + private String dynamic; + private String supportsEl; + private String expressionLanguageScope; + private List dependencies; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToLog.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToLog.java new file mode 100644 index 00000000..b0fce5c7 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToLog.java @@ -0,0 +1,18 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class AttributesToLog { + private String name; + private String displayName; + private String description; + private String required; + private String sensitive; + private String dynamic; + private String supportsEl; + private String expressionLanguageScope; + private List dependencies; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToLogRegex.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToLogRegex.java new file mode 100644 index 00000000..b816e0e9 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/AttributesToLogRegex.java @@ -0,0 +1,19 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class AttributesToLogRegex { + private String name; + private String displayName; + private String description; + private String defaultValue; + private String required; + private String sensitive; + private String dynamic; + private String supportsEl; + private String expressionLanguageScope; + private List dependencies; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Breadcrumb.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Breadcrumb.java new file mode 100644 index 00000000..85ad056a --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Breadcrumb.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Breadcrumb { + private String id; + private String name; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Bulletin.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Bulletin.java new file mode 100644 index 00000000..73fe3bdf --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Bulletin.java @@ -0,0 +1,15 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Bulletin { + private String id; + private String category; + private String groupId; + private String sourceId; + private String sourceName; + private String level; + private String message; + private String timestamp; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Bulletins.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Bulletins.java new file mode 100644 index 00000000..9dcc9f55 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Bulletins.java @@ -0,0 +1,13 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Bulletins { + private String id; + private String groupId; + private String sourceId; + private String timestamp; + private String canRead; + private Bulletin bulletin; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Bundle.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Bundle.java new file mode 100644 index 00000000..6361902a --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Bundle.java @@ -0,0 +1,10 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Bundle { + private String group; + private String artifact; + private String version; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/CharacterSet.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/CharacterSet.java new file mode 100644 index 00000000..13f23caa --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/CharacterSet.java @@ -0,0 +1,19 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class CharacterSet { + private String name; + private String displayName; + private String description; + private String defaultValue; + private String required; + private String sensitive; + private String dynamic; + private String supportsEl; + private String expressionLanguageScope; + private List dependencies; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Component.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Component.java new file mode 100644 index 00000000..7c099a09 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Component.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Component { + private String id; + private String name; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Component2.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Component2.java new file mode 100644 index 00000000..abbf14f6 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Component2.java @@ -0,0 +1,31 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class Component2 { + private String id; + private String name; + private String versionedComponentId; + private String parentGroupId; + private Position position; + private String type; + private Bundle bundle; + private String state; + private Object style; + private List relationships; + private String supportsParallelProcessing; + private String supportsEventDriven; + private String supportsBatching; + private String supportsSensitiveDynamicProperties; + private String persistsState; + private String restricted; + private String deprecated; + private String executionNodeRestricted; + private String multipleVersionsAvailable; + private String inputRequirement; + private String validationStatus; + private String extensionMissing; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Config.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Config.java new file mode 100644 index 00000000..ce7674f4 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Config.java @@ -0,0 +1,27 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class Config { + private Properties properties; + private Descriptors descriptors; + private String schedulingPeriod; + private String schedulingStrategy; + private String executionNode; + private String penaltyDuration; + private String yieldDuration; + private String bulletinLevel; + private String runDurationMillis; + private String concurrentlySchedulableTaskCount; + private String comments; + private String lossTolerant; + private DefaultConcurrentTasks defaultConcurrentTasks; + private DefaultSchedulingPeriod defaultSchedulingPeriod; + private String retryCount; + private List retriedRelationships; + private String backoffMechanism; + private String maxBackoffPeriod; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Connections.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Connections.java new file mode 100644 index 00000000..455a6a43 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Connections.java @@ -0,0 +1,24 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class Connections { + private Revision revision; + private String id; + private String uri; + private Permissions permissions; + private Component component; + private Status status; + private List bends; + private String labelIndex; + private String zIndex; + private String sourceId; + private String sourceGroupId; + private String sourceType; + private String destinationId; + private String destinationGroupId; + private String destinationType; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/DefaultConcurrentTasks.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/DefaultConcurrentTasks.java new file mode 100644 index 00000000..9cf2891d --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/DefaultConcurrentTasks.java @@ -0,0 +1,14 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class DefaultConcurrentTasks { + @JsonProperty("TIMER_DRIVEN") + private String tIMERDRIVEN; + @JsonProperty("EVENT_DRIVEN") + private String eVENTDRIVEN; + @JsonProperty("CRON_DRIVEN") + private String cRONDRIVEN; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/DefaultSchedulingPeriod.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/DefaultSchedulingPeriod.java new file mode 100644 index 00000000..f7de79fe --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/DefaultSchedulingPeriod.java @@ -0,0 +1,12 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class DefaultSchedulingPeriod { + @JsonProperty("TIMER_DRIVEN") + private String tIMERDRIVEN; + @JsonProperty("CRON_DRIVEN") + private String cRONDRIVEN; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Descriptors.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Descriptors.java new file mode 100644 index 00000000..aea6f9f2 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Descriptors.java @@ -0,0 +1,37 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class Descriptors { + @JsonProperty("Log Level") + private LogLevel logLevel; + + @JsonProperty("Log Payload") + private LogPayload logPayload; + + @JsonProperty("Attributes to Log") + private AttributesToLog attributesToLog; + + @JsonProperty("attributes-to-log-regex") + private AttributesToLogRegex attributesToLogRegex; + + @JsonProperty("Attributes to Ignore") + private AttributesToIgnore attributesToIgnore; + + @JsonProperty("attributes-to-ignore-regex") + private AttributesToIgnoreRegex attributesToIgnoreRegex; + + @JsonProperty("Log FlowFile Properties") + private LogFlowFileProperties logFlowFileProperties; + + @JsonProperty("Output Format") + private OutputFormat outputFormat; + + @JsonProperty("Log prefix") + private LogPrefix logprefix; + + @JsonProperty("character-set") + private CharacterSet characterSet; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Destination.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Destination.java new file mode 100644 index 00000000..1b279d5c --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Destination.java @@ -0,0 +1,14 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Destination { + private String id; + private String versionedComponentId; + private String type; + private String groupId; + private String name; + private String running; + private String comments; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Dimensions.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Dimensions.java new file mode 100644 index 00000000..53e28861 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Dimensions.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Dimensions { + private String width; + private String height; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Flow.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Flow.java new file mode 100644 index 00000000..42b137d3 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Flow.java @@ -0,0 +1,17 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class Flow { + private List processGroups; + private List remoteProcessGroups; + private List processors; + private List inputPorts; + private List outputPorts; + private List connections; + private List labels; + private List funnels; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/InputPorts.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/InputPorts.java new file mode 100644 index 00000000..b29862ef --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/InputPorts.java @@ -0,0 +1,19 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class InputPorts { + private Revision revision; + private String id; + private String uri; + private Position position; + private Permissions permissions; + private List bulletins; + private Component component; + private Status status; + private String portType; + private OperatePermissions operatePermissions; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Labels.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Labels.java new file mode 100644 index 00000000..0de5546c --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Labels.java @@ -0,0 +1,15 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Labels { + private Revision revision; + private String id; + private String uri; + private Position position; + private Permissions permissions; + private Dimensions dimensions; + private String zIndex; + private Component component; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogFlowFileProperties.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogFlowFileProperties.java new file mode 100644 index 00000000..c846b058 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogFlowFileProperties.java @@ -0,0 +1,20 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class LogFlowFileProperties { + private String name; + private String displayName; + private String description; + private String defaultValue; + private List allowableValues; + private String required; + private String sensitive; + private String dynamic; + private String supportsEl; + private String expressionLanguageScope; + private List dependencies; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogLevel.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogLevel.java new file mode 100644 index 00000000..c06f8db2 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogLevel.java @@ -0,0 +1,20 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class LogLevel { + private String name; + private String displayName; + private String description; + private String defaultValue; + private List allowableValues; + private String required; + private String sensitive; + private String dynamic; + private String supportsEl; + private String expressionLanguageScope; + private List dependencies; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogPayload.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogPayload.java new file mode 100644 index 00000000..e9cae44f --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogPayload.java @@ -0,0 +1,20 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class LogPayload { + private String name; + private String displayName; + private String description; + private String defaultValue; + private List allowableValues; + private String required; + private String sensitive; + private String dynamic; + private String supportsEl; + private String expressionLanguageScope; + private List dependencies; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogPrefix.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogPrefix.java new file mode 100644 index 00000000..bcdddf5e --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/LogPrefix.java @@ -0,0 +1,18 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class LogPrefix { + private String name; + private String displayName; + private String description; + private String required; + private String sensitive; + private String dynamic; + private String supportsEl; + private String expressionLanguageScope; + private List dependencies; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/OperatePermissions.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/OperatePermissions.java new file mode 100644 index 00000000..339abee1 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/OperatePermissions.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class OperatePermissions { + private String canRead; + private String canWrite; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/OutputFormat.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/OutputFormat.java new file mode 100644 index 00000000..85dd79b7 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/OutputFormat.java @@ -0,0 +1,20 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class OutputFormat { + private String name; + private String displayName; + private String description; + private String defaultValue; + private List allowableValues; + private String required; + private String sensitive; + private String dynamic; + private String supportsEl; + private String expressionLanguageScope; + private List dependencies; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/OutputPorts.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/OutputPorts.java new file mode 100644 index 00000000..9c8baab4 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/OutputPorts.java @@ -0,0 +1,19 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class OutputPorts { + private Revision revision; + private String id; + private String uri; + private Position position; + private Permissions permissions; + private List bulletins; + private Component component; + private Status status; + private String portType; + private OperatePermissions operatePermissions; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ParameterContext.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ParameterContext.java new file mode 100644 index 00000000..778dcf85 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ParameterContext.java @@ -0,0 +1,10 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class ParameterContext { + private String id; + private Permissions permissions; + private Component component; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ParentBreadcrumb.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ParentBreadcrumb.java new file mode 100644 index 00000000..c95c2596 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ParentBreadcrumb.java @@ -0,0 +1,10 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class ParentBreadcrumb { + private String id; + private Permissions permissions; + private Breadcrumb breadcrumb; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Permissions.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Permissions.java new file mode 100644 index 00000000..bed0e5d3 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Permissions.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Permissions { + private String canRead; + private String canWrite; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Position.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Position.java new file mode 100644 index 00000000..8463180e --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Position.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Position { + private String x; + private String y; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ProcessGroupFlow.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ProcessGroupFlow.java new file mode 100644 index 00000000..8eaf9f5e --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ProcessGroupFlow.java @@ -0,0 +1,14 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class ProcessGroupFlow { + private String id; + private String uri; + private String parentGroupId; + private ParameterContext parameterContext; + private Breadcrumb breadcrumb; + private Flow flow; + private String lastRefreshed; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ProcessGroupsId.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ProcessGroupsId.java new file mode 100644 index 00000000..189547a1 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ProcessGroupsId.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class ProcessGroupsId { + private Permissions permissions; + private ProcessGroupFlow processGroupFlow; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ProcessingPerformanceStatus.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ProcessingPerformanceStatus.java new file mode 100644 index 00000000..b0436353 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/ProcessingPerformanceStatus.java @@ -0,0 +1,13 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class ProcessingPerformanceStatus { + private String identifier; + private String cpuDuration; + private String contentReadDuration; + private String contentWriteDuration; + private String sessionCommitDuration; + private String garbageCollectionDuration; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Processors.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Processors.java new file mode 100644 index 00000000..2a8f9a1c --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Processors.java @@ -0,0 +1,19 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +import java.util.List; + +@Data +public class Processors { + private Revision revision; + private String id; + private String uri; + private Position position; + private Permissions permissions; + private List bulletins; + private Component2 component; + private String inputRequirement; + private Status status; + private OperatePermissions operatePermissions; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Properties.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Properties.java new file mode 100644 index 00000000..6ebbc446 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Properties.java @@ -0,0 +1,44 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * Auto-generated: 2025-05-14 16:51:34 + * + * @author lzltool.com + * @website https://www.lzltool.com/JsonToJava + */ +@Data +public class Properties { + + @JsonProperty("Log Level") + private String logLevel; + + @JsonProperty("Log Payload") + private String logPayload; + + @JsonProperty("Attributes to Log") + private String attributesToLog; + + @JsonProperty("attributes-to-log-regex") + private String attributesToLogRegex; + + @JsonProperty("Attributes to Ignore") + private String attributesToIgnore; + + @JsonProperty("attributes-to-ignore-regex") + private String attributesToIgnoreRegex; + + @JsonProperty("Log FlowFile Properties") + private String logFlowFileProperties; + + @JsonProperty("Output Format") + private String outputFormat; + + @JsonProperty("Log prefix") + private String logPrefix; + + @JsonProperty("character-set") + private String characterSet; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Relationships.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Relationships.java new file mode 100644 index 00000000..9afc6874 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Relationships.java @@ -0,0 +1,11 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Relationships { + private String name; + private String description; + private String autoTerminate; + private String retry; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Revision.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Revision.java new file mode 100644 index 00000000..bff55741 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Revision.java @@ -0,0 +1,8 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Revision { + private int version; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Source.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Source.java new file mode 100644 index 00000000..76b9aaab --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Source.java @@ -0,0 +1,14 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Source { + private String id; + private String versionedComponentId; + private String type; + private String groupId; + private String name; + private String running; + private String comments; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Status.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Status.java new file mode 100644 index 00000000..5d8a7de6 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Status.java @@ -0,0 +1,13 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Status { + private String groupId; + private String id; + private String name; + private String runStatus; + private String statsLastRefreshed; + private AggregateSnapshot aggregateSnapshot; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Style.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Style.java new file mode 100644 index 00000000..b8b529df --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgroupid/Style.java @@ -0,0 +1,7 @@ +package com.hzya.frame.nifi.model.processgroupid; + +import lombok.Data; + +@Data +public class Style { +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/AggregateSnapshot.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/AggregateSnapshot.java new file mode 100644 index 00000000..fecf336c --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/AggregateSnapshot.java @@ -0,0 +1,43 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +/** + * Auto-generated: 2025-05-14 15:30:8 + * + * @author bejson.com (i@bejson.com) + * @website http://www.bejson.com/java2pojo/ + */ +@Data +public class AggregateSnapshot { + private String id; + private String name; + private String flowFilesIn; + private String bytesIn; + private String input; + private String flowFilesQueued; + private String bytesQueued; + private String queued; + private String queuedCount; + private String queuedSize; + private String bytesRead; + private String read; + private String bytesWritten; + private String written; + private String flowFilesOut; + private String bytesOut; + private String output; + private String flowFilesTransferred; + private String bytesTransferred; + private String transferred; + private String bytesReceived; + private String flowFilesReceived; + private String received; + private String bytesSent; + private String flowFilesSent; + private String sent; + private String activeThreadCount; + private String terminatedThreadCount; + private String processingNanos; + private ProcessingPerformanceStatus processingPerformanceStatus; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Breadcrumb.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Breadcrumb.java new file mode 100644 index 00000000..342dc679 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Breadcrumb.java @@ -0,0 +1,10 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +@Data +public class Breadcrumb { + private String id; + private Permissions permissions; + private Breadcrumb2 breadcrumb; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Breadcrumb2.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Breadcrumb2.java new file mode 100644 index 00000000..6e3ef175 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Breadcrumb2.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +@Data +public class Breadcrumb2 { + private String id; + private String name; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Bulletin.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Bulletin.java new file mode 100644 index 00000000..4aa55489 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Bulletin.java @@ -0,0 +1,23 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.nifi.model.processgroup + * @Project:fw-nifi + * @name:Bulletin + * @Date:2025/5/14 15:59 + * @Filename:Bulletin + */ +@Data +public class Bulletin { + private String id; + private String category; + private String groupId; + private String sourceId; + private String sourceName; + private String level; + private String message; + private String timestamp; +} diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Bulletins.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Bulletins.java new file mode 100644 index 00000000..985dc833 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Bulletins.java @@ -0,0 +1,21 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.nifi.model.processgroup + * @Project:fw-nifi + * @name:Bulletin + * @Date:2025/5/14 15:57 + * @Filename:Bulletin + */ +@Data +public class Bulletins { + private String id; + private String groupId; + private String sourceId; + private String timestamp; + private String canRead; + private Bulletin bulletin; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Component.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Component.java new file mode 100644 index 00000000..5e79e2af --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Component.java @@ -0,0 +1,37 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +@Data +public class Component { + private String id; + private String versionedComponentId; + private String parentGroupId; + private Position position; + private String name; + private String comments; + private Variables variables; + private String flowfileConcurrency; + private String flowfileOutboundPolicy; + private String defaultFlowFileExpiration; + private String defaultBackPressureObjectThreshold; + private String defaultBackPressureDataSizeThreshold; + private String logFileSuffix; + private String runningCount; + private String stoppedCount; + private String invalidCount; + private String disabledCount; + private String activeRemotePortCount; + private String inactiveRemotePortCount; + private String upToDateCount; + private String locallyModifiedCount; + private String staleCount; + private String locallyModifiedAndStaleCount; + private String syncFailureCount; + private String localInputPortCount; + private String localOutputPortCount; + private String publicInputPortCount; + private String publicOutputPortCount; + private String inputPortCount; + private String outputPortCount; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Component2.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Component2.java new file mode 100644 index 00000000..16164c5b --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Component2.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +@Data +public class Component2 { + private String id; + private String name; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Flow.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Flow.java new file mode 100644 index 00000000..bbcdd6ee --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Flow.java @@ -0,0 +1,17 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +import java.util.List; + +@Data +public class Flow { + private List processGroups; + private List remoteProcessGroups; + private List processors; + private List inputPorts; + private List outputPorts; + private List connections; + private List labels; + private List funnels; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ParameterContext.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ParameterContext.java new file mode 100644 index 00000000..fe77be98 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ParameterContext.java @@ -0,0 +1,18 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.nifi.model.processgrouproot + * @Project:fw-nifi + * @name:ParameterContext + * @Date:2025/5/14 16:43 + * @Filename:ParameterContext + */ +@Data +public class ParameterContext { + private String id; + private Permissions permissions; + private Component2 component; +} diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Permissions.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Permissions.java new file mode 100644 index 00000000..7d1a4d49 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Permissions.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +@Data +public class Permissions { + private String canRead; + private String canWrite; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Position.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Position.java new file mode 100644 index 00000000..acc8d66a --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Position.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +@Data +public class Position { + private String x; + private String y; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupFlow.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupFlow.java new file mode 100644 index 00000000..61a39682 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupFlow.java @@ -0,0 +1,16 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +@Data +public class ProcessGroupFlow { + private String id; + private String uri; + private Breadcrumb breadcrumb; + private Flow flow; + private String lastRefreshed; + //查询单个流程组 + private String parentGroupId; + //查询单个流程组 + private ParameterContext parameterContext; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessGroups.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessGroups.java new file mode 100644 index 00000000..ac1e25d4 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessGroups.java @@ -0,0 +1,34 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +import java.util.List; + +@Data +public class ProcessGroups { + private Revision revision; + private String id; + private String uri; + private Position position; + private Permissions permissions; + private List bulletins; + private Component component; + private Status status; + private String runningCount; + private String stoppedCount; + private String invalidCount; + private String disabledCount; + private String activeRemotePortCount; + private String inactiveRemotePortCount; + private String upToDateCount; + private String locallyModifiedCount; + private String staleCount; + private String locallyModifiedAndStaleCount; + private String syncFailureCount; + private String localInputPortCount; + private String localOutputPortCount; + private String publicInputPortCount; + private String publicOutputPortCount; + private String inputPortCount; + private String outputPortCount; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupsRoot.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupsRoot.java new file mode 100644 index 00000000..9de53dec --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupsRoot.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +@Data +public class ProcessGroupsRoot { + private Permissions permissions; + private ProcessGroupFlow processGroupFlow; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessingPerformanceStatus.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessingPerformanceStatus.java new file mode 100644 index 00000000..c3f7e549 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/ProcessingPerformanceStatus.java @@ -0,0 +1,13 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +@Data +public class ProcessingPerformanceStatus { + private String identifier; + private String cpuDuration; + private String contentReadDuration; + private String contentWriteDuration; + private String sessionCommitDuration; + private String garbageCollectionDuration; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Revision.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Revision.java new file mode 100644 index 00000000..b152031a --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Revision.java @@ -0,0 +1,8 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +@Data +public class Revision { + private String version; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Status.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Status.java new file mode 100644 index 00000000..f2d1074a --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Status.java @@ -0,0 +1,11 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +@Data +public class Status { + private String id; + private String name; + private String statsLastRefreshed; + private AggregateSnapshot aggregateSnapshot; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Variables.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Variables.java new file mode 100644 index 00000000..35cd19f8 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/processgrouproot/Variables.java @@ -0,0 +1,8 @@ +package com.hzya.frame.nifi.model.processgrouproot; + +import lombok.Data; + +@Data +public class Variables { + +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/service/NifiApiService.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/service/NifiApiService.java new file mode 100644 index 00000000..1a79d26f --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/service/NifiApiService.java @@ -0,0 +1,46 @@ +package com.hzya.frame.nifi.service; + +import cn.hutool.core.util.StrUtil; +import com.hzya.frame.nifi.client.NifiClient; +import com.hzya.frame.nifi.model.processgrouproot.ProcessGroupsRoot; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.nifi.service + * @Project:fw-nifi + * @name:NifiService + * @Date:2025/5/14 10:02 + * @Filename:NifiService + */ +@Service +public class NifiApiService { + + private final NifiClient client; + + @Autowired + public NifiApiService(NifiClient client) { + this.client = client; + } + + /** + * 获取token + */ + public String getAccessToken() throws Exception { + return client.getAccessToken(); + } + + /** + * 查询全部流程组或指定流程组 + */ + public ProcessGroupsRoot queryFlowProcessGroupsRoot(String flowGroupId) throws Exception { + ProcessGroupsRoot processGroupsRoot = null; + if (flowGroupId != null) { + processGroupsRoot = client.get(StrUtil.format("/flow/process-groups/{}", flowGroupId), ProcessGroupsRoot.class); + } else { + processGroupsRoot = client.get("/flow/process-groups/root", ProcessGroupsRoot.class); + } + return processGroupsRoot; + } +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/util/JsonUtil.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/util/JsonUtil.java new file mode 100644 index 00000000..e21fcfa9 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/util/JsonUtil.java @@ -0,0 +1,31 @@ +package com.hzya.frame.nifi.util; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.stereotype.Component; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.nifi.util + * @Project:fw-nifi + * @name:JsonUtil + * @Date:2025/5/14 10:03 + * @Filename:JsonUtil + */ +@Component +public class JsonUtil { + + private final ObjectMapper objectMapper; + + public JsonUtil(ObjectMapper objectMapper) { + this.objectMapper = objectMapper; + } + + public String toJson(Object obj) throws Exception { + return objectMapper.writeValueAsString(obj); + } + + public T fromJson(String json, Class clazz) throws Exception { + return objectMapper.readValue(json, clazz); + } + +} diff --git a/fw-nifi/src/test/java/JSONata4Java.java b/fw-nifi/src/test/java/JSONata4Java.java new file mode 100644 index 00000000..47a3f375 --- /dev/null +++ b/fw-nifi/src/test/java/JSONata4Java.java @@ -0,0 +1,43 @@ +//import com.bazaarvoice.jolt.Chainr; +//import com.bazaarvoice.jolt.JsonUtils; +//import com.fasterxml.jackson.databind.JsonNode; +//import com.fasterxml.jackson.databind.ObjectMapper; +// +//import java.io.File; +//import java.io.FileInputStream; +//import java.io.InputStream; +//import java.util.List; +//import java.util.Map; +// +///** +// * @Author:liuyang +// * @Package:PACKAGE_NAME +// * @Project:fw-nifi +// * @name:JSONata4Java +// * @Date:2025/5/13 15:42 +// * @Filename:JSONata4Java +// */ +//public class JSONata4Java { +// public static void main(String[] args) throws Exception { +// // 原始 JSON 数据 +// String aJson = "{ \"id\": 1, \"name\": \"ObjectA\" }"; +// String bJson = "[{ \"id\": 1, \"value\": \"DataB1\" }, { \"id\": 2, \"value\": \"DataB2\" }]"; +// String cJson = "[{ \"id\": 1, \"value\": \"DataC1\" }, { \"id\": 3, \"value\": \"DataC3\" }]"; +// +// // 合并为 Jolt 输入格式 +// String inputJson = "{ \"a\": " + aJson + ", \"b\": " + bJson + ", \"c\": " + cJson + " }"; +// +// // 加载 Jolt 转换规则 +// File newFile = new File("/Users/liuyang/workspaces/hzya/fw-nifi/fw-nifi/src/test/java/spec.json"); +// InputStream inputStream = new FileInputStream(newFile); +// List spec = JsonUtils.jsonToList(inputStream); +// Chainr chainr = Chainr.fromSpec(spec); +// +// // 执行转换 +// Map input = JsonUtils.jsonToMap(inputJson); +// Map output = (Map) chainr.transform(input); +// +// // 输出结果 +// System.out.println(JsonUtils.toPrettyJsonString(output)); +// } +//} diff --git a/fw-nifi/src/test/java/TestNifiConfig.java b/fw-nifi/src/test/java/TestNifiConfig.java new file mode 100644 index 00000000..41bb89a4 --- /dev/null +++ b/fw-nifi/src/test/java/TestNifiConfig.java @@ -0,0 +1,28 @@ +import com.hzya.frame.nifi.service.NifiApiService; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +/** + * @Author:liuyang + * @Package:PACKAGE_NAME + * @Project:fw-nifi + * @name:TestNifiConfig + * @Date:2025/5/14 11:26 + * @Filename:TestNifiConfig + */ +@SpringBootTest +public class TestNifiConfig { + +// @Autowired +// private NifiApiService nifiService; +// +// @Test +// public void testCreateProcessor() { +// try { +// nifiService.getAccessToken(); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +} diff --git a/fw-nifi/src/test/java/spec.json b/fw-nifi/src/test/java/spec.json new file mode 100644 index 00000000..a7b76001 --- /dev/null +++ b/fw-nifi/src/test/java/spec.json @@ -0,0 +1,35 @@ +[ + { + "operation": "shift", + "spec": { + "a": { + "id": "id", + "name": "name" + }, + "b": { + "*": { + "id": { + "@(2,a.id)": { + "@2": { + "value": "matchedB.value", + "#B": "matchedB.source" + } + } + } + } + }, + "c": { + "*": { + "id": { + "@(2,a.id)": { + "@2": { + "value": "matchedC.value", + "#C": "matchedC.source" + } + } + } + } + } + } + } +] \ No newline at end of file diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/client/NifiClient$IOExceptionRunnable.class b/fw-nifi/target/classes/com/hzya/frame/nifi/client/NifiClient$IOExceptionRunnable.class new file mode 100644 index 0000000000000000000000000000000000000000..e4a9541988a828619458acbdd7eb9b361a928a2a GIT binary patch literal 482 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 literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/config/JacksonConfig.class b/fw-nifi/target/classes/com/hzya/frame/nifi/config/JacksonConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..c4261817498b6b8bd6c76c8c5c93db0a9dcc586e GIT binary patch literal 766 zcmb7C!EVz)5Pj>UNeLkdrMMKha7!DNy&x_{NTm`7a6u|4h~vgyyPMj((RvMquYwDe zK;i@VD8%e0s^AuUnDLC~y?OiAzkYxJ3E&a#_s~Jy#ZC_qVju2wvD?L6hRzeEm3zw2 z8t+XR+Q%l748ufe`KqaA(!Le5k~&+7NkusoR{46>Y`Zg6Gwdg+srcFFPlD%GRFZ3z zE1nvitAf7}>3MDRai|U%`ertlsXGyig|rNOycf{9sGYPIRmtZ|0MCRIGo>^B`Y!+x z9Q^0}?rEc)s^nDFiliTDZJcn*Xi|QV7+dgqVU;d|^pD1#d*x1EI4-V6`7eeRQ$OF!4sNX+pjEBOXQ`{#mZBL zI46gXbapBW5Wr{o{;Jg4qP1#kTP;w%l|q_IO_QdHPqa2-d0&nNwjOt6Zx5};|49># zi4Xn({!zx+0|DXs;KR+{%+AMeX6M)MA3p)00>u=>U^@v>c%;Q+Eq3CNk3)e#jP=EZ zvJzI$$ZwOa3Eq-jzHb3)vO)lRsY+nz_F`3n1QfPf-jHs@_c^Ea*=}`?p z{c-r%)O75&=+HB)Q|EFZOn%~9a1zN5SI492FXszE^G~`HmzDgyhlX7|<*Mtn&Y6A# z#U-MoG4sWEP-#purQzNAcslxSqNVDNCr$oR=w5Sk%!b|&0{ejvkBut+UQIvwuv1U^ z8*`X}o3NCDI3zN#phXrE1fKlQ(6HIblD=wQa#O)W+~yeWc^E=EH{e`ROXHcsFYQ7G zFR;z{s~7QX}ef^4#W!ep7+6ZQf%ra4AdUg%dZ~;b4 SS!4>~Mrpa}?~#7vEr37Txd4p- literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/ProcessorConfig.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/ProcessorConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..15d66f3cb33b18c2b35f4e2f3517b8b89848b5b2 GIT binary patch literal 2925 zcma)8S#KLv6#mAZ%}Z92rc;`w5Fm+@8cHePG$n26l9HsMDS?))6K4`nYI}@5t|;Oe z@r1+^5)!XeLVbV=QVApkFGb=vQOb8_CYwD-k&<)IJe%`CDyHcC6;rNR|>3w74am93iV>GM8nqSuZ*lUBSMu1;pbrv004ZSQdw2WicpZNXRfO1>-WH2O5Vg&f(=OUcguu zCxjapZbC>-$a%b}V4(GaoNKz}HEDc*OJZY!!Auqo)(QILh*UYlvL{E}HLm95NKh$R zWju>{jB#3a4-au=KkQn~sj@LsaTC@ybWt|bIK~HHfDed@gtP?;j&PUZ`ZWKKHYiL; ztJ)QVRIq*RiXkf4(sso#Iw&Lpq|Y!)o~y!Dn|KK2Co%~J&vU0p z(@FO`|BS?sEzUi$&crFkIoaym7wb%XW1Q7i=Yd#f&P9x~*6MsD)_D?BNCq_**r9}U zXd?Fu67d~76k0?blWvBv9;ctCaMRt6FyH6+7|Dai2qz?pG1wkskmbJ^A45H8jBwbZ z7(?wbh8W|e_!!zjV}x@X#TagnG0Yge^XxHaQ2Cr|hJAgIoA@4@dO!Ck^lzah@8|x2 zzA!nl1tZv!F&8IE3hLBf$XMzl^xQ*s%2KzG+O|j+G@7Ifx}}MY{s_JI&|ztozQ-t2 zFldx1n3f?%W@Kbo<{qPLAw{EXA#J6^C>QN~3~lQU4qEKZX%@ij0047n7( z;p1|KTpDjMk5lL}%zw~nVD>Q%892*7Q+bTTA)ERi77sWAtsGdl4UPgLX?Cl#2#;1LE7s&!AFR%Ze*k9JR&2&LJby9Z-x3mvya zo-U}Ou+&In3c#T%Q_unxu??I|OWRgu3wof^cT_~2UPt3Wx*X;bC7(nE7ualmFbKmX zatXF|9hX^<0K9-Xaw^+>0$0dsxWV`SEpmF${2yRGp+IHx6@?9lqCBDF?mi)cerVeU z+cxTcQDmm?G269ll}5(Ke&b#H7zJHeBfowjCfH=1^6i-Y4V^b0qN}%i3q1l2m)_ox l=eYOuJ{9sA;rl{9D||o677n#O!FxYDvr&%~c2UM?@ju_+(mMbE literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/AggregateSnapshot.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/AggregateSnapshot.class new file mode 100644 index 0000000000000000000000000000000000000000..03395662b28ca5df9bd007525c7089e9b3ea9292 GIT binary patch literal 17361 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 R;)PG&@g_A29|k2}{14+*FM0p~ literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Breadcrumb2.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Breadcrumb2.class new file mode 100644 index 0000000000000000000000000000000000000000..ee633dc115ce7353de5551a4cc4cd9cb545cf7fa GIT binary patch literal 1894 zcmbVNU2hvj6g^|lde`ozaol{=kV0rv>W{b!{es#_fV63wVy9J8Re~or_BP()c*A;) z1V4ozKwk0y61Wmb2wsZR-_W1IBc+_#-K2@*2ZU_RoVj!7-gD30*?s=cFTVk}f_erM zsHP!NQ^TT;r3~j~HGHJ@K33=xg;sRj$RLBNftzYxHE_$oZ3XY>SQALNErDG9iT$;0 zb?okzwGsGkcdI5KyY{vtkXm%RZm=wnEEFHndc$kcI$n3X&U$}))A1kLn;lwmb+2i6 z9@)OD*0E6rZMP@zVZG^XTkUVZv8~5Gqgq|}v1@HJQpeiyy{6OaZTViG&?Wt|}r7(zbi;NNVcNK56$KtTk3iggE6py?!TPOTsMLd=%6Oyr_8snGLV+ zH=SFq>P+^Kq8C-8O-y0hL=LA+OyZQlwg1;16Bg!8%;JoRa|*qs(0h1aU}pG%TIsu; zmJ(|G5SxPAS~77LpHjbtIaS3HD=eD$0B6Yib&N=ER&MX?I9-Zd8P(-ujgOPo@DA_8 z1n*9QKb9RLR?ayMHXYL(XSlLB3(i{UDa4PV+i8xe$cQ|#8RIwbCRajL&++KtpOE-r z=&(NWFa;ZNI5~XS7(nAn9`$;$!seGj9m(Z#5y@|yBVJwt96V|gu~+INzB%$3A&|L#N_4s>YaJl-Yg zDQw^Zdzv8Mn<&thLqP9-7@4f>RcQdnU8Iiz*tZ=BRod5LKq7x_2DOPr2i z`aq2H6ho@}5{q%2DOE!>rGjFbIL0*Un0CNaBR|D7?%0J;UfwpE)I;!sAvDg_Y;934 zg(A*oYi&wsWXrqID+8pzP%JBAXLTeG7DyAnl>X(V|!FX1wCYPia8(Pd`M z@XlW)wItsHGq^@1LvijxzM?@=93dzOgm^`#*Xx8bOhMas*!Ph~O>|>Ez7yg~A26q2 srG;OS`Rpl9@?IN&~odjjQaiTR9Vepb-u z#C%@N(_+3L=8Iy!B<306J!|311&pC%<0~?L)yCIseBH)#Hojrwc^luf@huxKNbp4q zFB!-**9_E`uK3sdM$6w?Z>)sf=GOYW0ejUCgY|azx&dpw+urFcl4)bl>!+~qeLTg}VO#wIJZ8l7%? zmETpX?6%us(faJ*Lutt8tmC7#}~O@B#m zTC$eoeLHk6^tNtp>(7r)-u`tti|TR^ZnW3V`?9An=yIn;rt~d|UT;Zs`j(V<(UR!L zOCszoiB8{=a>0{3ev2R4v!+KbT?tmh`KiYZ81221h(bKecDNCAdCPJo6QUej%_vw> zlReRtb*MMtC_*Bol8*O$74GRP%I{57`UrZ%Rb4_;^i)BSA~hCuJo5DS6M;tGPyDjV z>{D$;XZOvNRziRE>ayQa(qx;e7Gk4poslEuacub88(Q6z`XW#4{G*G@XLzKb&w3y`!-wl4HnE^mbf~u-;m3BHD;Oku16}(YHK1Z0qi2bFL`iE;OaBN^v_J zlQwrShhq*VaMZy)V(t|)DP~H{w3rz&vp8ztf&ZcH9DEY*clhodckr;FcL;i?n0JYJ zw-`^%yqFVWo`7%Qz~DP{YNy#+6UjO89wwV>Cmnnn-(jQ7j>kuMl3Sh~j}DOzL-8@v zE5)81Bz=2!Tpgv(iVl;GGdrFfCtYL8!6uHgNqfuEy}--#JDp&Q9Wa;H*thk1w2yh* z&A0jpe-mtEaBsG~zPf4~1lSfmN*&!*(`N8C|)Z~+RkRp?N z_BduZ=B8&}K_*=#W111EL=+@4HSiwhnFgIIo%g1f9NKS5QG8PJ9#!(8^pe^AmXzj6 zO5UqVo=Pui?zg1$VN!BZl{}qZGPmE7($Y!EDOK`)=_RfGmXy~aDLJi5o=Goh@3*8p zG)c)BRdOM{WPZOT<;_Y;&Z?69Wzf3JJkN2MPtwB7^bcTWZ_fM%g_mIt-JE$1h2`1l zT@;l|;GCPK@v?KjL($E?j@k`4b8dDQrI=CnOj62T&NYRTdmZ%~D7mJa>myY>i=>KY zyOxmbh-A5TAF1l)Nve7UH!q|@M9RB`K2psql2r2?wRySYx>t5fLMlh3 zl3VU04SN-mhP|p=5mGfGRorSHX~e6MG~(6Wnvm)dspi&WQuZc0bqM!KpYzB8{rbPA zPdM&tV*!i!0OO;^{W!~C1pXWuhq1)DAxs;GuuPQYulFsSBQoj#1CJ2p(86DEp2$KM zf5ZogY`lb5@F-Cp-@}ivLR7#mUc?2WB7TME@F5}xf5lZ?Br4(W2=HN|GMBi3j}TRi z93Pg)h^od>{!l(nR5NC95FaI~<73>*B^ih?%*i#GkN6l%ah7K!J!DkKpIHOqAsd^nI)onH0%0*dWRw2u_%2mWj@fbfv^%f_x6pvw0Fffc;{6Npo$iyhjm=JTad#55=u8-DZ4$eko zYcILSPYFaR_H8M>tn^rvm`_XW<=!zIr5Emy-mCDR7*Ubpos0D9{1*~SQ4{--X9kG+Zm^}BZAO51R#ze!_0sBZnB#udSbH0B%X*59mgP4HVZ=CkS6->UJj e;Bk#d1m8`wi^GF|X7&F$-H9}8U`ss-?SBIR*#T|< literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Bulletins.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Bulletins.class new file mode 100644 index 0000000000000000000000000000000000000000..ff91c5190f910385f33b6dbdc3a055481620eaee GIT binary patch literal 3914 zcmbVOU2_v<6n-|{&2G|78Uh6(s0E7lllZ~s7Ep?OR9irb2#CtIU7A3elw^Z~-+1SZ zdZpud<2VC1%&0R`X4G-?24}qV${DY`@=t*HoZU?}4a-brrgPqN-t(NZ=RN0n-}Lu? zfA|@|W?V_)5lkguU|PhC2uH+O5wju+I*LiI=R}+rd`Yx95oHk-5%VH0h_|YvmP8g) z23%R|1}++S!@!#cE*ZEidv6(dTh@1UysIEqoKcV+KWAUG^Ci1Ho1b*6#q#Wk0)4hx zsn3tmZPY6D>a-(j!Y$4@HP@b-Ct%txA9ZX2Ow~&z$1Ro>Y#E=f%;gK0FWLFCReR3K zmy2hM`MJuBQ_9a*E7MM`=H;zcDsFx>2;Rv`D=o&AUokR7x zDW`hOo+@!CJ6@T#OULbMQS4w-bqmFsf~^no?HWI>%{s1}Zbe^zR40;jA80hAlg4DT zA11A1VM_$Lx6u_rHcqHu8*@KcYqXkQU3cHT#YwL+6OLP`%p9?$->y?-Cz1>aE2hy> zF|F2$X@(Wk2rJ&+_do?pNpa^w-7c|^MKvFuI_FHgBmJioD3!&m3tSvU#Vt5hl1oO~ zE95l19ZxmA%_c8Xz9+OjcSzQ>?{C@g04)^m@)0dN{wJEu4n7guUWSnF!6(9v)TC=q zpP#VjJ!5w9;aZ}3O>6@^)a6K$kDNheQXK!c-5)ZOD=DLfArqw*%H0s zF_OJ41slE1;u5`K9fn)+Z!*c?4}X7A?oYZg-`Xa*^CligpNU7&V`80%^&&Qi=oPUM zk15#v0KBc4n8dRtHX(1~8PT2)?MV?&iFjJXW^6HW3@<5I)&2sF){CVXVM3}|abIy} zmx=fAKF>7N6SQWRg3h6yMssMHLp{y*&?GWwkdJJ%$jkHr+um>Db>w-C!U}vgavb*j zyi+Czhoi3EJ-0C^nGeb$e1rD)#k2DUA8#Ozn2ds2Os3(j9Ei7aCf>@icq=Evbr}?y zAZ0(TJXeLQHgFTlcOGnjGVX1rFi73>0T{wCEk))-xj6WH#J+6{?urcNNF#zf+JiHZ z!K6Y&u-YEHEHaoBiU`))gR_yrq+UdDyghh%WH2ck5v;cduZRrZiftUNblc(@;~F0r zyn$HstXBGnU{*3mA%}wPjMEev85%pHQ+6yhrSPnoa-EmbicYC6HKkCtnR30CawIyX zw$zlu{$|PzUdo-(DdS5`DHo}kve!$w3%jGnqc1h3+{tFjjb2JVeSXTA%C(D=yFEB? z6`Fc|@K+dLKN(l(LMRE+8WS={chXl(rHCrLANxA)sUcO5~C)pf0PEpf1bI zbqdG~K-5}587oCl#!BZ>0!jyb_4z#~XpZk4j^87aTV3dvQ#y{B0cPhr; zqCfE*_aycY?4zdQ0B&GEH4PK^hSn(WM+u+cAT=FTe1tJ-20q1kJWnlw&*0z%YDp|G za-3Qxe&T#4sG0bSPwpXVDg2E!I7}^#Bdm8E-MVobX&o=#!Ac!R`DZA1u-aD>|4VJ$ z-903SD!-5c-*)i0@*HTw3h7epo-X;Xf!6Gj#@qbKa*Gd4>>yJlnCNO| zWT(2zBh}i>NP(0xGK1Hk4=-TZ8QC{2RUA1r@EAfg-<7g7&qa=TK}Jq%xYAbKbH$r3 zGS83dvUJZy(gjg^!DaSMqRuWz~U{i5ZS&Pfc3@T5FgW;pxJ|BrlD z;R<`MkX0vsME2xOEYGf3K(~;KOLnEN^G)c^uJZMi=&OC5&p>xJ=j&afKjiC~1+2-g YrM`fN+kZw||7kf9@Ib*C?}FI>0TjHr1ONa4 literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Component.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Component.class new file mode 100644 index 0000000000000000000000000000000000000000..cf93f7f162be47e5651b40c0031fb5eec32c8c7e GIT binary patch literal 18645 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 Voui+R!GB(Ky&4wuQFkO<`!7N88^{0v literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Permissions.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Permissions.class new file mode 100644 index 0000000000000000000000000000000000000000..2169808e8f5275d54997fab94579c58d4596af5e GIT binary patch literal 1957 zcmbVNU2hvj6g^|_de_b-b=-W^kV1f#`XlZF{eap@fTrmec8L;H1W#<7ZFY<84eK=$ z{1kowdC3Dv;7TANcqtOUfuF%6rJUJaJC5TAglx^6xpU{8!>We04Ci$@yes$KljwbkZfe-bAcLxoTXNpiaa+e73GZsSC!jU0&bDps3FPXJ ztuHOJWp(z=oxpcH`!xZb+aLRGU<;&H-Hscq3nUB0hXTrmw@2%ly4$fI^xC_&|BHaqSk*K9LV%RKPCrrquC`(BUG z3(PIsZ@b;D>vg(hlG(R|jRDuWLU9t?smLcLoav67m@k|@Aj`-$?7;E%wk$~}uzix8 zip~wnw!i3EEt*e6_;B~J-3)5QPX&Z`QoDFdK=lI0_5}=C`-P#-)1i4}J=l&D&J6cs z!}LyIH9v1y2ced1cGx)CnN3NJO>(TR6SafAVN=zu?R$+)QX@|JcDL6G=yjYjEnys8 z54@<`lz7MM`Az$_E8CbIk^i#183yLDU?7LH2Ig>9;QIgTr2!Kc3@qWif!8E@NuoFK zroiI(4ZPWNTYFN&xe+#nSjsg6_wfPywX!@YXN@%%4ZMx>EZ{g;)Dmi89URyl-u23) z+i>cF#Mx_jh0kf0PcOj_>kknn;G7081{OFja%FNBoYm43i0?zUa~xBV5qV-G#xLMS zu7s3<2A@(tAFQTbOWjg?X# zYPcjwJy_vTRVu$@Dz7}n>>-RwUg<*{c<5D?E_yYUSEWztDRPIH&a3&hQdLy-?B7UKp}%7&;?1<5pVifPm_b;wjDKgl%i*riZjK0BJ^ zCHRveRL<3GZBuNa z3s;y^#WntwU18P?AOAH{OY-Mn5!Z>7P@MZvp3|UE93dzOgm_M;<8?wB=AjN820qG3 z6Wy4PzX@@r+sr9gY2jyNK6!$voYBX$ESOVnCc?VJXE^kc9e+;h$a5;hb@8t)Y{HFy E0eG}f@c;k- literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Position.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Position.class new file mode 100644 index 0000000000000000000000000000000000000000..e0977a3b631aca7b9e0bd0513ded98518c5f7f97 GIT binary patch literal 1854 zcmbVN+in|G6kW%j@r<2G>$thpkV1fz`Vx15G(hbnK-=_&U7`k6lqV+6G@jykf;~nJ zpTY-_mpp(3t^^W-mm={EdHJO$=&;cJ`i-pz|{;gsG7JY`~*|gRUug@-c!)7`dhBT>AKf(@AP*z-R{TEW}B8=-ETVWdrsGr zb8OUtme*5QsyF=|yY-l`Z2)8F zVODjznAKEX7oXG<m)se4P4+%6Xbgh1=^A* zVHHIp4L7J$iAYC-K4qd57MOnyX~X;rrwmk{V%oq({+jA3&PFhOD8_k;p~*vu#kkCp zG7w!<5T=O}OrweEhfHVabFXG=%i2mP;%v6oqJ(C)ybq%? zK>9PWn^jFN@>+ajim<$z9WB_UC~Hh3$+!6y7Fkor69306vTBBpeTmePeEu_dn@9`A zxee_Z4I0H!ih@9?XLNdgPKaR&`p{wMqa8KTjrI69A@1}pYbthH_z9W&k1>|B1{jxy ex#dnp*c5!4%K+Kq&q@E+b1KArDZCpF;qpJ&+$fj; literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupFlow.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupFlow.class new file mode 100644 index 0000000000000000000000000000000000000000..dd5de530ff08ddf288f0842564324b1ea678554c GIT binary patch literal 4137 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 J5BXx~{{Wg0*Vq66 literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupsRoot.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/ProcessGroupsRoot.class new file mode 100644 index 0000000000000000000000000000000000000000..d20f5fd2d776b833c46af980e3ac7c551a49c59d GIT binary patch literal 2457 zcmbVO-*XyO6#g#k!iH>8LJA2Q+f<`MNJ`bJE#yaSo202BjfvA4eR4y#VJl(dvgqia z;vZmM@}M(HXLQEVmpbF$;Gf~6wSISZA+YdZI>5c>o_p>&-}%nDclh()pMM2#9eW9+ zusQ+-x8(3a9Jdpk@5te<+*^~Yk74+KV!P3OpJ zHZ8l+6u7ZfwU3ImZ@xB)j~wI3EHq=AmP^DB5mu=j>!zAQ|j$ z$o=)Y{guG-xxD%AyT|D=wq!LdcSRtY%RdxQ?huE-g)OULZnuv1P3L1{zfMhR%dQ&r zhlXRxb)Zz-n#GJ(UKB%fmpKx|_@U|cWGYa~<N#D897vSS5Xy4y zML|lclNHmg*#|p@Yy#JGNaUo95DF}C>wIBC=gTry%>1Hd)EOb2+j?w#X%y>5y&uNJ+~7^oTzk)Ttj3|h zMfSp3uD+H9PVCt&r)sWSvf(qmh432nsyw1&3e!3!aZyJa8G)tq+~%J2J(oJ(K~Bdd zT-NcXlxA^7=M(g+}KIOhvLAu=3yhBh)2AGeew5dw46s;nK7T)d7qhPjOXUzd{8uFJINl8qL) z{F`%}(Q1YH@1QEDh2Nok3pILL_zg;BVZII3TT+N^FK{R+i+^A=t31WT3G~IR(nh>v zp_NpcXr)+Il{T@bNS$CTt7c;zBjuE_q6pXTo{yo+Lk)S%6LcDTD6pmxGIAFS)J6GQ z!6HWm8!XgSN-8R>MUher*XVy1BXR8?jK}fTGi2g;n_o>l!?Z7sbjiq*3`O3*fQ*|A zDGQ=X79`Th08+nVY8Ra~(0H?m5wqe)`9H8Y&B>%P|jMilSkJ^uJIGV%>d5&rYIhMR;IWkXJ}86{zo zocmCoQ=yO?AxH>>cuu3Ubwn!CP&)=48>L@GGsfc^5@fo|nDUn9enH}sCm2oXZH&o; g+Zaz>@MTTPNy=?Zgs+p@bDeTQUi@!Ej}ff=2M`GpcmMzZ literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/ProcessingPerformanceStatus.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/ProcessingPerformanceStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..8fdc7cb22255b6e23ce9528902ba39124a2bb8f6 GIT binary patch literal 4210 zcmb_e%WoU!5&tc<%Ux1Sil$9TYpb#1D2<+Bn@5|hEa##4)kuzNxsIJCj#t!Lq)l;^ z#^f2HGH1=-rV+X!kmYOb%KxOCHb+bP$b z#zuKH@N12Yc?E-&t=3B|-wA47L&4#S*9geC=sN2i>yg;{s$UD-j=9uyn@!Rdz0J*9 z(6L(^j=$z?xQkxB?p7pl$Co}?Yt({M3I-;pE-O$My>(Z?&{D18UTAHux&9?*txijE z$*VZ^%Z^`@=h&zQ)ml@*xuuG?S+2hKu2a6@JDYB~!2^~z8L3|0^1TXowc&d$s$NiD zi3~jKitFF-{7t7(aaRK;Xf=8I+=d&R?@G~;$*H6yKB(t#W232o;#gU{0uFq8EN$uUZ7!o($arAGTp1n3s*FGCh zyKl9eI=9iY<5$*hvMc7NUQ?iWy|V+QaL2hQvMY$gzmIhxeh7y3aK_9?|zfiUOnRG^^3|<6S(@oUdFwzkHfSp`P~LW~&}>JoIGRoao8uk%`1{QQ9&0C1iMF zkK-Pl*ykWd;6=lV(`?mi`4#s}O(w+nJ~#Vu8FVHd#Scw9gySa0MLaCxgosB(OyIbJ zGyk7aV&WB?G%<@g6Z4`yE?QZ{k3{@f#1kS`@N)$t{e$?$R;|7+4gc6ar<&~Cg9Q`s z;eFok+3~K5EGQVJVRskPG17MQRE3_=+401>&^0zYzGr3VR;En+5_6n9o%2Ljm>uM7 zZMltg1#?N$YS#dZ6EM#r8GOkBX{4ld)KXHtaAg6*l{E}kmN8seNv?;WNX021<5QWd z!d0982FmY4*d%2-GGdCl8SB%S;gcfOqwFRB0jaP1$a*4~1y3Lk^plN5G8-jQpvR%ju41y zC3TeMQ1CQ)n!<+yAAXV?a^RpLrO((>SL&`;JhkPUqX(xx&4;oVLWINgG|o0UTJF8|Iv)Zewru+ZlrLcGk)WC>w(^R<;W?WDgQFWSiEYfXo;~tqWAJ za|9LaypOH!}AZIehIL%v&rt4TG*UDFle%+v7uX!Cyg#Gn zz_UEAi~~)&Lb8GCm2SJ(c@b;K)2K{Jtz8Tq;m|EidLi#iGDQF3!)#R*v44@YgFrcjb4fS LK*8(b1$pDYM%z68 literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Revision.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Revision.class new file mode 100644 index 0000000000000000000000000000000000000000..4db82529a88f6068778cf09133be0f69a117e4a6 GIT binary patch literal 1516 zcmbVLTTjzq7=FI4UF#?~rl9B)5!4-+6~zM#&`2~f0VHBb^vW_StBw`BjzoWj*Zu&# z;X)Igi6%yGH1RiidcL-tcV)7?r+)9@dER$F|9tuaU=%k}=)%YWByds3r4;q36qjZA ziWFCMTuZ^gh=DPw#|@OFp3pHVpszcA!}aO{nVBc{x^30$`iiv>_-=irERdXV>uxY5 zkjUj11=MM8*%3H6N#c4EFe6LB<3#@z2x+~{l@6?JDEN)JBIG1lXU#hX=O;2wB z6FGHy)(NWK^1Lm(2dqe3&aUJ?$Q&d5|r}~1%$Vok@%B<<^@&97ceEbp)K}0 z!|)D&A+Re?XYI9+3vMQ4+o;&}Te7o&QMDV@h)!~QhlS_w-I=|`&a{)h(`eQLzS^#6 z1YWcjGPB?{{fcwjmDG1`Qg&YM&qOyeCJrJkaOppIH*pRpO&mp^i4)SwAun)b?`hm@ zy0v9VL-%I)TujBJi78wsjJ%2S=p*~vxe?Bf2zQh@thA-3&mPzcRVl*nhHP1BqafXylDhE=T{_PEMz4;u{25z7`UympXA}b&V@=78CK1R{_HQMk zM%x-i;{bA$n3{o*8eSqplI@o)p;Gs!%Mo@AjYku_XGzwDf2#=$&;S4c literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Status.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Status.class new file mode 100644 index 0000000000000000000000000000000000000000..fc3e32fd6b2ce110029f1a2f3958afc2d155961b GIT binary patch literal 3141 zcmbtVS#KLv6#mAZ&ErX%xY}e)QYp_Qr7StzcK4H{A=z?-EEXy8gx0uV%;q| zzPng)YK>CWS8#T=P+iNFKL5;o{gPW}_|nNC8A~(Z1TYma!-=#)c6jLv1dW)U^oMG3qTawLW`_Ghn;1z4>sYum z=hT9E;~ECrV-}psMM;>!mYhZ@99hoq4D(sIHZymT2@~sFoMxFzk_@uZhQi?Y4aG&5 z8H)M7=~u(eRA4PuoArWw$&+PBGcFGCVOd}sFJRC{7SGw(FJwT-0X(nZ$Wx4A=+VXn z9Jlcb4%s*+XjssQkWq};cmvF>ul?OP-}K7M(nTxuGVCo+*(jpKzK#z{)>9mf@xk4B zlixi)xGVF(+G7<*Y|P;h2Y&05;pnisPOauvI4~1&OR{Tkq8PdNJM>#K`dED&5&q zJB@!q;-@xaBi5LmiZM>M8=JAl>~M^++HRbRHRfc*7;EjuR;=+jCRk9(InOh}Qy(4s z6^ZzY^@bVpIYqgZryNo)C_D!jU*=+Xx9!}sS)9=CeIK}NrQ1UfiBQME^ z>MNWkQgIn~I8`U1@ey$`Nu;BUOE^PhppI!w5t;ag^LLggg>SjquM=66f#+Vs{1NW)F^VU|b_ivJ_bM`WlhzM`<;P?SeB+`1=((F3ie(9%(NvLZEoo7$FUJ2z4` zb}Db_#|UV`9QiL5_5`cUQ{MgQ-?8WBeeBJ2ZlFtA!y}UkF~_|tvoFMH!QCOYH_(&m XCEh?^`}3)7dp@V58Y`F&#^~z*yy{T{ literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Variables.class b/fw-nifi/target/classes/com/hzya/frame/nifi/model/processgrouproot/Variables.class new file mode 100644 index 0000000000000000000000000000000000000000..b46d00d3f418f3cad88c20a02fc2673988b8a7f5 GIT binary patch literal 891 zcmbVK%Wl&^6g}fd9nv%{p($@@V3P;nO@%s7e8;^Ar)7Pc#BdAKI9vKJ*$ zeow$|clHIG`}$A`toNftJ)TZRDt#tLF)NL}4rIJ9)5zpy(aFOo6S&f28Q0M+Hh-{bS>cv#XL}<4A$MU80W0{QoC!=E({14G3ylv!Aqq~k}_ zkg9AN=j38i$@MT#qhu_w+3x&CTvRE!I@HrNP!A(>DfNY!TSj9IEARw%{^vGoXreB# zx6g{(cvWe@YZ3=1AQd(NtI8NGu5NIJ)Q4|q`hFooBVtGtGg?%+77=tYh~dD_=mS9T66G`blQGde@|e@Eb{DGnE;eaP5A> zy0%Pv&Lr);=0oca0zwB#wv=!UK$IklWA3NLcr90NL1v|CV5KDy& zbjf8bdjp8Jhj2uYr!bkpnHGcPQ9jxCWEUiPeh4(4%fpwAJJZZmbg->@c}FQblF_t% z7wIkI+kU}o>ZE&jeO>~!!j`1$rMB5oPs`(GS22TksyKsch_xy%;*!8c>1#cvqV#R#ti<^YW;vdvwS|BWP^td{ zQD6QU!H={8oa5K;0h?aNB}`)h=V{Fkb`$LaEuPC!c{4em;632*D&I*4ndeBk@Nkfa zTBRlEo2vhW;5kY^a6Sm+cLUe*0M)^sVSokt%k*64dj+ozlm3qQKD9Nmz5Exhd%U@F z`FBiwURrMcipja~Ii~(Zxcxom^2Ok%i#N1{Mi^QwpChAz_-`kgYeSkkI sa}8JVI&%oP;~G~35(|n3$MYBq5DFn4(5%AAFm((=uhd)9g;=<5y{- znE2oi@JAW%?3TJfV&q|G=H5N`oICg4`Stt9PXN#G)J7VQEsSB+#uMbtQpli~L5U%& z8eP%Ud%WKlKEryosd`SE2U_^YJ=f{-=3$^br^PjINU!C*jls(d=`HC=z0I(hzgA?S z&XB68mSC8yN>98Q^cupi@rFyD>8fgSx6XZO?4dKI4`jfw63QH$o^Yq_^PX@#*_O^g zOV@c#iGH91rFCmh=mXVy#|?z8LV; zsVh_rxr^mG>7SP@cNx4@tChD&$=a74kL!U?#jb4CUc_+2Y_|X777<&4IH@4}YT!4; zt~C9dIPb)UDILSY`+=urPt;`~si8Zbr!)_X$55;)zvBdbQ}eK)N6J5R%=ihV=_*b| z_4>*ao-Su$VLgis#xvN+!ohSFo0w-SeQk|v$bA(9Io;&BC3HfhRSSsZINIE7-JLF$GL&^vw!}KG8#ZX`=LX8A$ uEZ|O1h5%`KV$ literal 0 HcmV?d00001 diff --git a/fw-nifi/target/classes/main/webapp/WEB-INF/web.xml b/fw-nifi/target/classes/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..d80081d1 --- /dev/null +++ b/fw-nifi/target/classes/main/webapp/WEB-INF/web.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/fw-nifi/target/classes/test/java/spec.json b/fw-nifi/target/classes/test/java/spec.json new file mode 100644 index 00000000..a7b76001 --- /dev/null +++ b/fw-nifi/target/classes/test/java/spec.json @@ -0,0 +1,35 @@ +[ + { + "operation": "shift", + "spec": { + "a": { + "id": "id", + "name": "name" + }, + "b": { + "*": { + "id": { + "@(2,a.id)": { + "@2": { + "value": "matchedB.value", + "#B": "matchedB.source" + } + } + } + } + }, + "c": { + "*": { + "id": { + "@(2,a.id)": { + "@2": { + "value": "matchedC.value", + "#C": "matchedC.source" + } + } + } + } + } + } + } +] \ No newline at end of file diff --git a/fw-nifi/target/test-classes/TestNifiConfig.class b/fw-nifi/target/test-classes/TestNifiConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..2ea8f3ec59b24eaacecc074b7d7f382281cb3c26 GIT binary patch literal 364 zcmY*VJx{|h6g;~ZUnAt}ykfdbvys0wnmMSY* znWQ#X