Groovy transform app

Update build related docs
This commit is contained in:
Soby Chacko
2020-05-08 20:34:00 -04:00
parent 737fb8262a
commit adf9d3fc0d
19 changed files with 501 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
//tag::ref-doc[]
= Groovy Transform Processor
A Processor that transforms messages using a Groovy script.
== Options
The **$$groovy-transform$$** $$processor$$ has the following options:
//tag::configuration-properties[]
//end::configuration-properties[]
//end::ref-doc[]

View File

@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>groovy-transform-processor</artifactId>
<name>groovy-transform-processor</name>
<description>groovy-transform processor apps</description>
<version>3.0.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.cloud.stream.app</groupId>
<artifactId>stream-applications-core</artifactId>
<version>3.0.0-SNAPSHOT</version>
<relativePath/>
</parent>
<properties>
<apache-ivy.version>2.4.0</apache-ivy.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-groovy</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-json</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-nio</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-templates</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-xml</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-dateutil</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-datetime</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-jaxb</artifactId>
</dependency>
<dependency>
<groupId>org.apache.ivy</groupId>
<artifactId>ivy</artifactId>
<version>${apache-ivy.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>payload-converter-function</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-app-starter-doc-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.cloud.stream.app.plugin</groupId>
<artifactId>spring-cloud-stream-app-maven-plugin</artifactId>
<configuration>
<generatedApp>
<name>groovy-transform</name>
<type>processor</type>
<version>${project.version}</version>
<configClass>
org.springframework.cloud.stream.app.groovy.transform.processor.GroovyTransformProcessorConfiguration.class
</configClass>
<functionDefinition>byteArrayTextToString|groovyTransformFunction</functionDefinition>
</generatedApp>
<dependencies>
<dependency>
<groupId>org.springframework.cloud.stream.app</groupId>
<artifactId>groovy-transform-processor</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot-local</url>
</repository>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone-local</url>
</repository>
</repositories>
</project>

View File

@@ -0,0 +1,75 @@
/*
* Copyright 2015-2020 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.app.groovy.transform.processor;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.integration.groovy.GroovyScriptExecutingMessageProcessor;
import org.springframework.integration.handler.MessageProcessor;
import org.springframework.integration.scripting.DefaultScriptVariableGenerator;
import org.springframework.integration.scripting.ScriptVariableGenerator;
import org.springframework.messaging.Message;
import org.springframework.scripting.support.ResourceScriptSource;
import org.springframework.util.CollectionUtils;
/**
* A Processor app that transforms messages using a Groovy script.
*
* @author Eric Bottard
* @author Mark Fisher
* @author Marius Bogoevici
* @author Gary Russell
* @author Christian Tzolov
* @author Soby Chacko
*/
@Configuration
@EnableConfigurationProperties(GroovyTransformProcessorProperties.class)
public class GroovyTransformProcessorConfiguration {
@Autowired
private GroovyTransformProcessorProperties properties;
@Bean
public Function<Message<?>, Object> groovyTransformFunction(ScriptVariableGenerator scriptVariableGenerator) {
return message -> transformer(scriptVariableGenerator).processMessage(message);
}
@Bean
public MessageProcessor<?> transformer(ScriptVariableGenerator scriptVariableGenerator) {
return new GroovyScriptExecutingMessageProcessor(
new ResourceScriptSource(properties.getScript()), scriptVariableGenerator);
}
@Bean(name = "variableGenerator")
public ScriptVariableGenerator scriptVariableGenerator() throws IOException {
Map<String, Object> variables = new HashMap<>();
CollectionUtils.mergePropertiesIntoMap(properties.getVariables(), variables);
if (properties.getVariablesLocation() != null) {
CollectionUtils.mergePropertiesIntoMap(
PropertiesLoaderUtils.loadProperties(properties.getVariablesLocation()), variables);
}
return new DefaultScriptVariableGenerator(variables);
}
}

View File

@@ -0,0 +1,76 @@
/*
* Copyright 2015-2016 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.app.groovy.transform.processor;
import java.util.Properties;
import javax.validation.constraints.NotNull;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.core.io.Resource;
import org.springframework.validation.annotation.Validated;
/**
* Configuration properties for the Groovy Transform Processor module.
*
* @author Eric Bottard
*/
@ConfigurationProperties("groovy-transformer")
@Validated
public class GroovyTransformProcessorProperties {
/**
* Reference to a script used to process messages.
*/
private Resource script;
/**
* Variable bindings as a new line delimited string of name-value pairs, e.g. 'foo=bar\n baz=car'.
*/
private Properties variables;
/**
* The location of a properties file containing custom script variable bindings.
*/
private Resource variablesLocation;
@NotNull
public Resource getScript() {
return script;
}
public void setScript(Resource script) {
this.script = script;
}
public Properties getVariables() {
return variables;
}
public void setVariables(Properties variables) {
this.variables = variables;
}
public Resource getVariablesLocation() {
return variablesLocation;
}
public void setVariablesLocation(Resource variablesLocation) {
this.variablesLocation = variablesLocation;
}
}

View File

@@ -0,0 +1,3 @@
configuration-properties.classes=org.springframework.cloud.stream.app.groovy.transform.processor.GroovyTransformProcessorProperties

View File

@@ -0,0 +1,80 @@
/*
* Copyright 2015-2020 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.app.groovy.transform.processor;
import java.nio.charset.StandardCharsets;
import org.junit.jupiter.api.Test;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.stream.binder.test.InputDestination;
import org.springframework.cloud.stream.binder.test.OutputDestination;
import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Import;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.GenericMessage;
import static org.assertj.core.api.Assertions.assertThat;
public class GroovyTransformProcessorIntegrationTests {
@Test
public void testGroovyTransformerWithScript() {
try (ConfigurableApplicationContext context = new SpringApplicationBuilder(
TestChannelBinderConfiguration.getCompleteConfiguration(GroovyTransformTestAppConfiguration.class))
.web(WebApplicationType.NONE)
.run("--spring.cloud.function.definition=byteArrayTextToString|groovyTransformFunction",
"--groovy-transformer.script=script.groovy",
"--groovy-transformer.variables=limit=5\n foo=\\\40WORLD")) {
InputDestination processorInput = context.getBean(InputDestination.class);
OutputDestination processorOutput = context.getBean(OutputDestination.class);
String inMessage = "hello world";
processorInput.send(new GenericMessage<>(inMessage.getBytes(StandardCharsets.UTF_8)));
Message<byte[]> sourceMessage = processorOutput.receive(10000);
assertThat(new String(sourceMessage.getPayload())).isEqualTo("hello WORLD");
}
}
@Test
public void testGroovyTransformerWithGrab() {
try (ConfigurableApplicationContext context = new SpringApplicationBuilder(
TestChannelBinderConfiguration.getCompleteConfiguration(GroovyTransformTestAppConfiguration.class))
.web(WebApplicationType.NONE)
.run("--spring.cloud.function.definition=byteArrayTextToString|groovyTransformFunction",
"--groovy-transformer.script=script-with-grab.groovy")) {
InputDestination processorInput = context.getBean(InputDestination.class);
OutputDestination processorOutput = context.getBean(OutputDestination.class);
String inMessage = "def foo=bar";
processorInput.send(new GenericMessage<>(inMessage.getBytes(StandardCharsets.UTF_8)));
Message<byte[]> sourceMessage = processorOutput.receive(10000);
assertThat(new String(sourceMessage.getPayload())).isEqualTo("var foo = bar;" + System.lineSeparator());
}
}
@EnableAutoConfiguration
@Import({GroovyTransformProcessorConfiguration.class})
public static class GroovyTransformTestAppConfiguration {
}
}

View File

@@ -0,0 +1,6 @@
@Grab('org.grooscript:grooscript:1.3.0')
import org.grooscript.GrooScript
@Grab('org.grooscript:grooscript:1.3.0')
import org.grooscript.GrooScript
GrooScript.convert(new String(payload))

View File

@@ -0,0 +1 @@
payload.substring(0, limit as int) + foo

View File

@@ -11,6 +11,7 @@
<modules>
<module>bridge-processor</module>
<module>groovy-transform-processor</module>
<module>header-enricher-processor</module>
<module>splitter-processor</module>
<module>filter-processor</module>

View File

@@ -14,17 +14,23 @@
<properties>
<cassandra-sink.version>3.0.0-SNAPSHOT</cassandra-sink.version>
<counter-sink.version>3.0.0-SNAPSHOT</counter-sink.version>
<file-sink.version>3.0.0-SNAPSHOT</file-sink.version>
<jdbc-sink.version>3.0.0-SNAPSHOT</jdbc-sink.version>
<log-sink.version>3.0.0-SNAPSHOT</log-sink.version>
<mongodb-sink.version>3.0.0-SNAPSHOT</mongodb-sink.version>
<rabbit-sink.version>3.0.0-SNAPSHOT</rabbit-sink.version>
<redis-sink.version>3.0.0-SNAPSHOT</redis-sink.version>
<file-source.version>3.0.0-SNAPSHOT</file-source.version>
<http-source.version>3.0.0-SNAPSHOT</http-source.version>
<jdbc-source.version>3.0.0-SNAPSHOT</jdbc-source.version>
<mongodb-source.version>3.0.0-SNAPSHOT</mongodb-source.version>
<time-source.version>3.0.0-SNAPSHOT</time-source.version>
<bridge-processor.version>3.0.0-SNAPSHOT</bridge-processor.version>
<filter-processor.version>3.0.0-SNAPSHOT</filter-processor.version>
<header-enricher-processor.version>3.0.0-SNAPSHOT</header-enricher-processor.version>
<splitter-processor.version>3.0.0-SNAPSHOT</splitter-processor.version>
<transform-processor.version>3.0.0-SNAPSHOT</transform-processor.version>
<groovy-transform-processor.version>3.0.0-SNAPSHOT</groovy-transform-processor.version>
</properties>
<build>
@@ -64,6 +70,8 @@
"${cassandra-sink.version}".contains('SNAPSHOT') ? 'latest' : "${cassandra-sink.version}";
pom.properties['counter-sink-docker.tag']=
"${counter-sink.version}".contains('SNAPSHOT') ? 'latest' : "${counter-sink.version}";
pom.properties['file-sink-docker.tag']=
"${file-sink.version}".contains('SNAPSHOT') ? 'latest' : "${file-sink.version}";
pom.properties['jdbc-sink-docker.tag']=
"${jdbc-sink.version}".contains('SNAPSHOT') ? 'latest' : "${jdbc-sink.version}";
pom.properties['log-sink-docker.tag']=
@@ -72,6 +80,10 @@
"${mongodb-sink.version}".contains('SNAPSHOT') ? 'latest' : "${mongodb-sink.version}";
pom.properties['rabbit-sink-docker.tag']=
"${rabbit-sink.version}".contains('SNAPSHOT') ? 'latest' : "${rabbit-sink.version}";
pom.properties['redis-sink-docker.tag']=
"${redis-sink.version}".contains('SNAPSHOT') ? 'latest' : "${redis-sink.version}";
pom.properties['file-source-docker.tag']=
"${file-source.version}".contains('SNAPSHOT') ? 'latest' : "${file-source.version}";
pom.properties['http-source-docker.tag']=
"${http-source.version}".contains('SNAPSHOT') ? 'latest' : "${http-source.version}";
pom.properties['jdbc-source-docker.tag']=
@@ -80,8 +92,14 @@
"${mongodb-source.version}".contains('SNAPSHOT') ? 'latest' : "${mongodb-source.version}";
pom.properties['time-source-docker.tag']=
"${time-source.version}".contains('SNAPSHOT') ? 'latest' : "${time-source.version}";
pom.properties['bridge-processor-docker.tag']=
"${bridge-processor.version}".contains('SNAPSHOT') ? 'latest' : "${bridge-processor.version}";
pom.properties['filter-processor-docker.tag']=
"${filter-processor.version}".contains('SNAPSHOT') ? 'latest' : "${filter-processor.version}";
pom.properties['groovy-transform-processor-docker.tag']=
"${groovy-transform-processor.version}".contains('SNAPSHOT') ? 'latest' : "${groovy-transform-processor.version}";
pom.properties['header-enricher-processor-docker.tag']=
"${header-enricher-processor.version}".contains('SNAPSHOT') ? 'latest' : "${header-enricher-processor.version}";
pom.properties['splitter-processor-docker.tag']=
"${splitter-processor.version}".contains('SNAPSHOT') ? 'latest' : "${splitter-processor.version}";
pom.properties['transform-processor-docker.tag']=

View File

@@ -1,13 +1,19 @@
sink.cassandra=docker:springcloudstream/cassandra-sink-kafka:@cassandra-sink-docker.tag@
sink.counter=docker:springcloudstream/counter-sink-kafka:@counter-sink-docker.tag@
sink.file=docker:springcloudstream/file-sink-kafka:@file-sink-docker.tag@
sink.jdbc=docker:springcloudstream/jdbc-sink-kafka:@jdbc-sink-docker.tag@
sink.log=docker:springcloudstream/log-sink-kafka:@log-sink-docker.tag@
sink.mongodb=docker:springcloudstream/mongodb-sink-kafka:@mongodb-sink-docker.tag@
sink.rabbit=docker:springcloudstream/rabbit-sink-kafka:@rabbit-sink-docker.tag@
sink.redis=docker:springcloudstream/redis-sink-kafka:@redis-sink-docker.tag@
source.file=docker:springcloudstream/file-source-kafka:@file-source-docker.tag@
source.http=docker:springcloudstream/http-source-kafka:@http-source-docker.tag@
source.jdbc=docker:springcloudstream/jdbc-source-kafka:@jdbc-source-docker.tag@
source.mongodb=docker:springcloudstream/mongodb-source-kafka:@mongodb-source-docker.tag@
source.time=docker:springcloudstream/time-source-kafka:@time-source-docker.tag@
processor.bridge=docker:springcloudstream/bridge-processor-kafka:@bridge-processor-docker.tag@
processor.filter=docker:springcloudstream/filter-processor-kafka:@filter-processor-docker.tag@
processor.groovy-transform=docker:springcloudstream/groovy-transform-processor-kafka:@groovy-transform-processor-docker.tag@
processor.header-enricher=docker:springcloudstream/header-enricher-processor-kafka:@header-enricher-processor-docker.tag@
processor.splitter=docker:springcloudstream/splitter-processor-kafka:@splitter-processor-docker.tag@
processor.transform=docker:springcloudstream/transform-processor-kafka:@transform-processor-docker.tag@

View File

@@ -2,6 +2,8 @@ sink.cassandra=https://@repo-spring-io@/org/springframework/cloud/stream/app/cas
sink.cassandra.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/cassandra-sink-kafka/@cassandra-sink.version@/cassandra-sink-kafka-@cassandra-sink.version@-metadata.jar
sink.counter=https://@repo-spring-io@/org/springframework/cloud/stream/app/counter-sink-kafka/@counter-sink.version@/counter-sink-kafka-@counter-sink.version@.jar
sink.counter.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/counter-sink-kafka/@counter-sink.version@/counter-sink-kafka-@counter-sink.version@-metadata.jar
sink.file=https://@repo-spring-io@/org/springframework/cloud/stream/app/file-sink-kafka/@file-sink.version@/file-sink-kafka-@file-sink.version@.jar
sink.file.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/file-sink-kafka/@file-sink.version@/file-sink-kafka-@file-sink.version@-metadata.jar
sink.jdbc=https://@repo-spring-io@/org/springframework/cloud/stream/app/jdbc-sink-kafka/@jdbc-sink.version@/jdbc-sink-kafka-@jdbc-sink.version@.jar
sink.jdbc.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/jdbc-sink-kafka/@jdbc-sink.version@/jdbc-sink-kafka-@jdbc-sink.version@-metadata.jar
sink.log=https://@repo-spring-io@/org/springframework/cloud/stream/app/log-sink-kafka/@log-sink.version@/log-sink-kafka-@log-sink.version@.jar
@@ -10,6 +12,10 @@ sink.mongodb=https://@repo-spring-io@/org/springframework/cloud/stream/app/mongo
sink.mongodb.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/mongodb-sink-kafka/@mongodb-sink.version@/mongodb-sink-kafka-@mongodb-sink.version@-metadata.jar
sink.rabbit=https://@repo-spring-io@/org/springframework/cloud/stream/app/rabbit-sink-kafka/@rabbit-sink.version@/rabbit-sink-kafka-@rabbit-sink.version@.jar
sink.rabbit.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/rabbit-sink-kafka/@rabbit-sink.version@/rabbit-sink-kafka-@rabbit-sink.version@-metadata.jar
sink.redis=https://@repo-spring-io@/org/springframework/cloud/stream/app/redis-sink-kafka/@redis-sink.version@/redis-sink-kafka-@redis-sink.version@.jar
sink.redis.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/redis-sink-kafka/@redis-sink.version@/redis-sink-kafka-@redis-sink.version@-metadata.jar
source.file=https://@repo-spring-io@/org/springframework/cloud/stream/app/file-source-kafka/@file-source.version@/file-source-kafka-@file-source.version@.jar
source.file.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/file-source-kafka/@file-source.version@/file-source-kafka-@file-source.version@-metadata.jar
source.http=https://@repo-spring-io@/org/springframework/cloud/stream/app/http-source-kafka/@http-source.version@/http-source-kafka-@http-source.version@.jar
source.http.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/http-source-kafka/@http-source.version@/http-source-kafka-@http-source.version@-metadata.jar
source.jdbc=https://@repo-spring-io@/org/springframework/cloud/stream/app/jdbc-source-kafka/@jdb-source.version@/jdbc-source-kafka-@jdbc-source.version@.jar
@@ -18,8 +24,14 @@ source.mongodb=https://@repo-spring-io@/org/springframework/cloud/stream/app/mon
source.mongodb.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/mongodb-source-kafka/@mongodb-source.version@/mongodb-source-kafka-@mongodb-source.version@-metadata.jar
source.time=https://@repo-spring-io@/org/springframework/cloud/stream/app/time-source-kafka/@time-source.version@/time-source-kafka-@time-source.version@.jar
source.time.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/time-source-kafka/@time-source.version@/time-source-kafka-@time-source.version@-metadata.jar
processor.bridge=https://@repo-spring-io@/org/springframework/cloud/stream/app/bridge-processor-kafka/@bridge-processor.version@/bridge-processor-kafka-@bridge-processor.version@.jar
processor.bridge.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/bridge-processor-kafka/@bridge-processor.version@/bridge-processor-kafka-@bridge-processor.version@-metadata.jar
processor.filter=https://@repo-spring-io@/org/springframework/cloud/stream/app/filter-processor-kafka/@filter-processor.version@/filter-processor-kafka-@filter-processor.version@.jar
processor.filter.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/filter-processor-kafka/@filter-processor.version@/filter-processor-kafka-@filter-processor.version@-metadata.jar
processor.groovy-transform=https://@repo-spring-io@/org/springframework/cloud/stream/app/groovy-transform-processor-kafka/@groovy-transform-processor.version@/groovy-transform-processor-kafka-@groovy-transform-processor.version@.jar
processor.groovy-transform.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/groovy-transform-processor-kafka/@groovy-transform-processor.version@/groovy-transform-processor-kafka-@groovy-transform-processor.version@-metadata.jar
processor.header-enricher=https://@repo-spring-io@/org/springframework/cloud/stream/app/header-enricher-processor-kafka/@header-enricher-processor.version@/header-enricher-processor-kafka-@header-enricher-processor.version@.jar
processor.header-enricher.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/header-enricher-processor-kafka/@header-enricher-processor.version@/header-enricher-processor-kafka-@header-enricher-processor.version@-metadata.jar
processor.splitter=https://@repo-spring-io@/org/springframework/cloud/stream/app/splitter-processor-kafka/@splitter-processor.version@/splitter-processor-kafka-@splitter-processor.version@.jar
processor.splitter.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/splitter-processor-kafka/@splitter-processor.version@/splitter-processor-kafka-@splitter-processor.version@-metadata.jar
processor.transform=https://@repo-spring-io@/org/springframework/cloud/stream/app/transform-processor-kafka/@transform-processor.version@/transform-processor-kafka-@transform-processor.version@.jar

View File

@@ -2,6 +2,8 @@ sink.cassandra=maven://org.springframework.cloud.stream.app:cassandra-sink-kafka
sink.cassandra.metadata=maven://org.springframework.cloud.stream.app:cassandra-sink-kafka:jar:metadata:@cassandra-sink.version@
sink.counter=maven://org.springframework.cloud.stream.app:counter-sink-kafka:@counter-sink.version@
sink.counter.metadata=maven://org.springframework.cloud.stream.app:counter-sink-kafka:jar:metadata:@counter-sink.version@
sink.file=maven://org.springframework.cloud.stream.app:file-sink-kafka:@file-sink.version@
sink.file.metadata=maven://org.springframework.cloud.stream.app:file-sink-kafka:jar:metadata:@file-sink.version@
sink.jdbc=maven://org.springframework.cloud.stream.app:jdbc-sink-kafka:@jdbc-sink.version@
sink.jdbc.metadata=maven://org.springframework.cloud.stream.app:jdbc-sink-kafka:jar:metadata:@jdbc-sink.version@
sink.log=maven://org.springframework.cloud.stream.app:log-sink-kafka:@log-sink.version@
@@ -10,6 +12,10 @@ sink.mongodb=maven://org.springframework.cloud.stream.app:mongodb-sink-kafka:@mo
sink.mongodb.metadata=maven://org.springframework.cloud.stream.app:mongodb-sink-kafka:jar:metadata:@mongodb-sink.version@
sink.rabbit=maven://org.springframework.cloud.stream.app:rabbit-sink-kafka:@rabbit-sink.version@
sink.rabbit.metadata=maven://org.springframework.cloud.stream.app:rabbit-sink-kafka:jar:metadata:@rabbit-sink.version@
sink.redis=maven://org.springframework.cloud.stream.app:redis-sink-kafka:@redis-sink.version@
sink.redis.metadata=maven://org.springframework.cloud.stream.app:redis-sink-kafka:jar:metadata:@redis-sink.version@
source.file=maven://org.springframework.cloud.stream.app:file-source-kafka:@file-source.version@
source.file.metadata=maven://org.springframework.cloud.stream.app:file-source-kafka:jar:metadata:@file-source.version@
source.http=maven://org.springframework.cloud.stream.app:http-source-kafka:@http-source.version@
source.http.metadata=maven://org.springframework.cloud.stream.app:http-source-kafka:jar:metadata:@http-source.version@
source.jdbc=maven://org.springframework.cloud.stream.app:jdbc-source-kafka:@jdbc-source.version@
@@ -18,8 +24,14 @@ source.mongodb=maven://org.springframework.cloud.stream.app:mongodb-source-kafka
source.mongodb.metadata=maven://org.springframework.cloud.stream.app:mongodb-source-kafka:jar:metadata:@mongodb-source.version@
source.time=maven://org.springframework.cloud.stream.app:time-source-kafka:@time-source.version@
source.time.metadata=maven://org.springframework.cloud.stream.app:time-source-kafka:jar:metadata:@time-source.version@
processor.bridge=maven://org.springframework.cloud.stream.app:bridge-processor-kafka:@bridge-processor.version@
processor.bridge.metadata=maven://org.springframework.cloud.stream.app:bridge-processor-kafka:jar:metadata:@bridge-processor.version@
processor.filter=maven://org.springframework.cloud.stream.app:filter-processor-kafka:@filter-processor.version@
processor.filter.metadata=maven://org.springframework.cloud.stream.app:filter-processor-kafka:jar:metadata:@filter-processor.version@
processor.groovy-transform=maven://org.springframework.cloud.stream.app:groovy-transform-processor-kafka:@groovy-transform-processor.version@
processor.groovy-transform.metadata=maven://org.springframework.cloud.stream.app:groovy-transform-processor-kafka:jar:metadata:@groovy-transform-processor.version@
processor.header-enricher=maven://org.springframework.cloud.stream.app:header-enricher-processor-kafka:@header-enricher-processor.version@
processor.header-enricher.metadata=maven://org.springframework.cloud.stream.app:header-enricher-processor-kafka:jar:metadata:@header-enricher-processor.version@
processor.splitter=maven://org.springframework.cloud.stream.app:splitter-processor-kafka:@splitter-processor.version@
processor.splitter.metadata=maven://org.springframework.cloud.stream.app:splitter-processor-kafka:jar:metadata:@splitter-processor.version@
processor.transform=maven://org.springframework.cloud.stream.app:transform-processor-kafka:@transform-processor.version@

View File

@@ -1,13 +1,19 @@
sink.cassandra=docker:springcloudstream/cassandra-sink-rabbit:@cassandra-sink-docker.tag@
sink.counter=docker:springcloudstream/counter-sink-rabbit:@counter-sink-docker.tag@
sink.file=docker:springcloudstream/file-sink-rabbit:@file-sink-docker.tag@
sink.jdbc=docker:springcloudstream/jdbc-sink-rabbit:@jdbc-sink-docker.tag@
sink.log=docker:springcloudstream/log-sink-rabbit:@log-sink-docker.tag@
sink.mongodb=docker:springcloudstream/mongodb-sink-rabbit:@mongodb-sink-docker.tag@
sink.rabbit=docker:springcloudstream/rabbit-sink-rabbit:@rabbit-sink-docker.tag@
sink.redis=docker:springcloudstream/redis-sink-rabbit:@redis-sink-docker.tag@
source.file=docker:springcloudstream/file-source-rabbit:@file-source-docker.tag@
source.http=docker:springcloudstream/http-source-rabbit:@http-source-docker.tag@
source.jdbc=docker:springcloudstream/jdbc-source-rabbit:@jdbc-source-docker.tag@
source.mongodb=docker:springcloudstream/mongodb-source-rabbit:@mongodb-source-docker.tag@
source.time=docker:springcloudstream/time-source-rabbit:@time-source-docker.tag@
processor.bridge=docker:springcloudstream/bridge-processor-rabbit:@bridge-processor-docker.tag@
processor.filter=docker:springcloudstream/filter-processor-rabbit:@filter-processor-docker.tag@
processor.groovy-transform=docker:springcloudstream/groovy-transform-processor-rabbit:@groovy-transform-processor-docker.tag@
processor.header-enricher=docker:springcloudstream/header-enricher-processor-rabbit:@header-enricher-processor-docker.tag@
processor.splitter=docker:springcloudstream/splitter-processor-rabbit:@splitter-processor-docker.tag@
processor.transform=docker:springcloudstream/transform-processor-rabbit:@transform-processor-docker.tag@

View File

@@ -2,6 +2,8 @@ sink.cassandra=https://@repo-spring-io@/org/springframework/cloud/stream/app/cas
sink.cassandra.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/cassandra-sink-rabbit/@cassandra-sink.version@/cassandra-sink-rabbit-@cassandra-sink.version@-metadata.jar
sink.counter=https://@repo-spring-io@/org/springframework/cloud/stream/app/counter-sink-rabbit/@counter-sink.version@/counter-sink-rabbit-@counter-sink.version@.jar
sink.counter.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/counter-sink-rabbit/@counter-sink.version@/counter-sink-rabbit-@counter-sink.version@-metadata.jar
sink.file=https://@repo-spring-io@/org/springframework/cloud/stream/app/file-sink-rabbit/@file-sink.version@/file-sink-rabbit-@file-sink.version@.jar
sink.file.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/file-sink-rabbit/@file-sink.version@/file-sink-rabbit-@file-sink.version@-metadata.jar
sink.jdbc=https://@repo-spring-io@/org/springframework/cloud/stream/app/jdbc-sink-rabbit/@jdbc-sink.version@/jdbc-sink-rabbit-@jdbc-sink.version@.jar
sink.jdbc.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/jdbc-sink-rabbit/@jdbc-sink.version@/jdbc-sink-rabbit-@jdbc-sink.version@-metadata.jar
sink.log=https://@repo-spring-io@/org/springframework/cloud/stream/app/log-sink-rabbit/@log-sink.version@/log-sink-rabbit-@log-sink.version@.jar
@@ -10,6 +12,10 @@ sink.mongodb=https://@repo-spring-io@/org/springframework/cloud/stream/app/mongo
sink.mongodb.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/mongodb-sink-rabbit/@mongodb-sink.version@/mongodb-sink-rabbit-@mongodb-sink.version@-metadata.jar
sink.rabbit=https://@repo-spring-io@/org/springframework/cloud/stream/app/rabbit-sink-rabbit/@rabbit-sink.version@/rabbit-sink-rabbit-@rabbit-sink.version@.jar
sink.rabbit.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/rabbit-sink-rabbit/@rabbit-sink.version@/rabbit-sink-rabbit-@rabbit-sink.version@-metadata.jar
sink.redis=https://@repo-spring-io@/org/springframework/cloud/stream/app/redis-sink-rabbit/@redis-sink.version@/redis-sink-rabbit-@redis-sink.version@.jar
sink.redis.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/redis-sink-rabbit/@redis-sink.version@/redis-sink-rabbit-@redis-sink.version@-metadata.jar
source.file=https://@repo-spring-io@/org/springframework/cloud/stream/app/file-source-rabbit/@file-source.version@/file-source-rabbit-@file-source.version@.jar
source.file.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/file-source-rabbit/@file-source.version@/file-source-rabbit-@file-source.version@-metadata.jar
source.http=https://@repo-spring-io@/org/springframework/cloud/stream/app/http-source-rabbit/@http-source.version@/http-source-rabbit-@http-source.version@.jar
source.http.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/http-source-rabbit/@http-source.version@/http-source-rabbit-@http-source.version@-metadata.jar
source.jdbc=https://@repo-spring-io@/org/springframework/cloud/stream/app/jdbc-source-rabbit/@jdb-source.version@/jdbc-source-rabbit-@jdbc-source.version@.jar
@@ -18,8 +24,14 @@ source.mongodb=https://@repo-spring-io@/org/springframework/cloud/stream/app/mon
source.mongodb.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/mongodb-source-rabbit/@mongodb-source.version@/mongodb-source-rabbit-@mongodb-source.version@-metadata.jar
source.time=https://@repo-spring-io@/org/springframework/cloud/stream/app/time-source-rabbit/@time-source.version@/time-source-rabbit-@time-source.version@.jar
source.time.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/time-source-rabbit/@time-source.version@/time-source-rabbit-@time-source.version@-metadata.jar
processor.bridge=https://@repo-spring-io@/org/springframework/cloud/stream/app/bridge-processor-rabbit/@bridge-processor.version@/bridge-processor-rabbit-@bridge-processor.version@.jar
processor.bridge.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/bridge-processor-rabbit/@bridge-processor.version@/bridge-processor-rabbit-@bridge-processor.version@-metadata.jar
processor.filter=https://@repo-spring-io@/org/springframework/cloud/stream/app/filter-processor-rabbit/@filter-processor.version@/filter-processor-rabbit-@filter-processor.version@.jar
processor.filter.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/filter-processor-rabbit/@filter-processor.version@/filter-processor-rabbit-@filter-processor.version@-metadata.jar
processor.groovy-transform=https://@repo-spring-io@/org/springframework/cloud/stream/app/groovy-transform-processor-rabbit/@groovy-transform-processor.version@/groovy-transform-processor-rabbit-@groovy-transform-processor.version@.jar
processor.groovy-transform.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/groovy-transform-processor-rabbit/@groovy-transform-processor.version@/groovy-transform-processor-rabbit-@groovy-transform-processor.version@-metadata.jar
processor.header-enricher=https://@repo-spring-io@/org/springframework/cloud/stream/app/header-enricher-processor-rabbit/@header-enricher-processor.version@/header-enricher-processor-rabbit-@header-enricher-processor.version@.jar
processor.header-enricher.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/header-enricher-processor-rabbit/@header-enricher-processor.version@/header-enricher-processor-rabbit-@header-enricher-processor.version@-metadata.jar
processor.splitter=https://@repo-spring-io@/org/springframework/cloud/stream/app/splitter-processor-rabbit/@splitter-processor.version@/splitter-processor-rabbit-@splitter-processor.version@.jar
processor.splitter.metadata=https://@repo-spring-io@/org/springframework/cloud/stream/app/splitter-processor-rabbit/@splitter-processor.version@/splitter-processor-rabbit-@splitter-processor.version@-metadata.jar
processor.transform=https://@repo-spring-io@/org/springframework/cloud/stream/app/transform-processor-rabbit/@transform-processor.version@/transform-processor-rabbit-@transform-processor.version@.jar

View File

@@ -2,6 +2,8 @@ sink.cassandra=maven://org.springframework.cloud.stream.app:cassandra-sink-rabbi
sink.cassandra.metadata=maven://org.springframework.cloud.stream.app:cassandra-sink-rabbit:jar:metadata:@cassandra-sink.version@
sink.counter=maven://org.springframework.cloud.stream.app:counter-sink-rabbit:@counter-sink.version@
sink.counter.metadata=maven://org.springframework.cloud.stream.app:counter-sink-rabbit:jar:metadata:@counter-sink.version@
sink.file=maven://org.springframework.cloud.stream.app:file-sink-rabbit:@file-sink.version@
sink.file.metadata=maven://org.springframework.cloud.stream.app:file-sink-rabbit:jar:metadata:@file-sink.version@
sink.jdbc=maven://org.springframework.cloud.stream.app:jdbc-sink-rabbit:@jdbc-sink.version@
sink.jdbc.metadata=maven://org.springframework.cloud.stream.app:jdbc-sink-rabbit:jar:metadata:@jdbc-sink.version@
sink.log=maven://org.springframework.cloud.stream.app:log-sink-rabbit:@log-sink.version@
@@ -10,6 +12,10 @@ sink.mongodb=maven://org.springframework.cloud.stream.app:mongodb-sink-rabbit:@m
sink.mongodb.metadata=maven://org.springframework.cloud.stream.app:mongodb-sink-rabbit:jar:metadata:@mongodb-sink.version@
sink.rabbit=maven://org.springframework.cloud.stream.app:rabbit-sink-rabbit:@rabbit-sink.version@
sink.rabbit.metadata=maven://org.springframework.cloud.stream.app:rabbit-sink-rabbit:jar:metadata:@rabbit-sink.version@
sink.redis=maven://org.springframework.cloud.stream.app:redis-sink-rabbit:@redis-sink.version@
sink.redis.metadata=maven://org.springframework.cloud.stream.app:redis-sink-rabbit:jar:metadata:@redis-sink.version@
source.file=maven://org.springframework.cloud.stream.app:file-source-rabbit:@file-source.version@
source.file.metadata=maven://org.springframework.cloud.stream.app:file-source-rabbit:jar:metadata:@file-source.version@
source.http=maven://org.springframework.cloud.stream.app:http-source-rabbit:@http-source.version@
source.http.metadata=maven://org.springframework.cloud.stream.app:http-source-rabbit:jar:metadata:@http-source.version@
source.jdbc=maven://org.springframework.cloud.stream.app:jdbc-source-rabbit:@jdbc-source.version@
@@ -18,8 +24,14 @@ source.mongodb=maven://org.springframework.cloud.stream.app:mongodb-source-rabbi
source.mongodb.metadata=maven://org.springframework.cloud.stream.app:mongodb-source-rabbit:jar:metadata:@mongodb-source.version@
source.time=maven://org.springframework.cloud.stream.app:time-source-rabbit:@time-source.version@
source.time.metadata=maven://org.springframework.cloud.stream.app:time-source-rabbit:jar:metadata:@time-source.version@
processor.bridge=maven://org.springframework.cloud.stream.app:bridge-processor-rabbit:@bridge-processor.version@
processor.bridge.metadata=maven://org.springframework.cloud.stream.app:bridge-processor-rabbit:jar:metadata:@bridge-processor.version@
processor.filter=maven://org.springframework.cloud.stream.app:filter-processor-rabbit:@filter-processor.version@
processor.filter.metadata=maven://org.springframework.cloud.stream.app:filter-processor-rabbit:jar:metadata:@filter-processor.version@
processor.groovy-transform=maven://org.springframework.cloud.stream.app:groovy-transform-processor-rabbit:@groovy-transform-processor.version@
processor.groovy-transform.metadata=maven://org.springframework.cloud.stream.app:groovy-transform-processor-rabbit:jar:metadata:@groovy-transform-processor.version@
processor.header-enricher=maven://org.springframework.cloud.stream.app:header-enricher-processor-rabbit:@header-enricher-processor.version@
processor.header-enricher.metadata=maven://org.springframework.cloud.stream.app:header-enricher-processor-rabbit:jar:metadata:@header-enricher-processor.version@
processor.splitter=maven://org.springframework.cloud.stream.app:splitter-processor-rabbit:@splitter-processor.version@
processor.splitter.metadata=maven://org.springframework.cloud.stream.app:splitter-processor-rabbit:jar:metadata:@splitter-processor.version@
processor.transform=maven://org.springframework.cloud.stream.app:transform-processor-rabbit:@transform-processor.version@

View File

@@ -32,16 +32,31 @@
<artifactId>spel-function</artifactId>
<version>${java-functions.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>header-enricher-function</artifactId>
<version>${java-functions.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>counter-consumer</artifactId>
<version>${java-functions.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>file-consumer</artifactId>
<version>${java-functions.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>jdbc-consumer</artifactId>
<version>${java-functions.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>redis-consumer</artifactId>
<version>${java-functions.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>mongodb-consumer</artifactId>
@@ -67,6 +82,11 @@
<artifactId>time-supplier</artifactId>
<version>${java-functions.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>file-supplier</artifactId>
<version>${java-functions.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>jdbc-supplier</artifactId>
@@ -82,6 +102,16 @@
<artifactId>mongodb-supplier</artifactId>
<version>${java-functions.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud.stream.app</groupId>
<artifactId>bridge-processor</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud.stream.app</groupId>
<artifactId>groovy-transform-processor</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
<profiles>
<profile>

View File

@@ -3,8 +3,14 @@
:leveloffset: +2
[[spring-cloud-stream-modules-bridge]]
include::{stream-apps-root}/{branch}/applications/processor/bridge-processor/README.adoc[tags=ref-doc]
[[spring-cloud-stream-modules-filter]]
include::{stream-apps-root}/{branch}/applications/processor/filter-processor/README.adoc[tags=ref-doc]
[[spring-cloud-stream-modules-groovy-transform]]
include::{stream-apps-root}/{branch}/applications/processor/groovy-transform-processor/README.adoc[tags=ref-doc]
[[spring-cloud-stream-modules-header-enricher]]
include::{stream-apps-root}/{branch}/applications/processor/header-enricher-processor/README.adoc[tags=ref-doc]
[[spring-cloud-stream-modules-splitter]]
include::{stream-apps-root}/{branch}/applications/processor/splitter-processor/README.adoc[tags=ref-doc]
[[spring-cloud-stream-modules-transform]]

View File

@@ -15,5 +15,7 @@ include::{stream-apps-root}/{branch}/applications/sink/log-sink/README.adoc[tags
include::{stream-apps-root}/{branch}/applications/sink/mongodb-sink/README.adoc[tags=ref-doc]
[[spring-cloud-stream-modules-rabbit-sink]]
include::{stream-apps-root}/{branch}/applications/sink/rabbit-sink/README.adoc[tags=ref-doc]
[[spring-cloud-stream-modules-redis-sink]]
include::{stream-apps-root}/{branch}/applications/sink/redis-sink/README.adoc[tags=ref-doc]
:leveloffset: -2