Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-dev] canonical way to handle optional dependencies

It would be an option - but seems to me to be too much work. I also don't particularly like the idea of having org.eclipse.ui.* packages floating about the ecosystem that aren't the real ones.

Thanks
Jonah

~~~
Jonah Graham
Kichwa Coders
www.kichwacoders.com


On Thu, 15 Apr 2021 at 09:16, Christoph Läubrich <laeubi@xxxxxxxxxxxxxx> wrote:
Wouldn't it be an option to simply supply a "cli-only" bundle that
supplies the missing interfaces with dummy implementations?

Am 15.04.21 um 15:04 schrieb Jonah Graham:
>
> On Thu, 15 Apr 2021 at 08:38, Christoph Läubrich <laeubi@xxxxxxxxxxxxxx
> <mailto:laeubi@xxxxxxxxxxxxxx>> 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
> <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>
>     <http://www.kichwacoders.com <http://www.kichwacoders.com>>
>      >
>      > _______________________________________________
>      > platform-dev mailing list
>      > platform-dev@xxxxxxxxxxx <mailto:platform-dev@xxxxxxxxxxx>
>      > To unsubscribe from this list, visit
>     https://www.eclipse.org/mailman/listinfo/platform-dev
>     <https://www.eclipse.org/mailman/listinfo/platform-dev>
>      >
>     _______________________________________________
>     platform-dev mailing list
>     platform-dev@xxxxxxxxxxx <mailto:platform-dev@xxxxxxxxxxx>
>     To unsubscribe from this list, visit
>     https://www.eclipse.org/mailman/listinfo/platform-dev
>     <https://www.eclipse.org/mailman/listinfo/platform-dev>
>
>
> _______________________________________________
> platform-dev mailing list
> platform-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/platform-dev
>
_______________________________________________
platform-dev mailing list
platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/platform-dev

Back to the top