From 30ae986c1af58d77ce94be1f25884eff61115cdd Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 30 Jan 2025 20:00:54 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E3=80=91IoT=EF=BC=9A=E6=95=B4=E7=90=86=20plugins=20=E7=9A=84?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=EF=BC=8C=E4=BB=A5=E5=8F=8A=E5=AF=B9=E5=BA=94?= =?UTF-8?q?=20server=20=E7=9A=84=E5=90=AF=E5=8A=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao-module-iot-plugin-http-1.0.0.jar | Bin 12522 -> 13508 bytes yudao-module-iot/yudao-module-iot-api/pom.xml | 19 ++++++++-------- yudao-module-iot/yudao-module-iot-biz/pom.xml | 14 ++++-------- .../{ => config}/UnifiedConfiguration.java | 4 ++-- .../CustomPluginStateListener.java | 2 +- .../plugin/{ => core}/PluginStart.java | 2 +- .../{aspect => tdengine/core}/TaosAspect.java | 2 +- .../yudao-module-iot-plugin-common/pom.xml | 21 +++++------------- .../yudao-module-iot-plugin-http/pom.xml | 17 +++++--------- .../http/HttpPluginSpringbootApplication.java | 13 +++++------ .../http/config/IotHttpVertxPlugin.java | 17 +++++++------- .../IotPluginHttpAutoConfiguration.java | 8 ++++--- .../IotDeviceDownstreamHandlerImpl.java | 8 +++++++ .../upstream/IotDeviceUpstreamServer.java | 2 +- .../IotDevicePropertyReportVertxHandler.java | 17 ++++++++------ 15 files changed, 66 insertions(+), 80 deletions(-) rename yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/{ => config}/UnifiedConfiguration.java (88%) rename yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/{listener => core}/CustomPluginStateListener.java (92%) rename yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/{ => core}/PluginStart.java (97%) rename yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/{aspect => tdengine/core}/TaosAspect.java (95%) diff --git a/plugins/yudao-module-iot-plugin-http-1.0.0.jar b/plugins/yudao-module-iot-plugin-http-1.0.0.jar index c504342cf851e2a8ca4ad345e8f7f090f795960e..2d1f7be1b0b03aaec502df04dd6137a907975dd3 100644 GIT binary patch literal 13508 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 literal 12522 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 diff --git a/yudao-module-iot/yudao-module-iot-api/pom.xml b/yudao-module-iot/yudao-module-iot-api/pom.xml index 9b47273814..ab492729c5 100644 --- a/yudao-module-iot/yudao-module-iot-api/pom.xml +++ b/yudao-module-iot/yudao-module-iot-api/pom.xml @@ -30,11 +30,17 @@ provided - - + - org.pf4j + com.fasterxml.jackson.core + jackson-databind + provided + + + + org.pf4j pf4j-spring + org.slf4j @@ -43,13 +49,6 @@ - - - com.fasterxml.jackson.core - jackson-databind - provided - - org.springframework.boot diff --git a/yudao-module-iot/yudao-module-iot-biz/pom.xml b/yudao-module-iot/yudao-module-iot-biz/pom.xml index 66710ae910..1ac3f915a0 100644 --- a/yudao-module-iot/yudao-module-iot-biz/pom.xml +++ b/yudao-module-iot/yudao-module-iot-biz/pom.xml @@ -64,25 +64,19 @@ yudao-spring-boot-starter-excel - - - io.vertx - vertx-core - - + io.vertx vertx-web - + - org.eclipse.paho + org.eclipse.paho org.eclipse.paho.client.mqttv3 - - org.pf4j + org.pf4j pf4j-spring diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/UnifiedConfiguration.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/config/UnifiedConfiguration.java similarity index 88% rename from yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/UnifiedConfiguration.java rename to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/config/UnifiedConfiguration.java index 0c12525916..849b6b16ff 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/UnifiedConfiguration.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/config/UnifiedConfiguration.java @@ -1,6 +1,6 @@ -package cn.iocoder.yudao.module.iot.framework.plugin; +package cn.iocoder.yudao.module.iot.framework.plugin.config; -import cn.iocoder.yudao.module.iot.framework.plugin.listener.CustomPluginStateListener; +import cn.iocoder.yudao.module.iot.framework.plugin.core.CustomPluginStateListener; import lombok.extern.slf4j.Slf4j; import org.pf4j.spring.SpringPluginManager; import org.springframework.beans.factory.annotation.Value; diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/listener/CustomPluginStateListener.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/core/CustomPluginStateListener.java similarity index 92% rename from yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/listener/CustomPluginStateListener.java rename to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/core/CustomPluginStateListener.java index 4542868b03..9833a815b6 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/listener/CustomPluginStateListener.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/core/CustomPluginStateListener.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.iot.framework.plugin.listener; +package cn.iocoder.yudao.module.iot.framework.plugin.core; import lombok.extern.slf4j.Slf4j; import org.pf4j.PluginStateEvent; diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/PluginStart.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/core/PluginStart.java similarity index 97% rename from yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/PluginStart.java rename to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/core/PluginStart.java index 8298789e5c..680d7c3069 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/PluginStart.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/plugin/core/PluginStart.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.iot.framework.plugin; +package cn.iocoder.yudao.module.iot.framework.plugin.core; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/aspect/TaosAspect.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/tdengine/core/TaosAspect.java similarity index 95% rename from yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/aspect/TaosAspect.java rename to yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/tdengine/core/TaosAspect.java index 61b03dc42e..d83f34d04c 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/aspect/TaosAspect.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/framework/tdengine/core/TaosAspect.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.iot.framework.aspect; +package cn.iocoder.yudao.module.iot.framework.tdengine.core; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; diff --git a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-common/pom.xml b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-common/pom.xml index c02d266797..ccf010f24e 100644 --- a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-common/pom.xml +++ b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-common/pom.xml @@ -18,35 +18,24 @@ - - cn.iocoder.boot - yudao-common + org.springframework.boot + spring-boot-starter - + cn.iocoder.boot yudao-module-iot-api ${revision} - - org.projectlombok - lombok - - + org.springframework spring-web - - - org.springframework.boot - spring-boot-starter - - - + io.vertx vertx-web diff --git a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/pom.xml b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/pom.xml index b939428166..8da327c2a3 100644 --- a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/pom.xml +++ b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/pom.xml @@ -16,6 +16,7 @@ ${project.artifactId} + 物联网 插件模块 - http 插件 @@ -31,7 +32,7 @@ - + org.apache.maven.plugins maven-antrun-plugin @@ -75,7 +76,7 @@ - + org.apache.maven.plugins maven-jar-plugin @@ -94,7 +95,7 @@ - + org.springframework.boot spring-boot-maven-plugin @@ -121,21 +122,13 @@ - - cn.iocoder.boot yudao-module-iot-plugin-common ${revision} - - - org.springframework.boot - spring-boot-starter-web - - - + io.vertx vertx-web diff --git a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/HttpPluginSpringbootApplication.java b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/HttpPluginSpringbootApplication.java index f2dbbde790..8f0c5c7a73 100644 --- a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/HttpPluginSpringbootApplication.java +++ b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/HttpPluginSpringbootApplication.java @@ -1,9 +1,7 @@ package cn.iocoder.yudao.module.iot.plugin.http; -import cn.iocoder.yudao.module.iot.plugin.http.upstream.IotDeviceUpstreamServer; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; -import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; @@ -15,16 +13,15 @@ import org.springframework.context.ConfigurableApplicationContext; public class HttpPluginSpringbootApplication { public static void main(String[] args) { - SpringApplication application = new SpringApplication(HttpPluginSpringbootApplication.class); - application.setWebApplicationType(WebApplicationType.NONE); - ConfigurableApplicationContext context = application.run(args); + ConfigurableApplicationContext context = SpringApplication.run(HttpPluginSpringbootApplication.class, args); // 手动获取 VertxService 并启动 // TODO @haohao:可以放在 bean 的 init 里么?回复:会和插件模式冲突 @芋艿,测试下 - IotDeviceUpstreamServer vertxService = context.getBean(IotDeviceUpstreamServer.class); - vertxService.start(); + // TODO @haohao:貌似去掉,没有问题额。。。 +// IotDeviceUpstreamServer vertxService = context.getBean(IotDeviceUpstreamServer.class); +// vertxService.start(); - log.info("[HttpPluginSpringbootApplication] 独立模式启动完成"); + log.info("[main][独立模式启动完成]"); } } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/config/IotHttpVertxPlugin.java b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/config/IotHttpVertxPlugin.java index 0da7241ef7..fe789af52d 100644 --- a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/config/IotHttpVertxPlugin.java +++ b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/config/IotHttpVertxPlugin.java @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.iot.plugin.http.config; import cn.hutool.core.lang.Assert; import cn.hutool.extra.spring.SpringUtil; import cn.iocoder.yudao.module.iot.api.device.IotDeviceUpstreamApi; -import cn.iocoder.yudao.module.iot.plugin.http.upstream.IotDeviceUpstreamServer; import lombok.extern.slf4j.Slf4j; import org.pf4j.PluginWrapper; import org.pf4j.spring.SpringPlugin; @@ -11,6 +10,7 @@ import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; +// TODO @芋艿:完善注释 /** * 负责插件的启动和停止,与 Vert.x 的生命周期管理 */ @@ -30,8 +30,9 @@ public class IotHttpVertxPlugin extends SpringPlugin { Assert.notNull(pluginContext, "pluginContext 不能为空"); // 2. 启动 Vert.x - IotDeviceUpstreamServer vertxService = pluginContext.getBean(IotDeviceUpstreamServer.class); - vertxService.start(); + // TODO @haohao:貌似去掉,没有问题额。。。 +// IotDeviceUpstreamServer vertxService = pluginContext.getBean(IotDeviceUpstreamServer.class); +// vertxService.start(); log.info("[HttpVertxPlugin][HttpVertxPlugin 插件启动成功...]"); } catch (Exception e) { @@ -44,11 +45,11 @@ public class IotHttpVertxPlugin extends SpringPlugin { log.info("[HttpVertxPlugin][HttpVertxPlugin 插件停止开始...]"); try { // 停止服务器 - ApplicationContext pluginContext = getApplicationContext(); - if (pluginContext != null) { - IotDeviceUpstreamServer vertxService = pluginContext.getBean(IotDeviceUpstreamServer.class); - vertxService.stopServer(); - } +// ApplicationContext pluginContext = getApplicationContext(); +// if (pluginContext != null) { +// IotDeviceUpstreamServer vertxService = pluginContext.getBean(IotDeviceUpstreamServer.class); +// vertxService.stop(); +// } log.info("[HttpVertxPlugin][HttpVertxPlugin 插件停止成功...]"); } catch (Exception e) { diff --git a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/config/IotPluginHttpAutoConfiguration.java b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/config/IotPluginHttpAutoConfiguration.java index 3ecc2dc923..388ad8ac41 100644 --- a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/config/IotPluginHttpAutoConfiguration.java +++ b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/config/IotPluginHttpAutoConfiguration.java @@ -7,7 +7,9 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** - * 插件与独立运行都可复用的配置类 + * IoT 插件 HTTP 的专用自动配置类 + * + * @author haohao */ @Configuration public class IotPluginHttpAutoConfiguration { @@ -19,8 +21,8 @@ public class IotPluginHttpAutoConfiguration { @Value("${plugin.http.server.port:8092}") private Integer port; - @Bean - public IotDeviceUpstreamServer vertxService(IotDeviceUpstreamApi deviceUpstreamApi) { + @Bean(initMethod = "start", destroyMethod = "stop") + public IotDeviceUpstreamServer deviceUpstreamServer(IotDeviceUpstreamApi deviceUpstreamApi) { return new IotDeviceUpstreamServer(port, deviceUpstreamApi); } diff --git a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/downstream/IotDeviceDownstreamHandlerImpl.java b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/downstream/IotDeviceDownstreamHandlerImpl.java index 91604c6b3c..816a172537 100644 --- a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/downstream/IotDeviceDownstreamHandlerImpl.java +++ b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/downstream/IotDeviceDownstreamHandlerImpl.java @@ -7,6 +7,14 @@ import cn.iocoder.yudao.module.iot.api.device.dto.control.downstream.IotDeviceSe import cn.iocoder.yudao.module.iot.plugin.common.downstream.IotDeviceDownstreamHandler; import org.springframework.stereotype.Component; +/** + * HTTP 插件的 {@link IotDeviceDownstreamHandler} 实现类 + * + * 但是:由于设备通过 HTTP 短链接接入,导致其实无法下行指导给 device 设备,所以基本都是直接返回失败!!! + * 类似 MQTT、WebSocket、TCP 插件,是可以实现下行指令的。 + * + * @author 芋道源码 + */ @Component // TODO @芋艿:后续统一处理 public class IotDeviceDownstreamHandlerImpl implements IotDeviceDownstreamHandler { diff --git a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/upstream/IotDeviceUpstreamServer.java b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/upstream/IotDeviceUpstreamServer.java index 113c54e2de..e6f4dbb270 100644 --- a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/upstream/IotDeviceUpstreamServer.java +++ b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/upstream/IotDeviceUpstreamServer.java @@ -51,7 +51,7 @@ public class IotDeviceUpstreamServer { /** * 停止所有 */ - public void stopServer() { + public void stop() { log.info("[stop][开始关闭]"); try { // 关闭 HTTP 服务器 diff --git a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/upstream/router/IotDevicePropertyReportVertxHandler.java b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/upstream/router/IotDevicePropertyReportVertxHandler.java index 91700f40b4..e35d13bf4c 100644 --- a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/upstream/router/IotDevicePropertyReportVertxHandler.java +++ b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/upstream/router/IotDevicePropertyReportVertxHandler.java @@ -10,21 +10,22 @@ import cn.iocoder.yudao.module.iot.enums.device.IotDeviceStateEnum; import io.vertx.core.Handler; import io.vertx.ext.web.RequestBody; import io.vertx.ext.web.RoutingContext; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import java.time.LocalDateTime; import java.util.Map; +/** + * IoT 设备属性上报的 Vert.x Handler + */ +@RequiredArgsConstructor @Slf4j public class IotDevicePropertyReportVertxHandler implements Handler { public static final String PATH = "/sys/:productKey/:deviceName/thing/event/property/post"; - private final IotDeviceUpstreamApi deviceDataApi; - - public IotDevicePropertyReportVertxHandler(IotDeviceUpstreamApi deviceDataApi) { - this.deviceDataApi = deviceDataApi; - } + private final IotDeviceUpstreamApi deviceUpstreamApi; @Override public void handle(RoutingContext ctx) { @@ -51,7 +52,7 @@ public class IotDevicePropertyReportVertxHandler implements Handler