Thank you for pointing that out! I'll incorporate that in my remarks.

Kind regards
Jens

On 02.06.2010, at 21:09, Richard S. Hall wrote:

> On 6/2/10 14:56, Jens Lauterbach wrote:
>> Thank you for your answer Richard.
>> 
>> The reason why I ask this question is that I am working on my thesis about 
>> OSGi right now. Part of this thesis involves the whole class loading process 
>> and I just wanted to provide some more information to the reader than simply 
>> saying, that the OSGi framework is somehow handling this issues.
>> 
>> Again. Thank you very much.
>>   
> 
> Ok, well, keep in mind, the way the Felix framework does this is purely an 
> implementation detail. You cannot assume that some other framework does it in 
> even a remotely similar way. For example, I believe some frameworks keep 
> track of which packages are associated with which wires and only ask the 
> appropriate wire (i.e., the delegation behavior is implemented external to 
> the wire). And in reality, some likely implement it without actually have a 
> physical representation of a "wire" since this is more a conceptual entity 
> than a spec defined entity.
> 
> -> richard
> 
>> Kind regards
>> Jens
>> 
>> On 02.06.2010, at 19:37, Richard S. Hall wrote:
>> 
>>   
>>> On 6/2/10 13:25, Jens Lauterbach wrote:
>>>     
>>>> Hello,
>>>> 
>>>> I am trying to figure out how two bundles are "wired" together. Bundles 
>>>> can import and export packages. As far as I can tell from diving into the 
>>>> code the importing and exporting packages are wired together 
>>>> (org.apache.felix.framework.resolver.WireImpl) and not the bundles itself. 
>>>> If a class is going to be loaded the actual wire is responsible for 
>>>> checking if the requested class is in one of the exported packages. Only 
>>>> if the class is in one of the exported packages the wire is going to call 
>>>> the exporting bundles class loader.
>>>> 
>>>> Are those assumption correct?
>>>> 
>>>> What I am trying to find out is, who is responsible for checking that only 
>>>> class can be imported, that are actually part of a exported package and 
>>>> not of the internal implementation (which is hopefully not exported).
>>>> 
>>>>       
>>> Basically, that's correct.
>>> 
>>> A wire connects a bundle to another bundle providing some capability from 
>>> which it can load classes. A wire is specifically associated with its 
>>> importer/requirement on one end and the exporter/capability on the other 
>>> end. The wire then implements the associated behavior of what it means to 
>>> be a wire to connect the given requirement to the given capability (e.g., 
>>> wires for packages throw an exception if the package matches but the class 
>>> is not found, since this should terminate the search, whereas this isn't 
>>> true for require-bundle wires). This also includes checking if a given 
>>> class is allowed to be exposed from a given bundle.
>>> 
>>> It's not really clear why you want to know the implementation details, 
>>> though, since the spec information should be sufficient. The only thing a 
>>> bundle really needs to know is that the spec says it will be given access, 
>>> how is not so important.
>>> 
>>> ->  richard
>>> 
>>> 
>>> 
>>>     
>>>> Kind regards
>>>> Jens
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>> 
>>>> 
>>>>       
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>     
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> 
>>   
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to