Hi Bengt, I'm afraid I can't be much help as I haven't used this Blueprint namespace. The managed-properties element is defined in the cm schema. Have you tried looking for any tests in aries that use this namespace?
Regard, Graham. On 7 October 2013 08:18, Bengt Rodehav <[email protected]> wrote: > I've also tried adding the following to my blueprint.xml: > > <cm:managed-properties persistent-id="orchestration.processor.xslt" > update-strategy="container-managed"/> > > According to the schema I think this should be valid but I get the > following exception: > > 2013-10-07 09:01:25,436 | ERROR | rint Extender: 3 | > BlueprintContainerImpl | container.BlueprintContainerImpl 393 | > Unable to start blueprint container for bundle > se.digia.connect-sts.orchestration.xslt-processor > org.osgi.service.blueprint.container.ComponentDefinitionException: > Unsupported element: cm:managed-properties > at > org.apache.aries.blueprint.compendium.cm.CmNamespaceHandler.parse(CmNamespaceHandler.java:182)[8:org.apache.aries.blueprint.cm:1 > .0.1] > .... > > It seems like I'm doing something seriously wrong. Can anyone direct me to > a working example using managed service factories? Blueprint works fine for > me otherwise but not with managed service factories. > > /Bengt > > > 2013/10/4 Bengt Rodehav <[email protected]> > >> I'm using Karaf.2.3.1 and thus Aries Blueprint 1.1.0. >> >> I use both iPOJO and Blueprint in different circumstances. So far I've >> always used iPOJO concerning managed service factories and Blueprint for >> the rest. >> >> I'm now trying to use Blueprint for managed service factories but I can't >> get it to work. >> >> My blueprint.xml looks as follows (I removed the real class names): >> >> <?xml version="1.0" encoding="UTF-8"?> >> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi=" >> http://www.w3.org/2001/XMLSchema-instance" >> xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0" >> xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0" >> xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0" >> default-activation="lazy"> >> >> <cm:property-placeholder persistent-id="myPersistentId" >> update-strategy="reload"> >> <cm:default-properties> >> <cm:property name="myProp" value="myValue"/> >> </cm:default-properties> >> </cm:property-placeholder> >> >> <cm:managed-service-factory id="managed-service-factory" >> factory-pid="myPersistentId" interface="myQualifiedInterfaceName"> >> <service-properties> >> <entry key="myProp" value="${myProp}"/> >> </service-properties> >> <cm:managed-component class="myQualifiedClassName"> >> <property name="myProp" value="${myProp}"/> >> </cm:managed-component> >> </cm:managed-service-factory> >> >> </blueprint> >> >> I create a configuration file called "myPersistentId-1.cfg" (I use >> fileinstall). It contains the following: >> >> myProp=value >> >> Using Felix Webconsole I can see that the configuration is picked up. I >> can also see that my bundle publishes three services with the following >> types: >> >> - org.osgi.service.blueprint.container.BlueprintContainer >> - org.osgi.service.cm.ManagedService >> - org.osgi.service.cm.ManagedServiceFactory >> >> But I can't see any published service for my type >> (myQualifiedInterfaceName above). >> >> By logging in the constructor of "myQualifiedClassName" I can see that a >> Java object is instantiated. I can also see that the "setMyProp" method is >> being called. However, the property value that I specify in the >> configuration file (myPersistentId-1.cfg) is never picked up, only the >> default value is ever used. >> >> In summary I have two serious problems: >> >> 1. No service is registered >> 2. The configuration properties are not used - only the default values >> are used >> >> Am I doing something wrong or should this work? >> >> /Bengt >> >> >> >
