All,

I am migrating from camel 2.9.0 to 2.12.0.
One change I had to do was around additional boolean argument added in
method resolveProperties of
org.apache.camel.component.properties.DefaultPropertiesResolver

I am also seeing the use of Expression Language failing in 2.12.0.
My Route is as follows

                <route id="downloadCsvFormSftp" reform:name="download csv file 
from sftp
to local"
                        
reform:systemName="download_csv_file_from_sftp_to_local">
                        <from
                        
uri="sftp://${csv.loader.sftp.user}@${csv.loader.sftp.url}?password=${csv.loader.sftp.password}&amp;binary=true&amp;delay=6000&amp;filter=#csvLoaderFilter&amp;move=.done";
/>
                        <to uri="file:/opt/share/csvloader"/>
                
                        <setHeader headerName="csvFileNameRegex">
                <simple>${csv.file.name.regx}</simple>
            </setHeader>
            
            <onException>
            
<exception>com.lombardrisk.reform.exception.CsvValidateException</exception>
                    <redeliveryPolicy
maximumRedeliveries="${routes.redelivery.maxRedeliveries}"
                                   
redeliveryDelay="${routes.redelivery.redeliveryDelay}"/>
                    <handled>
                        <constant>true</constant>
                    </handled>
                <process ref="csvFileValidateFaultHandle"/>
                </onException>
                        <process ref="csvfileNameValidate"/>
                        <unmarshal><csv/></unmarshal>
                        <process ref="csvContentValidate"/>
                        <to uri="bean:csvDataHandler?method=convertCsvData" />
                        <split streaming="true"  stopOnException="true">
                                * <el>${body}</el> *
                                 <to uri="activemq:queue:csvRowData"/>
                        </split>
        </route>

Intention is to download a CSV file from sFTP and extract each line in that
CSV and send it to a Queue.
The expression <el>${body}</el>
Throws the below error when starting the route


Exception in thread "LockManager" java.lang.RuntimeException:
org.apache.camel.FailedToCreateRouteException: Failed to create route
downloadCsvFormS
p at: >>> Split[el{${body}} -> [To[activemq:queue:csvRowData]]] <<< in
route: Route(downloadCsvFormSftp)[[From[sftp://${csv.loader.sftp.us...
becaus
of Property with key [body] not found in properties from text: ${body}
        at
com.lombardrisk.reform.integration.SpringContextManager.addRoutesIntoCamelContext(SpringContextManager.java:80)
        at
com.lombardrisk.reform.integration.DbLockManager.manageLockUsingStatement(DbLockManager.java:78)
        at
com.lombardrisk.reform.integration.DbLockManager.manageLock(DbLockManager.java:125)
        at
com.lombardrisk.reform.integration.DbLockManager.access$000(DbLockManager.java:11)
        at
com.lombardrisk.reform.integration.DbLockManager$1.run(DbLockManager.java:34)
        at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create
route downloadCsvFormSftp at: >>> Split[el{${body}} -> [To[activemq:queue
svRowData]]] <<< in route:
Route(downloadCsvFormSftp)[[From[sftp://${csv.loader.sftp.us... because of
Property with key [body] not found in properti
 from text: ${body}
        at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:912)
        at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:177)
        at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:770)
        at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1914)
        at
org.apache.camel.impl.DefaultCamelContext.addRouteDefinitions(DefaultCamelContext.java:707)
        at
com.lombardrisk.reform.integration.SpringContextManager.addRoutesIntoCamelContext(SpringContextManager.java:78)
        ... 5 more
Caused by: java.lang.IllegalArgumentException: Property with key [body] not
found in properties from text: ${body}
        at
org.apache.camel.component.properties.DefaultPropertiesParser.doParseUri(DefaultPropertiesParser.java:120)
        at
org.apache.camel.component.properties.DefaultPropertiesParser.parseUri(DefaultPropertiesParser.java:51)
        at
org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:158)
        at
org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:117)
        at
org.apache.camel.impl.DefaultCamelContext.resolvePropertyPlaceholders(DefaultCamelContext.java:1128)
        at
org.apache.camel.model.ProcessorDefinition.resolvePropertyPlaceholders(ProcessorDefinition.java:572)
        at
org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:487)
        at
org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:213)
        at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:909)
        ... 10 more




I have tried setting it as *<el>${in.body}</el>* 
But I get the same error.
is came assuming it to be a Property and not as an expression language?

Note: I had to upgrade to 2.12.0 because of a couple of known defects around
sFTP in 2.9.0 

regards
D




--
View this message in context: 
http://camel.465427.n5.nabble.com/Issue-with-camel-el-in-Camel-2-12-0-tp5740188.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to