Content Based Router : Java DSL is not working

2015-05-25 Thread Kondalarv
I have choice with many options, and using java operation for conditions. 
The route is going to otherwise() option always and checckFilePattern()
method is not executing.


from(FILE_WATCHER_DSL)
 .log(LoggingLevel.INFO, FileWatchDSLUtil.getFileLogPattern())  
 
 .choice()
 
.when(checckFilePattern(header("CamelFileAbsolutePath").toString())).process(new
FileConsumerProcesser()).endChoice()
.otherwise().log("File Patten is not Matched. 
${file:absolute.path}")
  
.to("file:/app/work01/FileWatcherAgent/quarantine").process(new
FileConsumerErrorProcesser()).stop().endChoice()
 .end()
 .log("End Processing Route");
;


private static Predicate checckFilePattern(String fileName){
logger.info("checckFilePattern==> File Name : {}", fileName);
boolean flag = false;
if(fileName.endsWith("txt")) flag= true;
Predicate predicate =  PredicateBuilder.constant(flag);
logger.info("checckFilePattern==> predicate: {}", predicate);
return predicate;
    }



--
View this message in context: 
http://camel.465427.n5.nabble.com/Content-Based-Router-Java-DSL-is-not-working-tp5767440.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Content Based Router : Java DSL is not working

2015-05-25 Thread yogu13
Hi,

I would suggest to split the route in smaller route using direct and then
check

from(FILE_WATCHER_DSL) 
 .log(LoggingLevel.INFO,
FileWatchDSLUtil.getFileLogPattern())   
 .choice() 
 
.when(checckFilePattern(header("CamelFileAbsolutePath").toString()))
  .to(direct:process)
  .otherwise()
  .to(direct:processOtherwise)  

place the logic in respective direct endpoints.





--
View this message in context: 
http://camel.465427.n5.nabble.com/Content-Based-Router-Java-DSL-is-not-working-tp5767440p5767443.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Content Based Router : Java DSL is not working

2015-05-25 Thread Claus Ibsen
Hi

> .when(checckFilePattern(header("CamelFileAbsolutePath").toString())).

This is wrong. This code is only invoked once to setup the routes.

Use a bean as predicate instead of header for dynamic, and just write
it as plain java code

public static boolean checkPattern(@Header("CamelFileAbsolutePath") path) {
 ...
}

And use a bean as the predicate.



On Mon, May 25, 2015 at 9:33 AM, Kondalarv  wrote:
> I have choice with many options, and using java operation for conditions.
> The route is going to otherwise() option always and checckFilePattern()
> method is not executing.
>
>
> from(FILE_WATCHER_DSL)
>  .log(LoggingLevel.INFO, FileWatchDSLUtil.getFileLogPattern())
>  .choice()
>
> .when(checckFilePattern(header("CamelFileAbsolutePath").toString())).process(new
> FileConsumerProcesser()).endChoice()
> .otherwise().log("File Patten is not Matched. 
> ${file:absolute.path}")
>   
> .to("file:/app/work01/FileWatcherAgent/quarantine").process(new
> FileConsumerErrorProcesser()).stop().endChoice()
>  .end()
>  .log("End Processing Route");
> ;
>
>
> private static Predicate checckFilePattern(String fileName){
> logger.info("checckFilePattern==> File Name : {}", fileName);
> boolean flag = false;
> if(fileName.endsWith("txt")) flag= true;
> Predicate predicate =  PredicateBuilder.constant(flag);
> logger.info("checckFilePattern==> predicate: {}", predicate);
> return predicate;
> }
>
>
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/Content-Based-Router-Java-DSL-is-not-working-tp5767440.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-
Red Hat, Inc.
Email: cib...@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/


Re: Content Based Router : Java DSL is not working

2015-05-26 Thread Willem Jiang
It looks like your Predicate is a static now, which cannot take the message 
header as parameter. Please take a look at the Bean Language[1], it shows you 
how to write a right one.

[1]http://camel.apache.org/bean-language.html

--  
Willem Jiang

Red Hat, Inc.
Web: http://www.redhat.com
Blog: http://willemjiang.blogspot.com (English)
http://jnn.iteye.com (Chinese)
Twitter: willemjiang  
Weibo: 姜宁willem



On May 25, 2015 at 3:33:38 PM, Kondalarv (kondala.sou...@gmail.com) wrote:
> I have choice with many options, and using java operation for conditions.
> The route is going to otherwise() option always and checckFilePattern()
> method is not executing.
>  
>  
> from(FILE_WATCHER_DSL)
> .log(LoggingLevel.INFO, FileWatchDSLUtil.getFileLogPattern())
> .choice()
>  
> .when(checckFilePattern(header("CamelFileAbsolutePath").toString())).process(new
>   
> FileConsumerProcesser()).endChoice()
> .otherwise().log("File Patten is not Matched. ${file:absolute.path}")
> .to("file:/app/work01/FileWatcherAgent/quarantine").process(new
> FileConsumerErrorProcesser()).stop().endChoice()
> .end()
> .log("End Processing Route");
> ;
>  
>  
> private static Predicate checckFilePattern(String fileName){
> logger.info("checckFilePattern==> File Name : {}", fileName);
> boolean flag = false;
> if(fileName.endsWith("txt")) flag= true;
> Predicate predicate = PredicateBuilder.constant(flag);
> logger.info("checckFilePattern==> predicate: {}", predicate);
> return predicate;
> }
>  
>  
>  
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/Content-Based-Router-Java-DSL-is-not-working-tp5767440.html
>   
> Sent from the Camel - Users mailing list archive at Nabble.com.
>  



Re: Content Based Router : Java DSL is not working

2015-05-27 Thread Kondalarv
How to get EndPoint File Directory using camel annotation, I am getting
"preMove" directory from Headers, not EndPoint Dir. 
Looks like I need  @Exchange annotation but it is not available.
((FileEndpoint)exchange.getFromEndpoint()).getConfiguration().getDirectory();

Please help me on this.



--
View this message in context: 
http://camel.465427.n5.nabble.com/Content-Based-Router-Java-DSL-is-not-working-tp5767440p5767576.html
Sent from the Camel - Users mailing list archive at Nabble.com.