karaf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andy Schmidt <Andy.Schm...@kisters.de>
Subject Re: Unable to convert value org.apache.aries.blueprint.container.ServiceRecipe$ServiceRegistrationProxy
Date Tue, 16 Dec 2014 10:52:12 GMT
Hi,

this helped me a lot. Now it works.
I was referring to the service ID and not to the bean ID the whole time.

Thank you both,
and have a nice week.

Best regards
Tim & Andy



--------------------------------------------------------------------------------------------------------------------------------------------
 Andy Schmidt - KISTERS AG - Pascalstraße 8+10 - 52076 Aachen - Germany
Handelsregister Aachen, HRB-Nr. 7838 | Vorstand: Klaus Kisters, Hanns Kisters | Aufsichtsratsvorsitzender:
Dr. Thomas Klevers
Phone: +49 2408 9385 -449 | Fax: +49 2408 9385 -555 | E-Mail: Andy.Schmidt@kisters.de | WWW:
http://www.kisters.de
--------------------------------------------------------------------------------------------------------------------------------------------
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie
nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren
Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie
die unbefugte Weitergabe dieser Mail ist nicht gestattet. 
This e-mail may contain confidential and/or privileged information. If you are not the intended
recipient (or have received this e-mail in error) please notify the sender immediately and
destroy this e-mail. Any unauthorised copying, disclosure or distribution of the material
in this e-mail is strictly forbidden.

From:   Freeman Fang <freeman.fang@gmail.com>
To:     dev@karaf.apache.org, 
Date:   16.12.2014 11:28
Subject:        Re: Unable to convert value 
org.apache.aries.blueprint.container.ServiceRecipe$ServiceRegistrationProxy



Hi,

I mean, 

change your first blueprint like

< service id="containerManagerId" ref="containerManager"

 
interface="de.kisters.project.domain.api.session.container.IContainerManager">
 
       </service>

<bean id="containerManager"
 class="de.kisters.project.domain.impl.session.container.ContainerManager" 

/>

and in the second blueprint file refer the bean id but not the service id.

something like

<bean

class="de.kisters.project.domain.impl.session.repository.RepositoryFactory"
               init-method="activate" destroy-method="deactivate">
               <property name="containerManager" ref="containerManager" 
/>
       </bean>

this should be good.
-------------
Freeman(Yue) Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat



On 2014-12-16, at 下午4:48, Andy Schmidt wrote:

> Hi Freeman Fang,
> 
> thank you for your response.
> 
> How would you do it? What do you mean with "refer to the bean directly"?
> It is a service and still has to be a service because another bundle 
also 
> uses it.
> So how do I get the one service instance that is registered in the 
> blueprint container?
> 
> To the "chicken-egg" problem:
> 
> I saw in the IBM tutorial that it is possible to use the blueprint "ref" 

> property to refer to a blueprint bean of the same bundle.
> 
http://www-01.ibm.com/support/knowledgecenter/SSCKBL_8.5.5/com.ibm.websphere.osgi.nd.doc/ae/ca_blueprint_references.html?lang=en

> 
> If I understood it right, this is possible by only using the 
ref-property 
> with the desired bean ID and NOT including the reference tag:
> 
> <reference id="containerManagerRef"
> 
> 
interface="de.kisters.project.domain.api.session.container.IContainerManager"
>  availability="mandatory" />
> 
> Thank you and regards
> Tim
> 
> 
> 
> 
--------------------------------------------------------------------------------------------------------------------------------------------
> Andy Schmidt - KISTERS AG - Pascalstraße 8+10 - 52076 Aachen - Germany
> Handelsregister Aachen, HRB-Nr. 7838 | Vorstand: Klaus Kisters, Hanns 
Kisters | Aufsichtsratsvorsitzender: Dr. Thomas Klevers
> Phone: +49 2408 9385 -449 | Fax: +49 2408 9385 -555 | E-Mail: 
Andy.Schmidt@kisters.de | WWW: http://www.kisters.de
> 
--------------------------------------------------------------------------------------------------------------------------------------------
> Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte 
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail 
irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und 
vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte 
Weitergabe dieser Mail ist nicht gestattet. 
> This e-mail may contain confidential and/or privileged information. If 
you are not the intended recipient (or have received this e-mail in error) 
please notify the sender immediately and destroy this e-mail. Any 
unauthorised copying, disclosure or distribution of the material in this 
e-mail is strictly forbidden.
> 
> From:   Freeman Fang <freeman.fang@gmail.com>
> To:     dev@karaf.apache.org, 
> Date:   16.12.2014 07:09
> Subject:        Re: Unable to convert value 
> 
org.apache.aries.blueprint.container.ServiceRecipe$ServiceRegistrationProxy
> 
> 
> 
> Hi,
> 
> If they are in the same bundle context, why not refer the 
> de.kisters.project.domain.impl.session.container.ContainerManager bean 
> directly but not the service.
> 
> Your way run into the chicken-egg  problem, that said, your bundle 
depend 
> on a service provided by the bundle itself.
> -------------
> Freeman(Yue) Fang
> 
> Red Hat, Inc. 
> FuseSource is now part of Red Hat
> 
> 
> 
> On 2014-12-15, at 下午11:15, Andy Schmidt wrote:
> 
>> Hey,
>> 
>> we are trying to register a couple of blueprint services using Karaf 
>> 3.0.2.
>> 
>> Two of those services (lets call them "service A" and "service B") are 
>> located in one and the same bundle.
>> Service A has a reference to service B.
>> 
>> We are getting the following exception:
>> 
>> org.osgi.service.blueprint.container.ComponentDefinitionException: 
Error 
> 
>> setting property: PropertyDescriptor <name: containerManager, getter: 
>> null, setter: [class 
>> 
> 
de.kisters.kimatman.domain.impl.session.repository.RepositoryFactory.setContainerManager(interface


> 
>> de.kisters.kimatman.domain.api.session.container.IContainerManager)] at 

>> 
> 
org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:941) 

> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:907) 

> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:888) 

> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:820) 

> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787) 

> 
>> at 
>> 
> 
org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) 

> 
>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
at 
> 
>> java.util.concurrent.FutureTask.run(FutureTask.java:166) at 
>> 
> 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) 

> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:245)


> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:183)


> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:681)


> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:378)


> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:269)


> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:276)


> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:245)


> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:235)


> 
>> at 
>> 
> 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)


> 
>> at 
>> 
> 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)


> 
>> at 
>> 
> 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)


> 
>> at 
>> 
> 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)


> 
>> at 
>> 
> 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)


> 
>> at 
>> 
> 
org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1103)


> 
>> at 
>> 
> 
org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:695)


> 
>> at 
>> 
> 
org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:483)


> 
>> at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4403) at 

>> org.apache.felix.framework.Felix.startBundle(Felix.java:2092) at 
>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955) at 
>> 
> 
org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)


> 
>> at 
>> 
> 
org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)


> 
>> at 
>> 
> 
org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)


> 
>> at 
>> 
> 
org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)


> 
>> at 
>> 
> 
org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310) 

> 
>> 
>> 
>> Caused by: java.lang.Exception: Unable to convert value 
>> 
> 
org.apache.aries.blueprint.container.ServiceRecipe$ServiceRegistrationProxy@20766905 

> 
>> to type 
> de.kisters.kimatman.domain.api.session.container.IContainerManager 
>> at 
>> 
> 
org.apache.aries.blueprint.container.AggregateConverter.convert(AggregateConverter.java:184)


> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BlueprintRepository.convert(BlueprintRepository.java:402)


> 
>> at 
>> 
> 
org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.convert(ReflectionUtils.java:394)


> 
>> at 
>> 
> 
org.apache.aries.blueprint.utils.ReflectionUtils$MethodPropertyDescriptor.internalSet(ReflectionUtils.java:628)


> 
>> at 
>> 
> 
org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.set(ReflectionUtils.java:378)


> 
>> at 
>> 
> 
org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:939) 

> 
>> ... 32 more 
>> 
>> Our blueprint files look like:
>> 
>> <?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:jpa="
>> http://aries.apache.org/xmlns/jpa/v1.1.0"
>>       xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0"
>>       xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 
>> http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
>>                       http://camel.apache.org/schema/blueprint 
>> http://camel.apache.org/schema/blueprint/camel-blueprint-2.8.0.xsd
>>                       http://aries.apache.org/xmlns/transactions/v1.0.0 

> 
>> http://aries.apache.org/schemas/transaction/transactionv10.xsd
>>                       http://aries.apache.org/xmlns/jpa/v1.1.0 
>> http://aries.apache.org/schemas/jpa/jpa_110.xsd">
>> 
>>       <service id="containerManagerId"
>> 
>> 
> 
interface="de.kisters.project.domain.api.session.container.IContainerManager">
>>               <bean
>> 
> 
class="de.kisters.project.domain.impl.session.container.ContainerManager" 
>> />
>>       </service>
>> 
>> 
>> </blueprint>
>> 
>> <?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:jpa="
>> http://aries.apache.org/xmlns/jpa/v1.1.0"
>>       xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0"
>>       xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 
>> http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
>>                       http://camel.apache.org/schema/blueprint 
>> http://camel.apache.org/schema/blueprint/camel-blueprint-2.8.0.xsd
>>                       http://aries.apache.org/xmlns/transactions/v1.0.0 

> 
>> http://aries.apache.org/schemas/transaction/transactionv10.xsd
>>                       http://aries.apache.org/xmlns/jpa/v1.1.0 
>> http://aries.apache.org/schemas/jpa/jpa_110.xsd">
>>       <bean
>> 
>> 
> 
class="de.kisters.project.domain.impl.session.repository.RepositoryFactory"
>>               init-method="activate" destroy-method="deactivate">
>>               <property name="containerManager" 
> ref="containerManagerId" 
>> />
>>       </bean>
>> 
>> </blueprint>
>> 
>> Do you have any hints how to solve the problem?
>> 
>> Best regards,
>> 
>> Andy & Tim
>> 
> 
--------------------------------------------------------------------------------------------------------------------------------------------
>> Andy Schmidt - KISTERS AG - Pascalstraße 8+10 - 52076 Aachen - Germany
>> Handelsregister Aachen, HRB-Nr. 7838 | Vorstand: Klaus Kisters, Hanns 
> Kisters | Aufsichtsratsvorsitzender: Dr. Thomas Klevers
>> Phone: +49 2408 9385 -449 | Fax: +49 2408 9385 -555 | E-Mail: 
> Andy.Schmidt@kisters.de | WWW: http://www.kisters.de
>> 
> 
--------------------------------------------------------------------------------------------------------------------------------------------
>> Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte 
> Informationen. Wenn Sie nicht der richtige Adressat sind oder diese 
E-Mail 
> irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und 

> vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte 
> Weitergabe dieser Mail ist nicht gestattet. 
>> This e-mail may contain confidential and/or privileged information. If 
> you are not the intended recipient (or have received this e-mail in 
error) 
> please notify the sender immediately and destroy this e-mail. Any 
> unauthorised copying, disclosure or distribution of the material in this 

> e-mail is strictly forbidden.
> 
> 
> 



Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message