I would defiantly like to add an expression to split the messages - that would 
be very very useful.

> On Mar 10, 2016, at 9:27 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
> 
> On Thu, Mar 10, 2016 at 5:18 PM, Quinn Stevenson
> <qu...@pronoia-solutions.com <mailto: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 <http://davsclaus.com/> @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2 
> <https://www.manning.com/ibsen2>

Reply via email to