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 <carn...@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
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<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"/>
<broker xmlns="http://activemq.apache.org/schema/core"
brokerName="${broker-name}"
dataDirectory="${data}"
start="false">
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" >
<pendingMessageLimitStrategy>
<constantPendingMessageLimitStrategy limit="1000"/>
</pendingMessageLimitStrategy>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
<managementContext>
<managementContext createConnector="false"/>
</managementContext>
<persistenceAdapter>
<kahaDB directory="${data}/kahadb"/>
</persistenceAdapter>
<plugins>
<jaasAuthenticationPlugin configuration="karaf" />
</plugins>
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage percentOfJvmHeap="70"/>
</memoryUsage>
<storeUsage>
<storeUsage limit="100 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="50 gb"/>
</tempUsage>
</systemUsage>
</systemUsage>
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
</broker>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<bean id="pbeConfig" class="org.jasypt.encryption.pbe.config.SimpleStringPBEConfig">
<property name="algorithm" value="PBEWithSHA1AndDESede"/>
<property name="password" value="changeme"/>
</bean>
<service ref="pbeConfig" interface="org.jasypt.encryption.pbe.config.StringPBEConfig"/>
</blueprint>