[
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
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