On Thu, 15 Apr 2021 at 08:38, Christoph Läubrich <lae...@laeubi-soft.de>
wrote:

> I think there is no "one fits all". Optional dependency are really
> problematic to handle right and should be avoided as they often mean
> your bundle/services are not well shaped.
>

Thanks - I do agree.


> If you describe your case it might be possible to give some more advice.
>

The issue is we (CDT project) have a bundle that has been around for a very
long time. It is supposed to be a "core" bundle, but has some UI
dependencies in it. This bundle is used headlessly today, and there are UI
code paths than when run headlessly are effectively no-ops.

Most of the dependencies on the UI are relatively easy to resolve. However
one area is in the API - the API includes references
to org.eclipse.ui.dialogs.IOverwriteQuery, and in the headless case these
references are null.

We would like to refactor the code so that an installation can be made that
has no UI bundles included in it. The long plan is to deprecate and remove
the code that depends on UI, but in the meantime we wanted to make the UI
dependency optional.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=572850 tracks the actual work.

Thanks
Jonah




>
> Am 15.04.21 um 13:38 schrieb Jonah Graham:
> > Hello,
> >
> > (Not sure this is on topic for the list - but not sure where to ask.)
> >
> > What is the canonical way to check if an optional dependency is
> available?
> >
> > I know of a couple of methods:
> >
> > 1. wrapping code in try/catch and catching something wide like Throwable
> > or NoClassDefFoundError
> > 2. checking for bundle status (e.g. calling
> > Platform.getBundle(symbolicName) and Bundle.getState)
> >
> > Thank you.
> > Jonah
> >
> >
> >
> >
> > ~~~
> > Jonah Graham
> > Kichwa Coders
> > www.kichwacoders.com <http://www.kichwacoders.com>
> >
> > _______________________________________________
> > platform-dev mailing list
> > platform-dev@eclipse.org
> > To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/platform-dev
> >
> _______________________________________________
> platform-dev mailing list
> platform-dev@eclipse.org
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/platform-dev
>
_______________________________________________
platform-dev mailing list
platform-dev@eclipse.org
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/platform-dev

Reply via email to