Hi,

In Camel 2.0, there are some improvements in the camel-file component.
You can specify the File name by using the File Language expression.

The route rule in camel 2.0 could be
from("file://inbox?move=done/${file:name}").to("file://outputdir");

Please check out these wiki pages[1][2] for more information.
[1] http://camel.apache.org/file2.html
[2] http://camel.apache.org/file-language.html

Willem
lazyeye wrote:
> This is my first use of camel so it could be something dumb I'm doing but
> this works in version 1.6.1 but fails in 2.0-M1. Here's the pom file:
> <project xmlns="http://maven.apache.org/POM/4.0.0";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd";>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>gov.calpers.play.camel</groupId>
>   <artifactId>camel-play</artifactId>
>   <packaging>jar</packaging>
>   <version>0.0.1-SNAPSHOT</version>
>   <name>camel-play</name>
>   <url>http://maven.apache.org</url>
>   <dependencies>
>     <dependency>
>       <groupId>junit</groupId>
>       <artifactId>junit</artifactId>
>       <version>3.8.1</version>
>       <scope>test</scope>
>     </dependency>
>     
>     
>     <dependency>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-core</artifactId>
>       <version>${camel-version}</version>
>     </dependency>
>     
>   </dependencies>
>   <properties>
>       <camel-version>2.0-M1</camel-version>
>  <!--  <camel-version>1.6.1</camel-version> -->
>       </properties>
> </project>
> 
> here's the java file:
> package foo;
> 
> import org.apache.camel.CamelContext;
> import org.apache.camel.builder.RouteBuilder;
> import org.apache.camel.impl.DefaultCamelContext;
> 
> /**
>  * Hello world!
>  * 
>  */
> public class App {
>       public static void main(String[] args) throws Exception {
> 
>               CamelContext camelContext = new DefaultCamelContext();
> 
>               camelContext.addRoutes(new RouteBuilder() {
> 
>                       public void configure() throws Exception {
>                               
> from("file://inbox?moveNamePrefix=done/").to("file://outputdir");
>                       }
>               });
> 
>               camelContext.start();
> 
>       }
> }
> 
> here's the stack trace:
> Exception in thread "main" org.apache.camel.ResolveEndpointFailedException:
> Failed to resolve endpoint: file://inbox?moveNamePrefix=done/ due to:
> org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint:
> file://inbox?moveNamePrefix=done/ due to: There are 1 parameters that
> couldn't be set on the endpoint. Check the uri if the parameters are spelt
> correctly and that they are properties of the endpoint. Unknown
> parameters=[{moveNamePrefix=done/}]
>       at
> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:378)
>       at
> org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:52)
>       at
> org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:133)
>       at
> org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:103)
>       at
> org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:109)
>       at
> org.apache.camel.model.FromDefinition.resolveEndpoint(FromDefinition.java:72)
>       at
> org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:78)
>       at
> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:302)
>       at
> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:121)
>       at
> org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:481)
>       at
> org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:777)
>       at
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:759)
>       at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:50)
>       at foo.App.main(App.java:23)
> Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to
> resolve endpoint: file://inbox?moveNamePrefix=done/ due to: There are 1
> parameters that couldn't be set on the endpoint. Check the uri if the
> parameters are spelt correctly and that they are properties of the endpoint.
> Unknown parameters=[{moveNamePrefix=done/}]
>       at
> org.apache.camel.impl.DefaultComponent.validateParameters(DefaultComponent.java:115)
>       at
> org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:93)
>       at
> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:359)
>       ... 13 more
> 

Reply via email to