Make sure integration still works in CLI
This commit is contained in:
		
							parent
							
								
									aa2b020660
								
							
						
					
					
						commit
						4cfc7b6ad9
					
				|  | @ -122,6 +122,11 @@ | |||
| 			<artifactId>junit</artifactId> | ||||
| 			<scope>provided</scope> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>org.springframework.integration</groupId> | ||||
| 			<artifactId>spring-integration-core</artifactId> | ||||
| 			<scope>provided</scope> | ||||
| 		</dependency> | ||||
| 		<!-- Test --> | ||||
| 		<dependency> | ||||
| 			<groupId>${project.groupId}</groupId> | ||||
|  |  | |||
|  | @ -0,0 +1,26 @@ | |||
| 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}" | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
|  | @ -41,7 +41,7 @@ public class SpringIntegrationCompilerAutoConfiguration extends CompilerAutoConf | |||
| 	@Override | ||||
| 	public void applyDependencies(DependencyCustomizer dependencies) { | ||||
| 		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"); | ||||
| 	} | ||||
| 
 | ||||
|  | @ -50,14 +50,14 @@ public class SpringIntegrationCompilerAutoConfiguration extends CompilerAutoConf | |||
| 		imports.addImports("org.springframework.integration.Message", | ||||
| 				"org.springframework.integration.support.MessageBuilder", | ||||
| 				"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.annotation.MessageEndpoint", | ||||
| 				"org.springframework.integration.annotation.Header", | ||||
| 				"org.springframework.integration.annotation.Headers", | ||||
| 				"org.springframework.integration.annotation.Payload", | ||||
| 				"org.springframework.integration.annotation.Payloads", | ||||
| 				"org.springframework.integration.dsl.groovy.MessageFlow", | ||||
| 				"org.springframework.integration.dsl.groovy.builder.IntegrationBuilder", | ||||
| 				"org.springframework.integration.core.MessagingTemplate", | ||||
| 				"org.springframework.integration.core.SubscribableChannel", | ||||
| 				"org.springframework.integration.core.PollableChannel", | ||||
| 				EnableIntegrationPatterns.class.getCanonicalName()); | ||||
| 		imports.addStarImports("org.springframework.integration.annotation"); | ||||
| 	} | ||||
| } | ||||
|  |  | |||
|  | @ -22,9 +22,14 @@ import java.lang.annotation.Retention; | |||
| import java.lang.annotation.RetentionPolicy; | ||||
| import java.lang.annotation.Target; | ||||
| 
 | ||||
| import org.springframework.context.annotation.Configuration; | ||||
| import org.springframework.context.annotation.ImportResource; | ||||
| 
 | ||||
| @Target(ElementType.TYPE) | ||||
| @Documented | ||||
| @Retention(RetentionPolicy.RUNTIME) | ||||
| @Configuration | ||||
| @ImportResource("classpath:/org/springframework/boot/groovy/integration.xml") | ||||
| public @interface EnableIntegrationPatterns { | ||||
| 
 | ||||
| } | ||||
|  | @ -0,0 +1,9 @@ | |||
| <?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 { | |||
| 		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 | ||||
| 	public void xmlSample() throws Exception { | ||||
| 		String output = this.cli.run("runner.xml", "runner.groovy"); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue