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

Reply via email to