Commit 4cfc7b6a authored by Dave Syer's avatar Dave Syer

Make sure integration still works in CLI

parent aa2b0206
...@@ -122,6 +122,11 @@ ...@@ -122,6 +122,11 @@
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-core</artifactId>
<scope>provided</scope>
</dependency>
<!-- Test --> <!-- Test -->
<dependency> <dependency>
<groupId>${project.groupId}</groupId> <groupId>${project.groupId}</groupId>
......
package org.test
@Component
@EnableIntegrationPatterns
class SpringIntegrationExample implements CommandLineRunner {
@Bean
DirectChannel input() {
new DirectChannel();
}
@Override
void run(String... args) {
print new MessagingTemplate(input()).convertSendAndReceive("World")
}
}
@MessageEndpoint
class HelloTransformer {
@Transformer(inputChannel="input")
String transform(String payload) {
"Hello, ${payload}"
}
}
\ No newline at end of file
...@@ -41,7 +41,7 @@ public class SpringIntegrationCompilerAutoConfiguration extends CompilerAutoConf ...@@ -41,7 +41,7 @@ public class SpringIntegrationCompilerAutoConfiguration extends CompilerAutoConf
@Override @Override
public void applyDependencies(DependencyCustomizer dependencies) { public void applyDependencies(DependencyCustomizer dependencies) {
dependencies.ifAnyMissingClasses("org.springframework.integration.Message").add( dependencies.ifAnyMissingClasses("org.springframework.integration.Message").add(
"spring-boot-starter-integration", "spring-integration-dsl-groovy-core"); "spring-boot-starter-integration");
dependencies.ifAnyMissingClasses("groovy.util.XmlParser").add("groovy-xml"); dependencies.ifAnyMissingClasses("groovy.util.XmlParser").add("groovy-xml");
} }
...@@ -50,14 +50,14 @@ public class SpringIntegrationCompilerAutoConfiguration extends CompilerAutoConf ...@@ -50,14 +50,14 @@ public class SpringIntegrationCompilerAutoConfiguration extends CompilerAutoConf
imports.addImports("org.springframework.integration.Message", imports.addImports("org.springframework.integration.Message",
"org.springframework.integration.support.MessageBuilder", "org.springframework.integration.support.MessageBuilder",
"org.springframework.integration.MessageChannel", "org.springframework.integration.MessageChannel",
"org.springframework.integration.channel.DirectChannel",
"org.springframework.integration.channel.QueueChannel",
"org.springframework.integration.channel.ExecutorChannel",
"org.springframework.integration.MessageHeaders", "org.springframework.integration.MessageHeaders",
"org.springframework.integration.annotation.MessageEndpoint", "org.springframework.integration.core.MessagingTemplate",
"org.springframework.integration.annotation.Header", "org.springframework.integration.core.SubscribableChannel",
"org.springframework.integration.annotation.Headers", "org.springframework.integration.core.PollableChannel",
"org.springframework.integration.annotation.Payload",
"org.springframework.integration.annotation.Payloads",
"org.springframework.integration.dsl.groovy.MessageFlow",
"org.springframework.integration.dsl.groovy.builder.IntegrationBuilder",
EnableIntegrationPatterns.class.getCanonicalName()); EnableIntegrationPatterns.class.getCanonicalName());
imports.addStarImports("org.springframework.integration.annotation");
} }
} }
...@@ -22,9 +22,14 @@ import java.lang.annotation.Retention; ...@@ -22,9 +22,14 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
@Target(ElementType.TYPE) @Target(ElementType.TYPE)
@Documented @Documented
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Configuration
@ImportResource("classpath:/org/springframework/boot/groovy/integration.xml")
public @interface EnableIntegrationPatterns { public @interface EnableIntegrationPatterns {
} }
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<int:annotation-config />
</beans>
...@@ -121,6 +121,12 @@ public class SampleIntegrationTests { ...@@ -121,6 +121,12 @@ public class SampleIntegrationTests {
assertTrue("Wrong output: " + output, output.contains("Hello World")); assertTrue("Wrong output: " + output, output.contains("Hello World"));
} }
@Test
public void integrationSample() throws Exception {
String output = this.cli.run("integration.groovy");
assertTrue("Wrong output: " + output, output.contains("Hello, World"));
}
@Test @Test
public void xmlSample() throws Exception { public void xmlSample() throws Exception {
String output = this.cli.run("runner.xml", "runner.groovy"); String output = this.cli.run("runner.xml", "runner.groovy");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment