Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add bnd-maven-plugin integration to m2e #1788

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

laeubi
Copy link
Member

@laeubi laeubi commented Jul 11, 2024

PDE now offers so called "shared components" (based on bndtools) we can leverage them to give a better user experience in m2e without needing the user to have bndtools (or pde) installed at all.

This PR is to track progress and make sure the current WIP can be integrated with the current code base.

Copy link

github-actions bot commented Jul 11, 2024

Test Results

107 files   -   214  107 suites   - 214   22m 25s ⏱️ - 31m 0s
678 tests ±    0  659 ✅ +    2  18 💤 ± 0  0 ❌  - 1  1 🔥  - 1 
678 runs   - 1 356  659 ✅  - 1 318  18 💤  - 36  0 ❌  - 1  1 🔥  - 1 

For more details on these errors, see this check.

Results for commit 9e1f790. ± Comparison against base commit dfe7688.

♻️ This comment has been updated with latest results.

@laeubi
Copy link
Member Author

laeubi commented Jul 11, 2024

With the current rather rough implementation it is now possible to use the Bundle Repository View and see the (implicit) project Artifacts Bundle repository used by bnd-maven-plugins:

grafik

FYI @stbischof

@stbischof
Copy link

What Features are planned in general? An which in this pr?

@juergen-albert
Copy link

@laeubi great news! Have you tested this with bndtools installed? bndtools comes with an m2e connector as well. We should try to avoid that both fight each other.

@laeubi
Copy link
Member Author

laeubi commented Jul 11, 2024

What Features are planned in general? An which in this pr?

There is no "masterplan" at all, for this PR I would like to get the "Bundle Repositories View" working as this is currently the most prominent (and useful) thing to know out of the box (and rather trivial to implement).

Have you tested this with bndtools installed? bndtools comes with an m2e connector as well. We should try to avoid that both fight each other.

As bndtools never worked reliable for me its hard to guess if something is breaking or is "by design", beside that this is to actually avoid needing bndtools at all. Anyways bndtools is free to adapt or join the development in any way I just would not enforce that or invest time with that due to poor contribution experience of bnd(tool) project. If anyone needs further information and want to try pick up the bndtools part, just let me know.

@juergen-albert
Copy link

As bndtools never worked reliable for me its hard to guess if something is breaking or is "by design", beside that this is to actually avoid needing bndtools at all. Anyways bndtools is free to adapt or join the development in any way I just would not enforce that or invest time with that due to poor contribution experience of bnd(tool) project. If anyone needs further information and want to try pick up the bndtools part, just let me know.

Understood. If you implement something like this in the core and break the m2e support in bnd would be a bit unfair.
I'm not 100% sure what your Adapter does, so it might be totally fine. I only would ask you, if you could do a test, with bndtools and its m2e connector installed. I guess it will show rather quick, if something breaks or not.

@laeubi
Copy link
Member Author

laeubi commented Jul 11, 2024

If you implement something like this in the core and break the m2e support in bnd would be a bit unfair.

Every project chooses how to integrate into the eco-system, bndtools has made its decision as well but other are not meant to take that burden of design decisions.

I'm not 100% sure what your Adapter does, so it might be totally fine.

It adapts an Eclipse project to a Bnd project so it can be used together with the pde reusable components I tried to make bndtools able to participate but got only insult back in return and wasted a lot of time discussing things completely off-topic

So even if bnd is bound to "we don't understand it so it must be bad", other projects (like m2e) can still adapt to give a better Integrated Development Experience in their IDE.

I guess it will show rather quick, if something breaks or not.

If you want you can checkout the PR build it with -DskipTests and then install the resulting updatesite in whatever Eclipse desired, m2e itself does not include bndtools so I can't test it as part of the usual m2e development.

@laeubi
Copy link
Member Author

laeubi commented Jul 11, 2024

I added a readme describing the basics here now.

PDE now offers so called "shared components" (based on bndtools) we can
leverage them to give a better user experience in m2e without needing
the user to have bndtools (or pde) installed at all.

Signed-off-by: Christoph Läubrich <[email protected]>
Signed-off-by: Christoph Läubrich <[email protected]>
@laeubi laeubi force-pushed the bnd-maven-plugin-integration branch from 4ac9216 to b9662aa Compare October 27, 2024 12:07
@laeubi
Copy link
Member Author

laeubi commented Oct 27, 2024

I now added a POC for a lemminx extension that adds autocompletion support to pom.xml files that are using an embedded <bnd> instructions

grafik

this is usually put into CDATA but sadly currently there is a bug

Also fetching the text content seems to be flawed and should be fixed to make such auto completion more useful:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants