Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

zhou-hao 5 лет назад
Родитель
Сommit
a0c41d9bbc

+ 22 - 4
jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/configuration/SpringProtocolSupportLoader.java

@@ -1,20 +1,38 @@
 package org.jetlinks.community.standalone.configuration;
 
-import org.jetlinks.supports.protocol.management.MuiltiProtocolSupportLoader;
+import org.jetlinks.core.ProtocolSupport;
+import org.jetlinks.supports.protocol.management.ProtocolSupportDefinition;
+import org.jetlinks.supports.protocol.management.ProtocolSupportLoader;
 import org.jetlinks.supports.protocol.management.ProtocolSupportLoaderProvider;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.config.BeanPostProcessor;
 import org.springframework.stereotype.Component;
+import reactor.core.publisher.Mono;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
 
 @Component
-public class SpringProtocolSupportLoader extends MuiltiProtocolSupportLoader implements BeanPostProcessor {
+public class SpringProtocolSupportLoader implements ProtocolSupportLoader,BeanPostProcessor {
+
+    private final Map<String, ProtocolSupportLoaderProvider> providers = new ConcurrentHashMap<>();
 
+    public void register(ProtocolSupportLoaderProvider provider) {
+        this.providers.put(provider.getProvider(), provider);
+    }
+    @Override
+    public Mono<? extends ProtocolSupport> load(ProtocolSupportDefinition definition) {
+        return Mono.justOrEmpty(this.providers.get(definition.getProvider()))
+            .switchIfEmpty(Mono.error(() -> new UnsupportedOperationException("unsupported provider:" + definition.getProvider())))
+            .flatMap((provider) -> provider.load(definition));
+    }
 
     @Override
     public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
-        if(bean instanceof ProtocolSupportLoaderProvider){
+        if (bean instanceof ProtocolSupportLoaderProvider) {
             register(((ProtocolSupportLoaderProvider) bean));
         }
         return bean;
     }
-}
+}

+ 1 - 2
pom.xml

@@ -23,7 +23,7 @@
         <easyorm.version>4.0.4</easyorm.version>
         <hsweb.expands.version>3.0.2</hsweb.expands.version>
         <jetlinks.version>1.1.0</jetlinks.version>
-        <r2dbc.version>Arabba-SR3</r2dbc.version>
+        <r2dbc.version>Arabba-SR6</r2dbc.version>
         <vertx.version>3.8.5</vertx.version>
         <netty.version>4.1.50.Final</netty.version>
         <elasticsearch.version>6.8.10</elasticsearch.version>
@@ -304,7 +304,6 @@
         <dependency>
             <groupId>dev.miku</groupId>
             <artifactId>r2dbc-mysql</artifactId>
-            <version>0.8.1.RELEASE</version>
         </dependency>
 
         <dependency>