Clean up RSocketAutoConfiguration
Clean up RSocketAutoConfiguration to better allign with Spring's idioms Upgraded to Kotlin 1.4.0
This commit is contained in:
@@ -41,7 +41,7 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<artifactId>kotlin-maven-plugin</artifactId>
|
<artifactId>kotlin-maven-plugin</artifactId>
|
||||||
<groupId>org.jetbrains.kotlin</groupId>
|
<groupId>org.jetbrains.kotlin</groupId>
|
||||||
<version>1.2.71</version>
|
<version>1.4.0</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>compile</id>
|
<id>compile</id>
|
||||||
@@ -72,7 +72,6 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>3.5.1</version>
|
|
||||||
<executions>
|
<executions>
|
||||||
<!-- Replacing default-compile as it is treated specially by maven -->
|
<!-- Replacing default-compile as it is treated specially by maven -->
|
||||||
<execution>
|
<execution>
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import org.apache.commons.logging.Log;
|
|||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
import org.springframework.beans.factory.DisposableBean;
|
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
import org.springframework.cloud.function.context.FunctionCatalog;
|
import org.springframework.cloud.function.context.FunctionCatalog;
|
||||||
@@ -33,6 +32,7 @@ import org.springframework.cloud.function.context.catalog.FunctionTypeUtils;
|
|||||||
import org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry.FunctionInvocationWrapper;
|
import org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry.FunctionInvocationWrapper;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.context.ApplicationContextAware;
|
import org.springframework.context.ApplicationContextAware;
|
||||||
|
import org.springframework.context.SmartLifecycle;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.support.GenericApplicationContext;
|
import org.springframework.context.support.GenericApplicationContext;
|
||||||
@@ -53,15 +53,15 @@ public class RSocketAutoConfiguration {
|
|||||||
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public FunctionToDestinationBinder functionToDestinationBinder(FunctionCatalog functionCatalog,
|
public FunctionToRSocketBinder functionToDestinationBinder(FunctionCatalog functionCatalog,
|
||||||
FunctionProperties functionProperties, RSocketFunctionProperties rSocketFunctionProperties) {
|
FunctionProperties functionProperties, RSocketFunctionProperties rSocketFunctionProperties) {
|
||||||
return new FunctionToDestinationBinder(functionCatalog, functionProperties, rSocketFunctionProperties);
|
return new FunctionToRSocketBinder(functionCatalog, functionProperties, rSocketFunctionProperties);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static class FunctionToDestinationBinder implements InitializingBean, DisposableBean, ApplicationContextAware {
|
private static class FunctionToRSocketBinder implements InitializingBean, ApplicationContextAware, SmartLifecycle {
|
||||||
|
|
||||||
private final FunctionCatalog functionCatalog;
|
private final FunctionCatalog functionCatalog;
|
||||||
|
|
||||||
@@ -73,7 +73,9 @@ public class RSocketAutoConfiguration {
|
|||||||
|
|
||||||
private GenericApplicationContext context;
|
private GenericApplicationContext context;
|
||||||
|
|
||||||
FunctionToDestinationBinder(FunctionCatalog functionCatalog, FunctionProperties functionProperties,
|
private boolean started;
|
||||||
|
|
||||||
|
FunctionToRSocketBinder(FunctionCatalog functionCatalog, FunctionProperties functionProperties,
|
||||||
RSocketFunctionProperties rSocketFunctionProperties) {
|
RSocketFunctionProperties rSocketFunctionProperties) {
|
||||||
this.functionCatalog = functionCatalog;
|
this.functionCatalog = functionCatalog;
|
||||||
this.functionProperties = functionProperties;
|
this.functionProperties = functionProperties;
|
||||||
@@ -99,10 +101,7 @@ public class RSocketAutoConfiguration {
|
|||||||
InetSocketAddress bindAddress = InetSocketAddress
|
InetSocketAddress bindAddress = InetSocketAddress
|
||||||
.createUnresolved(this.rSocketFunctionProperties.getBindAddress(), this.rSocketFunctionProperties.getBindPort());
|
.createUnresolved(this.rSocketFunctionProperties.getBindAddress(), this.rSocketFunctionProperties.getBindPort());
|
||||||
|
|
||||||
if (this.invocableFunction == null) {
|
this.invocableFunction = new RSocketListenerFunction(function, bindAddress);
|
||||||
this.invocableFunction = new RSocketListenerFunction(function, bindAddress);
|
|
||||||
this.invocableFunction.start();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||||
@@ -137,10 +136,20 @@ public class RSocketAutoConfiguration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void destroy() throws Exception {
|
public void start() {
|
||||||
if (this.invocableFunction != null) {
|
if (!this.isRunning() && this.invocableFunction != null) {
|
||||||
|
this.invocableFunction.start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void stop() {
|
||||||
|
if (this.isRunning() && this.invocableFunction != null) {
|
||||||
this.invocableFunction.stop();
|
this.invocableFunction.stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public boolean isRunning() {
|
||||||
|
return this.started;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user