You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Russell E Glaue <rg...@cait.org> on 2011/06/03 19:34:05 UTC

ActiveMQ config-substitution change G2.2 vs G3.0

ActiveMQ is not utilizing the config-substitutions in G3.0
A patch was put in G2.2 do handle this, but the related code is removed in G3.0.
ActiveMQ is changed in the process of integrating blueprint. See GERONIMO-4475
for the G2.2 patches from Ivan.

Since the GeronimoPropertyPlaceholderConfigurer in G2.2 was to make ActiveMQ use
the config-substitution, and now is removed in G3.0, I do not see in the code
where the config-substitution is accounted for.


In G2.2.2-SNAPSHOT
The GBean Class:
~/branches/2.2/plugins/activemq/geronimo-activemq/src/main/java/org/apache/geronimo/activemq/GeronimoPropertyPlaceholderConfigurer.java
The GBean Configuration:
~/branches/2.2/plugins/activemq/activemq-broker/src/main/resources/activemq.xml
-
    <!-- Allows us to use system properties as variables in this configuration
file-->
    <bean
class="org.apache.geronimo.activemq.GeronimoPropertyPlaceholderConfigurer">
         <property name="locations">

<!--<value>file://${activemq.home}/conf/credentials.properties</value>-->

<value>${activemq.geronimo.home.url}/var/config/config-substitutions.properties</value>
         </property>
         <property name="systemPropertiesMode">
            <value>2</value>
         </property>
    </bean>
-

In G3.0-SNAPSHOT
~/trunk/plugins/activemq/activemq-broker-blueprint/src/main/resources/OSGI-INF/blueprint/activemq.xml
-
    <cm:property-placeholder id="property-placeholder"
persistent-id="blueprint-activemq-placeholder" placeholder-prefix="${"
placeholder-suffix="}" ignore-missing-locations="true">
        <cm:default-properties>
            <cm:property name="activemq.brokerName" value="DefaultActiveMQBroker"/>
            <cm:property name="activemq.data" value="var/activemq"/>
            <cm:property name="serverHostname" value="localhost"/>
            <cm:property name="activemq.port" value="61616"/>
            <cm:property name="portOffset" value="0"/>
        </cm:default-properties>

<cm:location>file:$(karaf.base)/etc/blueprint-activemq-placeholder.cfg</cm:location>
    </cm:property-placeholder>
-
As I mentioned in a previous thread on the user list, the
file:$(karaf.base)/etc/blueprint-activemq-placeholder.cfg is ignored. I tried to
change the ActiveMQ values there in
GERONIMO_HOME/etc/blueprint-activemq-placeholder.cfg, but ActiveMQ did not use
the new configuration I set.
(I am testing with G3.0-20110603-snapshot)

So the question is, what has to be done in G3.0-SNAPSHOT to make ActiveMQ apply
settings from the config-substitutions file?

-RG

Re: ActiveMQ config-substitution change G2.2 vs G3.0

Posted by Russell E Glaue <rg...@cait.org>.
Yes, I like the Karaf support and the new OSGi implementation in G3.0.
I have not worked with the OSGi DS, so I have little more than textbook
knowledge about it. But, when you get to the point of integrating the DS support
I would like to be engaged. Maybe I can help get the ActiveMQ plugin
straightened out - if my limited knowledge of DS does not get in the way.

I need to get past this ActiveMQ issue to move on in my agenda.

Thanks.
-RG


On 06/03/2011 02:45 PM, David Jencks wrote:
> Hi Russell,
> 
> I think DS is considerably more lightweight and easier to use and more suitable for server components than blueprint.  I'm working through some jcdi problems right now but expect to be adding DS support into geronimo trunk in the next few days.
> 
> Blueprint has completely replaced our use of spring -- which was entirely for amq IIRC.  There are now quite a few aries services configured through blueprint as well.
> 
> I think there are some other felix/karaf services that should make it easier to  set up something with config admin and the amq xbean-blueprint, I'm hoping to be looking into adding these in the next few days.  At that point it will probably be possible to at least configure the port even if the portOffset doesn't work right.
> 
> thanks
> david jencks
> 
> On Jun 3, 2011, at 11:58 AM, Russell E Glaue wrote:
> 
>> David,
>>
>> In GERONIMO-4499 Ivan origianly had ActiveMQ reading configuration from a file,
>> which you rejected at the time because Geronimo could not inject properties.
>> That is why he added the gbean implementation of the
>> GeronimoPropertyPlaceholderConfigurer class.
>>
>> Though I agree with your reasoning, right now ActiveMQ is completely
>> unconfigurable from an admin point. I would accept that option right now until
>> we can figure out how to support config-substitution on blueprint or DS.
>>
>> Either that or trying to reimplement the resulting accepted solution currently
>> in G2.2 if that can be support whil running on blueprint.
>>
>> (Is blueprint now completely replacing any prior use of spring in all G2.2
>> plugins - since it is essentially Spring-DM? That would remove our ability to
>> try the G2.2 solution directly.)
>>
>> -RG
>>
>>
>> On 06/03/2011 01:41 PM, Russell E Glaue wrote:
>>> Hi David,
>>>
>>> Does Geornimo support OSGi Declarative Services (DS) now?
>>> I understand the DS requires a lot of underlying supporting code to implement it
>>> in a greater application.
>>>
>>> If the DS part of OSGi is not ready yet in Geronimo, I would prefer a short-cut
>>> be implemented in the interim. Not being able to run multiple instances on a
>>> single server is a show-stopper for me.
>>>
>>> And there is no viable work-around (other than recompiling the code) since
>>> ActiveMQ's listen-port and working-directory are not configurable in a run-time
>>> deployment.
>>>
>>>
>>> So, when ActiveMQ was reimplemented with Blueprint in G3.0, the
>>> GeronimoPropertyPlaceholderConfigurer class was removed, which was the G2.2
>>> work-around to make the config-substitution work.
>>> The primary item in that class is its extension of the
>>> org.springframework.beans.factory.config.PropertyPlaceholderConfigurer class to
>>> make that work.
>>>
>>> Was there a reason to remove this class before an alternative solution for
>>> supporting config-substitution was ready?
>>>
>>> -RG
>>>
>>>
>>> On 06/03/2011 01:11 PM, David Jencks wrote:
>>>> Hi Russell,
>>>>
>>>> thanks for looking into this in such detail :-)
>>>>
>>>> When I worked on the blueprint and xbean-blueprint conversion I couldn't figure out how to do this.  Since then I've started thinking that it would make more sense to configure activemq with Declarative Services rather than blueprint and configure the variable bits such as transports with the feature that produces a service for every Config Admin configuration (I get lost in the terminology, I think this is a managed service factory).  However I haven't had any time to look into this.
>>>>
>>>> not much help but that's where my thinking is at the moment.
>>>>
>>>> david jencks
>>>>
>>>> On Jun 3, 2011, at 10:34 AM, Russell E Glaue wrote:
>>>>
>>>>> ActiveMQ is not utilizing the config-substitutions in G3.0
>>>>> A patch was put in G2.2 do handle this, but the related code is removed in G3.0.
>>>>> ActiveMQ is changed in the process of integrating blueprint. See GERONIMO-4475
>>>>> for the G2.2 patches from Ivan.
>>>>>
>>>>> Since the GeronimoPropertyPlaceholderConfigurer in G2.2 was to make ActiveMQ use
>>>>> the config-substitution, and now is removed in G3.0, I do not see in the code
>>>>> where the config-substitution is accounted for.
>>>>>
>>>>>
>>>>> In G2.2.2-SNAPSHOT
>>>>> The GBean Class:
>>>>> ~/branches/2.2/plugins/activemq/geronimo-activemq/src/main/java/org/apache/geronimo/activemq/GeronimoPropertyPlaceholderConfigurer.java
>>>>> The GBean Configuration:
>>>>> ~/branches/2.2/plugins/activemq/activemq-broker/src/main/resources/activemq.xml
>>>>> -
>>>>>   <!-- Allows us to use system properties as variables in this configuration
>>>>> file-->
>>>>>   <bean
>>>>> class="org.apache.geronimo.activemq.GeronimoPropertyPlaceholderConfigurer">
>>>>>        <property name="locations">
>>>>>
>>>>> <!--<value>file://${activemq.home}/conf/credentials.properties</value>-->
>>>>>
>>>>> <value>${activemq.geronimo.home.url}/var/config/config-substitutions.properties</value>
>>>>>        </property>
>>>>>        <property name="systemPropertiesMode">
>>>>>           <value>2</value>
>>>>>        </property>
>>>>>   </bean>
>>>>> -
>>>>>
>>>>> In G3.0-SNAPSHOT
>>>>> ~/trunk/plugins/activemq/activemq-broker-blueprint/src/main/resources/OSGI-INF/blueprint/activemq.xml
>>>>> -
>>>>>   <cm:property-placeholder id="property-placeholder"
>>>>> persistent-id="blueprint-activemq-placeholder" placeholder-prefix="${"
>>>>> placeholder-suffix="}" ignore-missing-locations="true">
>>>>>       <cm:default-properties>
>>>>>           <cm:property name="activemq.brokerName" value="DefaultActiveMQBroker"/>
>>>>>           <cm:property name="activemq.data" value="var/activemq"/>
>>>>>           <cm:property name="serverHostname" value="localhost"/>
>>>>>           <cm:property name="activemq.port" value="61616"/>
>>>>>           <cm:property name="portOffset" value="0"/>
>>>>>       </cm:default-properties>
>>>>>
>>>>> <cm:location>file:$(karaf.base)/etc/blueprint-activemq-placeholder.cfg</cm:location>
>>>>>   </cm:property-placeholder>
>>>>> -
>>>>> As I mentioned in a previous thread on the user list, the
>>>>> file:$(karaf.base)/etc/blueprint-activemq-placeholder.cfg is ignored. I tried to
>>>>> change the ActiveMQ values there in
>>>>> GERONIMO_HOME/etc/blueprint-activemq-placeholder.cfg, but ActiveMQ did not use
>>>>> the new configuration I set.
>>>>> (I am testing with G3.0-20110603-snapshot)
>>>>>
>>>>> So the question is, what has to be done in G3.0-SNAPSHOT to make ActiveMQ apply
>>>>> settings from the config-substitutions file?
>>>>>
>>>>> -RG
>>>>
> 

Re: ActiveMQ config-substitution change G2.2 vs G3.0

Posted by David Jencks <da...@yahoo.com>.
Hi Russell,

I think DS is considerably more lightweight and easier to use and more suitable for server components than blueprint.  I'm working through some jcdi problems right now but expect to be adding DS support into geronimo trunk in the next few days.

Blueprint has completely replaced our use of spring -- which was entirely for amq IIRC.  There are now quite a few aries services configured through blueprint as well.

I think there are some other felix/karaf services that should make it easier to  set up something with config admin and the amq xbean-blueprint, I'm hoping to be looking into adding these in the next few days.  At that point it will probably be possible to at least configure the port even if the portOffset doesn't work right.

thanks
david jencks

On Jun 3, 2011, at 11:58 AM, Russell E Glaue wrote:

> David,
> 
> In GERONIMO-4499 Ivan origianly had ActiveMQ reading configuration from a file,
> which you rejected at the time because Geronimo could not inject properties.
> That is why he added the gbean implementation of the
> GeronimoPropertyPlaceholderConfigurer class.
> 
> Though I agree with your reasoning, right now ActiveMQ is completely
> unconfigurable from an admin point. I would accept that option right now until
> we can figure out how to support config-substitution on blueprint or DS.
> 
> Either that or trying to reimplement the resulting accepted solution currently
> in G2.2 if that can be support whil running on blueprint.
> 
> (Is blueprint now completely replacing any prior use of spring in all G2.2
> plugins - since it is essentially Spring-DM? That would remove our ability to
> try the G2.2 solution directly.)
> 
> -RG
> 
> 
> On 06/03/2011 01:41 PM, Russell E Glaue wrote:
>> Hi David,
>> 
>> Does Geornimo support OSGi Declarative Services (DS) now?
>> I understand the DS requires a lot of underlying supporting code to implement it
>> in a greater application.
>> 
>> If the DS part of OSGi is not ready yet in Geronimo, I would prefer a short-cut
>> be implemented in the interim. Not being able to run multiple instances on a
>> single server is a show-stopper for me.
>> 
>> And there is no viable work-around (other than recompiling the code) since
>> ActiveMQ's listen-port and working-directory are not configurable in a run-time
>> deployment.
>> 
>> 
>> So, when ActiveMQ was reimplemented with Blueprint in G3.0, the
>> GeronimoPropertyPlaceholderConfigurer class was removed, which was the G2.2
>> work-around to make the config-substitution work.
>> The primary item in that class is its extension of the
>> org.springframework.beans.factory.config.PropertyPlaceholderConfigurer class to
>> make that work.
>> 
>> Was there a reason to remove this class before an alternative solution for
>> supporting config-substitution was ready?
>> 
>> -RG
>> 
>> 
>> On 06/03/2011 01:11 PM, David Jencks wrote:
>>> Hi Russell,
>>> 
>>> thanks for looking into this in such detail :-)
>>> 
>>> When I worked on the blueprint and xbean-blueprint conversion I couldn't figure out how to do this.  Since then I've started thinking that it would make more sense to configure activemq with Declarative Services rather than blueprint and configure the variable bits such as transports with the feature that produces a service for every Config Admin configuration (I get lost in the terminology, I think this is a managed service factory).  However I haven't had any time to look into this.
>>> 
>>> not much help but that's where my thinking is at the moment.
>>> 
>>> david jencks
>>> 
>>> On Jun 3, 2011, at 10:34 AM, Russell E Glaue wrote:
>>> 
>>>> ActiveMQ is not utilizing the config-substitutions in G3.0
>>>> A patch was put in G2.2 do handle this, but the related code is removed in G3.0.
>>>> ActiveMQ is changed in the process of integrating blueprint. See GERONIMO-4475
>>>> for the G2.2 patches from Ivan.
>>>> 
>>>> Since the GeronimoPropertyPlaceholderConfigurer in G2.2 was to make ActiveMQ use
>>>> the config-substitution, and now is removed in G3.0, I do not see in the code
>>>> where the config-substitution is accounted for.
>>>> 
>>>> 
>>>> In G2.2.2-SNAPSHOT
>>>> The GBean Class:
>>>> ~/branches/2.2/plugins/activemq/geronimo-activemq/src/main/java/org/apache/geronimo/activemq/GeronimoPropertyPlaceholderConfigurer.java
>>>> The GBean Configuration:
>>>> ~/branches/2.2/plugins/activemq/activemq-broker/src/main/resources/activemq.xml
>>>> -
>>>>   <!-- Allows us to use system properties as variables in this configuration
>>>> file-->
>>>>   <bean
>>>> class="org.apache.geronimo.activemq.GeronimoPropertyPlaceholderConfigurer">
>>>>        <property name="locations">
>>>> 
>>>> <!--<value>file://${activemq.home}/conf/credentials.properties</value>-->
>>>> 
>>>> <value>${activemq.geronimo.home.url}/var/config/config-substitutions.properties</value>
>>>>        </property>
>>>>        <property name="systemPropertiesMode">
>>>>           <value>2</value>
>>>>        </property>
>>>>   </bean>
>>>> -
>>>> 
>>>> In G3.0-SNAPSHOT
>>>> ~/trunk/plugins/activemq/activemq-broker-blueprint/src/main/resources/OSGI-INF/blueprint/activemq.xml
>>>> -
>>>>   <cm:property-placeholder id="property-placeholder"
>>>> persistent-id="blueprint-activemq-placeholder" placeholder-prefix="${"
>>>> placeholder-suffix="}" ignore-missing-locations="true">
>>>>       <cm:default-properties>
>>>>           <cm:property name="activemq.brokerName" value="DefaultActiveMQBroker"/>
>>>>           <cm:property name="activemq.data" value="var/activemq"/>
>>>>           <cm:property name="serverHostname" value="localhost"/>
>>>>           <cm:property name="activemq.port" value="61616"/>
>>>>           <cm:property name="portOffset" value="0"/>
>>>>       </cm:default-properties>
>>>> 
>>>> <cm:location>file:$(karaf.base)/etc/blueprint-activemq-placeholder.cfg</cm:location>
>>>>   </cm:property-placeholder>
>>>> -
>>>> As I mentioned in a previous thread on the user list, the
>>>> file:$(karaf.base)/etc/blueprint-activemq-placeholder.cfg is ignored. I tried to
>>>> change the ActiveMQ values there in
>>>> GERONIMO_HOME/etc/blueprint-activemq-placeholder.cfg, but ActiveMQ did not use
>>>> the new configuration I set.
>>>> (I am testing with G3.0-20110603-snapshot)
>>>> 
>>>> So the question is, what has to be done in G3.0-SNAPSHOT to make ActiveMQ apply
>>>> settings from the config-substitutions file?
>>>> 
>>>> -RG
>>> 


Re: ActiveMQ config-substitution change G2.2 vs G3.0

Posted by Russell E Glaue <rg...@cait.org>.
David,

In GERONIMO-4499 Ivan origianly had ActiveMQ reading configuration from a file,
which you rejected at the time because Geronimo could not inject properties.
That is why he added the gbean implementation of the
GeronimoPropertyPlaceholderConfigurer class.

Though I agree with your reasoning, right now ActiveMQ is completely
unconfigurable from an admin point. I would accept that option right now until
we can figure out how to support config-substitution on blueprint or DS.

Either that or trying to reimplement the resulting accepted solution currently
in G2.2 if that can be support whil running on blueprint.

(Is blueprint now completely replacing any prior use of spring in all G2.2
plugins - since it is essentially Spring-DM? That would remove our ability to
try the G2.2 solution directly.)

-RG


On 06/03/2011 01:41 PM, Russell E Glaue wrote:
> Hi David,
> 
> Does Geornimo support OSGi Declarative Services (DS) now?
> I understand the DS requires a lot of underlying supporting code to implement it
> in a greater application.
> 
> If the DS part of OSGi is not ready yet in Geronimo, I would prefer a short-cut
> be implemented in the interim. Not being able to run multiple instances on a
> single server is a show-stopper for me.
> 
> And there is no viable work-around (other than recompiling the code) since
> ActiveMQ's listen-port and working-directory are not configurable in a run-time
> deployment.
> 
> 
> So, when ActiveMQ was reimplemented with Blueprint in G3.0, the
> GeronimoPropertyPlaceholderConfigurer class was removed, which was the G2.2
> work-around to make the config-substitution work.
> The primary item in that class is its extension of the
> org.springframework.beans.factory.config.PropertyPlaceholderConfigurer class to
> make that work.
> 
> Was there a reason to remove this class before an alternative solution for
> supporting config-substitution was ready?
> 
> -RG
> 
> 
> On 06/03/2011 01:11 PM, David Jencks wrote:
>> Hi Russell,
>>
>> thanks for looking into this in such detail :-)
>>
>> When I worked on the blueprint and xbean-blueprint conversion I couldn't figure out how to do this.  Since then I've started thinking that it would make more sense to configure activemq with Declarative Services rather than blueprint and configure the variable bits such as transports with the feature that produces a service for every Config Admin configuration (I get lost in the terminology, I think this is a managed service factory).  However I haven't had any time to look into this.
>>
>> not much help but that's where my thinking is at the moment.
>>
>> david jencks
>>
>> On Jun 3, 2011, at 10:34 AM, Russell E Glaue wrote:
>>
>>> ActiveMQ is not utilizing the config-substitutions in G3.0
>>> A patch was put in G2.2 do handle this, but the related code is removed in G3.0.
>>> ActiveMQ is changed in the process of integrating blueprint. See GERONIMO-4475
>>> for the G2.2 patches from Ivan.
>>>
>>> Since the GeronimoPropertyPlaceholderConfigurer in G2.2 was to make ActiveMQ use
>>> the config-substitution, and now is removed in G3.0, I do not see in the code
>>> where the config-substitution is accounted for.
>>>
>>>
>>> In G2.2.2-SNAPSHOT
>>> The GBean Class:
>>> ~/branches/2.2/plugins/activemq/geronimo-activemq/src/main/java/org/apache/geronimo/activemq/GeronimoPropertyPlaceholderConfigurer.java
>>> The GBean Configuration:
>>> ~/branches/2.2/plugins/activemq/activemq-broker/src/main/resources/activemq.xml
>>> -
>>>    <!-- Allows us to use system properties as variables in this configuration
>>> file-->
>>>    <bean
>>> class="org.apache.geronimo.activemq.GeronimoPropertyPlaceholderConfigurer">
>>>         <property name="locations">
>>>
>>> <!--<value>file://${activemq.home}/conf/credentials.properties</value>-->
>>>
>>> <value>${activemq.geronimo.home.url}/var/config/config-substitutions.properties</value>
>>>         </property>
>>>         <property name="systemPropertiesMode">
>>>            <value>2</value>
>>>         </property>
>>>    </bean>
>>> -
>>>
>>> In G3.0-SNAPSHOT
>>> ~/trunk/plugins/activemq/activemq-broker-blueprint/src/main/resources/OSGI-INF/blueprint/activemq.xml
>>> -
>>>    <cm:property-placeholder id="property-placeholder"
>>> persistent-id="blueprint-activemq-placeholder" placeholder-prefix="${"
>>> placeholder-suffix="}" ignore-missing-locations="true">
>>>        <cm:default-properties>
>>>            <cm:property name="activemq.brokerName" value="DefaultActiveMQBroker"/>
>>>            <cm:property name="activemq.data" value="var/activemq"/>
>>>            <cm:property name="serverHostname" value="localhost"/>
>>>            <cm:property name="activemq.port" value="61616"/>
>>>            <cm:property name="portOffset" value="0"/>
>>>        </cm:default-properties>
>>>
>>> <cm:location>file:$(karaf.base)/etc/blueprint-activemq-placeholder.cfg</cm:location>
>>>    </cm:property-placeholder>
>>> -
>>> As I mentioned in a previous thread on the user list, the
>>> file:$(karaf.base)/etc/blueprint-activemq-placeholder.cfg is ignored. I tried to
>>> change the ActiveMQ values there in
>>> GERONIMO_HOME/etc/blueprint-activemq-placeholder.cfg, but ActiveMQ did not use
>>> the new configuration I set.
>>> (I am testing with G3.0-20110603-snapshot)
>>>
>>> So the question is, what has to be done in G3.0-SNAPSHOT to make ActiveMQ apply
>>> settings from the config-substitutions file?
>>>
>>> -RG
>>

Re: ActiveMQ config-substitution change G2.2 vs G3.0

Posted by Russell E Glaue <rg...@cait.org>.
Hi David,

Does Geornimo support OSGi Declarative Services (DS) now?
I understand the DS requires a lot of underlying supporting code to implement it
in a greater application.

If the DS part of OSGi is not ready yet in Geronimo, I would prefer a short-cut
be implemented in the interim. Not being able to run multiple instances on a
single server is a show-stopper for me.

And there is no viable work-around (other than recompiling the code) since
ActiveMQ's listen-port and working-directory are not configurable in a run-time
deployment.


So, when ActiveMQ was reimplemented with Blueprint in G3.0, the
GeronimoPropertyPlaceholderConfigurer class was removed, which was the G2.2
work-around to make the config-substitution work.
The primary item in that class is its extension of the
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer class to
make that work.

Was there a reason to remove this class before an alternative solution for
supporting config-substitution was ready?

-RG


On 06/03/2011 01:11 PM, David Jencks wrote:
> Hi Russell,
> 
> thanks for looking into this in such detail :-)
> 
> When I worked on the blueprint and xbean-blueprint conversion I couldn't figure out how to do this.  Since then I've started thinking that it would make more sense to configure activemq with Declarative Services rather than blueprint and configure the variable bits such as transports with the feature that produces a service for every Config Admin configuration (I get lost in the terminology, I think this is a managed service factory).  However I haven't had any time to look into this.
> 
> not much help but that's where my thinking is at the moment.
> 
> david jencks
> 
> On Jun 3, 2011, at 10:34 AM, Russell E Glaue wrote:
> 
>> ActiveMQ is not utilizing the config-substitutions in G3.0
>> A patch was put in G2.2 do handle this, but the related code is removed in G3.0.
>> ActiveMQ is changed in the process of integrating blueprint. See GERONIMO-4475
>> for the G2.2 patches from Ivan.
>>
>> Since the GeronimoPropertyPlaceholderConfigurer in G2.2 was to make ActiveMQ use
>> the config-substitution, and now is removed in G3.0, I do not see in the code
>> where the config-substitution is accounted for.
>>
>>
>> In G2.2.2-SNAPSHOT
>> The GBean Class:
>> ~/branches/2.2/plugins/activemq/geronimo-activemq/src/main/java/org/apache/geronimo/activemq/GeronimoPropertyPlaceholderConfigurer.java
>> The GBean Configuration:
>> ~/branches/2.2/plugins/activemq/activemq-broker/src/main/resources/activemq.xml
>> -
>>    <!-- Allows us to use system properties as variables in this configuration
>> file-->
>>    <bean
>> class="org.apache.geronimo.activemq.GeronimoPropertyPlaceholderConfigurer">
>>         <property name="locations">
>>
>> <!--<value>file://${activemq.home}/conf/credentials.properties</value>-->
>>
>> <value>${activemq.geronimo.home.url}/var/config/config-substitutions.properties</value>
>>         </property>
>>         <property name="systemPropertiesMode">
>>            <value>2</value>
>>         </property>
>>    </bean>
>> -
>>
>> In G3.0-SNAPSHOT
>> ~/trunk/plugins/activemq/activemq-broker-blueprint/src/main/resources/OSGI-INF/blueprint/activemq.xml
>> -
>>    <cm:property-placeholder id="property-placeholder"
>> persistent-id="blueprint-activemq-placeholder" placeholder-prefix="${"
>> placeholder-suffix="}" ignore-missing-locations="true">
>>        <cm:default-properties>
>>            <cm:property name="activemq.brokerName" value="DefaultActiveMQBroker"/>
>>            <cm:property name="activemq.data" value="var/activemq"/>
>>            <cm:property name="serverHostname" value="localhost"/>
>>            <cm:property name="activemq.port" value="61616"/>
>>            <cm:property name="portOffset" value="0"/>
>>        </cm:default-properties>
>>
>> <cm:location>file:$(karaf.base)/etc/blueprint-activemq-placeholder.cfg</cm:location>
>>    </cm:property-placeholder>
>> -
>> As I mentioned in a previous thread on the user list, the
>> file:$(karaf.base)/etc/blueprint-activemq-placeholder.cfg is ignored. I tried to
>> change the ActiveMQ values there in
>> GERONIMO_HOME/etc/blueprint-activemq-placeholder.cfg, but ActiveMQ did not use
>> the new configuration I set.
>> (I am testing with G3.0-20110603-snapshot)
>>
>> So the question is, what has to be done in G3.0-SNAPSHOT to make ActiveMQ apply
>> settings from the config-substitutions file?
>>
>> -RG
> 

Re: ActiveMQ config-substitution change G2.2 vs G3.0

Posted by David Jencks <da...@yahoo.com>.
Hi Russell,

thanks for looking into this in such detail :-)

When I worked on the blueprint and xbean-blueprint conversion I couldn't figure out how to do this.  Since then I've started thinking that it would make more sense to configure activemq with Declarative Services rather than blueprint and configure the variable bits such as transports with the feature that produces a service for every Config Admin configuration (I get lost in the terminology, I think this is a managed service factory).  However I haven't had any time to look into this.

not much help but that's where my thinking is at the moment.

david jencks

On Jun 3, 2011, at 10:34 AM, Russell E Glaue wrote:

> ActiveMQ is not utilizing the config-substitutions in G3.0
> A patch was put in G2.2 do handle this, but the related code is removed in G3.0.
> ActiveMQ is changed in the process of integrating blueprint. See GERONIMO-4475
> for the G2.2 patches from Ivan.
> 
> Since the GeronimoPropertyPlaceholderConfigurer in G2.2 was to make ActiveMQ use
> the config-substitution, and now is removed in G3.0, I do not see in the code
> where the config-substitution is accounted for.
> 
> 
> In G2.2.2-SNAPSHOT
> The GBean Class:
> ~/branches/2.2/plugins/activemq/geronimo-activemq/src/main/java/org/apache/geronimo/activemq/GeronimoPropertyPlaceholderConfigurer.java
> The GBean Configuration:
> ~/branches/2.2/plugins/activemq/activemq-broker/src/main/resources/activemq.xml
> -
>    <!-- Allows us to use system properties as variables in this configuration
> file-->
>    <bean
> class="org.apache.geronimo.activemq.GeronimoPropertyPlaceholderConfigurer">
>         <property name="locations">
> 
> <!--<value>file://${activemq.home}/conf/credentials.properties</value>-->
> 
> <value>${activemq.geronimo.home.url}/var/config/config-substitutions.properties</value>
>         </property>
>         <property name="systemPropertiesMode">
>            <value>2</value>
>         </property>
>    </bean>
> -
> 
> In G3.0-SNAPSHOT
> ~/trunk/plugins/activemq/activemq-broker-blueprint/src/main/resources/OSGI-INF/blueprint/activemq.xml
> -
>    <cm:property-placeholder id="property-placeholder"
> persistent-id="blueprint-activemq-placeholder" placeholder-prefix="${"
> placeholder-suffix="}" ignore-missing-locations="true">
>        <cm:default-properties>
>            <cm:property name="activemq.brokerName" value="DefaultActiveMQBroker"/>
>            <cm:property name="activemq.data" value="var/activemq"/>
>            <cm:property name="serverHostname" value="localhost"/>
>            <cm:property name="activemq.port" value="61616"/>
>            <cm:property name="portOffset" value="0"/>
>        </cm:default-properties>
> 
> <cm:location>file:$(karaf.base)/etc/blueprint-activemq-placeholder.cfg</cm:location>
>    </cm:property-placeholder>
> -
> As I mentioned in a previous thread on the user list, the
> file:$(karaf.base)/etc/blueprint-activemq-placeholder.cfg is ignored. I tried to
> change the ActiveMQ values there in
> GERONIMO_HOME/etc/blueprint-activemq-placeholder.cfg, but ActiveMQ did not use
> the new configuration I set.
> (I am testing with G3.0-20110603-snapshot)
> 
> So the question is, what has to be done in G3.0-SNAPSHOT to make ActiveMQ apply
> settings from the config-substitutions file?
> 
> -RG