river-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michał Kłeczek (XPro Sp. z o. o.)" <michal.klec...@xpro.biz>
Subject Re: OSGi
Date Wed, 25 Jan 2017 22:30:58 GMT
I haven't been aware of ObjectSpace Voyager. I just briefly looked at it 
and it seems like it is based on Java 1.x (ancient beast) and - as I 
understand it - the issues you describe are mainly caused by having only 
a single class name space (single ClassLoader).

But sending IMHO class bytes in-band is not necessary (nor good).

What is needed is:
1. Encoding dependency information in codebases (either in-band or by 
providing a downloadable descriptor) so that it is possible to recreate 
proper ClassLoader structure (hierarchy or rather graph - see below) on 
the client.
2. Provide non-hierarchical class loading to support arbitrary object 
graph deserialization (otherwise there is a problem with "diamond 
shaped" object graphs).

A separate issue is with the definition of codebase identity. I guess 
originally Jini designers wanted to avoid this issue and left it 
undefined... but it is unavoidable :)


Gregg Wonderly wrote:
> That’s what I was suggesting.  The code works, but only if you put the required classes
into codebases or class paths.  It’s not a problem with mobile code, it’s a problem with
resolution of objects in mobile code references.  That’s why I mentioned ObjectSpace Voyager.
 It automatically sent/sends class definitions with object graphs to the remote VM.
> Gregg
>> On Jan 23, 2017, at 3:03 PM, Michał Kłeczek (XPro Sp. z o. o.)<michal.kleczek@xpro.biz>
>> The problem is that we only support (smart) proxies that reference only objects of
classes from their own code base.
>> We do not support cases when a (smart) proxy wraps a (smart) proxy of another service
(annotated with different codebase).
>> This precludes several scenarios such as for example "dynamic exporters" - exporters
that are actually smart proxies.
>> Thanks,
>> Michal

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