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 >>>>>> >>>>>> >>>>>> >>>>>> >>>> >>> >>