fusefabric

Property setting gone "missing" from fuse fabric


I'm using Fuse Fabric with the standard profile configuration mechanism.

The blueprint.xml for my component contains the following:

<cm:property-placeholder persistent-id="my.service">
    <cm:default-properties>
        <cm:property name="db.xyz.maxActive" value=""/>
        ...
    </cm:default-properties>
</cm:property-placeholder>

<bean id="xyzDataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
    <property name="maxActive" value="${db.xyz.maxActive}"/>
    ...
</bean>

And my property file named my.service.properties contains the following setting:

db.xyz.maxActive=50

Then I create a fuse fabric consisting of 3 servers, and I deploy my component. The deploy of the component fails, saying that a value of "" is invalid for the setter setMaxActive.

It seems that my property db.xyz.maxActive is not being picked up in the initialization of fuse fabric.

I have carefully checked my blueprint.xml and my.service.properties and the property setting looks correct, in fact I have other settings which exist in the same files and existed perfectly well. Since my fabric was last running, I have only added some new properties to the profiles.

Does anybody know why this setting has gone "missing" from fuse fabric?

Or can you provide some pointers on where in the configuration I should look.

Thank you in advance.


Solution

  • Well I found out that a new property which I added was not defined in my property files.

    Weird that I could not see any reference to the property that was missing... it seemed to silently fail to load properties and then it was another property that was defined that caused the error message.

    Today's lesson: look over all the properties, not just the one in the error message.