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


Couldn't you provide a fake PDE editor, which is associated with the plugin.xml file, etc., but if you open it, it is just a shell instructing you how to obtain the real PDE editor?
Once the real PDE editor is dynamically downloaded, you then dynamically uninstall the fake one.




Jeff McAffer <Jeff_McAffer@xxxxxxxxxx>
Sent by: platform-core-dev-bounces@xxxxxxxxxxx

04/06/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