Re: [jwt-dev] makeing dependencies optional
you are right, just making them optional would probably introduce some
problems. It therefore should be checked whether certain dependencies
are available and functions accordingly disabled. This should also be
clearly indicated to the user.
I've created a bug for this (1.3.0:
Am 09.05.2012 11:06, schrieb Yoann Rodière:
I agree this would be great for those users who want a light-weight
platform, but it may require more attention than just modifying the
manifest file, I guess. I'm assuming you were talking about adding the
"optional" keyword to dependencies in the manifest file. With the
current code, I think JWT would simply blow up if we tried to use SVG
export with, say, batik not installed. Two solutions:
1. Assume that users who have these dependencies not installed know
what they do.
2. Make sure to (programatically) disable the features related to these
dependencies if they're not installed.
I wonder what form this "optional OSGi dependency" will take, especially
regarding the Eclipse Update Manager.
1. Will it install all dependencies by default, and allow users to
remove thoses they don't want?
2. Will it NOT install the optional dependencies and therefore require
active actions from the user in order to install them?
In the second case, we definitely should disable SVG export when the
required dependencies are not available. It seems a common way doing
this is by using OSGi services (I only searched quickly and found this
Of course, we could also avoid using the OSGi "optional dependency"
mechanism, and simply relocate the diagram export features in a new
bundle, which would use extension points. Users could choose explicitly
to install it when installing JWT in the Update manager. This would
involve a bit more work, though.
Let me know if I'm missing something :)
Le mar. 08 mai 2012 18:09:57 CEST, Christian Saad a écrit :
> Hi Marc, Yoann,
> playing around a lot with Eclipse and JWT (and several other
> Eclipse-based products) recently I've discovered that it might not in
> all cases be desirable to force users to install very heavyweight
> components such as GMF that themselves drag along many dependencies,
> especially since we emphasize the customisability aspect of our
> platform. Therefore, I would propose to mark the GMF dependencies (and
> in the future maybe other components such as ATL/JDT?) in jwt-we
> (shown below) as optional, so that the user can choose whether to
> install the product and enjoy a fully featured solution or to work
> with a restricted feature set but have a more light-weight platform.
> What do you think?