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
>