On Thu, Mar 10, 2016 at 5:18 PM, Quinn Stevenson <qu...@pronoia-solutions.com> wrote: > Thank you for the quick fix - I’m building 2.17-SNAPSHOT now so I can work > with this some more. > > I agree completely on the first case. I actually assumed that’s what would > happen for some reason. Is the component currently limited to one message > per file?
Yes, it may work for a bunch of xml files etc where you want to match against them. But we could allow to configure a expression for splitting, then you can specify \n for new lines, or refer to an xml tokenizer, that can split xml files, etc > > I hadn’t thought about the second - my routes are almost always > order-dependent (i.e. FIFO), so I normally wouldn’t use that one. > Yeah its in the order it consumes / aka for file the reading order. So you would may need to specify a sort option to sort by name etc. > >> On Mar 10, 2016, at 9:13 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: >> >> One use case it may be nice would be to allow to use 1 file, but each >> row in the file is a expected message. >> In case you test with 1000s of messages. >> >> Also maybe being able to specify that the order can be random. I think >> today they are in the order the consumer fetches the messages. >> >> On Thu, Mar 10, 2016 at 5:06 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: >>> Hi >>> >>> I have reproduced your issue and logged a ticket >>> https://issues.apache.org/jira/browse/CAMEL-9696 >>> >>> And also work on improving so those options you pass on the file >>> endpoint are passed on. Today they are dropped. >>> >>> On Thu, Mar 10, 2016 at 4:56 PM, Quinn Stevenson >>> <qu...@pronoia-solutions.com> wrote: >>>> Claus - >>>> >>>> Sorry - I missed one part of your comment the first time. >>>> >>>> For this test, yes - I only expect a single value, and it’s out in a file. >>>> What I’d like to be able to do is put a bunch of values in that file and >>>> have the MockEndpoint setup with the correct expected message bodies. >>>> >>>> I actually expected this test to fail because my test data file has about >>>> 50 lines in it, so I expected the Mock to fail because the test only sends >>>> one message. >>>> >>>> Hopefully that clarifies what I’m after here >>>> >>>>> On Mar 10, 2016, at 8:50 AM, Quinn Stevenson >>>>> <qu...@pronoia-solutions.com> wrote: >>>>> >>>>> Here’s a single Camel test that shows the issue. >>>>> >>>>> package com.pronoia.camel; >>>>> >>>>> import org.apache.camel.builder.RouteBuilder; >>>>> import org.apache.camel.test.junit4.CamelTestSupport; >>>>> import org.junit.Test; >>>>> >>>>> public class JavaTestRouteTest extends CamelTestSupport { >>>>> @Override >>>>> protected RouteBuilder createRouteBuilder() throws Exception { >>>>> return new RouteBuilder() { >>>>> @Override >>>>> public void configure() throws Exception { >>>>> from( "direct://source <direct://source>") >>>>> .to( "test:file://data?noop=true" ); >>>>> } >>>>> }; >>>>> } >>>>> >>>>> @Test >>>>> public void testRoute() throws Exception { >>>>> template.sendBody( "direct://source <direct://source>", "My >>>>> Value"); >>>>> >>>>> assertMockEndpointsSatisfied(); >>>>> } >>>>> >>>>> } >>>>>> On Mar 10, 2016, at 8:11 AM, Quinn Stevenson >>>>>> <qu...@pronoia-solutions.com <mailto:qu...@pronoia-solutions.com>> wrote: >>>>>> >>>>>> Forgot to mention I’m using v2.16.2. >>>>>> >>>>>> Also, here’s the full blueprint and test class >>>>>> >>>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0 >>>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>" >>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance >>>>>> <http://www.w3.org/2001/XMLSchema-instance>" >>>>>> xmlns:camel="http://camel.apache.org/schema/blueprint >>>>>> <http://camel.apache.org/schema/blueprint>" >>>>>> xsi:schemaLocation=" >>>>>> http://www.osgi.org/xmlns/blueprint/v1.0.0 >>>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0> >>>>>> http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd >>>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd> >>>>>> http://camel.apache.org/schema/blueprint >>>>>> <http://camel.apache.org/schema/blueprint> >>>>>> http://camel.apache.org/schema/blueprint/camel-blueprint.xsd >>>>>> <http://camel.apache.org/schema/blueprint/camel-blueprint.xsd>"> >>>>>> >>>>>> <camel:routeContext id="test-route-context" >>>>>> xmlns="http://camel.apache.org/schema/blueprint >>>>>> <http://camel.apache.org/schema/blueprint>"> >>>>>> <route id="direct-to-test"> >>>>>> <from uri="direct://source <direct://source>"/> >>>>>> <to uri="test:file://data?noop=true" /> >>>>>> </route> >>>>>> </camel:routeContext> >>>>>> >>>>>> <camel:camelContext id="blueprint-camel-context" >>>>>> xmlns="http://camel.apache.org/schema/blueprint >>>>>> <http://camel.apache.org/schema/blueprint>"> >>>>>> <routeContextRef ref="test-route-context"/> >>>>>> </camel:camelContext> >>>>>> >>>>>> </blueprint> >>>>>> >>>>>> >>>>>> package com.pronoia.camel; >>>>>> >>>>>> import org.apache.camel.EndpointInject; >>>>>> import org.apache.camel.component.mock.MockEndpoint; >>>>>> import org.apache.camel.test.blueprint.CamelBlueprintTestSupport; >>>>>> import org.junit.Before; >>>>>> import org.junit.Test; >>>>>> >>>>>> public class BlueprintTestRouteTest extends CamelBlueprintTestSupport { >>>>>> @EndpointInject( uri = "test:file://data?noop=true") >>>>>> MockEndpoint targetEndpoint; >>>>>> >>>>>> @Override >>>>>> protected String getBlueprintDescriptor() { >>>>>> return "/OSGI-INF/blueprint/blueprint-test.xml"; >>>>>> } >>>>>> >>>>>> @Override >>>>>> @Before >>>>>> public void setUp() throws Exception { >>>>>> super.setUp(); >>>>>> template.setDefaultEndpointUri( "direct://source >>>>>> <direct://source>"); >>>>>> } >>>>>> >>>>>> @Test >>>>>> public void testRoute() throws Exception { >>>>>> template.sendBody( "direct://source <direct://source>", "My >>>>>> Value"); >>>>>> >>>>>> assertMockEndpointsSatisfied(); >>>>>> } >>>>>> >>>>>> } >>>>>> >>>>>> >>>>>> >>>>>>> On Mar 10, 2016, at 8:07 AM, Quinn Stevenson >>>>>>> <qu...@pronoia-solutions.com <mailto:qu...@pronoia-solutions.com>> >>>>>>> wrote: >>>>>>> >>>>>>> The route is defined in blueprint and I’m running the test using >>>>>>> CamelBlueprintTestSupport - does that make a difference? >>>>>>> >>>>>>> >>>>>>>> On Mar 10, 2016, at 8:04 AM, Claus Ibsen <claus.ib...@gmail.com >>>>>>>> <mailto:claus.ib...@gmail.com>> wrote: >>>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> Ah that test component is never really used. So the idea is that you >>>>>>>> have a file in that directory, that has the value "My Value" which the >>>>>>>> test component will load and compare agains the incoming message. >>>>>>>> >>>>>>>> But yeah seems like the file -> string conversion somehow fails. You >>>>>>>> just run this from straing junit ? No karaf or blueprint or osgi >>>>>>>> container? >>>>>>>> >>>>>>>> On Thu, Mar 10, 2016 at 4:01 PM, Quinn Stevenson >>>>>>>> <qu...@pronoia-solutions.com <mailto:qu...@pronoia-solutions.com>> >>>>>>>> wrote: >>>>>>>>> I’m trying to get the sample from the documentation for the Test >>>>>>>>> Component working ( http://camel.apache.org/test.html >>>>>>>>> <http://camel.apache.org/test.html> >>>>>>>>> <http://camel.apache.org/test.html >>>>>>>>> <http://camel.apache.org/test.html>> ), but I keep getting a type >>>>>>>>> conversion error. >>>>>>>>> >>>>>>>>> Here’s the route definition: >>>>>>>>> <route id="direct-to-test"> >>>>>>>>> <from uri="direct://source <direct://source>"/> >>>>>>>>> <to uri="test:file://data?noop=true" /> >>>>>>>>> </route> >>>>>>>>> >>>>>>>>> Here’s the test method: >>>>>>>>> @Test >>>>>>>>> public void testRoute() throws Exception { >>>>>>>>> template.sendBody( "direct://source <direct://source>", "My Value"); >>>>>>>>> >>>>>>>>> assertMockEndpointsSatisfied(); >>>>>>>>> } >>>>>>>>> >>>>>>>>> Here’s the error: >>>>>>>>> java.lang.AssertionError: test://file://data?noop=true >>>>>>>>> <test://file//data?noop=true> There is no type conversion possible >>>>>>>>> from java.lang.String to org.apache.camel.component.file.GenericFile >>>>>>>>> >>>>>>>>> I can see that Camel is finding the file with the test data because >>>>>>>>> I’m getting a .camelLock file, but I can’t seem to figure out what >>>>>>>>> I’m doing wrong >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Claus Ibsen >>>>>>>> ----------------- >>>>>>>> http://davsclaus.com <http://davsclaus.com/> @davsclaus >>>>>>>> Camel in Action 2: https://www.manning.com/ibsen2 >>>>>>>> <https://www.manning.com/ibsen2> >>>>>>> >>>>>> >>>>> >>>> >>> >>> >>> >>> -- >>> Claus Ibsen >>> ----------------- >>> http://davsclaus.com @davsclaus >>> Camel in Action 2: https://www.manning.com/ibsen2 >> >> >> >> -- >> Claus Ibsen >> ----------------- >> http://davsclaus.com @davsclaus >> Camel in Action 2: https://www.manning.com/ibsen2 > -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2