Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [platform-core-dev] On demand loading and installation of components

Title: Message
Pete,
I have a definite interest in this topic too.
I think it is the kind of feature that could be part of the base update/install manager.
Would you consider sharing or working together on that?
In a related domain, Phil Milne and I are putting a project on SourceForge (jailproject) which is a dynamic internet class loader, such that missing classes are loaded at run-time from the net if they cannot be found in the classpath, a kind of a lower level jnlp. While quite different from your need at first glance, (with that code , you could start with a mini java rt.jar as small as a few mb, then load the rest of java and your app on the fly as needed ans as classes are required), there are similar concepts:
Dynamically loading at run-time the stuffs you need.
 
Cordially
--
Cheers
Philippe

philippe ombredanne | nexB - Open by Design (tm)
1 650 799 0949 | pombredanne at nexb.com
http://www.nexb.com
-----Original Message-----
From: platform-core-dev-bounces@xxxxxxxxxxx [mailto:platform-core-dev-bounces@xxxxxxxxxxx] On Behalf Of Peter Manahan
Sent: Wednesday, April 06, 2005 10:54 PM
To: Eclipse Platform Core component developers list.
Subject: Re: [platform-core-dev] On demand loading and installationof components


Yes I think I have enough to chew on  for now thanks :-)

 I  subclassed the EclipseAdapter and set osgi,adaptor and osgi.frameworkClasspath to point to it.  Eclipse came up using the new Adaptor. So its a start even though only baby steps:-)


Thanks,

-----------------------------------
Peter Manahan
IBM Rational Tools
Common Install
------------------------------------
manahan@xxxxxxxxxx



Jeff McAffer/Ottawa/IBM@IBMCA
Sent by: platform-core-dev-bounces@xxxxxxxxxxx

06/04/2005 09:18 PM

Please respond to
"Eclipse Platform Core component developers list."

To
"Eclipse Platform Core component developers list." <platform-core-dev@xxxxxxxxxxx>
cc
Subject
Re: [platform-core-dev] On demand loading and installation of        components






Peter,


Unfortunately you missed EclipseCon!  We demonstrated Hyperbola (a chat client) transparently downloading and installing multi-user chat capabilities on-the-fly when the user was invited to a group chat for the first time.  That is, Hyperbola noticed a new packet type (muc) and then discovered a set of features that could handle muc packets.  It then downloaded an installed the features and then instantiated the supplied handler to handle the packet that triggered it all.  Of course it is proof of concept only but in this case no runtime help is necessary.  Everything is done using Update API.


If you want your yet-to-be-installed function to have a presence in Eclipse first and then be filled in later, that's a different story.  There you have to start fooling a bunch of people with proxies and stubs.  In essence you want to ship a hollow bundle that is, due to Heisenberg, magically filled in just because someone cared to look.  If you want to investigate, it seems like good places are


1) how to fool the registry - This is relatively easy (theoretically) as your hollow bundle can contribute all the same extensions and extension points as the real one.  There will be issues around extension points that eagerly call createExecutableExtension (naughty!!).  This will also require plugins to be "dynamic aware" as the hollow plugin will be updated (cycling the extensions) when it is filled in (see below)


2) how to deal with classloading - here you can supply you own "adaptor" that subclasses the EclipseAdaptor.  In there, where we would normally do the activation of the bundle,  you need ot trigger the "osgi update" of the bundle being tickled.  The update should replace the contents of the bundle but leave the bundle id etc intact.  There will be some issues with version numbers and any bundle that was depending on the replaced one will be stopped and started (that is likely ok in this case as they are probably being installed too.  Or not!).  The updated bundle then has code and you have to contrive to keep on going where you left off.


That enough to start with?


Jeff


p.s., cool problem eh?



Peter Manahan/Toronto/IBM@IBMCA
Sent by: platform-core-dev-bounces@xxxxxxxxxxx

04/06/2005 08:40 PM

Please respond to
"Eclipse Platform Core component developers list."

To
platform-core-dev@xxxxxxxxxxx
cc
Subject
[platform-core-dev] On demand loading and installation of components








Hi,

      I'm going to be looking at ways to implement the following scenario it probably has a name already.  On demand install ? I'm using component to mean a unit of usable function (could contain multiple features/plugins/bundles etc)


User is using Eclipse based product.
1.        During normal use enables something that doesn't exist (say triggers the PDE capability)

2.        However the PDE isn't installed. But some "magic" happens.

3.        This spell causes a sequence of events that at the end installs the component that was missing.  (leave how it installs it aside for now ) Now the user is happily using the PDE because it is such a cool tool.

The problem space  is a a set  products encompassing thousands of plugins and features all using the same eclipse instance/runtime.


Expand the idea of a not installed component to a not-installed component that also requires service to the product before it can be installed. So rather than a straight download from an update site something like an install program and the user popping CD's etc in may need to occur.


So this kind of capability requires support from the runtime.  Can anyone point me in a direction to start looking at this?  Browsing the runtime dev page the Dynamic Support and Stub Plugin thoughts look promising so I expect this isn't a new topic of discussion.


Thoughts, opinions , pointers to some doc are all welcome.

Thanks,

-----------------------------------
Peter Manahan
IBM Rational Tools
Common Install
------------------------------------
manahan@xxxxxxxxxx
_______________________________________________
platform-core-dev mailing list
platform-core-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/platform-core-dev

_______________________________________________
platform-core-dev mailing list
platform-core-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/platform-core-dev


Back to the top