Spring Context shutting down camel routes when activemq connection is lost

2017-01-20 Thread Adithi Jagannathan
Hi,






I have an application using spring-boot, Apache Camel and active MQ. The
camel routes are activeMQ queue polling routes.

This is the *camel-conext.xml*






http://www.springframework.org/schema/beans";

   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";

   xmlns:amq="http://activemq.apache.org/schema/core";

   xsi:schemaLocation="

   http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd

   http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd

   http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd";>


  






file:${envpath}/activemqApplication.properties










   















































  http://camel.apache.org/schema/spring";>

com.fileSupport.app.routes


  






These are the classes

Spring boot class


package com.fileSupport.app;


import org.springframework.boot.SpringApplication;


public final class FileSupportMain {


public static void main(final String[] args) {

SpringApplication app = new SpringApplication(
FileArchiveSpringBootApplication.class);

app.setWebEnvironment(false);

app.run(args);

}


private FileSupportMain() {

}

}



*Spring boot main class*


package com.fileSupport.app;


import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.context.properties.
EnableConfigurationProperties;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.ImportResource;


@ImportResource({"classpath:/META-INF/spring/camel-context.xml"})

@EnableConfigurationProperties


@SpringBootApplication

public  class FileSupportSpringBootApplication {

}


*Camel Routes:*



/**

 * ActiveMQ queue is watched by

 * this route which then performs content based

 * routing on the messages using XPath.

 */


@Component

public final class ConsumeActiveMQmessages extends RouteBuilder {


@Override

public void configure() throws Exception {



 from("activemq:queue:" + Variables.RECEIVE_QUEUE1)

 .routeId("queueRoute")


 .log(LoggingLevel.INFO, "Body: $simple{body}")

 .to("activemq:queue:" + Variables.RECEIVE_QUEUE2);


 from("activemq:queue:" + Variables.RECEIVE_QUEUE2)

 .to("direct:callback");


 from("direct:callback")


 .log(LoggingLevel.INFO, "body: $simple{body}")


 .end();


}

}


*Application.properties*

activemq.concurrency=1

message.broker.url=failover:(tcp://localhost:61616)?maxReconnectAttempts=-1

message.sessions.per.connection=10

message.max.connections=1


*Console *

  .     ___ _ _

 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )

  '  || .__|_| |_|_| |_\__, | / / / /

 =|_|==|___/=/_/_/_/

 :: Spring Boot ::(v1.4.1.RELEASE)


2017-01-19 21:38:26 [main] INFO  c.v.m.f.app.FileArchiveAppMain - Starting
FileArchiveAppMain on AT200104.local with PID 2743
(/Users/ajagannathan/Work/TransmissionQueue/TXQNewWorkSpace122212016/file-archive-service/file-archive-app/target/classes
started by ajagannathan in
/Users/ajagannathan/Work/TransmissionQueue/TXQNewWorkSpace122212016/file-archive-service/file-archive-app)

2017-01-19 21:38:26 [main] INFO  c.v.m.f.app.FileArchiveAppMain - No active
profile set, falling back to default profiles: default

2017-01-19 21:38:26 [main] INFO  o.s.c.a.AnnotationConfigApplicationContext
- Refreshing
org.springframework.context.annotation.AnnotationConfigApplicationContext@5939a379:
startup date [Thu Jan 19 21:38:26 PST 2017]; root of context hierarchy

2017-01-19 21:38:27 [main] INFO  o.s.b.f.xml.XmlBeanDefinitionReader -
Loading XML bean definitions from class path resource
[META-INF/spring/camel-context.xml]

2017-01-19 21:38:28 [main] INFO  o.s.b.f.c.PropertyPlaceholderConfigurer -
Loading properties file from URL
[file:/Users/ajagannathan/Work/TransmissionQueue/TXQNewWorkSpace122212016/file-archive-service/file-archive-app/src/main/resources/fileArchiveAppService.properties]

2017-01-19 21:38:28 [main] INFO
o.s.b.f.a.AutowiredAnnotationBeanPostProcessor - JSR-330
'javax.inject.Inject' annotation found and supported for autowiring

2017-01-19 21:38:28 [main] INFO
o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean
'org.apache.camel.spring.boot.CamelAutoConfiguration' of type [class
org.apache.camel.spring.boot.CamelAutoConfiguration$$EnhancerBySpringCGLIB$$77bd6f30]
is not eligible for getting processed by all BeanPostProcessors (for
example: not eligible for auto-proxying)

2017-01-19 21:38:28 [ActiveMQ Task-

Simple CDI setup with Weld

2017-01-20 Thread Tim Dudgeon

Hi,

I'm trying to setup a simple Java SE app using Camel CDI and Weld.

The docs state that this can be run using the org.apache.camel.cdi.Main 
class.

However when running this I get an exception:

Exception in thread "main" java.lang.NoClassDefFoundError: 
org/apache/deltaspike/cdise/api/CdiContainerLoader

at org.apache.camel.cdi.Main.doStart(Main.java:96)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.main.MainSupport.run(MainSupport.java:138)
at org.apache.camel.main.MainSupport.run(MainSupport.java:390)
at org.apache.camel.cdi.Main.main(Main.java:64)
Caused by: java.lang.ClassNotFoundException: 
org.apache.deltaspike.cdise.api.CdiContainerLoader

at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 5 more

Looking at the source for that class is seems to assume its using 
Deltaspike as the CDI implementation, but obviously I don't have the 
Deltaspike classes present (not are they a transient dependency of 
camel-cdi.


So what is the right way to launch a Weld CDI Camel Java SE app?

Tim





Re: Camel Bindy - Mixed fixed and variable length processing?

2017-01-20 Thread Claus Ibsen
Hi

I dont think this is a good use-case for using bindy when you have
such a special format.

I would write my own formatter, just read the line and parse it
yourself in a java bean and transform to the POJO model you like.



On Wed, Jan 18, 2017 at 3:15 PM, Michel Betancourt
 wrote:
> Hi Camel Users,
>
> I am new to Camel and Camel Bindy and read through all the documentation for 
> Bindy.  Due to my newbie-ness it’s not perfectly clear if Bindy can read the 
> message without additional customization.
>
> I’ve got a message such as this one:
>
> YYY000g20
>
> where the first 9 characters are fixed length (YYY000g20) and the last set of 
> characters () are variable length.  The variable length is determined 
> from positions 4-7 but it is encoded in base 32.
>
> Any thoughts if Bindy can handle any of the following scenarios:
>
>  1. Read each fixed length field and then read in the position field 
> converting to decimal so that Bindy can read it the remaining field with it’s 
> lengthPos field
>  2. Read the fixed length characters then read the remaining set of characters
>  3. Other?
>
>
> Thoughts?
>
>



-- 
Claus Ibsen
-
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2


Re: Simple CDI setup with Weld

2017-01-20 Thread Antonin Stefanutti
Hi Tim,

DeltaSpike is only used by this Main class to bootstrap Camel CDI in Java SE. 
So the dependency is optional to avoid polluting the classpath for other target 
runtimes.

In the Camel examples, we add it to the Camel Maven plugin dependency, see: 
https://github.com/apache/camel/blob/6e95af29bc289a60fa633530118f5a11a1ff55cd/examples/camel-example-cdi-metrics/pom.xml#L109-L113

Note that this dependency may be removed with CDI 2.0, as a standard way of 
bootstrapping CDI in Java SE is now provided.

Antonin

> On 20 Jan 2017, at 12:47, Tim Dudgeon  wrote:
> 
> Hi,
> 
> I'm trying to setup a simple Java SE app using Camel CDI and Weld.
> 
> The docs state that this can be run using the org.apache.camel.cdi.Main class.
> However when running this I get an exception:
> 
> Exception in thread "main" java.lang.NoClassDefFoundError: 
> org/apache/deltaspike/cdise/api/CdiContainerLoader
> at org.apache.camel.cdi.Main.doStart(Main.java:96)
> at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
> at org.apache.camel.main.MainSupport.run(MainSupport.java:138)
> at org.apache.camel.main.MainSupport.run(MainSupport.java:390)
> at org.apache.camel.cdi.Main.main(Main.java:64)
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.deltaspike.cdise.api.CdiContainerLoader
> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> ... 5 more
> 
> Looking at the source for that class is seems to assume its using Deltaspike 
> as the CDI implementation, but obviously I don't have the Deltaspike classes 
> present (not are they a transient dependency of camel-cdi.
> 
> So what is the right way to launch a Weld CDI Camel Java SE app?
> 
> Tim
> 
> 
> 



Camel component for Government system XY

2017-01-20 Thread Josef Ludvíček
Hello Camel users,

I'd like to ask if you're aware of any camel component for any Country
specific governmnet system.

I'm working on componnet for ISDS (Informacni System Datovych Schranek) run
by Czech Government. Source here [1].
Wery short description - ISDS is kind of e-mail. It can send and receive
messages.
But it's government project so it has something "special" - it's API is
implemented via SOAP

So far I created github group for similar projects and plan is to spin up
Travis CI and build artifacts to maven central once it's ready.

My question is:
1) does it make sense to try to merge component directly into camel sources
?
- I hope there will more components for other Czech government systems
in the future

2) Are there similar projects to support eGovernment in camel in Czech or
other countries?


PS: There is still plenty of work to be done on component but any feedback,
help or pull request is highly appreciated :)

Thanks for any weedback.

Have great weekend!

-- 
Josef Ludvicek


[1] https://github.com/czgov/camel-isds


Groovy and Camel PermGen troubles with Java 1.7

2017-01-20 Thread artaxerxe
As you know, Java isn't getting rid of PermGen memory area until Java 1.8.
This means that if you are loading a lot of classes using a Java 1.7 JVM
without assuring they are cleared when no longer needed, you will sooner or
later get a PermGen OutOfMemory error.

I'm using Camel 2.16.3 inside an OSGI context - Karaf. That means that in my
situation, camel is started using its OSGI activator. Besides this, my camel
contexts are built up using Spring context XML DSL.

The problem is that sometimes I get the loathed PermGen OutOfMemory
exception (after running my OSGI server for a quite long time) so that I
need to restart it. I took the heap dump on OOM, and I observed that there
are lots of classes called ScriptXXX where XXX is a number from 1 to about
34000. It seems to me that this problem comes from camel+groovy combination.

I found that:

When I run this example:
String scriptText = "request.substring(0, 7)";
Script s = null;

GroovyShell shell = new GroovyShell();
Class

Re: Camel component for Government system XY

2017-01-20 Thread souciance
1) I would think it is better to create a separate component if it is a
specific system you are creating this for. Makes it easier for others to
use.
2) I am not sure for Camel specifically but usually government systems have
APIs which theY expose and you integrate to them via their API.

On Fri, Jan 20, 2017 at 4:40 PM, Josef Ludvíček [via Camel] <
ml-node+s465427n5792864...@n5.nabble.com> wrote:

> Hello Camel users,
>
> I'd like to ask if you're aware of any camel component for any Country
> specific governmnet system.
>
> I'm working on componnet for ISDS (Informacni System Datovych Schranek)
> run
> by Czech Government. Source here [1].
> Wery short description - ISDS is kind of e-mail. It can send and receive
> messages.
> But it's government project so it has something "special" - it's API is
> implemented via SOAP
>
> So far I created github group for similar projects and plan is to spin up
> Travis CI and build artifacts to maven central once it's ready.
>
> My question is:
> 1) does it make sense to try to merge component directly into camel
> sources
> ?
> - I hope there will more components for other Czech government systems
> in the future
>
> 2) Are there similar projects to support eGovernment in camel in Czech or
> other countries?
>
>
> PS: There is still plenty of work to be done on component but any
> feedback,
> help or pull request is highly appreciated :)
>
> Thanks for any weedback.
>
> Have great weekend!
>
> --
> Josef Ludvicek
>
>
> [1] https://github.com/czgov/camel-isds
>
>
> --
> If you reply to this email, your message will be added to the discussion
> below:
> http://camel.465427.n5.nabble.com/Camel-component-for-
> Government-system-XY-tp5792864.html
> To start a new topic under Camel - Users, email
> ml-node+s465427n465428...@n5.nabble.com
> To unsubscribe from Camel - Users, click here
> 
> .
> NAML
> 
>




--
View this message in context: 
http://camel.465427.n5.nabble.com/Camel-component-for-Government-system-XY-tp5792864p5792867.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Simple CDI setup with Weld

2017-01-20 Thread Tim Dudgeon

Thanks. Adding Deltaspike explicitly was the solution.

Tim

On 20/01/2017 12:11, Antonin Stefanutti wrote:

Hi Tim,

DeltaSpike is only used by this Main class to bootstrap Camel CDI in Java SE. 
So the dependency is optional to avoid polluting the classpath for other target 
runtimes.

In the Camel examples, we add it to the Camel Maven plugin dependency, see: 
https://github.com/apache/camel/blob/6e95af29bc289a60fa633530118f5a11a1ff55cd/examples/camel-example-cdi-metrics/pom.xml#L109-L113

Note that this dependency may be removed with CDI 2.0, as a standard way of 
bootstrapping CDI in Java SE is now provided.

Antonin


On 20 Jan 2017, at 12:47, Tim Dudgeon  wrote:

Hi,

I'm trying to setup a simple Java SE app using Camel CDI and Weld.

The docs state that this can be run using the org.apache.camel.cdi.Main class.
However when running this I get an exception:

Exception in thread "main" java.lang.NoClassDefFoundError: 
org/apache/deltaspike/cdise/api/CdiContainerLoader
at org.apache.camel.cdi.Main.doStart(Main.java:96)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.main.MainSupport.run(MainSupport.java:138)
at org.apache.camel.main.MainSupport.run(MainSupport.java:390)
at org.apache.camel.cdi.Main.main(Main.java:64)
Caused by: java.lang.ClassNotFoundException: 
org.apache.deltaspike.cdise.api.CdiContainerLoader
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 5 more

Looking at the source for that class is seems to assume its using Deltaspike as 
the CDI implementation, but obviously I don't have the Deltaspike classes 
present (not are they a transient dependency of camel-cdi.

So what is the right way to launch a Weld CDI Camel Java SE app?

Tim







Re: Groovy and Camel PermGen troubles with Java 1.7

2017-01-20 Thread Zoran Regvart
Hi Andrei,
it seems that there are leftover references to the Script classes
which causes them not to be garbage collected. I've created a patch
that I believe will solve this and logged a JIRA issue[1]

You can test if this helps in your case by modifying the
`GroovyLanguage.java` as in[1] and replacing the resulting class in
the camel-groovy bundle.

I've tested by running an endless loop and seeing if it will stop
OutOfMemoryError:

CamelContext context = new DefaultCamelContext();
Exchange exchange = new DefaultExchange(context, ExchangePattern.InOnly);
while (true) {
GroovyLanguage.groovy(Math.random() * 1 + " + " +
Math.random() * 1).evaluate(exchange);
}

With the stock camel-groovy (I've tested with 2.18.1 and 2.16.6) on
Java 7 and 8 I would get OutOfMemoryError with 64MB heap in about 2-3
minutes, I've run the patched version for 15 minutes without issues.

zoran

[1] https://issues.apache.org/jira/browse/CAMEL-10732
[2] https://github.com/apache/camel/pull/1414/files

On Fri, Jan 20, 2017 at 4:46 PM, artaxerxe  wrote:
> As you know, Java isn't getting rid of PermGen memory area until Java 1.8.
> This means that if you are loading a lot of classes using a Java 1.7 JVM
> without assuring they are cleared when no longer needed, you will sooner or
> later get a PermGen OutOfMemory error.
>
> I'm using Camel 2.16.3 inside an OSGI context - Karaf. That means that in my
> situation, camel is started using its OSGI activator. Besides this, my camel
> contexts are built up using Spring context XML DSL.
>
> The problem is that sometimes I get the loathed PermGen OutOfMemory
> exception (after running my OSGI server for a quite long time) so that I
> need to restart it. I took the heap dump on OOM, and I observed that there
> are lots of classes called ScriptXXX where XXX is a number from 1 to about
> 34000. It seems to me that this problem comes from camel+groovy combination.
>
> I found that:
>
> When I run this example:
> String scriptText = "request.substring(0, 7)";
> Script s = null;
>
> GroovyShell shell = new GroovyShell();
> Class

Re: pollEnrich and variable file names - time stamp

2017-01-20 Thread GaryLeeMills
is this the right place for these questions?   if not please send me to the
correct place. thank you



--
View this message in context: 
http://camel.465427.n5.nabble.com/pollEnrich-and-variable-file-names-time-stamp-tp5792827p5792872.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: pollEnrich and variable file names - time stamp

2017-01-20 Thread souciance
You seem to be using JBoss Fuse. Shouldn't you be asking this on the JBoss
Fuse form?

Still, it is a bit hard to know what your requirement is. Do you want to
poll files that begin with some string? You can use the file language and
set the filename dynamically like:
 CMAS_LPD22_MPDE1A_PG2*-${date:now:MMdd}.csv*

On Fri, Jan 20, 2017 at 9:31 PM, GaryLeeMills [via Camel] <
ml-node+s465427n5792872...@n5.nabble.com> wrote:

> is this the right place for these questions?   if not please send me to
> the correct place. thank you
>
> --
> If you reply to this email, your message will be added to the discussion
> below:
> http://camel.465427.n5.nabble.com/pollEnrich-and-variable-
> file-names-time-stamp-tp5792827p5792872.html
> To start a new topic under Camel - Users, email
> ml-node+s465427n465428...@n5.nabble.com
> To unsubscribe from Camel - Users, click here
> 
> .
> NAML
> 
>




--
View this message in context: 
http://camel.465427.n5.nabble.com/pollEnrich-and-variable-file-names-time-stamp-tp5792827p5792873.html
Sent from the Camel - Users mailing list archive at Nabble.com.

SFTP Multiple Files Using Camel

2017-01-20 Thread praneeth101
Hi,

  I am using spring XML for configuring routes and one of my route does
SFTP'ing files from local to remote server. But i observed that only one
file is transferred at a time.

  I have a requirement where i need to send all the files in a directory at
once over sftp to remote machine.

   How do i do that!.? Help is appreciated! .

Thanks,
Sai



--
View this message in context: 
http://camel.465427.n5.nabble.com/SFTP-Multiple-Files-Using-Camel-tp5792871.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: pollEnrich and variable file names - time stamp

2017-01-20 Thread Claus Ibsen
See this page
http://camel.apache.org/content-enricher.html

Notice what those boxes says about dynamic values in poll enrich and
which Camel version.

If you just want to pickup a file, then you can just do that use
 and  and build the file name dynamically, and set
the resultType of simple to be java.io.File.

Or write a few lines of java code to read the file and aggregate /
merge whatever you want.

On Fri, Jan 20, 2017 at 9:31 PM, GaryLeeMills  wrote:
> is this the right place for these questions?   if not please send me to the
> correct place. thank you
>
>
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/pollEnrich-and-variable-file-names-time-stamp-tp5792827p5792872.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2


Re: pollEnrich and variable file names - time stamp

2017-01-20 Thread GaryLeeMills
thanks for a reply, but no, I shouldn't be asking this question on a JBoss
Fuse site. Because this is Camel Spring framework. I am using Camel Spring.
The EIP is the pollEnrich. this is the problem. it doesn't ( at least I
can't figure it out ) allow for dynamic fileName as you can see from my
post.   this is about the pollEnrich EIP camel Spring functionality - not
Jboss fuse. 



--
View this message in context: 
http://camel.465427.n5.nabble.com/pollEnrich-and-variable-file-names-time-stamp-tp5792827p5792879.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: pollEnrich and variable file names - time stamp

2017-01-20 Thread GaryLeeMills
thanks Clause, I will try this and get back with you. I appreciate your
response. 

I do actually have an aggregator : and this works fine. it is the ability to
accept files on the other path to the pollEnrich EIP.   where it says
fileName=CMAS...  I need this to be dynamic due to a timestamp at the end of
the file. 



public class NavSeaAggregationStrategy implements AggregationStrategy {

private String record1 = "";
private String record2 = "";
private String record = "";

private Logger log =
LoggerFactory.getLogger(NavSeaAggregationStrategy.class.getName());

@Override
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {

//Theory 

//-
// Arrived| oldExchange  |  newExchange | Description

//-
// A | NULL |  A| first 
message arrives for the first
group
// B | A|  B
| second message arrives for the first group
// F | NULL |  F
| first message arrives for the second group
// C | AB   |  C
| third message arrives for the first group

//---
log.info("NAV SEA Aggregation Strategy :: Start");

if ( newExchange == null ) {
return oldExchange;
}
String newBody = newExchange.getIn().getBody(String.class); 
//newExchange
is the enriched source  pollEnrich
String oldBody = oldExchange.getIn().getBody(String.class); 
//oldExchange
is the original message 

StringBuilder sb1 = new StringBuilder(oldBody);  //original msg
log.info("original or first msg: " + sb1.toString());

StringBuilder sb2 = new StringBuilder(newBody);  //emrich msg 
path msg
log.info("pollEnrich route msg: " + sb2.toString());

List serviceRecords = new ArrayList();  

//both bodies have the same number of rows
Scanner sc1 = new Scanner(sb1.toString()).useDelimiter("\\n");  
//orig msg
1st incoming
Scanner sc2 = new Scanner(sb2.toString()).useDelimiter("\\n");  
//msg to
enrich original with

while ( sc1.hasNext() ) {
record1 = sc1.next();
log.info("record 1: " + record1);
if ( sc2.hasNext() ) {
record2 = sc2.next();
log.info("record 2:" + record2);
String rc2 = 
record2.substring(record2.indexOf(',', 0) ); // get past
Time Stamp
record2 = rc2;
log.info("record 2 after removed time stamp - 
rc2: " + record2);
}
record = record1.trim() + record2.trim() + 
System.lineSeparator();
log.info("combined record: " + record);
serviceRecords.add(record);
}
StringBuilder sbout = new StringBuilder();
for ( Object o : serviceRecords) {
sbout.append(o.toString());
}

oldExchange.getIn().setBody( sbout.toString() );

log.info("NAV SEA Aggregation Strategy :: Finish");

return oldExchange;



} //Exchange process
} //class AggregationStrategy



--
View this message in context: 
http://camel.465427.n5.nabble.com/pollEnrich-and-variable-file-names-time-stamp-tp5792827p5792880.html
Sent from the Camel - Users mailing list archive at Nabble.com.