sorry the other configuration is deformed, here is the setup I used
to remember (camel version : 1.6.1, jvm version : 1.6,activemq :
fuse message broker 5.3.0.3 )
and my config camel in activemq.xml
<route errorHandlerRef="myDeadLetterChannel">
<from uri="activemq:queue:AX.IN"/>
<choice>
<when>
<simple>${header.Action} == 'AAE'</simple>
<setHeader headerName="org.apache.camel.file.name">
<constant>${file:name.noext}_${header.Action}.csv</constant>
</setHeader>
<to uri="file:///c:/CAMEL/IN/AAE"/>
</when>
<when>
<simple>${header.Action} == 'PCA'</simple>
<setHeader headerName="org.apache.camel.file.name">
<constant>${file:name.noext}_${header.Action}.csv</constant>
</setHeader>
<to uri="file:///c:/CAMEL/IN/PCA"/>
</when>
<otherwise>
<to uri="activemq:queue:FilterError"/>
</otherwise>
</choice>
</route>
titexe wrote:
>
> Is really a big problem, there's no place for logic:)
>
> I enabled the trace mode, the Action field is in the header of the
> message,
>
> I tried another solution, by changing the file name by adding at the end
> ${header.Action}
>
> The result: I get all the files in the directory c:/CAMEL/IN/AAE with a
> name FileName_PCA.csv or FileName_AAE.csv
>
> Conclusion: the filter does not work.
>
> Here is the setup I used:
>
> <route errorHandlerRef="myDeadLetterChannel">
> <from uri="activemq:queue:AX.IN"/>
> <choice>
>
> <when>
> <simple> $ header.Action () == 'AAE' </
> simple>
> <setHeader headerName="org.apache.camel.file.name">
> <constant> $ (file: name.noext ($ _)) header.Action. csv </ constant>
> </ setHeader>
>
> <t uri="file:///c:/CAMEL/IN/AAE"/>
> </ when>
> <when>
> <simple> $ header.Action () == 'PCA' </
> simple>
> <setHeader headerName="org.apache.camel.file.name">
> <constant> $ (file: name.noext ($ _)) header.Action. csv </ constant>
> </ setHeader>
>
> <t uri="file:///c:/CAMEL/IN/PCA"/>
> </ when>
>
> <otherwise>
> <t uri="activemq:queue:FilterError"/>
> </ otherwise>
>
> </ choice>
> </ route>
>
>
>
>
> Claus Ibsen-2 wrote:
>>
>> Hi
>>
>> Is there a Action header at all?
>>
>> You can use the tracer to look?
>> http://camel.apache.org/tracer
>>
>> I suspect this is the problem.
>>
>>
>> On Thu, Oct 8, 2009 at 12:49 PM, titexe <[email protected]>
>> wrote:
>>>
>>> Thank you for your reply,
>>>
>>> now I get no errors for CSV files.
>>>
>>> cons by my filter does not work with the simple language, it puts all
>>> files
>>> received in the same directory
>>> <to uri="file:///c:/CAMEL/IN/AAE"/>
>>>
>>> below my configuration:
>>>
>>> <route errorHandlerRef="myDeadLetterChannel">
>>> <from uri="activemq:queue:AX.IN"/>
>>> <choice>
>>>
>>> <when>
>>> <simple>${in.header.Action} ==
>>> 'AAE'</simple>
>>> <to uri="file:///c:/CAMEL/IN/AAE"/>
>>> </when>
>>> <when>
>>> <simple>${in.header.Action} ==
>>> 'PCA'</simple>
>>> <to uri="file:///c:/CAMEL/IN/PCA"/>
>>> </when>
>>>
>>> <otherwise>
>>> <to uri="activemq:queue:FilterError"/>
>>> </otherwise>
>>>
>>> </choice>
>>> </route>
>>>
>>> Thank you again for your help.
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>>
>>>> On Thu, Oct 8, 2009 at 11:22 AM, titexe
>>>> <[email protected]>
>>>> wrote:
>>>>>
>>>>>
>>>>> my incoming queue, receives messages of bytes type.
>>>>>
>>>>> the message content in bytes may be an XML or CSV or PDF file that I
>>>>> converted a file in the end.
>>>>>
>>>>> In the header of the message,there's on properties(Action), that
>>>>> allows
>>>>> me
>>>>> to place this file to the proper directory.
>>>>>
>>>>
>>>> Ah are you saying its a JMS property that has this value? If so you
>>>> can route without xpath using the header predicate instead
>>>> <xpath> $ action = 'AAE' </ xpath>
>>>>
>>>> Could then be
>>>> <simple>${header.action} == 'AAE' </header>
>>>>
>>>> Using the simple language to test this
>>>> http://camel.apache.org/simple.html
>>>>
>>>>
>>>>
>>>>
>>>>> From where I put <xpath> $ action = 'AAE' </ xpath> <to
>>>>> uri="file:///c:/CSV/AAE"/>
>>>>>
>>>>> Thank you for helping me find a good solution to my problem
>>>>>
>>>>> Thank you again for your help
>>>>>
>>>>>
>>>>> Claus Ibsen-2 wrote:
>>>>>>
>>>>>> Hi
>>>>>>
>>>>>> Why do you have mixed message on that JMS queue?
>>>>>>
>>>>>> Can you not have 1 queue for XML files
>>>>>> And another queue for CSV files?
>>>>>>
>>>>>> If not I suggest to use 3 routes
>>>>>>
>>>>>> 1st route will consume from that JMS queue and check the message
>>>>>> content if its XML or CSV.
>>>>>> And then route to either A or B depending on that
>>>>>>
>>>>>> 2nd route = A which is the XML route where you can use xpath
>>>>>>
>>>>>> 3rd route = B which is the CSV route where you use something else
>>>>>> than
>>>>>> xpath. For example a java bean to check the action or what you would
>>>>>> like to do with the CSV file.
>>>>>>
>>>>>>
>>>>>> On Thu, Oct 8, 2009 at 10:48 AM, titexe
>>>>>> <[email protected]>
>>>>>> wrote:
>>>>>>>
>>>>>>> Firstly, thank you for your reply,
>>>>>>>
>>>>>>> Action is a field that exists in the header of the message (Message
>>>>>>> proportions), normally xpath ($ action = 'AAE') should not parse the
>>>>>>> message
>>>>>>> body.
>>>>>>>
>>>>>>> if not, it is possible to use another command that allows me to
>>>>>>> filter
>>>>>>> the
>>>>>>> fields in the header of the message without parsing the message
>>>>>>> body?
>>>>>>> and
>>>>>>> it
>>>>>>> is possible to use it in my case <choice> of my route?
>>>>>>>
>>>>>>> Thank you in advance
>>>>>>>
>>>>>>>
>>>>>>> Claus Ibsen-2 wrote:
>>>>>>>>
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> You are using XPath expressions
>>>>>>>> <xpath> $ action = 'AAE' </ xpath>
>>>>>>>>
>>>>>>>> And they *require* the payload to be XML.
>>>>>>>> So you cannot use XPath with CSV.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Oct 7, 2009 at 10:59 AM, titexe
>>>>>>>> <[email protected]>
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> For information
>>>>>>>>>
>>>>>>>>> Version Camel = Camel V1.6.1.2
>>>>>>>>> Version Activemq = Fuse message broker 5.3.0.3
>>>>>>>>> Version Java = V1.6.0_16
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> titexe wrote:
>>>>>>>>>>
>>>>>>>>>> Hello,
>>>>>>>>>>
>>>>>>>>>> Here is the description of my route camel : I get a message type
>>>>>>>>>> Bytes
>>>>>>>>>> in
>>>>>>>>>> my queue, I transferred this message to another broker instance
>>>>>>>>>> in
>>>>>>>>>> another
>>>>>>>>>> machine.
>>>>>>>>>>
>>>>>>>>>> was receiving this message I transformed this message to CSV or
>>>>>>>>>> XML
>>>>>>>>>> file.
>>>>>>>>>>
>>>>>>>>>> my problem is that my route works very well for XML files and not
>>>>>>>>>> for
>>>>>>>>>> CSV
>>>>>>>>>> files.
>>>>>>>>>>
>>>>>>>>>> Here is my setup:
>>>>>>>>>>
>>>>>>>>>> <route errorHandlerRef="myDeadLetterChannel">
>>>>>>>>>> <from uri="activemq:queue:IN"/>
>>>>>>>>>> <choice>
>>>>>>>>>> <when>
>>>>>>>>>> <xpath> $ action = 'AAE' </ xpath>
>>>>>>>>>> <t uri="file:///c:/IN/AAE/"/>
>>>>>>>>>> <setBody>
>>>>>>>>>> <simple> UPDATE SET CAMEL CamelDate = CURRENT_TIMESTAMP WHERE
>>>>>>>>>> message
>>>>>>>>>> =
>>>>>>>>>> '$
>>>>>>>>>> (in.header.MessageId)' </ simple>
>>>>>>>>>> </ setBody>
>>>>>>>>>> <t uri="jdbc:testdb"/>
>>>>>>>>>> </ when>
>>>>>>>>>> <when>
>>>>>>>>>> <xpath> $ action = 'FAE' </ xpath>
>>>>>>>>>> <t uri="file:///c:/IN/FAE/"/>
>>>>>>>>>> <setBody>
>>>>>>>>>> <simple> UPDATE SET CAMEL CamelDate = CURRENT_TIMESTAMP WHERE
>>>>>>>>>> message
>>>>>>>>>> =
>>>>>>>>>> '$
>>>>>>>>>> (in.header.MessageId)' </ simple>
>>>>>>>>>> </ setBody>
>>>>>>>>>> <t uri="jdbc:testdb"/>
>>>>>>>>>> </ when>
>>>>>>>>>>
>>>>>>>>>> <otherwise>
>>>>>>>>>> <t uri="activemq:queue:FilterError"/>
>>>>>>>>>> </ otherwise>
>>>>>>>>>>
>>>>>>>>>> </ choice>
>>>>>>>>>> </ route>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Here is the error that I receive when the transformationfor CSV
>>>>>>>>>> file.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> WARN EndpointMessageListener - Endpoint [ActiveMQ: tail: IN]
>>>>>>>>>> consumer
>>>>>>>>>> caught an exception while processing JMS message:
>>>>>>>>>> ActiveMQBytesMessage
>>>>>>>>>> CommandID = (10, responseRequired = false, messageId = ID:
>>>>>>>>>> DCFR-4099-1254861846625-3: 0:1:1:1, originalDestination = null,
>>>>>>>>>> originalTransactionId = null,
>>>>>>>>>> producerId = ID: DCFR-4099-1254861846625-2: 0:1:1, destination
>>>>>>>>>> =
>>>>>>>>>> queue:
>>>>>>>>>> / / IN, transactionId = null, expiration = 0, timestamp =
>>>>>>>>>> 1254862039687,
>>>>>>>>>> arrived
>>>>>>>>>> l = 0, brokerInTime = 1254879861750, brokerOutTime =
>>>>>>>>>> 1254879861765,
>>>>>>>>>> CorrelationId = null, ReplyTo = null, persistent = true, type =
>>>>>>>>>> null,
>>>>>>>>>> priority = 4
>>>>>>>>>> , GroupID = null, groupSequence = 0, targetConsumerId = null,
>>>>>>>>>> compressed
>>>>>>>>>> =
>>>>>>>>>> false, userID = null, content =
>>>>>>>>>> org.apache.activemq.util.ByteSequence
>>>>>>>>>> @
>>>>>>>>>> 6baf2
>>>>>>>>>> 4 marshalledProperties = org.apache.activemq.util.ByteSequence @
>>>>>>>>>> 1b7a553,
>>>>>>>>>> Datastructures = null, redeliveryCounter = 0, size = 2597,
>>>>>>>>>> properties
>>>>>>>>>> =
>>>>>>>>>> (Sourc
>>>>>>>>>> eEndpoint = null, org_apache_camel_file_name =
>>>>>>>>>> EUANNA_PCA_20090901
>>>>>>>>>> (50e71be4-B408-48b3-9048-4e68faf6cbd3). csv DestinationEndpoint =
>>>>>>>>>> null,
>>>>>>>>>> MessageId = (50e71be
>>>>>>>>>> 4-B408-48b3-9048-4e68faf6cbd3), Action = PCA PartnerCode =
>>>>>>>>>> EUANNA,
>>>>>>>>>> SourceEndpointUser = null, RequestMessageId = null),
>>>>>>>>>> readOnlyProperties
>>>>>>>>>> =
>>>>>>>>>> true, readOnlyBo
>>>>>>>>>> dy = true, droppable = false) (ActiveMQBytesMessage = null
>>>>>>>>>> bytesOut,
>>>>>>>>>> dataOut = null, @ DATAIN = java.io.DataInputStream 1d314cc)
>>>>>>>>>> org.apache.camel.RuntimeCamelException:
>>>>>>>>>> org.xml.sax.SAXParseException:
>>>>>>>>>> Content is not allowed in prolog.
>>>>>>>>>> at org.apache.camel.util.ObjectHelper.invokeMethod
>>>>>>>>>> (ObjectHelper.java: 567)
>>>>>>>>>> at
>>>>>>>>>> org.apache.camel.impl.converter.InstanceMethodTypeConverter.convertTo
>>>>>>>>>> (InstanceMethodTypeConverter.java: 57)
>>>>>>>>>> at
>>>>>>>>>> org.apache.camel.impl.converter.DefaultTypeConverter.doConvertTo
>>>>>>>>>> (DefaultTypeConverter.java: 119)
>>>>>>>>>> at
>>>>>>>>>> org.apache.camel.impl.converter.DefaultTypeConverter.convertTo
>>>>>>>>>> (DefaultTypeConverter.java: 90)
>>>>>>>>>> at org.apache.camel.impl.MessageSupport.getBody
>>>>>>>>>> (MessageSupport.java: 79)
>>>>>>>>>> at org.apache.camel.impl.MessageSupport.getBody
>>>>>>>>>> (MessageSupport.java: 52)
>>>>>>>>>> at org.apache.camel.builder.xml.XPathBuilder.getDocument
>>>>>>>>>> (XPathBuilder.java: 536)
>>>>>>>>>> at org.apache.camel.builder.xml.XPathBuilder.evaluateAs
>>>>>>>>>> (XPathBuilder.java: 428)
>>>>>>>>>> at org.apache.camel.builder.xml.XPathBuilder.matches
>>>>>>>>>> (XPathBuilder.java: 106)
>>>>>>>>>> at org.apache.camel.builder.xml.XPathBuilder.matches
>>>>>>>>>> (XPathBuilder.java: 65)
>>>>>>>>>> at org.apache.camel.processor.ChoiceProcessor.process
>>>>>>>>>> (ChoiceProcessor.java: 47)
>>>>>>>>>> at
>>>>>>>>>> org.apache.camel.management.InstrumentationProcessor.process
>>>>>>>>>> (InstrumentationProcessor.java: 80)
>>>>>>>>>>
>>>>>>>>>> Thank you for helping me resolve this problem,
>>>>>>>>>>
>>>>>>>>>> Thank you in advance,
>>>>>>>>>>
>>>>>>>>>> best regards,
>>>>>>>>>>
>>>>>>>>>> titexe
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>> http://www.nabble.com/Camel-%3A-Error-Message-to-CSV-file-tp25781902p25782958.html
>>>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Claus Ibsen
>>>>>>>> Apache Camel Committer
>>>>>>>>
>>>>>>>> Open Source Integration: http://fusesource.com
>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://www.nabble.com/Camel-%3A-Error-Message-to-CSV-file-tp25781902p25800470.html
>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>>
>>>>>> Open Source Integration: http://fusesource.com
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/Camel-%3A-Error-Message-to-CSV-file-tp25781902p25800861.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Camel-%3A-Error-Message-to-CSV-file-tp25781902p25801802.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/Camel-%3A-Error-Message-to-CSV-file-tp25781902p25802977.html
Sent from the Camel - Users mailing list archive at Nabble.com.