camel with stream component example

Camel With Stream Component with simple steps.


In our example we will learn about camel with stream component.Stream component is used to read input from console or write output to console.With Stream component we get following URI.

      stream:out
      stream:err
      stream:header
      stream:in

In our example we will learn stream:in and stream:out

  • In eclipse go to MyFirstCamelProject that we created in earlier page and right click on src/main/java to create package.New -> package



  • Give any name for example com.preparationforinterview and click on Finish



  • Right click on package and create a java class for example FileCopyExample.



  • Right click on package and create one more java class for example Executor.

  • Create a folder with name input.At the end we will get following structure



  • Create any file in input folder.I created text file with name Hello.

  • Add following dependency in pom.xml file.you can use any latest version.

  •  	
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	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>
    	<groupId>MyFirstCamelProject</groupId>
    	<artifactId>MyFirstCamelProject</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<dependencies>
    		<dependency>
    			<groupId>org.apache.camel</groupId>
    			<artifactId>camel-core</artifactId>
    			<version>2.13.0</version>
    		</dependency>
    		<dependency>
    			<groupId>org.apache.camel</groupId>
    			<artifactId>camel-stream</artifactId>
    			<version>2.13.0</version>
    		</dependency>
    	</dependencies>
    </project>
    
  • Run mvn:install from command prompt or if you are using Eclipse right click on pom.xml and run mvn install.It will download camel jars

  • Copy below code in FileCopyExample.

  •  	
    package com.preparationforinterview;
    
    import org.apache.camel.builder.RouteBuilder;
    
    public class FileCopyExample extends RouteBuilder {
    
    	@Override
    	public void configure() throws Exception {
    		from("file:input?noop=true").to("stream:out");
    
    		/*from("stream:in?promptMessage=Enter Message:").to( "stream:out");*/
    		 
    	}
    }
    
    

    Explain

    To create a route in camel we need to extend RouteBuilder class and override configure method.In configure method we define our route.In above example we can read it as from input folder take file and send it to console. Here file: is called endpoint.

    Note:

    Here we gave noop=true as parameter. It is optional parameter.Using that we can instruct camel to keep that input file as is.If we don't use this option then file will be moved, it means cut from input and paste to console

  • Copy below code in Executor.

  •  	
    	package com.preparationforinterview;
    
    	import org.apache.camel.CamelContext;
    	import org.apache.camel.impl.DefaultCamelContext;
    	public class Executor {
    
    	public static void main(String args[]) throws Exception {
    		CamelContext ctx = new DefaultCamelContext();
    		ctx.addRoutes(new FileCopyExample());
    		ctx.start();
    		Thread.sleep(1000);
    		ctx.stop();
    	}
    	}
    

    Explain

    First we need to create CamelContext. It has many implementation but we are using DefaultCamelContext.After CamelContext is created we add route.Its like registry of route CamelContext, till that part we have just configured route in CamelContext but until and unless we start CamelContext it will not execute route.We kept Thread.sleep(1000) so that camel gets enough time to copy file from input to console.

    To check the output right click on Executor.java and run it.It will copy content to console from input folder.

    Similarly if you want to read from console and again show output to console then just remove commented line from FileCopyExample.java as shown below

  • Copy below code in FileCopyExample.

  •  	
    package com.preparationforinterview;
    
    import org.apache.camel.builder.RouteBuilder;
    
    public class FileCopyExample extends RouteBuilder {
    
    	@Override
    	public void configure() throws Exception {
    		/*from("file:input?noop=true").to("stream:out");*/
    
    		from("stream:in?promptMessage=Enter Message:").to( "stream:out");
    	}
    }
    
    To run the program from command prompt,open command prompt and go to project location and run below command.
    mvn compile exec:java -Dexec.mainClass=com.preparationforinterview.Executor

Download source code

Camel With Stream Component Example



Visit Others Links

Camel Introduction
Camel Setup
File Copy Example Using Camel
File Copy Example In Camel Using Spring
JMS Message Transfer Example Using Camel
JMS Message Transfer Example In Camel Using Spring
Processor In Camel
Object to JSON Transfer Example Using Spring In Camel
Camel With Bean Injection Example Using Spring DSL
Camel With Bean Injection Registry Example Using Java DSL
Camel Bean Parameter Binding Example Using Java DSL
Camel Error Handling With Redelivery Example Using Java DSL
Camel Exception Handling With Example Using Java DSL
Camel JUnit Test With Example Using Java DSL
Camel JUnit Test With Example Using Spring DSL
Camel Unit Test With Mock Component Example
Camel With Stream Component Example
Camel In-Memory Messaging Example Using Direct
Camel With Timer And Quartz Example
Camel Aggregator EIP Example
Camel Splitter EIP Example
Camel Routing Slip EIP Example
Camel Dynamic Router EIP Example
Camel Load Balancer EIP Example
Top Camel Interview Question
© 2019 PreparationForInterview.com