diff --git a/spring-cloud-function-rsocket/pom.xml b/spring-cloud-function-rsocket/pom.xml
index 7526626e9..c8906b6ed 100644
--- a/spring-cloud-function-rsocket/pom.xml
+++ b/spring-cloud-function-rsocket/pom.xml
@@ -16,7 +16,7 @@
-
+ 0.0.2-SNAPSHOT
@@ -42,12 +42,12 @@
org.springframework.cloud
spring-cloud-function-context
-
-
-
-
-
-
+
+ io.rsocket.routing
+ rsocket-routing-client-spring
+ ${rsocket-routing.version}
+ true
+
org.springframework.boot
spring-boot-configuration-processor
@@ -63,12 +63,12 @@
reactor-test
test
-
-
-
-
-
-
+
+ io.rsocket.routing
+ rsocket-routing-broker-spring
+ ${rsocket-routing.version}
+ test
+
diff --git a/spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/RSocketRoutingAutoConfiguration.java b/spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/RSocketRoutingAutoConfiguration.java
index 71228387c..d5e5feaed 100644
--- a/spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/RSocketRoutingAutoConfiguration.java
+++ b/spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/RSocketRoutingAutoConfiguration.java
@@ -16,6 +16,15 @@
package org.springframework.cloud.function.rsocket;
+import io.rsocket.routing.client.spring.RoutingClientAutoConfiguration;
+
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.cloud.function.context.FunctionProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.rsocket.RSocketConnectorConfigurer;
/**
@@ -25,14 +34,14 @@ import org.springframework.messaging.rsocket.RSocketConnectorConfigurer;
* @author Spencer Gibb
* @since 3.1
*/
-//@Configuration(proxyBeanMethods = false)
-//@ConditionalOnClass(RoutingClientAutoConfiguration.class)
-//@ConditionalOnProperty(name = FunctionProperties.PREFIX + ".rsocket.enabled", matchIfMissing = true)
-//@AutoConfigureBefore(RoutingClientAutoConfiguration.class)
-//@AutoConfigureAfter(RSocketAutoConfiguration.class)
+@Configuration(proxyBeanMethods = false)
+@ConditionalOnClass(RoutingClientAutoConfiguration.class)
+@ConditionalOnProperty(name = FunctionProperties.PREFIX + ".rsocket.enabled", matchIfMissing = true)
+@AutoConfigureBefore(RoutingClientAutoConfiguration.class)
+@AutoConfigureAfter(RSocketAutoConfiguration.class)
class RSocketRoutingAutoConfiguration {
-// @Bean
+ @Bean
public RSocketConnectorConfigurer functionRSocketConnectorConfigurer(
FunctionRSocketMessageHandler handler) {
return connector -> connector.acceptor(handler.responder());
diff --git a/spring-cloud-function-rsocket/src/test/java/org/springframework/cloud/function/rsocket/RoutingBrokerTests.java b/spring-cloud-function-rsocket/src/test/java/org/springframework/cloud/function/rsocket/RoutingBrokerTests.java
index 27ccc61ac..c5886df03 100644
--- a/spring-cloud-function-rsocket/src/test/java/org/springframework/cloud/function/rsocket/RoutingBrokerTests.java
+++ b/spring-cloud-function-rsocket/src/test/java/org/springframework/cloud/function/rsocket/RoutingBrokerTests.java
@@ -18,8 +18,8 @@ package org.springframework.cloud.function.rsocket;
import java.util.function.Function;
+import io.rsocket.routing.client.spring.RoutingMetadata;
import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
@@ -39,7 +39,6 @@ import org.springframework.util.SocketUtils;
* @author Oleg Zhurakousky
* @since 3.1
*/
-@Disabled
public class RoutingBrokerTests {
ConfigurableApplicationContext functionContext;
@@ -78,19 +77,19 @@ public class RoutingBrokerTests {
@Test
public void testRoutingWithMessage() throws Exception {
-// this.setup(false);
-// RSocketRequester requester = clientContext.getBean(RSocketRequester.class);
-// RoutingMetadata metadata = clientContext.getBean(RoutingMetadata.class);
-// Mono result = requester.route("uppercase") // used to find function
-// .metadata(metadata.address("samplefn"))
-// .data("\"hello\"")
-// .retrieveMono(String.class);
-//
-// StepVerifier
-// .create(result)
-// .expectNext("HELLO")
-// .expectComplete()
-// .verify();
+ this.setup(false);
+ RSocketRequester requester = clientContext.getBean(RSocketRequester.class);
+ RoutingMetadata metadata = clientContext.getBean(RoutingMetadata.class);
+ Mono result = requester.route("uppercase") // used to find function
+ .metadata(metadata.address("samplefn"))
+ .data("\"hello\"")
+ .retrieveMono(String.class);
+
+ StepVerifier
+ .create(result)
+ .expectNext("HELLO")
+ .expectComplete()
+ .verify();
}
private void setup(boolean routingWithProperty) {