Re: [osgi-dev] Get Bundle for package and version

2018-11-12 Thread Tim Ward via osgi-dev
This all sounds horrible - why do you have a whiteboard that is making 
reflective calls on remote service objects? If you *really* want to make this 
work then your best option would be to have the whiteboard implementation 
listen for remote service discovery events and to create a local bundle on the 
fly to consume each remote service. You can set the package imports correctly 
for each bundle, and have it expose the service object through another service 
inside the bundle.

It’s all pretty hacky though. Does your whiteboard really need the service 
instance (rather than just the service properties)? If the answer is yes then 
you really shouldn’t be using reflection to call it.

Tim

> On 12 Nov 2018, at 14:34, Jürgen Albert via osgi-dev  
> wrote:
> 
> I needed to load the class first, because I only know its name, package and 
> version. The RSA would load the class and it would ask my bundlecontext, to 
> do it for him... Dynamic-ImportPackage did the trick here. I would prefere to 
> establish a new bundle wiring on the fly, because I would know what package 
> in what version I would need.
> 
> Am 12/11/2018 um 14:46 schrieb Thomas Watson:
>> Can you explain why you need to know the exporter in this case?  It sounds 
>> like you have to be using reflection to call the service, in which case I 
>> would not think the wiring mattered.  If you need to know exactly the 
>> exporting bundle of the API then one approach would be to get the service 
>> object and interrogate its class/interface hierarchy until you find the API 
>> class name you are looking for and then use FrameworkUtil.getBundle(Class) 
>> method.
>> 
>> Tom
>>  
>>  
>>  
>> - Original message -
>> From: "Jürgen Albert via osgi-dev"  
>> 
>> Sent by: osgi-dev-boun...@mail.osgi.org 
>> 
>> To: osgi-dev@mail.osgi.org 
>> Cc:
>> Subject: [osgi-dev] Get Bundle for package and version
>> Date: Mon, Nov 12, 2018 6:58 AM
>>  
>> Hi,
>> 
>> I have a whiteboard, that needs to consume a remote service. Neither the
>> RSA that registers the service proxy nor my whiteboard that needs to
>> work with the interface has a wiring to the API Bundle. What the RSA
>> does tell me, is the packages and the versions of the API Interfaces.
>> Now I'm looking for a way to ge the appropriate bundle wiring. I know, I
>> can iterate over all available Bundles, and look if one exports the
>> package in the given version, but AFAIK I can't be sure if this is the
>> right package, in case it was offered by multiple bundles.
>> 
>> What would be the right approach here?
>> 
>> Thx,
>> 
>> Jürgen.
>> 
>> --
>> Jürgen Albert
>> Geschäftsführer
>> 
>> Data In Motion Consulting GmbH
>> 
>> Kahlaische Str. 4
>> 07745 Jena
>> 
>> Mobil:  0157-72521634
>> E-Mail: j.alb...@datainmotion.de 
>> Web: www.datainmotion.de 
>> 
>> XING:   https://www.xing.com/profile/Juergen_Albert5 
>> 
>> 
>> Rechtliches
>> 
>> Jena HBR 513025
>> 
>> ___
>> OSGi Developer Mail List
>> osgi-dev@mail.osgi.org 
>> https://mail.osgi.org/mailman/listinfo/osgi-dev 
>> 
>>  
>> 
> 
> -- 
> Jürgen Albert
> Geschäftsführer
> 
> Data In Motion Consulting GmbH
> 
> Kahlaische Str. 4
> 07745 Jena
> 
> Mobil:  0157-72521634
> E-Mail: j.alb...@datainmotion.de 
> Web: www.datainmotion.de 
> 
> XING:   https://www.xing.com/profile/Juergen_Albert5 
> 
> 
> Rechtliches
> 
> Jena HBR 513025
> ___
> OSGi Developer Mail List
> osgi-dev@mail.osgi.org
> https://mail.osgi.org/mailman/listinfo/osgi-dev

___
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Re: [osgi-dev] Get Bundle for package and version

2018-11-12 Thread Jürgen Albert via osgi-dev
I needed to load the class first, because I only know its name, package 
and version. The RSA would load the class and it would ask my 
bundlecontext, to do it for him... Dynamic-ImportPackage did the trick 
here. I would prefere to establish a new bundle wiring on the fly, 
because I would know what package in what version I would need.


Am 12/11/2018 um 14:46 schrieb Thomas Watson:
Can you explain why you need to know the exporter in this case?  It 
sounds like you have to be using reflection to call the service, in 
which case I would not think the wiring mattered.  If you need to know 
exactly the exporting bundle of the API then one approach would be to 
get the service object and interrogate its class/interface hierarchy 
until you find the API class name you are looking for and then use 
FrameworkUtil.getBundle(Class) method.


Tom

- Original message -
From: "Jürgen Albert via osgi-dev" 
Sent by: osgi-dev-boun...@mail.osgi.org
To: osgi-dev@mail.osgi.org
Cc:
Subject: [osgi-dev] Get Bundle for package and version
Date: Mon, Nov 12, 2018 6:58 AM
Hi,

I have a whiteboard, that needs to consume a remote service.
Neither the
RSA that registers the service proxy nor my whiteboard that needs to
work with the interface has a wiring to the API Bundle. What the RSA
does tell me, is the packages and the versions of the API Interfaces.
Now I'm looking for a way to ge the appropriate bundle wiring. I
know, I
can iterate over all available Bundles, and look if one exports the
package in the given version, but AFAIK I can't be sure if this is the
right package, in case it was offered by multiple bundles.

What would be the right approach here?

Thx,

Jürgen.

--
Jürgen Albert
Geschäftsführer

Data In Motion Consulting GmbH

Kahlaische Str. 4
07745 Jena

Mobil:  0157-72521634
E-Mail: j.alb...@datainmotion.de
Web: www.datainmotion.de

XING: https://www.xing.com/profile/Juergen_Albert5

Rechtliches

Jena HBR 513025

___
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev




--
Jürgen Albert
Geschäftsführer

Data In Motion Consulting GmbH

Kahlaische Str. 4
07745 Jena

Mobil:  0157-72521634
E-Mail: j.alb...@datainmotion.de
Web: www.datainmotion.de

XING:   https://www.xing.com/profile/Juergen_Albert5

Rechtliches

Jena HBR 513025

___
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Re: [osgi-dev] Get Bundle for package and version

2018-11-12 Thread Thomas Watson via osgi-dev
Can you explain why you need to know the exporter in this case?  It sounds like you have to be using reflection to call the service, in which case I would not think the wiring mattered.  If you need to know exactly the exporting bundle of the API then one approach would be to get the service object and interrogate its class/interface hierarchy until you find the API class name you are looking for and then use FrameworkUtil.getBundle(Class) method.
Tom 
 
 
- Original message -From: "Jürgen Albert via osgi-dev" Sent by: osgi-dev-boun...@mail.osgi.orgTo: osgi-dev@mail.osgi.orgCc:Subject: [osgi-dev] Get Bundle for package and versionDate: Mon, Nov 12, 2018 6:58 AM 
Hi,I have a whiteboard, that needs to consume a remote service. Neither theRSA that registers the service proxy nor my whiteboard that needs towork with the interface has a wiring to the API Bundle. What the RSAdoes tell me, is the packages and the versions of the API Interfaces.Now I'm looking for a way to ge the appropriate bundle wiring. I know, Ican iterate over all available Bundles, and look if one exports thepackage in the given version, but AFAIK I can't be sure if this is theright package, in case it was offered by multiple bundles.What would be the right approach here?Thx,Jürgen.--Jürgen AlbertGeschäftsführerData In Motion Consulting GmbHKahlaische Str. 407745 JenaMobil:  0157-72521634E-Mail: j.alb...@datainmotion.deWeb: www.datainmotion.deXING:   https://www.xing.com/profile/Juergen_Albert5RechtlichesJena HBR 513025___OSGi Developer Mail Listosgi-dev@mail.osgi.orghttps://mail.osgi.org/mailman/listinfo/osgi-dev
 

___
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

[osgi-dev] Get Bundle for package and version

2018-11-12 Thread Jürgen Albert via osgi-dev

Hi,

I have a whiteboard, that needs to consume a remote service. Neither the 
RSA that registers the service proxy nor my whiteboard that needs to 
work with the interface has a wiring to the API Bundle. What the RSA 
does tell me, is the packages and the versions of the API Interfaces. 
Now I'm looking for a way to ge the appropriate bundle wiring. I know, I 
can iterate over all available Bundles, and look if one exports the 
package in the given version, but AFAIK I can't be sure if this is the 
right package, in case it was offered by multiple bundles.


What would be the right approach here?

Thx,

Jürgen.

--
Jürgen Albert
Geschäftsführer

Data In Motion Consulting GmbH

Kahlaische Str. 4
07745 Jena

Mobil:  0157-72521634
E-Mail: j.alb...@datainmotion.de
Web: www.datainmotion.de

XING:   https://www.xing.com/profile/Juergen_Albert5

Rechtliches

Jena HBR 513025

___
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev