Weird ;)
I'll check it - sounds interesting!

regards
Grzegorz

2016-01-15 17:16 GMT+01:00 Quinn Stevenson <qu...@pronoia-solutions.com>:
> Hi Grzegorz -
>
> Sorry I missed you on the IRC - I left my client open last night.
>
> I put the project I’m using on GitHub 
> https://github.com/hqstevenson/camel-blueprint-test-properties.git 
> <https://github.com/hqstevenson/camel-blueprint-test-properties.git>
>
> The results for me are indeterminate - I have had the simple test pass almost 
> as much as it fails, but I still get somewhat random failures.  The one thing 
> that is very consistent is the number of times the camel context is created.  
> When the blueprint file is in src/test/resources/… it gets created twice, but 
> when the blueprint file is in src/main/resources/…. I’ve seen the camel 
> context created up to 30 times - the exact number varies, but it’s always 
> more than 2.
>
> Here’s a snipped from the log the last time I ran this and the test passed.
>
> [                          main] BlueprintCamelContext          INFO  Apache 
> Camel 2.17-SNAPSHOT (CamelContext: camel-27) is shutdown in 0.001 seconds
> [                          main] BlueprintExtender              INFO  
> Destroying BlueprintContainer for bundle 
> ConfigAdminLoadConfigurationFileAndOverrideTest/1.0.0
>
> Quinn Stevenson
> qu...@pronoia-solutions.com
> (801) 244-7758
>
>
>
>> On Jan 15, 2016, at 3:23 AM, Grzegorz Grzybek <gr.grzy...@gmail.com> wrote:
>>
>> Hello Quinn
>>
>> Hmm... I've run `for n in `seq 1 30`; do echo $n; mvn test
>> -Dtest=ConfigAdminLoadConfigurationFileAndOverrideTest|grep BUILD;
>> done` after moving `configadmin-loadfileoverride.xml` from
>> src/test/resources to src/main/resources and everything is fine.
>>
>> Are you doing it in your own project? Maybe you've set maven filtering
>> on src/main/resources?
>>
>> regards
>> Grzegorz
>>
>> 2016-01-14 16:48 GMT+01:00 Grzegorz Grzybek <gr.grzy...@gmail.com>:
>>> Hello Quinn
>>>
>>> Excuse me that I've missed your emails - your findings are interesting
>>> - I'll try to test your scenarios tomorrow (Friday) morning CET. ok?
>>>
>>> regards
>>> Grzegorz
>>>
>>> 2016-01-14 16:42 GMT+01:00 Quinn Stevenson <qu...@pronoia-solutions.com>:
>>>> Hi Grzegorz -
>>>>
>>>> So is this a bug?  It seems like it is to me, but I don’t want to waste 
>>>> anybody’s time with the JIRA if it isn’t and I’m just doing something 
>>>> stupid.
>>>>
>>>> Quinn Stevenson
>>>>
>>>>
>>>>> On Jan 6, 2016, at 3:30 PM, Quinn Stevenson <qu...@pronoia-solutions.com> 
>>>>> wrote:
>>>>>
>>>>> I just re-ran the test against several versions of Camel and I’ve updated 
>>>>> the POM in the unit test with the results.
>>>>>
>>>>> To summarize:
>>>>> - When the blueprint.xml is in src/test/resources/OSGI-INF/blueprint -
>>>>>    these versions work
>>>>>      - 2.17-SNAPSHOT
>>>>>      - 2.16.1
>>>>>      - 2.16.0
>>>>>      - 2.15.5
>>>>>      - 2.15.4
>>>>>    and these versions fail
>>>>>      - 2.15.3
>>>>>      - 2.15.2
>>>>>      - 2.15.1
>>>>>      - 2.15.0
>>>>>      - 2.14.4
>>>>>      - 2.14.3
>>>>>      - 2.14.2
>>>>>      - 2.14.1
>>>>>      - 2.14.0
>>>>> - When the blueprint.xml is in src/main/resources/OSGI-INF/blueprint -
>>>>>  these versions were tested and all failed
>>>>>      - 2.17-SNAPSHOT
>>>>>      - 2.16.1
>>>>>      - 2.16.0
>>>>>      - 2.15.5
>>>>>      - 2.15.4
>>>>>
>>>>> Here is the blueprint I’m using
>>>>>
>>>>> <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:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 
>>>>> <http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0>"
>>>>>           xsi:schemaLocation="
>>>>>             http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 
>>>>> <http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0> 
>>>>> http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd 
>>>>> <http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd>
>>>>>             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>">
>>>>>
>>>>>    <!-- blueprint property placeholders, that will use etc/stuff.cfg as 
>>>>> the properties file -->
>>>>>    <cm:property-placeholder persistent-id="stuff" 
>>>>> update-strategy="reload">
>>>>>        <cm:default-properties>
>>>>>            <cm:property name="greeting" value="Hello" />
>>>>>            <cm:property name="echo" value="Hey" />
>>>>>            <cm:property name="destination" value="mock:original" />
>>>>>        </cm:default-properties>
>>>>>    </cm:property-placeholder>
>>>>>
>>>>>    <!-- a bean that uses a blueprint property placeholder -->
>>>>>    <bean id="myCoolBean" class="org.apache.camel.beans.MyCoolBean">
>>>>>        <property name="say" value="${greeting}"/>
>>>>>        <property name="echo" value="${echo}"/>
>>>>>    </bean>
>>>>>
>>>>>    <camelContext xmlns="http://camel.apache.org/schema/blueprint 
>>>>> <http://camel.apache.org/schema/blueprint>">
>>>>>
>>>>>        <route>
>>>>>            <from uri="direct:start"/>
>>>>>            <bean ref="myCoolBean" method="saySomething"/>
>>>>>            <to uri="{{destination}}"/>
>>>>>            <bean ref="myCoolBean" method="echoSomething"/>
>>>>>            <to uri="{{destination}}"/>
>>>>>        </route>
>>>>>
>>>>>    </camelContext>
>>>>>
>>>>> </blueprint>
>>>>>
>>>>> And here is the JUnit test
>>>>>
>>>>> public class ConfigAdminLoadConfigurationFileAndOverrideTest extends 
>>>>> CamelBlueprintTestSupport {
>>>>>
>>>>>    @Override
>>>>>    protected String getBlueprintDescriptor() {
>>>>>        // which blueprint XML file to use for this test
>>>>>   // If this file is in src/main/resources/OSGI-INF/blueprint, the test 
>>>>> will fail most of the time
>>>>>   // If this file is in src/test/resources/OSGI-INF/blueprint, the test 
>>>>> passes
>>>>>        return "/OSGI-INF/blueprint/configadmin-loadfileoverride.xml";
>>>>>    }
>>>>>
>>>>>    @Override
>>>>>    protected String[] loadConfigAdminConfigurationFile() {
>>>>>        // which .cfg file to use, and the name of the persistence-id
>>>>>        return new String[]{"src/test/resources/etc/stuff.cfg", "stuff"};
>>>>>    }
>>>>>
>>>>>    @Override
>>>>>    protected String useOverridePropertiesWithConfigAdmin(Dictionary 
>>>>> props) throws Exception {
>>>>>        // override / add extra properties
>>>>>        props.put("destination", "mock:extra");
>>>>>
>>>>>        // return the persistence-id to use
>>>>>        return "stuff";
>>>>>    }
>>>>>
>>>>>    @Test
>>>>>    public void testConfigAdmin() throws Exception {
>>>>>        // mock:original comes from <cm:default-properties>/<cm:property 
>>>>> name="destination" value="mock:original" />
>>>>>        getMockEndpoint("mock:original").setExpectedMessageCount(0);
>>>>>        // mock:result comes from loadConfigAdminConfigurationFile()
>>>>>        getMockEndpoint("mock:result").setExpectedMessageCount(0);
>>>>>        // mock:extra comes from useOverridePropertiesWithConfigAdmin()
>>>>>        getMockEndpoint("mock:extra").expectedBodiesReceived("Bye World", 
>>>>> "Yay Bye WorldYay Bye World");
>>>>>
>>>>>        template.sendBody("direct:start", "World");
>>>>>
>>>>>        assertMockEndpointsSatisfied();
>>>>>    }
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>> Quinn Stevenson
>>>>> qu...@pronoia-solutions.com <mailto:qu...@pronoia-solutions.com>
>>>>> (801) 244-7758
>>>>>
>>>>>
>>>>>
>>>>>> On Jan 6, 2016, at 2:35 PM, Quinn Stevenson <qu...@pronoia-solutions.com 
>>>>>> <mailto:qu...@pronoia-solutions.com>> wrote:
>>>>>>
>>>>>> Hi Grzegorz -
>>>>>>
>>>>>> Thank you for the link - I’ve read through it many times - it is very 
>>>>>> very helpful.  From what I understand, this should work - the location 
>>>>>> of the blueprint file shouldn’t effect the way the test runs, should it? 
>>>>>>  Maybe I’m missing something simple.
>>>>>>
>>>>>> It looks like my unit test attachment didn’t come through. Sorry - I 
>>>>>> didn’t think about the mailing list filtering out attachments.  You can 
>>>>>> get to the test here 
>>>>>> https://github.com/hqstevenson/camel-blueprint-test-properties.git 
>>>>>> <https://github.com/hqstevenson/camel-blueprint-test-properties.git>
>>>>>>
>>>>>> I've been testing this primary against 2.17-SNAPSHOT, but I’ve tested 
>>>>>> against several versions.  The POM for the unit test has the versions 
>>>>>> listed that I tested, but I was messing with the test a little so I’m 
>>>>>> not sure the list is completely accurate.  I’ll verify those and update 
>>>>>> the POM if needed.
>>>>>>
>>>>>> Quinn Stevenson
>>>>>>
>>>>>>
>>>>>>> On Jan 6, 2016, at 12:21 PM, Grzegorz Grzybek <gr.grzy...@gmail.com 
>>>>>>> <mailto:gr.grzy...@gmail.com>> wrote:
>>>>>>>
>>>>>>> Hello Quinn
>>>>>>>
>>>>>>> What Camel version do you use? I wrote a thorough explanation of
>>>>>>> CamelTestBlueprint and the changes we've made to how tests are
>>>>>>> performed and synchronized.
>>>>>>> Here: 
>>>>>>> http://ggrzybek.blogspot.com/2015/12/camel-blueprint-test-support.html 
>>>>>>> <http://ggrzybek.blogspot.com/2015/12/camel-blueprint-test-support.html>
>>>>>>> You can find there links to JIRA issues describing exactly the same
>>>>>>> problems you have with `update-strategy="reload"`.
>>>>>>>
>>>>>>> best regards
>>>>>>> Grzegorz Grzybek
>>>>>>>
>>>>>>> 2016-01-06 19:16 GMT+01:00 Quinn Stevenson <qu...@pronoia-solutions.com 
>>>>>>> <mailto:qu...@pronoia-solutions.com>>:
>>>>>>>> I’ve encountered an issue, but I’m not sure if this is a bug or a user 
>>>>>>>> error.
>>>>>>>>
>>>>>>>> I’m trying to write some tests using CamelBlueprintTestSupport for 
>>>>>>>> bundles where the blueprint file is in 
>>>>>>>> src/main/resources/OSGI-INF/blueprint.  However, I’m getting random 
>>>>>>>> failures in the test on startup.
>>>>>>>>
>>>>>>>> I’ve narrowed it down to using update-strategy = “reload” and 
>>>>>>>> overriding properties in the test.  The tests fail (most of the time) 
>>>>>>>> when the actual blueprint file is in 
>>>>>>>> src/main/resources/OSGI-INF/blueprint.  Even when the test doesn’t 
>>>>>>>> fail, you’ll see multiple camel contexts get created during the test, 
>>>>>>>> while the test this is based on from camel-test-blueprint only creates 
>>>>>>>> two camel contexts.
>>>>>>>>
>>>>>>>> However, if I move the blueprint file to 
>>>>>>>> src/test/resources/OSGI-INF/blueprint, the test passes.
>>>>>>>>
>>>>>>>> Since I need the blueprint packaged in the bundle in 
>>>>>>>> OSGI-INF/blueprint, I can’t move the blueprint file to the src/test/… 
>>>>>>>> area.
>>>>>>>>
>>>>>>>> Is there another way I should be testing this sort of thing?
>>>>>>>>
>>>>>>>> I’ve created a unit test based on the 
>>>>>>>> ConfigAdminLoadConfigurationFileAndOverrideTest from the 
>>>>>>>> camel-test-blueprint module that demonstrates the issue.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Quinn Stevenson
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>
>>>>
>

Reply via email to