diff --git a/spring-cloud-stream-binder-rabbit/pom.xml b/spring-cloud-stream-binder-rabbit/pom.xml
index 60d0c07a0..3e4de3806 100644
--- a/spring-cloud-stream-binder-rabbit/pom.xml
+++ b/spring-cloud-stream-binder-rabbit/pom.xml
@@ -102,6 +102,9 @@
+ *
+ * It is based on Spring Cloud Function
+ * deploy feature
+ *
+ *
+ * All you need to do is to provide few additional properties to assist Spring Cloud Function deployer.
+ *
+ * For example:
+ *
+ *
+ * + * java -jar spring-cloud-stream-binder-rabbit-deployer/target/spring-cloud-stream-binder-rabbit-deployer-3.2.0-SNAPSHOT.jar\ + * --spring.cloud.function.location=/foo/bar/simplestjar-1.0.0.RELEASE.jar + * --spring.cloud.function.function-class=function.example.UpperCaseFunction + * + *+ * The only required property is 'spring.cloud.function.location'. Every other property is optional and is based on the style of user application. + * For more details on the supported styles of user application please refer to + * + * Deploying a Packaged Function section of Spring Cloud Function. + * + * @author Oleg Zhurakousky + * @since 3.1.2 + * + */ +@SpringBootApplication +public class RabbitDeployer { + + public static void main(String[] args) { + SpringApplication.run(RabbitDeployer.class, args); + } + +} diff --git a/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/deployer/RabbitDeployerEnvironmentPostProcessor.java b/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/deployer/RabbitDeployerEnvironmentPostProcessor.java new file mode 100644 index 000000000..91fead450 --- /dev/null +++ b/spring-cloud-stream-binder-rabbit/src/main/java/org/springframework/cloud/stream/binder/rabbit/deployer/RabbitDeployerEnvironmentPostProcessor.java @@ -0,0 +1,40 @@ +/* + * Copyright 2021-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.stream.binder.rabbit.deployer; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.env.EnvironmentPostProcessor; +import org.springframework.core.env.ConfigurableEnvironment; + +/** + * + * @author Oleg Zhurakousky + * + * @since 3.2 + * + */ +class RabbitDeployerEnvironmentPostProcessor implements EnvironmentPostProcessor { + + @Override + public void postProcessEnvironment(ConfigurableEnvironment environment, + SpringApplication application) { + if (!environment.containsProperty("spring.cloud.function.rsocket.enabled")) { + environment.getSystemProperties().putIfAbsent("spring.cloud.function.rsocket.enabled", false); + } + } + +}