Dear Quinn
Yes - what you proposed works, but not if you substitute a property for the 
file path.
Seems like a defect with substituting properties.


1. Following snippet works correctly:    
        <from 
uri="file:c:/temp/in?move=done/${bean:inboundCounter.incrementAndGet}-finished.txt"/>
Copy file testNaming.xml to file:c:/temp/in
Correctly produces file called:  C:\temp\in\done\2-finished.txt


2. But using property: in.path=c:/temp/in
Using DSL:  
        <from 
uri="file:{{in.path}}?move=done/${bean:inboundCounter.incrementAndGet}-finished.txt"/>

This produces a folder called:  
        C:\temp\in\done\inboundCounter.incrementAndGet-finished.txt
With file:  testNaming.xml




-----Original Message-----
From: Quinn Stevenson [mailto:qu...@pronoia-solutions.com] 
Sent: Friday, December 30, 2016 9:05 AM
To: users@camel.apache.org
Subject: Re: logging/incrementing simple counter

Can you be a little more specific on how it isn’t working?  I tried a 
simplified form of your file uri, and it seemed to work fine.

<route>
    <from 
uri="file:target/data?move=done/${bean:inboundCounter.incrementAndGet}-finished.txt"/>
    <to uri="mock://complete" />
</route>

> On Dec 29, 2016, at 5:42 PM, Baltej Singh <bsi...@ra.rockwell.com> wrote:
> 
> Quinn,
> 
> Works great  on its own, but not in the file components move attribute!
>          <from id="_id2" 
> uri="file:{{in.path}}?moveFailed=.failed/$simple{file:onlyname}&amp;move={{archive-from-erp.path}}/${bean:inboundCounter.incrementAndGet}-{{common.fname.pattern}}"/>
> 
> 
> -----Original Message-----
> From: Quinn Stevenson [mailto:qu...@pronoia-solutions.com] 
> Sent: Thursday, December 29, 2016 2:36 PM
> To: users@camel.apache.org
> Subject: Re: logging/incrementing simple counter
> 
> I’d probably use and AtomicLong for this specific use case
> 
> <bean id="execCounter" class="java.util.concurrent.atomic.AtomicLong" />
> 
> <camelContext xmlns="http://camel.apache.org/schema/spring";>
>    <route>
>        <from uri="direct://trigger" />
>        <log message="Exec Counter: ${bean:execCounter.incrementAndGet}" />
>    </route>
> </camelContext>
> 
>> On Dec 29, 2016, at 2:49 PM, Baltej Singh <bsi...@ra.rockwell.com> wrote:
>> 
>> Following code works, but is there a better way to define the constant 1L in 
>> Spring DSL Camel context?
>> 
>>      <bean class="java.lang.Long" id="longOne">
>>              <constructor-arg index="0" value="1" />
>>      </bean>
>>      <bean class="java.lang.Long" id="execCount">
>>              <constructor-arg index="0" value="1" />
>>      </bean>
>> 
>> 
>>      <log id="_id1"   
>> message="${bean:execCount?method=sum(${bean:execCount.longValue}, 
>> ${bean:longOne.longValue})}" />
>> 
>> 
>> 
>> -----Original Message-----
>> From: Baltej Singh 
>> Sent: Thursday, December 29, 2016 12:08 PM
>> To: users@camel.apache.org
>> Subject: RE: logging/incrementing simple counter
>> 
>> Thanks Quin - worked like a charm!
>> 
>> What the recommended way to set the value on this bean?  
>> What are the advantages/disadvantages of using groovy VS ${bean:..} syntax?
> 

Reply via email to