You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Christopher Arnold <ca...@ptc.com> on 2014/01/30 15:10:46 UTC

Error using OSGi services in activemq spring xml

I'm attempting to configure a ActiveMQ broker in Karaf for SSL using encrypted
properties for the keystore/truststore passwords.  These properties were
encrypted using Jasypt and we have a bundle responsible for the handling
of the jasypt password that exports a PBEConfig as an OSGi service.  Now
I'm trying to reference that service in my activemq.xml to decrypt the
properties and I'm getting the following error on startup:

2014-01-29 13:28:54,674 | ERROR | ctivemq.server]) | configadmin                      | 43 - org.apache.felix.configadmin - 1.6.0 | [org.osgi.service.cm.ManagedServiceFactory, id=599, bundle=187/mvn:org.apache.activemq/activemq-osgi/5.9.0]: Updating configuration org.apache.activemq.server.772feee5-3a63-4786-91fb-950934523291 caused a problem: Cannot start the broker
org.osgi.service.cm.ConfigurationException: null : Cannot start the broker
         at org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:110)[187:org.apache.activemq.activemq-osgi:5.9.0]
         at Proxy04fd69e0_a37e_44e9_a755_4652d9c38525.updated(Unknown Source)[:]
         at org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.provideConfiguration(ManagedServiceFactoryTracker.java:88)[43:org.apache.felix.configadmin:1.6.0]
         at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.provide(ConfigurationManager.java:1593)[43:org.apache.felix.configadmin:1.6.0]
         at org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.run(ConfigurationManager.java:1536)[43:org.apache.felix.configadmin:1.6.0]
         at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)[43:org.apache.felix.configadmin:1.6.0]
         at java.lang.Thread.run(Thread.java:744)[:1.7.0_45]
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized xbean namespace mapping: http://www.springframework.org/schema/osgi
         at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:284)[186:org.apache.xbean.spring:3.14.0]
         at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:156)[186:org.apache.xbean.spring:3.14.0]
         at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)[186:org.apache.xbean.spring:3.14.0]
         at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)[66:org.springframework.beans:3.2.4.RELEASE]
         at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)[66:org.springframework.beans:3.2.4.RELEASE]
         at org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:84)[186:org.apache.xbean.spring:3.14.0]
         at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)[66:org.springframework.beans:3.2.4.RELEASE]
         at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)[66:org.springframework.beans:3.2.4.RELEASE]
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)[66:org.springframework.beans:3.2.4.RELEASE]
         at org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)[186:org.apache.xbean.spring:3.14.0]
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)[66:org.springframework.beans:3.2.4.RELEASE]
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[66:org.springframework.beans:3.2.4.RELEASE]
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[66:org.springframework.beans:3.2.4.RELEASE]
         at org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:111)[186:org.apache.xbean.spring:3.14.0]
         at org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:104)[186:org.apache.xbean.spring:3.14.0]
         at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)[68:org.springframework.context:3.2.4.RELEASE]
         at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)[68:org.springframework.context:3.2.4.RELEASE]
         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)[68:org.springframework.context:3.2.4.RELEASE]
         at org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:90)[187:org.apache.activemq.activemq-osgi:5.9.0]
         ... 6 more

relevant part of activemq.xml:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:osgi="http://www.springframework.org/schema/osgi"
     xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
       http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
       http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd
     ">

   <osgi:reference id="pbeConfig" interface="org.jasypt.encryption.pbe.config.StringPBEConfig"/>

   <bean id="encryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
     <property name="config" ref="pbeConfig"/>
   </bean>

   <bean class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
     <constructor-arg ref="encryptor"/>
     <property name="location">
       <value>file:${karaf.base}/etc/ptc/ptc.properties</value>
     </property>
   </bean>

...snip

I've confirmed that the spring-osgi-extenders bundle is present and
started before the activemq-osgi bundle.  Any ideas why it can't find
the namespace handler?

ActiveMQ 5.9.0, Karaf 3.0.0

Thanks,
-Chris




Re: karaf camel activemq

Posted by Laci Gaspar <la...@gmail.com>.
Sure:
karaf@root> la|grep -i jms
[  73] [Active     ] [            ] [   10] geronimo-jms_1.1_spec (1.1.1)
[  74] [Active     ] [            ] [   30] Spring JMS (3.2.4.RELEASE)
[  76] [Active     ] [            ] [   50] camel-jms (2.12.2)
[ 166] [Active     ] [Failure     ] [   80] Camel :: Example :: JMS-File 
(1.0.0.SNAPSHOT)
karaf@root> la|grep -i geronimo
[  72] [Active     ] [            ] [   10] geronimo-jta_1.1_spec (1.1.1)
[  73] [Active     ] [            ] [   10] geronimo-jms_1.1_spec (1.1.1)
[  77] [Active     ] [            ] [   30] geronimo-servlet_2.5_spec (1.2)
[  94] [Active     ] [            ] [   50] geronimo-annotation_1.0_spec 
(1.1.1)
[  95] [Active     ] [            ] [   50] 
geronimo-j2ee-management_1.1_spec (1.0.1)
[ 112] [Active     ] [            ] [   50] 
geronimo-j2ee-connector_1.5_spec (2.0.0)
karaf@root> la|grep -i activemq
[ 100] [Active     ] [Created     ] [   50] activemq-osgi (5.9.0)
[ 101] [Active     ] [Created     ] [   50] activemq-karaf (5.9.0)

On 30.01.2014 17:06, Jean-Baptiste Onofré wrote:
> la|grep -i jms
> la|grep -i geronimo
> la|grep -i activemq 


Re: karaf camel activemq

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Could you do:

la|grep -i jms
la|grep -i geronimo
la|grep -i activemq

please ?

Regards
JB

On 01/30/2014 04:55 PM, Laci Gaspar wrote:
> Thanks for your answer, but I have already tried that. Same error:
>
> 2014-01-30 16:53:47,531 | INFO  | l Console Thread |
> BlueprintContainerImpl           | container.BlueprintContainerImpl  344
> | 7 - org.apache.aries.blueprint.core - 1.1.0 | Bundle
> org.apache.camel.example.jmstofile.camel-example-jms-file is waiting for
> dependencies [(objectClass=javax.jms.ConnectionFactory)]
>
> this is my blueprint.xml:
>      <bean id="activemqConnectionFactory"
> class="org.apache.activemq.ActiveMQConnectionFactory">
>          <property name="brokerURL" value="tcp://localhost:61616" />
>      </bean>
>      <bean id="jmsConfig"
> class="org.apache.camel.component.jms.JmsConfiguration">
>          <property name="connectionFactory"
> ref="activemqConnectionFactory" />
>          <property name="transacted" value="false" />
>      </bean>
>      <bean id="activemq"
> class="org.apache.activemq.camel.component.ActiveMQComponent">
>          <property name="configuration" ref="jmsConfig" />
>      </bean>
>
>
> Any ideas?
>
> Regards
> Laci
>
>
> On 30.01.2014 16:50, Jean-Baptiste Onofré wrote:
>> Use ls command with Karaf 2.3.3.
>>
>> No the ConnectionFactory doesn't need to be as a OSGi service. You can
>> create the connection factory in your code.
>> But in your blueprint, you are looking for the connection factory as a
>> service:
>>
>> <reference id="jmsConnectionFactory"
>> interface="javax.jms.ConnectionFactory"/>
>>
>> Instead of that, you can create the connection factory as a bean, like
>> this:
>>
>>     <bean id="activemqConnectionFactory"
>> class="org.apache.activemq.ActiveMQConnectionFactory">
>>         <property name="brokerURL" value="tcp://localhost:61616" />
>>     </bean>
>>
>> Regards
>> JB
>>
>

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: karaf camel activemq

Posted by Laci Gaspar <la...@gmail.com>.
Thanks for your answer, but I have already tried that. Same error:

2014-01-30 16:53:47,531 | INFO  | l Console Thread | 
BlueprintContainerImpl           | container.BlueprintContainerImpl  344 
| 7 - org.apache.aries.blueprint.core - 1.1.0 | Bundle 
org.apache.camel.example.jmstofile.camel-example-jms-file is waiting for 
dependencies [(objectClass=javax.jms.ConnectionFactory)]

this is my blueprint.xml:
     <bean id="activemqConnectionFactory" 
class="org.apache.activemq.ActiveMQConnectionFactory">
         <property name="brokerURL" value="tcp://localhost:61616" />
     </bean>
     <bean id="jmsConfig" 
class="org.apache.camel.component.jms.JmsConfiguration">
         <property name="connectionFactory" 
ref="activemqConnectionFactory" />
         <property name="transacted" value="false" />
     </bean>
     <bean id="activemq" 
class="org.apache.activemq.camel.component.ActiveMQComponent">
         <property name="configuration" ref="jmsConfig" />
     </bean>


Any ideas?

Regards
Laci


On 30.01.2014 16:50, Jean-Baptiste Onofré wrote:
> Use ls command with Karaf 2.3.3.
>
> No the ConnectionFactory doesn't need to be as a OSGi service. You can 
> create the connection factory in your code.
> But in your blueprint, you are looking for the connection factory as a 
> service:
>
> <reference id="jmsConnectionFactory" 
> interface="javax.jms.ConnectionFactory"/>
>
> Instead of that, you can create the connection factory as a bean, like 
> this:
>
>     <bean id="activemqConnectionFactory" 
> class="org.apache.activemq.ActiveMQConnectionFactory">
>         <property name="brokerURL" value="tcp://localhost:61616" />
>     </bean>
>
> Regards
> JB
>


Re: karaf camel activemq

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Use ls command with Karaf 2.3.3.

No the ConnectionFactory doesn't need to be as a OSGi service. You can 
create the connection factory in your code.
But in your blueprint, you are looking for the connection factory as a 
service:

<reference id="jmsConnectionFactory" 
interface="javax.jms.ConnectionFactory"/>

Instead of that, you can create the connection factory as a bean, like this:

     <bean id="activemqConnectionFactory" 
class="org.apache.activemq.ActiveMQConnectionFactory">
         <property name="brokerURL" value="tcp://localhost:61616" />
     </bean>

Regards
JB

On 01/30/2014 04:37 PM, Laci Gaspar wrote:
> Thanks for your answer.
>
> I don't seem to have that command in karaf (2.3.3). I get: Command not
> found: bundle:services
>
> Is it necessary to have the ConnectionFactory installed as a service? I
> wanted to do that within my program in java.
>
> best,
> Laci
>
> On 30.01.2014 16:29, Christopher Arnold wrote:
>> Changing subject to keep thread intace
>>
>> It looks like your bundle is waiting to get the ConnectionFactory
>> service for the <reference>.  Try running bundle:services | grep
>> ConnectionFactory to see if you have a bundle that's exporting a
>> ConnectionFactory service.
>>
>> -Chris
>>
>> On 01/30/2014 09:06 AM, Laci Gaspar wrote:
>>> Sorry to be asking again, but I'm stuck.
>>>
>>> I can't get a camel route with an AMQ component to run in karaf.
>>>
>>> The error I'm getting is
>>> 2014-01-30 16:02:55,272 | INFO  | l Console Thread |
>>> BlueprintContainerImpl           | container.BlueprintContainerImpl
>>> 344 | 7 - org.apache.aries.blueprint.core - 1.1.0 | Bundle
>>> ch.curabill.msp.service.amq-route is waiting for dependencies
>>> [(objectClass=javax.jms.ConnectionFactory)]
>>>
>>> My blueprint.xml is:
>>>     <bean id="jms2FileRoute"
>>> class="ch.curabill.msp.service.MyRouteBuilder">
>>>
>>>      </bean>
>>>     <camelContext id="jms2file"
>>> xmlns="http://camel.apache.org/schema/blueprint">
>>>         <routeBuilder ref="jms2FileRoute" />
>>>     </camelContext>
>>>
>>>     B
>>>
>>>     <bean id="jmsConfig"
>>> class="org.apache.camel.component.jms.JmsConfiguration">
>>>         <property name="connectionFactory" ref="jmsConnectionFactory" />
>>>         <property name="transacted" value="false" />
>>>     </bean>
>>>
>>>     <bean id="activemq"
>>> class="org.apache.activemq.camel.component.ActiveMQComponent">
>>>         <property name="configuration" ref="jmsConfig" />
>>>     </bean>
>>>
>>>
>>> Activemq is running standalone.
>>>
>>> Please help.
>>> Regards,
>>> laci
>>>
>>>
>>
>

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: karaf camel activemq

Posted by Laci Gaspar <la...@gmail.com>.
Thanks for your answer.

I don't seem to have that command in karaf (2.3.3). I get: Command not 
found: bundle:services

Is it necessary to have the ConnectionFactory installed as a service? I 
wanted to do that within my program in java.

best,
Laci

On 30.01.2014 16:29, Christopher Arnold wrote:
> Changing subject to keep thread intace
>
> It looks like your bundle is waiting to get the ConnectionFactory 
> service for the <reference>.  Try running bundle:services | grep 
> ConnectionFactory to see if you have a bundle that's exporting a 
> ConnectionFactory service.
>
> -Chris
>
> On 01/30/2014 09:06 AM, Laci Gaspar wrote:
>> Sorry to be asking again, but I'm stuck.
>>
>> I can't get a camel route with an AMQ component to run in karaf.
>>
>> The error I'm getting is
>> 2014-01-30 16:02:55,272 | INFO  | l Console Thread | 
>> BlueprintContainerImpl           | container.BlueprintContainerImpl  
>> 344 | 7 - org.apache.aries.blueprint.core - 1.1.0 | Bundle 
>> ch.curabill.msp.service.amq-route is waiting for dependencies 
>> [(objectClass=javax.jms.ConnectionFactory)]
>>
>> My blueprint.xml is:
>>     <bean id="jms2FileRoute" 
>> class="ch.curabill.msp.service.MyRouteBuilder">
>>
>>      </bean>
>>     <camelContext id="jms2file" 
>> xmlns="http://camel.apache.org/schema/blueprint">
>>         <routeBuilder ref="jms2FileRoute" />
>>     </camelContext>
>>
>>     <reference id="jmsConnectionFactory" 
>> interface="javax.jms.ConnectionFactory"/>
>>
>>     <bean id="jmsConfig" 
>> class="org.apache.camel.component.jms.JmsConfiguration">
>>         <property name="connectionFactory" ref="jmsConnectionFactory" />
>>         <property name="transacted" value="false" />
>>     </bean>
>>
>>     <bean id="activemq" 
>> class="org.apache.activemq.camel.component.ActiveMQComponent">
>>         <property name="configuration" ref="jmsConfig" />
>>     </bean>
>>
>>
>> Activemq is running standalone.
>>
>> Please help.
>> Regards,
>> laci
>>
>>
>


Re: karaf camel activemq

Posted by Christopher Arnold <ca...@ptc.com>.
Changing subject to keep thread intace

It looks like your bundle is waiting to get the ConnectionFactory 
service for the <reference>.  Try running bundle:services | grep 
ConnectionFactory to see if you have a bundle that's exporting a 
ConnectionFactory service.

-Chris

On 01/30/2014 09:06 AM, Laci Gaspar wrote:
> Sorry to be asking again, but I'm stuck.
>
> I can't get a camel route with an AMQ component to run in karaf.
>
> The error I'm getting is
> 2014-01-30 16:02:55,272 | INFO  | l Console Thread | 
> BlueprintContainerImpl           | container.BlueprintContainerImpl  
> 344 | 7 - org.apache.aries.blueprint.core - 1.1.0 | Bundle 
> ch.curabill.msp.service.amq-route is waiting for dependencies 
> [(objectClass=javax.jms.ConnectionFactory)]
>
> My blueprint.xml is:
>     <bean id="jms2FileRoute" 
> class="ch.curabill.msp.service.MyRouteBuilder">
>
>      </bean>
>     <camelContext id="jms2file" 
> xmlns="http://camel.apache.org/schema/blueprint">
>         <routeBuilder ref="jms2FileRoute" />
>     </camelContext>
>
>     <reference id="jmsConnectionFactory" 
> interface="javax.jms.ConnectionFactory"/>
>
>     <bean id="jmsConfig" 
> class="org.apache.camel.component.jms.JmsConfiguration">
>         <property name="connectionFactory" ref="jmsConnectionFactory" />
>         <property name="transacted" value="false" />
>     </bean>
>
>     <bean id="activemq" 
> class="org.apache.activemq.camel.component.ActiveMQComponent">
>         <property name="configuration" ref="jmsConfig" />
>     </bean>
>
>
> Activemq is running standalone.
>
> Please help.
> Regards,
> laci
>
>


Re: Error using OSGi services in activemq spring xml

Posted by Laci Gaspar <la...@gmail.com>.
Sorry to be asking again, but I'm stuck.

I can't get a camel route with an AMQ component to run in karaf.

The error I'm getting is
2014-01-30 16:02:55,272 | INFO  | l Console Thread | 
BlueprintContainerImpl           | container.BlueprintContainerImpl  344 
| 7 - org.apache.aries.blueprint.core - 1.1.0 | Bundle 
ch.curabill.msp.service.amq-route is waiting for dependencies 
[(objectClass=javax.jms.ConnectionFactory)]

My blueprint.xml is:
     <bean id="jms2FileRoute" 
class="ch.curabill.msp.service.MyRouteBuilder">

      </bean>
     <camelContext id="jms2file" 
xmlns="http://camel.apache.org/schema/blueprint">
         <routeBuilder ref="jms2FileRoute" />
     </camelContext>

     <reference id="jmsConnectionFactory" 
interface="javax.jms.ConnectionFactory"/>

     <bean id="jmsConfig" 
class="org.apache.camel.component.jms.JmsConfiguration">
         <property name="connectionFactory" ref="jmsConnectionFactory" />
         <property name="transacted" value="false" />
     </bean>

     <bean id="activemq" 
class="org.apache.activemq.camel.component.ActiveMQComponent">
         <property name="configuration" ref="jmsConfig" />
     </bean>


Activemq is running standalone.

Please help.
Regards,
laci


Re: Error using OSGi services in activemq spring xml

Posted by Christopher Arnold <ca...@ptc.com>.
JB,

I tried switching to Equinox and I don't see the error, however activemq 
startup seems to hang.  activemq:list --jmxlocal doesn't list any 
brokers and nothing is listening on 61616.  No errors in log file, but 
here's the last few statements that seems relevant to ActiveMQ

2014-02-07 08:14:13,485 | INFO  | ctivemq.server]) | ActiveMQServiceFactory           | 107 - org.apache.activemq.activemq-osgi - 5.9.0 | Starting broker amq-broker
2014-02-07 08:14:13,523 | INFO  | ctivemq.server]) | ActiveMQServiceFactory$1         | 96 - org.springframework.context - 3.2.4.RELEASE | Refreshing org.apache.activemq.osgi.ActiveMQServiceFactory$1@688b5d36: startup date [Fri Feb 07 08:14:13 CST 2014]; root of context hierarchy
2014-02-07 08:14:13,598 | INFO  | ctivemq.server]) | XBeanXmlBeanDefinitionReader     | 94 - org.springframework.beans - 3.2.4.RELEASE | Loading XML bean definitions from file [/mnt/disk1/home/carnold/sandbox/amq-test/apache-karaf-3.0.0/etc/activemq.xml]

Christian,

Here's a list of steps that reproduce this on my box:

1) unpack and startup apache-karaf distribution
2) run the following commands:
     feature:install jasypt-encryption
     feature:repo-add activemq 5.9.0
     feature:install activemq-broker-noweb
     bundle:install -s 
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt-spring31/1.9.1_1
3) shutdown karaf
4) copy blueprint.xml to deploy/ and activemq.xml to etc/ (files attached)
5) start karaf

-Chris

On 02/06/2014 08:27 PM, Jean-Baptiste Onofré wrote:
> Hi guys,
>
> I would try to restart in a clean state with purging the data folder.
>
> We have some bundle cache corruption issue on Karaf 3.0.0 with Felix 
> now (I'm working on it).
>
> @Christopher, could you do a try with Equinox ?
>
> Thanks,
> Regards
> JB
>
> On 02/07/2014 01:53 AM, Christian Posta wrote:
>> Christopher,
>>
>> Any way you can help me reproduce this to help you out?
>>
>> On Thu, Jan 30, 2014 at 7:30 AM, Christopher Arnold <ca...@ptc.com> 
>> wrote:
>>> karaf@root()> la | grep -i xbean
>>> 111 | Active   |  20 | 3.16.0                | Apache XBean OSGI Bundle
>>> Utilities
>>> 112 | Active   |  20 | 3.16.0                | Apache XBean :: ASM 4 
>>> shaded
>>> (repackaged)
>>> 113 | Active   |  20 | 3.16                  | Apache XBean :: Reflect
>>> 114 | Active   |  20 | 3.16.0                | Apache XBean :: 
>>> Finder shaded
>>> (repackaged)
>>> 186 | Active   |  50 | 3.14.0                | Apache XBean :: Spring
>>>
>>> -Chris
>>>
>>>
>>> On 01/30/2014 08:13 AM, Jean-Baptiste Onofré wrote:
>>>>
>>>> Hi Christopher,
>>>>
>>>> Could you do:
>>>>
>>>> la|grep -i xbean
>>>>
>>>> ?
>>>>
>>>> Regards
>>>> JB
>>>>
>>>> On 01/30/2014 03:10 PM, Christopher Arnold wrote:
>>>>>
>>>>>
>>>>> I'm attempting to configure a ActiveMQ broker in Karaf for SSL using
>>>>> encrypted
>>>>> properties for the keystore/truststore passwords.  These 
>>>>> properties were
>>>>> encrypted using Jasypt and we have a bundle responsible for the 
>>>>> handling
>>>>> of the jasypt password that exports a PBEConfig as an OSGi 
>>>>> service.  Now
>>>>> I'm trying to reference that service in my activemq.xml to decrypt 
>>>>> the
>>>>> properties and I'm getting the following error on startup:
>>>>>
>>>>> 2014-01-29 13:28:54,674 | ERROR | ctivemq.server]) |
>>>>> configadmin                      | 43 - 
>>>>> org.apache.felix.configadmin -
>>>>> 1.6.0 | [org.osgi.service.cm.ManagedServiceFactory, id=599,
>>>>> bundle=187/mvn:org.apache.activemq/activemq-osgi/5.9.0]: Updating
>>>>> configuration
>>>>> org.apache.activemq.server.772feee5-3a63-4786-91fb-950934523291 
>>>>> caused a
>>>>> problem: Cannot start the broker
>>>>> org.osgi.service.cm.ConfigurationException: null : Cannot start the
>>>>> broker
>>>>>           at
>>>>>
>>>>> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:110)[187:org.apache.activemq.activemq-osgi:5.9.0] 
>>>>>
>>>>>
>>>>>           at 
>>>>> Proxy04fd69e0_a37e_44e9_a755_4652d9c38525.updated(Unknown
>>>>> Source)[:]
>>>>>           at
>>>>>
>>>>> org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.provideConfiguration(ManagedServiceFactoryTracker.java:88)[43:org.apache.felix.configadmin:1.6.0] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.provide(ConfigurationManager.java:1593)[43:org.apache.felix.configadmin:1.6.0] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.run(ConfigurationManager.java:1536)[43:org.apache.felix.configadmin:1.6.0] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)[43:org.apache.felix.configadmin:1.6.0] 
>>>>>
>>>>>
>>>>>           at java.lang.Thread.run(Thread.java:744)[:1.7.0_45]
>>>>> Caused by:
>>>>> org.springframework.beans.factory.BeanDefinitionStoreException:
>>>>> Unrecognized xbean namespace mapping:
>>>>> http://www.springframework.org/schema/osgi
>>>>>           at
>>>>>
>>>>> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:284)[186:org.apache.xbean.spring:3.14.0] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:156)[186:org.apache.xbean.spring:3.14.0] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)[186:org.apache.xbean.spring:3.14.0] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)[66:org.springframework.beans:3.2.4.RELEASE] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)[66:org.springframework.beans:3.2.4.RELEASE] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:84)[186:org.apache.xbean.spring:3.14.0] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)[66:org.springframework.beans:3.2.4.RELEASE] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)[66:org.springframework.beans:3.2.4.RELEASE] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)[66:org.springframework.beans:3.2.4.RELEASE] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)[186:org.apache.xbean.spring:3.14.0] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)[66:org.springframework.beans:3.2.4.RELEASE] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[66:org.springframework.beans:3.2.4.RELEASE] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[66:org.springframework.beans:3.2.4.RELEASE] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:111)[186:org.apache.xbean.spring:3.14.0] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:104)[186:org.apache.xbean.spring:3.14.0] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)[68:org.springframework.context:3.2.4.RELEASE] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)[68:org.springframework.context:3.2.4.RELEASE] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)[68:org.springframework.context:3.2.4.RELEASE] 
>>>>>
>>>>>
>>>>>           at
>>>>>
>>>>> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:90)[187:org.apache.activemq.activemq-osgi:5.9.0] 
>>>>>
>>>>>
>>>>>           ... 6 more
>>>>>
>>>>> relevant part of activemq.xml:
>>>>>
>>>>> <beans xmlns="http://www.springframework.org/schema/beans"
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> xmlns:osgi="http://www.springframework.org/schema/osgi"
>>>>>       xsi:schemaLocation="
>>>>>         http://www.springframework.org/schema/beans
>>>>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>>>>>         http://activemq.apache.org/schema/core
>>>>> http://activemq.apache.org/schema/core/activemq-core.xsd
>>>>>         http://www.springframework.org/schema/osgi
>>>>> http://www.springframework.org/schema/osgi/spring-osgi.xsd
>>>>>       ">
>>>>>
>>>>>     <osgi:reference id="pbeConfig"
>>>>> interface="org.jasypt.encryption.pbe.config.StringPBEConfig"/>
>>>>>
>>>>>     <bean id="encryptor"
>>>>> class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
>>>>>       <property name="config" ref="pbeConfig"/>
>>>>>     </bean>
>>>>>
>>>>>     <bean
>>>>>
>>>>> class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer"> 
>>>>>
>>>>>
>>>>>       <constructor-arg ref="encryptor"/>
>>>>>       <property name="location">
>>>>> <value>file:${karaf.base}/etc/ptc/ptc.properties</value>
>>>>>       </property>
>>>>>     </bean>
>>>>>
>>>>> ...snip
>>>>>
>>>>> I've confirmed that the spring-osgi-extenders bundle is present and
>>>>> started before the activemq-osgi bundle.  Any ideas why it can't find
>>>>> the namespace handler?
>>>>>
>>>>> ActiveMQ 5.9.0, Karaf 3.0.0
>>>>>
>>>>> Thanks,
>>>>> -Chris
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>>
>>
>


Re: Error using OSGi services in activemq spring xml

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi guys,

I would try to restart in a clean state with purging the data folder.

We have some bundle cache corruption issue on Karaf 3.0.0 with Felix now 
(I'm working on it).

@Christopher, could you do a try with Equinox ?

Thanks,
Regards
JB

On 02/07/2014 01:53 AM, Christian Posta wrote:
> Christopher,
>
> Any way you can help me reproduce this to help you out?
>
> On Thu, Jan 30, 2014 at 7:30 AM, Christopher Arnold <ca...@ptc.com> wrote:
>> karaf@root()> la | grep -i xbean
>> 111 | Active   |  20 | 3.16.0                | Apache XBean OSGI Bundle
>> Utilities
>> 112 | Active   |  20 | 3.16.0                | Apache XBean :: ASM 4 shaded
>> (repackaged)
>> 113 | Active   |  20 | 3.16                  | Apache XBean :: Reflect
>> 114 | Active   |  20 | 3.16.0                | Apache XBean :: Finder shaded
>> (repackaged)
>> 186 | Active   |  50 | 3.14.0                | Apache XBean :: Spring
>>
>> -Chris
>>
>>
>> On 01/30/2014 08:13 AM, Jean-Baptiste Onofré wrote:
>>>
>>> Hi Christopher,
>>>
>>> Could you do:
>>>
>>> la|grep -i xbean
>>>
>>> ?
>>>
>>> Regards
>>> JB
>>>
>>> On 01/30/2014 03:10 PM, Christopher Arnold wrote:
>>>>
>>>>
>>>> I'm attempting to configure a ActiveMQ broker in Karaf for SSL using
>>>> encrypted
>>>> properties for the keystore/truststore passwords.  These properties were
>>>> encrypted using Jasypt and we have a bundle responsible for the handling
>>>> of the jasypt password that exports a PBEConfig as an OSGi service.  Now
>>>> I'm trying to reference that service in my activemq.xml to decrypt the
>>>> properties and I'm getting the following error on startup:
>>>>
>>>> 2014-01-29 13:28:54,674 | ERROR | ctivemq.server]) |
>>>> configadmin                      | 43 - org.apache.felix.configadmin -
>>>> 1.6.0 | [org.osgi.service.cm.ManagedServiceFactory, id=599,
>>>> bundle=187/mvn:org.apache.activemq/activemq-osgi/5.9.0]: Updating
>>>> configuration
>>>> org.apache.activemq.server.772feee5-3a63-4786-91fb-950934523291 caused a
>>>> problem: Cannot start the broker
>>>> org.osgi.service.cm.ConfigurationException: null : Cannot start the
>>>> broker
>>>>           at
>>>>
>>>> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:110)[187:org.apache.activemq.activemq-osgi:5.9.0]
>>>>
>>>>           at Proxy04fd69e0_a37e_44e9_a755_4652d9c38525.updated(Unknown
>>>> Source)[:]
>>>>           at
>>>>
>>>> org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.provideConfiguration(ManagedServiceFactoryTracker.java:88)[43:org.apache.felix.configadmin:1.6.0]
>>>>
>>>>           at
>>>>
>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.provide(ConfigurationManager.java:1593)[43:org.apache.felix.configadmin:1.6.0]
>>>>
>>>>           at
>>>>
>>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.run(ConfigurationManager.java:1536)[43:org.apache.felix.configadmin:1.6.0]
>>>>
>>>>           at
>>>>
>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)[43:org.apache.felix.configadmin:1.6.0]
>>>>
>>>>           at java.lang.Thread.run(Thread.java:744)[:1.7.0_45]
>>>> Caused by:
>>>> org.springframework.beans.factory.BeanDefinitionStoreException:
>>>> Unrecognized xbean namespace mapping:
>>>> http://www.springframework.org/schema/osgi
>>>>           at
>>>>
>>>> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:284)[186:org.apache.xbean.spring:3.14.0]
>>>>
>>>>           at
>>>>
>>>> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:156)[186:org.apache.xbean.spring:3.14.0]
>>>>
>>>>           at
>>>>
>>>> org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)[186:org.apache.xbean.spring:3.14.0]
>>>>
>>>>           at
>>>>
>>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)[66:org.springframework.beans:3.2.4.RELEASE]
>>>>
>>>>           at
>>>>
>>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)[66:org.springframework.beans:3.2.4.RELEASE]
>>>>
>>>>           at
>>>>
>>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:84)[186:org.apache.xbean.spring:3.14.0]
>>>>
>>>>           at
>>>>
>>>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)[66:org.springframework.beans:3.2.4.RELEASE]
>>>>
>>>>           at
>>>>
>>>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)[66:org.springframework.beans:3.2.4.RELEASE]
>>>>
>>>>           at
>>>>
>>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)[66:org.springframework.beans:3.2.4.RELEASE]
>>>>
>>>>           at
>>>>
>>>> org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)[186:org.apache.xbean.spring:3.14.0]
>>>>
>>>>           at
>>>>
>>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)[66:org.springframework.beans:3.2.4.RELEASE]
>>>>
>>>>           at
>>>>
>>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[66:org.springframework.beans:3.2.4.RELEASE]
>>>>
>>>>           at
>>>>
>>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[66:org.springframework.beans:3.2.4.RELEASE]
>>>>
>>>>           at
>>>>
>>>> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:111)[186:org.apache.xbean.spring:3.14.0]
>>>>
>>>>           at
>>>>
>>>> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:104)[186:org.apache.xbean.spring:3.14.0]
>>>>
>>>>           at
>>>>
>>>> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)[68:org.springframework.context:3.2.4.RELEASE]
>>>>
>>>>           at
>>>>
>>>> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)[68:org.springframework.context:3.2.4.RELEASE]
>>>>
>>>>           at
>>>>
>>>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)[68:org.springframework.context:3.2.4.RELEASE]
>>>>
>>>>           at
>>>>
>>>> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:90)[187:org.apache.activemq.activemq-osgi:5.9.0]
>>>>
>>>>           ... 6 more
>>>>
>>>> relevant part of activemq.xml:
>>>>
>>>> <beans xmlns="http://www.springframework.org/schema/beans"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>       xmlns:osgi="http://www.springframework.org/schema/osgi"
>>>>       xsi:schemaLocation="
>>>>         http://www.springframework.org/schema/beans
>>>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>>>>         http://activemq.apache.org/schema/core
>>>> http://activemq.apache.org/schema/core/activemq-core.xsd
>>>>         http://www.springframework.org/schema/osgi
>>>> http://www.springframework.org/schema/osgi/spring-osgi.xsd
>>>>       ">
>>>>
>>>>     <osgi:reference id="pbeConfig"
>>>> interface="org.jasypt.encryption.pbe.config.StringPBEConfig"/>
>>>>
>>>>     <bean id="encryptor"
>>>> class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
>>>>       <property name="config" ref="pbeConfig"/>
>>>>     </bean>
>>>>
>>>>     <bean
>>>>
>>>> class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
>>>>
>>>>       <constructor-arg ref="encryptor"/>
>>>>       <property name="location">
>>>> <value>file:${karaf.base}/etc/ptc/ptc.properties</value>
>>>>       </property>
>>>>     </bean>
>>>>
>>>> ...snip
>>>>
>>>> I've confirmed that the spring-osgi-extenders bundle is present and
>>>> started before the activemq-osgi bundle.  Any ideas why it can't find
>>>> the namespace handler?
>>>>
>>>> ActiveMQ 5.9.0, Karaf 3.0.0
>>>>
>>>> Thanks,
>>>> -Chris
>>>>
>>>>
>>>>
>>>
>>
>
>
>

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: Error using OSGi services in activemq spring xml

Posted by Christian Posta <ch...@gmail.com>.
Christopher,

Any way you can help me reproduce this to help you out?

On Thu, Jan 30, 2014 at 7:30 AM, Christopher Arnold <ca...@ptc.com> wrote:
> karaf@root()> la | grep -i xbean
> 111 | Active   |  20 | 3.16.0                | Apache XBean OSGI Bundle
> Utilities
> 112 | Active   |  20 | 3.16.0                | Apache XBean :: ASM 4 shaded
> (repackaged)
> 113 | Active   |  20 | 3.16                  | Apache XBean :: Reflect
> 114 | Active   |  20 | 3.16.0                | Apache XBean :: Finder shaded
> (repackaged)
> 186 | Active   |  50 | 3.14.0                | Apache XBean :: Spring
>
> -Chris
>
>
> On 01/30/2014 08:13 AM, Jean-Baptiste Onofré wrote:
>>
>> Hi Christopher,
>>
>> Could you do:
>>
>> la|grep -i xbean
>>
>> ?
>>
>> Regards
>> JB
>>
>> On 01/30/2014 03:10 PM, Christopher Arnold wrote:
>>>
>>>
>>> I'm attempting to configure a ActiveMQ broker in Karaf for SSL using
>>> encrypted
>>> properties for the keystore/truststore passwords.  These properties were
>>> encrypted using Jasypt and we have a bundle responsible for the handling
>>> of the jasypt password that exports a PBEConfig as an OSGi service.  Now
>>> I'm trying to reference that service in my activemq.xml to decrypt the
>>> properties and I'm getting the following error on startup:
>>>
>>> 2014-01-29 13:28:54,674 | ERROR | ctivemq.server]) |
>>> configadmin                      | 43 - org.apache.felix.configadmin -
>>> 1.6.0 | [org.osgi.service.cm.ManagedServiceFactory, id=599,
>>> bundle=187/mvn:org.apache.activemq/activemq-osgi/5.9.0]: Updating
>>> configuration
>>> org.apache.activemq.server.772feee5-3a63-4786-91fb-950934523291 caused a
>>> problem: Cannot start the broker
>>> org.osgi.service.cm.ConfigurationException: null : Cannot start the
>>> broker
>>>          at
>>>
>>> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:110)[187:org.apache.activemq.activemq-osgi:5.9.0]
>>>
>>>          at Proxy04fd69e0_a37e_44e9_a755_4652d9c38525.updated(Unknown
>>> Source)[:]
>>>          at
>>>
>>> org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.provideConfiguration(ManagedServiceFactoryTracker.java:88)[43:org.apache.felix.configadmin:1.6.0]
>>>
>>>          at
>>>
>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.provide(ConfigurationManager.java:1593)[43:org.apache.felix.configadmin:1.6.0]
>>>
>>>          at
>>>
>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.run(ConfigurationManager.java:1536)[43:org.apache.felix.configadmin:1.6.0]
>>>
>>>          at
>>>
>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)[43:org.apache.felix.configadmin:1.6.0]
>>>
>>>          at java.lang.Thread.run(Thread.java:744)[:1.7.0_45]
>>> Caused by:
>>> org.springframework.beans.factory.BeanDefinitionStoreException:
>>> Unrecognized xbean namespace mapping:
>>> http://www.springframework.org/schema/osgi
>>>          at
>>>
>>> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:284)[186:org.apache.xbean.spring:3.14.0]
>>>
>>>          at
>>>
>>> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:156)[186:org.apache.xbean.spring:3.14.0]
>>>
>>>          at
>>>
>>> org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)[186:org.apache.xbean.spring:3.14.0]
>>>
>>>          at
>>>
>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)[66:org.springframework.beans:3.2.4.RELEASE]
>>>
>>>          at
>>>
>>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)[66:org.springframework.beans:3.2.4.RELEASE]
>>>
>>>          at
>>>
>>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:84)[186:org.apache.xbean.spring:3.14.0]
>>>
>>>          at
>>>
>>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)[66:org.springframework.beans:3.2.4.RELEASE]
>>>
>>>          at
>>>
>>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)[66:org.springframework.beans:3.2.4.RELEASE]
>>>
>>>          at
>>>
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)[66:org.springframework.beans:3.2.4.RELEASE]
>>>
>>>          at
>>>
>>> org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)[186:org.apache.xbean.spring:3.14.0]
>>>
>>>          at
>>>
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)[66:org.springframework.beans:3.2.4.RELEASE]
>>>
>>>          at
>>>
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[66:org.springframework.beans:3.2.4.RELEASE]
>>>
>>>          at
>>>
>>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[66:org.springframework.beans:3.2.4.RELEASE]
>>>
>>>          at
>>>
>>> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:111)[186:org.apache.xbean.spring:3.14.0]
>>>
>>>          at
>>>
>>> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:104)[186:org.apache.xbean.spring:3.14.0]
>>>
>>>          at
>>>
>>> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)[68:org.springframework.context:3.2.4.RELEASE]
>>>
>>>          at
>>>
>>> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)[68:org.springframework.context:3.2.4.RELEASE]
>>>
>>>          at
>>>
>>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)[68:org.springframework.context:3.2.4.RELEASE]
>>>
>>>          at
>>>
>>> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:90)[187:org.apache.activemq.activemq-osgi:5.9.0]
>>>
>>>          ... 6 more
>>>
>>> relevant part of activemq.xml:
>>>
>>> <beans xmlns="http://www.springframework.org/schema/beans"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>      xmlns:osgi="http://www.springframework.org/schema/osgi"
>>>      xsi:schemaLocation="
>>>        http://www.springframework.org/schema/beans
>>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>>>        http://activemq.apache.org/schema/core
>>> http://activemq.apache.org/schema/core/activemq-core.xsd
>>>        http://www.springframework.org/schema/osgi
>>> http://www.springframework.org/schema/osgi/spring-osgi.xsd
>>>      ">
>>>
>>>    <osgi:reference id="pbeConfig"
>>> interface="org.jasypt.encryption.pbe.config.StringPBEConfig"/>
>>>
>>>    <bean id="encryptor"
>>> class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
>>>      <property name="config" ref="pbeConfig"/>
>>>    </bean>
>>>
>>>    <bean
>>>
>>> class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
>>>
>>>      <constructor-arg ref="encryptor"/>
>>>      <property name="location">
>>> <value>file:${karaf.base}/etc/ptc/ptc.properties</value>
>>>      </property>
>>>    </bean>
>>>
>>> ...snip
>>>
>>> I've confirmed that the spring-osgi-extenders bundle is present and
>>> started before the activemq-osgi bundle.  Any ideas why it can't find
>>> the namespace handler?
>>>
>>> ActiveMQ 5.9.0, Karaf 3.0.0
>>>
>>> Thanks,
>>> -Chris
>>>
>>>
>>>
>>
>



-- 
Christian Posta
http://www.christianposta.com/blog
twitter: @christianposta

Re: Error using OSGi services in activemq spring xml

Posted by Christopher Arnold <ca...@ptc.com>.
karaf@root()> la | grep -i xbean
111 | Active   |  20 | 3.16.0                | Apache XBean OSGI Bundle Utilities
112 | Active   |  20 | 3.16.0                | Apache XBean :: ASM 4 shaded (repackaged)
113 | Active   |  20 | 3.16                  | Apache XBean :: Reflect
114 | Active   |  20 | 3.16.0                | Apache XBean :: Finder shaded (repackaged)
186 | Active   |  50 | 3.14.0                | Apache XBean :: Spring

-Chris

On 01/30/2014 08:13 AM, Jean-Baptiste Onofré wrote:
> Hi Christopher,
>
> Could you do:
>
> la|grep -i xbean
>
> ?
>
> Regards
> JB
>
> On 01/30/2014 03:10 PM, Christopher Arnold wrote:
>>
>> I'm attempting to configure a ActiveMQ broker in Karaf for SSL using
>> encrypted
>> properties for the keystore/truststore passwords.  These properties were
>> encrypted using Jasypt and we have a bundle responsible for the handling
>> of the jasypt password that exports a PBEConfig as an OSGi service.  Now
>> I'm trying to reference that service in my activemq.xml to decrypt the
>> properties and I'm getting the following error on startup:
>>
>> 2014-01-29 13:28:54,674 | ERROR | ctivemq.server]) |
>> configadmin                      | 43 - org.apache.felix.configadmin -
>> 1.6.0 | [org.osgi.service.cm.ManagedServiceFactory, id=599,
>> bundle=187/mvn:org.apache.activemq/activemq-osgi/5.9.0]: Updating
>> configuration
>> org.apache.activemq.server.772feee5-3a63-4786-91fb-950934523291 caused a
>> problem: Cannot start the broker
>> org.osgi.service.cm.ConfigurationException: null : Cannot start the 
>> broker
>>          at
>> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:110)[187:org.apache.activemq.activemq-osgi:5.9.0] 
>>
>>
>>          at Proxy04fd69e0_a37e_44e9_a755_4652d9c38525.updated(Unknown
>> Source)[:]
>>          at
>> org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.provideConfiguration(ManagedServiceFactoryTracker.java:88)[43:org.apache.felix.configadmin:1.6.0] 
>>
>>
>>          at
>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.provide(ConfigurationManager.java:1593)[43:org.apache.felix.configadmin:1.6.0] 
>>
>>
>>          at
>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.run(ConfigurationManager.java:1536)[43:org.apache.felix.configadmin:1.6.0] 
>>
>>
>>          at
>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)[43:org.apache.felix.configadmin:1.6.0] 
>>
>>
>>          at java.lang.Thread.run(Thread.java:744)[:1.7.0_45]
>> Caused by:
>> org.springframework.beans.factory.BeanDefinitionStoreException:
>> Unrecognized xbean namespace mapping:
>> http://www.springframework.org/schema/osgi
>>          at
>> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:284)[186:org.apache.xbean.spring:3.14.0] 
>>
>>
>>          at
>> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:156)[186:org.apache.xbean.spring:3.14.0] 
>>
>>
>>          at
>> org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)[186:org.apache.xbean.spring:3.14.0] 
>>
>>
>>          at
>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)[66:org.springframework.beans:3.2.4.RELEASE] 
>>
>>
>>          at
>> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)[66:org.springframework.beans:3.2.4.RELEASE] 
>>
>>
>>          at
>> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:84)[186:org.apache.xbean.spring:3.14.0] 
>>
>>
>>          at
>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)[66:org.springframework.beans:3.2.4.RELEASE] 
>>
>>
>>          at
>> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)[66:org.springframework.beans:3.2.4.RELEASE] 
>>
>>
>>          at
>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)[66:org.springframework.beans:3.2.4.RELEASE] 
>>
>>
>>          at
>> org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)[186:org.apache.xbean.spring:3.14.0] 
>>
>>
>>          at
>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)[66:org.springframework.beans:3.2.4.RELEASE] 
>>
>>
>>          at
>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[66:org.springframework.beans:3.2.4.RELEASE] 
>>
>>
>>          at
>> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[66:org.springframework.beans:3.2.4.RELEASE] 
>>
>>
>>          at
>> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:111)[186:org.apache.xbean.spring:3.14.0] 
>>
>>
>>          at
>> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:104)[186:org.apache.xbean.spring:3.14.0] 
>>
>>
>>          at
>> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)[68:org.springframework.context:3.2.4.RELEASE] 
>>
>>
>>          at
>> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)[68:org.springframework.context:3.2.4.RELEASE] 
>>
>>
>>          at
>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)[68:org.springframework.context:3.2.4.RELEASE] 
>>
>>
>>          at
>> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:90)[187:org.apache.activemq.activemq-osgi:5.9.0] 
>>
>>
>>          ... 6 more
>>
>> relevant part of activemq.xml:
>>
>> <beans xmlns="http://www.springframework.org/schema/beans"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>      xmlns:osgi="http://www.springframework.org/schema/osgi"
>>      xsi:schemaLocation="
>>        http://www.springframework.org/schema/beans
>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>>        http://activemq.apache.org/schema/core
>> http://activemq.apache.org/schema/core/activemq-core.xsd
>>        http://www.springframework.org/schema/osgi
>> http://www.springframework.org/schema/osgi/spring-osgi.xsd
>>      ">
>>
>>    <osgi:reference id="pbeConfig"
>> interface="org.jasypt.encryption.pbe.config.StringPBEConfig"/>
>>
>>    <bean id="encryptor"
>> class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
>>      <property name="config" ref="pbeConfig"/>
>>    </bean>
>>
>>    <bean
>> class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer"> 
>>
>>
>>      <constructor-arg ref="encryptor"/>
>>      <property name="location">
>> <value>file:${karaf.base}/etc/ptc/ptc.properties</value>
>>      </property>
>>    </bean>
>>
>> ...snip
>>
>> I've confirmed that the spring-osgi-extenders bundle is present and
>> started before the activemq-osgi bundle.  Any ideas why it can't find
>> the namespace handler?
>>
>> ActiveMQ 5.9.0, Karaf 3.0.0
>>
>> Thanks,
>> -Chris
>>
>>
>>
>


Re: Error using OSGi services in activemq spring xml

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi Christopher,

Could you do:

la|grep -i xbean

?

Regards
JB

On 01/30/2014 03:10 PM, Christopher Arnold wrote:
>
> I'm attempting to configure a ActiveMQ broker in Karaf for SSL using
> encrypted
> properties for the keystore/truststore passwords.  These properties were
> encrypted using Jasypt and we have a bundle responsible for the handling
> of the jasypt password that exports a PBEConfig as an OSGi service.  Now
> I'm trying to reference that service in my activemq.xml to decrypt the
> properties and I'm getting the following error on startup:
>
> 2014-01-29 13:28:54,674 | ERROR | ctivemq.server]) |
> configadmin                      | 43 - org.apache.felix.configadmin -
> 1.6.0 | [org.osgi.service.cm.ManagedServiceFactory, id=599,
> bundle=187/mvn:org.apache.activemq/activemq-osgi/5.9.0]: Updating
> configuration
> org.apache.activemq.server.772feee5-3a63-4786-91fb-950934523291 caused a
> problem: Cannot start the broker
> org.osgi.service.cm.ConfigurationException: null : Cannot start the broker
>          at
> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:110)[187:org.apache.activemq.activemq-osgi:5.9.0]
>
>          at Proxy04fd69e0_a37e_44e9_a755_4652d9c38525.updated(Unknown
> Source)[:]
>          at
> org.apache.felix.cm.impl.helper.ManagedServiceFactoryTracker.provideConfiguration(ManagedServiceFactoryTracker.java:88)[43:org.apache.felix.configadmin:1.6.0]
>
>          at
> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.provide(ConfigurationManager.java:1593)[43:org.apache.felix.configadmin:1.6.0]
>
>          at
> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.run(ConfigurationManager.java:1536)[43:org.apache.felix.configadmin:1.6.0]
>
>          at
> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)[43:org.apache.felix.configadmin:1.6.0]
>
>          at java.lang.Thread.run(Thread.java:744)[:1.7.0_45]
> Caused by:
> org.springframework.beans.factory.BeanDefinitionStoreException:
> Unrecognized xbean namespace mapping:
> http://www.springframework.org/schema/osgi
>          at
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:284)[186:org.apache.xbean.spring:3.14.0]
>
>          at
> org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:156)[186:org.apache.xbean.spring:3.14.0]
>
>          at
> org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)[186:org.apache.xbean.spring:3.14.0]
>
>          at
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)[66:org.springframework.beans:3.2.4.RELEASE]
>
>          at
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)[66:org.springframework.beans:3.2.4.RELEASE]
>
>          at
> org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:84)[186:org.apache.xbean.spring:3.14.0]
>
>          at
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)[66:org.springframework.beans:3.2.4.RELEASE]
>
>          at
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)[66:org.springframework.beans:3.2.4.RELEASE]
>
>          at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)[66:org.springframework.beans:3.2.4.RELEASE]
>
>          at
> org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)[186:org.apache.xbean.spring:3.14.0]
>
>          at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)[66:org.springframework.beans:3.2.4.RELEASE]
>
>          at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[66:org.springframework.beans:3.2.4.RELEASE]
>
>          at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[66:org.springframework.beans:3.2.4.RELEASE]
>
>          at
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:111)[186:org.apache.xbean.spring:3.14.0]
>
>          at
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.loadBeanDefinitions(ResourceXmlApplicationContext.java:104)[186:org.apache.xbean.spring:3.14.0]
>
>          at
> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)[68:org.springframework.context:3.2.4.RELEASE]
>
>          at
> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)[68:org.springframework.context:3.2.4.RELEASE]
>
>          at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)[68:org.springframework.context:3.2.4.RELEASE]
>
>          at
> org.apache.activemq.osgi.ActiveMQServiceFactory.updated(ActiveMQServiceFactory.java:90)[187:org.apache.activemq.activemq-osgi:5.9.0]
>
>          ... 6 more
>
> relevant part of activemq.xml:
>
> <beans xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>      xmlns:osgi="http://www.springframework.org/schema/osgi"
>      xsi:schemaLocation="
>        http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>        http://activemq.apache.org/schema/core
> http://activemq.apache.org/schema/core/activemq-core.xsd
>        http://www.springframework.org/schema/osgi
> http://www.springframework.org/schema/osgi/spring-osgi.xsd
>      ">
>
>    <osgi:reference id="pbeConfig"
> interface="org.jasypt.encryption.pbe.config.StringPBEConfig"/>
>
>    <bean id="encryptor"
> class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
>      <property name="config" ref="pbeConfig"/>
>    </bean>
>
>    <bean
> class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
>
>      <constructor-arg ref="encryptor"/>
>      <property name="location">
>        <value>file:${karaf.base}/etc/ptc/ptc.properties</value>
>      </property>
>    </bean>
>
> ...snip
>
> I've confirmed that the spring-osgi-extenders bundle is present and
> started before the activemq-osgi bundle.  Any ideas why it can't find
> the namespace handler?
>
> ActiveMQ 5.9.0, Karaf 3.0.0
>
> Thanks,
> -Chris
>
>
>

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com