From 7a5e8bf6f228a51390eed776563b467868cd0258 Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Sat, 17 May 2025 11:27:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(nifi):=20=E6=B7=BB=E5=8A=A0=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E5=92=8C=E4=BB=A3=E7=A0=81=E7=89=87=E6=AE=B5=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增获取所有 XML 模板的接口- 新增根据模板 ID 获取 XML 模板内容的接口 - 新增生成模板的功能 - 新增复制流程组为代码片段的功能 - 优化 NiFi 客户端,支持 GET 请求返回文件流 --- .../hzya/frame/nifi/client/NifiClient.java | 21 +++++++++++ .../joincreatetemp/CreateTemplateJoin.java | 19 ++++++++++ .../nifi/model/joinsnippets/Snippet.java | 19 ++++++++++ .../nifi/model/joinsnippets/SnippetsJoin.java | 16 +++++++++ .../model/nifitemplates/NifiTemplates.java | 11 ++++++ .../nifi/model/nifitemplates/Permissions.java | 9 +++++ .../nifi/model/nifitemplates/Template.java | 16 +++++++++ .../nifi/model/nifitemplates/Templates.java | 10 ++++++ .../nifi/model/resultsnippets/Snippet13.java | 19 ++++++++++ .../model/resultsnippets/SnippetResult13.java | 14 ++++++++ .../frame/nifi/service/NifiApiService.java | 34 ++++++++++++++++++ .../hzya/frame/nifi/client/NifiClient.class | Bin 11786 -> 12667 bytes .../frame/nifi/service/NifiApiService.class | Bin 8001 -> 9226 bytes 13 files changed, 188 insertions(+) create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/joincreatetemp/CreateTemplateJoin.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/joinsnippets/Snippet.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/joinsnippets/SnippetsJoin.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/NifiTemplates.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/Permissions.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/Template.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/Templates.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/resultsnippets/Snippet13.java create mode 100644 fw-nifi/src/main/java/com/hzya/frame/nifi/model/resultsnippets/SnippetResult13.java 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 index 5b307b48..b6a55388 100644 --- 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 @@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.IOException; +import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; @@ -56,6 +57,16 @@ public class NifiClient { }); } + /** + * 执行GET请求并返回文件流,供调用者处理(如保存到文件或浏览器下载) + */ + public InputStream getAsStream(String path) throws IOException { + return executeRequestWithRetry(() -> { + Request request = new Request.Builder().url(config.getApiUrl() + path).get().header("Authorization", "Bearer " + accessToken.get()).build(); + return executeStreamRequest(request); + }); + } + 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")); @@ -188,6 +199,16 @@ public class NifiClient { // }; // } + private InputStream executeStreamRequest(Request request) throws IOException { + Response response = httpClient.newCall(request).execute(); + if (!response.isSuccessful()) { + String responseBody = response.body().string(); + response.close(); + throw new IOException("意外的响应码: " + responseBody); + } + return response.body().byteStream(); + } + // 功能接口,用于重试逻辑 @FunctionalInterface private interface IOExceptionRunnable { diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/joincreatetemp/CreateTemplateJoin.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/joincreatetemp/CreateTemplateJoin.java new file mode 100644 index 00000000..cc0efa94 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/joincreatetemp/CreateTemplateJoin.java @@ -0,0 +1,19 @@ +package com.hzya.frame.nifi.model.joincreatetemp; + +import lombok.Data; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.nifi.model.joincreatetemp + * @Project:fw-nifi + * @name:CreateTemplateJoin + * @Date:2025/5/17 10:52 + * @Filename:CreateTemplateJoin + */ +@Data +public class CreateTemplateJoin { + private String name; + private String description; + private String snippetId; + private String disconnectedNodeAcknowledged; +} diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/joinsnippets/Snippet.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/joinsnippets/Snippet.java new file mode 100644 index 00000000..66729397 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/joinsnippets/Snippet.java @@ -0,0 +1,19 @@ +package com.hzya.frame.nifi.model.joinsnippets; + +import lombok.Data; + +import java.util.Map; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.nifi.model.joinsnippets + * @Project:fw-nifi + * @name:Snippet + * @Date:2025/5/17 11:01 + * @Filename:Snippet + */ +@Data +public class Snippet { + private String parentGroupId; + private Map> processGroups; +} diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/joinsnippets/SnippetsJoin.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/joinsnippets/SnippetsJoin.java new file mode 100644 index 00000000..bbdefc9e --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/joinsnippets/SnippetsJoin.java @@ -0,0 +1,16 @@ +package com.hzya.frame.nifi.model.joinsnippets; + +import lombok.Data; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.nifi.model.joinsnippets + * @Project:fw-nifi + * @name:SnippetsJoin + * @Date:2025/5/17 11:00 + * @Filename:SnippetsJoin + */ +@Data +public class SnippetsJoin { + private Snippet snippet; +} diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/NifiTemplates.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/NifiTemplates.java new file mode 100644 index 00000000..2ea1633c --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/NifiTemplates.java @@ -0,0 +1,11 @@ +package com.hzya.frame.nifi.model.nifitemplates; + +import lombok.Data; + +import java.util.List; + +@Data +public class NifiTemplates { + private List templates; + private String generated; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/Permissions.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/Permissions.java new file mode 100644 index 00000000..8f683127 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/Permissions.java @@ -0,0 +1,9 @@ +package com.hzya.frame.nifi.model.nifitemplates; + +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/nifitemplates/Template.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/Template.java new file mode 100644 index 00000000..4d8d2ebb --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/Template.java @@ -0,0 +1,16 @@ +package com.hzya.frame.nifi.model.nifitemplates; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class Template { + private String uri; + private String id; + private String groupId; + private String name; + private String description; + private String timestamp; + @JsonProperty("encoding-version") + private String encodingVersion; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/Templates.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/Templates.java new file mode 100644 index 00000000..c0c1c232 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/nifitemplates/Templates.java @@ -0,0 +1,10 @@ +package com.hzya.frame.nifi.model.nifitemplates; + +import lombok.Data; + +@Data +public class Templates { + private String id; + private Permissions permissions; + private Template template; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/resultsnippets/Snippet13.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/resultsnippets/Snippet13.java new file mode 100644 index 00000000..0cced2c2 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/resultsnippets/Snippet13.java @@ -0,0 +1,19 @@ +package com.hzya.frame.nifi.model.resultsnippets; + +import lombok.Data; + +import java.util.Map; + +/** + * Auto-generated: 2025-05-17 11:22:8 + * + * @author bejson.com (i@bejson.com) + * @website http://www.bejson.com/java2pojo/ + */ +@Data +public class Snippet13 { + private String id; + private String uri; + private String parentGroupId; + private Map> processGroups; +} \ No newline at end of file diff --git a/fw-nifi/src/main/java/com/hzya/frame/nifi/model/resultsnippets/SnippetResult13.java b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/resultsnippets/SnippetResult13.java new file mode 100644 index 00000000..b04906c9 --- /dev/null +++ b/fw-nifi/src/main/java/com/hzya/frame/nifi/model/resultsnippets/SnippetResult13.java @@ -0,0 +1,14 @@ +package com.hzya.frame.nifi.model.resultsnippets; + +import lombok.Data; + +/** + * Auto-generated: 2025-05-17 11:22:8 + * + * @author bejson.com (i@bejson.com) + * @website http://www.bejson.com/java2pojo/ + */ +@Data +public class SnippetResult13 { + private Snippet13 snippet; +} \ 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 index 50001fd0..861e7c6a 100644 --- 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 @@ -4,18 +4,24 @@ import cn.hutool.core.util.StrUtil; import com.hzya.frame.nifi.client.NifiClient; import com.hzya.frame.nifi.model.joinbindparametercontexts.BindParameterContextsJoin11; import com.hzya.frame.nifi.model.joincontrollerenabled.EnOrDiControllerServices12; +import com.hzya.frame.nifi.model.joincreatetemp.CreateTemplateJoin; import com.hzya.frame.nifi.model.joingetcontroller.ControllerService12; import com.hzya.frame.nifi.model.joinparametercontexts.ParameterContextsJoin; import com.hzya.frame.nifi.model.joinprocessgroups.ProcessGroupsJoin; +import com.hzya.frame.nifi.model.joinsnippets.Snippet; +import com.hzya.frame.nifi.model.joinsnippets.SnippetsJoin; import com.hzya.frame.nifi.model.joinstartorstopprocessgroup.StartOrStopProcessGroupsInfoJoin10; +import com.hzya.frame.nifi.model.nifitemplates.NifiTemplates; import com.hzya.frame.nifi.model.processgroupid.ProcessGroupsId; import com.hzya.frame.nifi.model.processgrouproot.ProcessGroupsRoot; import com.hzya.frame.nifi.model.resultparametercontexts.ParameterContextsResult; import com.hzya.frame.nifi.model.resultprocessgroups.ProcessgroupsResult; import com.hzya.frame.nifi.model.resultprocessgroupsinfo.ProcessGroupsInfoResult9; +import com.hzya.frame.nifi.model.resultsnippets.SnippetResult13; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.io.InputStream; import java.util.Map; /** @@ -160,4 +166,32 @@ public class NifiApiService { public ControllerService12 deleteControllerServices(String id, Map queryParam) throws Exception { return client.delete(StrUtil.format("/controller-services/{}", id), queryParam, ControllerService12.class); } + + /** + * 获取所有xml模板 + */ + public NifiTemplates getAllXmlTemplates() throws Exception { + return client.get("/flow/templates", NifiTemplates.class); + } + + /** + * 根据模板id,获取xml模板内容 + */ + public InputStream getXmlTemplatesContent(String templatesId) throws Exception { + return client.getAsStream(StrUtil.format("/templates/{}/download", templatesId)); + } + + /** + * 把指定的流程组生成模板 + */ + public void createNifiTemplatete(String id, CreateTemplateJoin createTemplateJoin) throws Exception { + client.post(StrUtil.format("/process-groups/{}/templates", id), createTemplateJoin, null); + } + + /** + * 将某个流程组复制为代码片段 + */ + public SnippetResult13 createSnippets(SnippetsJoin snippetsJoin) throws Exception { + return client.post("/snippets", snippetsJoin, SnippetResult13.class); + } } \ No newline at end of file diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/client/NifiClient.class b/fw-nifi/target/classes/com/hzya/frame/nifi/client/NifiClient.class index a9679050bc41dfcc46d50d49535522f6707b2894..61e1ebf007acdaabe44318642163772d47adc0b6 100644 GIT binary patch literal 12667 zcmcgz34B!LwLfPvGj}q%Az@fF>|nqU2m>OB6F`yx5)5GrDDK0|4H=ls#90VvYu(X` z+6sc=u2>WmaACrt#%{D#Yin0+ZEIVD_};U=wSCWL<^9jSckbMT2`}*4_xmyP-TSR) z`Je5Z@WvO1UL&G&`6Dl_r%x36lb0OyNg<`_Q~CO5`T7_6`d2T${!PCAU8ekpm;OwD zk%9koVFPk(nMCsTUxn!ZOrihwQh)lyL!V3gSB1Xt(jYpH7bf{)FFUwEVW+|_54*iI zgcUChWsi@Di*X9~^AU4@g?(Ngzym!z$jgKI3@@L_Wj=E7P#+awA`j;gULMJ#Cn=8DukH^aZ`^d$`K63L=*?M9TwR4riljOzk;mIDJ;-zVPj)$j8>(MzP z=avsVe6DmT9-ii<7M||m^SnHR&oANtS9^IT&+_tYzCfPlc(_JLt(BKLh39(dBA(~r z`9k-F9$p}{)_ZuNv=<2<4GK4UsR>fz#b|knd@c3xGHI84xXHsSJiOAw7kl^;53iE$ zOFev<9B{b^@d^)LDKA$E5mzf5EacT35<!e6`AJ zOyRh~Z38CUYlPN8+p*8AX8w{;W#$*0)Fcn-KiG}@(ZPT&5 zC>RQ9$z)S}ofebTYlG{9{&Xr570N>CL;|P#gQ<9HB;>Ern`K(FhTf2d)rHF=YhuAv zIsv|GPG#*(V{$YYTjO7zNh$6fgz6>FmKRF%_)Q0MYX*Y%5Hq+In=0s2*?YF`$Sooo&HX3zN?_ zX08Xm6I!w@9!qLX8{0rtf7={mN8L8;QpY?~@`HO$p4rr-UD?ywdGyqV_r%DL`{ z0JZ9#`{c(_5tvSF)a?d(Eio2Zd%&Zn6VcjqBpTKd3d30{<_ql0;$58UibS;B90LCZ zSj9B0`)+w0n2kmgy|b(JV>X#?!^?Gq6)v`=W zB>;`Zy*SXGUa34!sLQVdhql4;9Rl@Sh=eGWU@E1xwt*zBXYwShpjq8F=a`oa=(RPt zK^Tfiz@2mYTN#o=vcq&)Z#v5x#QP#HyIKZ@TC~u*nphaY6#lKnbiPGqz?ImCJOdd< z#E8s#@YBNc5{Woqd!}hGJ;XcyQUuWMnr50_VIkYpejjbg^1FtQ@MPVvxRY!uvdnbN zqFK}9h=rMzpkVKA$oJ--9!fB*WOtrnqx98%Mp}U{>Tzmd9u)-c+tQg{2y)h-w za9mak)Wx)RQ{IKGS~wCk0?Po4>_yp55WZgFc7=Y$G|&{R;k8XsGF6-?-rn528V$Ct z4hPF&k>%5v8uB^49?XmA`>3uGb9ck1mY)mv*S%*dB6pSo#GCSSz?1oIi(KVX5OH(e z<&$At%j4-pNShy#&CH}FPO!pT4sBSm&mr4?TKxd*8zb{0$M$r7 zynT;J+0GY^z5Eo27^U(i@QFilL}_h2o=TQ$X z+g+u6w{+Z-C98YRq43vK{yIYyBT+R(BOyJL^h-ieJu1`^OeD3`taPfmY6c8IrR}^0 zR-p1$z7KnEla06I;eLf5P7j@;M~bmRNl*&udav%)5z2lNT0(Bzo7Dq{F1^itGu5xaC#~|%^eCK zQ2C%>^$;J1%^khvp01tSKH70h*Ot4w4sHGDu^R(W@+)+|%CCxb*l^U;l8CoUA))eX z+{rZBuB{DK?d|PV&GAHQ74j3*V<<_&qK7Rg%hE|L5kv7XOXb(;UD)urHk6~N3&QC6 zrVz80zXfj$BkAFCvUv}@h2JO*{d)PO(o6hpm7e79fNzwjDHwE>cutkS%STX>i6550 zUQp?;#DOb7K~>Efy>|6Aw^vEATNN_m-*BnX%4D0}9|8klxv2 zmzn8H*=U#eMuY$qLj7$i&7w#&DwQy5OqBHnaY;?hDiaQB3F_BeQRD{JwOAMqzSO+G&jQRNZOmjV!PCZ6wGj17AS+97_ke-? zZvE*KI{x$%avVHCnCjzw7IM?}L?orH3`WzMUX0^P1ir)$p8_YuZIWZaf94ThPEzJ{=*5ea-Adku0;5^q)WZQ{ss{&~UTr`Y%z6rF*hmi@n_#dB zEDMj7av_eqKOZD))3YFf`MV`tN(2n#YJ#5hnT|^@@SD>yJ^J};BM61bbgPyC{l&U- z&fWmP?I6O>3x;qzHpUcIuZzX)xmL^d27K6wLekOpYccfqk+tWMyp1g@^Qe|hJ-7-^ z1tT%I?xFT|bx0ML%T`s#vFKw)%FG^QQk5+S=tra%I!{T++V z!prcc*)dz?d8UokY`0!G+32zNLsLop#u-ONlFQS2{n(rab%;w~q7arH);$Qs8H&aQ zsKvo>czL?5EdlqgLA==tTt`-SVaYw9BtMdV8MlH<%+yPF7FhYF4w9UFg0ywHoUpxZNg)_r0RH8tgbVDtHjlGmqz?qxQJB>?ZhIwF)uoL) zpkWpDCyVAvs}WGKs$#rU@1u45h#@|ig$jN?2*$#}L|D*>>;xcnt!SEm)eID02DSFd z<|GJbWW{B*y^jm*y>e>+F7*ptcZ(?%yZh-Wa)p1R@^AU~Dt(N6o{rHIDt$yBs&rJ+ z`#RqB#~KhlS==Uf^ViLJ-)9{vXXf&jH$(7d(>e((c8_D$g~V7DP2UzcuUddsdI za|5F+TmX4QwPd+5GY`IOO6;~!(s}#zz7HBlo_wuc&F0Qx@yijfp^p9l-csxKR(|z3 zbpZDCwhA9bj5$Hf`J}`&;^gyaG=8vMj~{Q{Y#%CqpIns__mjJ_YCkC$ z^}K*-4*Dv-N01^*uy6#GP&u|7OJy_;Z)ejOs-QbDT4`)co9QmR$!sB)^(P_Np+5=9 z1#~x_iwiJ;zzgAWh3Fo9+?f6~v<|sx!L!i&CVFLQxbkHXnW4fAc`FZ4(SA}Z(WMTA zliW`wFH-4Y>JMIgz5y8;c$fyQ!e~hc4bIRR89FmVWxHrh!(ke_Dm!l&=1s`Za5R|E zK_fa}(8;Z#xikbs3gctQgYSt{L{*UcBrxo!8af9vCeu8cLLr)}Gd~zK&co;y+N$pn zHpOrsRu_`vFEm%7Z6h$Wo$iO6gt05o7N9Mztei0M5RD}2pi%qKVVo?oAeyf4KFXMA ziME&?pdI>nF+E5R;p~SoSG9T`LC>S;aiV9MF6=@FmJlYB36sY#^f*0%jfIvvv?AmZ z&~gZn6H;EMF+z<20E3!27O$9UQBz`4)BQvj>nAcjNjpuBA0!u)Ni-IkQ6^^Stbnu3 z=_@}#V-L`{fD31rxvCBUQr#udPv`zZ{7u3F8cg*%4YQ4nEE>jI5*bTR(KmEv#_F;u zz`CKd3-WSebqPI9&wz}aykyoRIH5cB0H?_7DSUD=+YOmL+nfF>dQfdhY{}nKf6vl$ zrer@vE0S$Au?+#cGBn-*xS;z0!E`1BoD+}GpowM9RT-Li@gZQE4$>qCl{quy&(LJi zfv$on7Bf!W3MgS_SLB6tKLU=FpWkRWw?vXtY$(NYB$AT@{U{Dn`MC_R@=> zb`JHUm!K3w6=FW19`j$e=8ICqd_2UT({zRQ=U375n37Xb1}f?}RluENach{K0XPl7 zX$EB0*ti^ParyrQIEUP<8cOD%X+F2QW);jHKI{of!%0t_a1ehPMEe5H;lrHaN8uF9 zoE4z>nz}WyAA3Zz@o8)Q%M!X(rr%9U{bH zxc_Ac15Jn#X{@;p!A#(IL207gk>d=Xw}tII;c}dR2D{w_5tRm0qJxC|?5L z>ln4WL>c=g#sp2nNck%{nHMYctZo{gE)zzX+)wqBPG%dq?y{*N2vMavbKe(*^qKCVG3s4T^m)FGDP$erusu>E37b8 z39J%=y%Qn7KSKR55P23X*AGc9LjYI-IjuxoP9eOCY$c$qG{cp|ptLDRC-n7Q>|@BP zKRJ$LsY9V7h$MOd%L&LK_vEHDu0$&aJObhL0^ghr)$E`W{kay;50K*AMb3ifFvA|( zw(6u9ra!_`q{Ps}CIN0LIJ005>k$mf*n$llav=&np#&Dg5WaUn=58EUcaY{XHFCfS zdCkkv{D2D&7w({uc6lx^(QO3%>P{?H%3KIX^#OO)5gJ+MJVJx9Zs9H(5KzjTWlDw` zc99}oW$t|eSD6cO%heh1oG`l(vyq=zvpt=_)G|nV6e2adl+r&?K}6PqhS3zNOadGCb))Z~3Cb)P$sP#R+lIx6+uCp^KsVOMI(*i!yYn z?=s)z(p=%YQktuLSEI>Luu%{O02l}hI2kBF%mlRjc4)1}p3)!6P}rxLFU`h5Vz@E} zT&@YY4^zvkGWUxV>7ca$nG)~_>_(Tlj?fu03*Z|VC@gcCaKfmd&$BP!E_35-cW1zx zXF(Ab6zTXg7kCALN9iBwPXO9xdY>I;TLf{Q!NYhY{s7X!#f*2;HmAd3OXA~37Bv-l z)3wN#Hq&l6;b-AkpNH}7fnxU3`?Qaa(_ZZO3|8;c0l5GweuHMvd-N-;e-|aeuK_y+ zO5CkO6CRVNn$UD}754ZIpg9%jl&s8wvkvNTH3I)8Dm;!O-8ztdtI+RsFbY5kCs&yW z>o%a!2LLbr88~waO7pE33>!clKt=iXw}I7ZfprLW!|yK;l!SmiK&6C$x!t_aBA^Md zs6-`drh}`_Xh=*oIx}+0#rIu*HQ@5Wt?YtuI#Sg^*W@Y*`NL$Q7HWVy%Q`WfX|d5{rH@S}Dr8iu zoC2)z=uGBRVlX4wdTA*=jn9LnrC5C$IMbSba;-bGFig1r+GIcK$Bi6R0FN#U_ zg{MW8z*efKS=2x;wK_va$-l(X%Mw#B3*jFGQ9TQMDYtd#;|B0_(9|cQd$EY~K=q8j z8JZyKe}JeRh+5e@p?|{rMtsI#Op>Jy_|FLY5W8N$B~%kHLR-kc;}7`*Dq~5X5Qo@{ i|9eoxDn7Ox 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 diff --git a/fw-nifi/target/classes/com/hzya/frame/nifi/service/NifiApiService.class b/fw-nifi/target/classes/com/hzya/frame/nifi/service/NifiApiService.class index 0c41a52dc26d210629e919e6f891e8881b443023..dca855a54d704b0a7f445b19948b6591b59b445e 100644 GIT binary patch literal 9226 zcmb_h`F|6~75}bnkSrAJ2yDzz3b-W3M>Zy*2}dA~IbvckvB3dSnyjU@y&&z1-4)oBwkP8=SjSgz?&)j0^8Y0I-n{D^HkzTsPr zP2W8@?znThS9C3Vj@x|MaWCjIreS;ftdaE{cR@G81^P(IcP?A5nIojtbEZF%&6=Kf z(z#&T8rJsh7(Z`ZGW5J*&*@V>lS%VZhpuGJBF9VMFB&#nESc`Y;k7M_i{= z^d=pLT<|c-P&uJM%;oi>STM&HxHMmnNFco9eNio%6>86P++6OtzRM6#(X zoLp9wfoM3=fc>Rtt6^QKm{U{oMk7j=YRdA`@>m1&m#P^h1Z7CXnHrv2Vt_6kxPyDQ z>{%AI>nMGw94NHuQfWiQ%2tev&@cH`UO#3OmpLR`EYfooFAiKyN}i4yKn>m1m2#n2 zu9my1r|yepX>?>iB|`g@HD?=s$)z$(xf;psTN1mxLD|W|NG_Eco>pku1gKO#J$OUR+@MV4-zPFjev=nx?)w7}kso`u)Fx`eZv|Z0wcI8Z0 zF6dYe!PtJ=BdTR&4QX-V+HXnFieMa(-27sY^AG!78-LpB46iYI3+2S+_-9r+r@ms3}YAhESX zEzyuu5!L+u(rjp_DrYebFU4Xm!w%D|W*G{)k$nDiA%D^=6!Ub=puF1M@ao8}@_u|)8Mi>_%DNXV*CKC1w0MFn7OgEEp&XUs{3 zz_`HScS|N*ALWl_d8~@=WsQZ5z>>!`Jak)P>3%PSPT5wmXtJy9#kkGJ3#RJjHA2A# zdWfq{?K*LY8@`V?O_#r8qBQJkAd3Z0d3Lo1)PtCEN^aIXY_V?38s?Kq)8rnOIU4$u zoe+<i7eF^+6jr(vvwODl4BPjPLhQwJ^XDtd1`);S7k;eP@ zfUa*!`B$$|zo&9znV30mX8i;{OyeW`oq9XX0Y`ftM3EjI8irVn6}^nH`T~U`!$sva z(O!n|Z5sc;bq#kZVDzikbkRB(a!sm0p6{h`gOS{=o}I=bK42doQzF#5fKhZbR_&$_ zgBrF*5o$(g%Ulv*`3fXoU=sKwjep{L0-vVwFMO83O%?=ThiP~~wNq52kLC@}qccrqMC3me&5c=GpQlc(lP71nrp|Ajv`w9&#trqZXC1d- z5WoQ$V07M~(=z3ooi+D98I>vng{|GTqT`XEF-w3rhB?4pr28u=>yK7a=UNxMlgwxWYc%Cu!xEMnys zSWzo*k0h`|DUbpIqmsG2$ z9q_V;gwt6A4+Ve+$tnie$pKdlWYUYc;|ru~VIGxWIzyOF?8gBW%zh5@Fh&BH$-u77 z9A~y-B+$(v=wgBZw1$!{!RE)XP3j*St>LFUR#U}P)LBN5&? zj<`iE3lTSBj2lU!a1@V`e&ZxoBmo;aMkCeH)ZRi%Kwq)2Wf?R@g*x_MN0*CM)gs5li;F^wlwhMywrX^wvy zXOymx4Ia#p#pDWZvFwV4Sp244!8EG4;w&-qB)%3fQ=NU~s)FG|$(hEduJ12cr4 zq$p+aS{sv8`3)JcROi9wT6}VK1pn<={5%Tv@betshNH{_nQ(4D zde73-IzB55Q_(nX3D7apn3ie>e7{pHLS?*A>d{(qlqBTAoYyY^8E zs2&Rneix7JtrFFX*j6j{1{W*NEnT6LyKqSzR+l)fmvJS)IveDZ*j#!gtU-;UDzdqJ zMw`n`iC1}ZDVO>lEZ~`XeqG=ST*Ws61*(qjpO5 delta 1833 zcma)+%TE(g6vn@q0y9h+#8MGkC@tWFwu%UfiUOh_4=tbwh=L%ZqKGIyQK;Y(d^@N- zR77{i4M9V6A#vlvn7DA^!v91Q`-FR@Rbihc!` zRa{YURl_y(vf1kzZeT#eAlrOX!7UZHRoqcz+?^cmkfeK4id+<<_n17fDY$Qh9S#K# zjBsPQ{=?K@&@rUv#$`l3G~y8+>z#4qhGC58CbP>hN?QudR&@+RMvUQ!-eUeT|EUqr zFrr}Gi07D4@Io(G@LF=}_DJ*8*Z7~Z7Y6&?o{+5RIku1>$|X$y!Dho#Rvq=`@a%$N-%5Mv)U2Ta}nLI+Lb1 zSr%n7Dq8~0F`AK&)mhpKnu(y940=~0lb?EJu?wfNg;Vo_o?69p>Ax(l;()JQA##g9 zatpGkA0!04&T7b_FeI$T8jfnWIs{aqfQt2_Vv&Qj!B9CIwGQh!>YFt~K$Qw8n;&H( zRBmY025jW0l0;EprGOFz<^>m+$D_(e0Y|+{OfO@((s*TSu@H3vF2NsJ0>a=nQSs7r zcaqy1NPQzm*~t-L^`opPEA)?BIEtwz)e3;I6RX|IQP070A<0(o&6GTuW85*nizZTEzaVL2a=9tKretVK+y8 zO3vnK@ik2!{bKqB1*!f@r=lKv2&Yn|SyvEjYlz`3@008W!A&gQ38!9DE3ec~8tZ+}(km hma^<@_M<|-3WXWjv|E!Mze*kt5r?vn9