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