Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
a0c41d9bbc
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
3
pom.xml
3
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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue