Repository navigation
Support for Eclipse Features in p2 repositories - #7124
Merged
Merged
Conversation
Contributor
Author
|
@copilot |
Contributor
peterkir
force-pushed
the
ecl-fea-support
branch
6 times, most recently
from
March 13, 2026 20:27
9f61789 to
895f27e
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds end-to-end support for Eclipse p2 features across indexing (biz.aQute.repository) and Bndtools UI, so features can be discovered, displayed, and used similarly to bundles.
Changes:
- Extend p2 indexing to parse
feature.xml/feature.properties, create feature resources (type=org.eclipse.update.feature), and expose feature retrieval APIs. - Update Bndtools repository/resolution UIs to display features (icons, tree hierarchy, open/download behavior, drag & drop).
- Improve requirement labeling/icon selection and requirement alias unaliasing to include feature type/version in filters.
Reviewed changes
Copilot reviewed 49 out of 54 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| bndtools.test/.gitignore | Ignore workspace/ for tests workspace artifacts. |
| bndtools.jareditor/src/bndtools/jareditor/internal/JARTreePart.java | Default selection prefers feature.xml when present. |
| bndtools.core/test/org/bndtools/core/ui/resource/R5LabelFormatterTest.java | New tests for feature identity label formatting. |
| bndtools.core/src/org/bndtools/core/ui/resource/RequirementLabelProvider.java | Feature-aware icon selection for identity requirements. |
| bndtools.core/src/org/bndtools/core/ui/resource/R5LabelFormatter.java | Better display for osgi.identity requirements (incl. ranges). |
| bndtools.core/src/bndtools/wizards/repo/RepoBundleSelectionWizardPage.java | Use searchable repo content provider. |
| bndtools.core/src/bndtools/views/resolution/ResolutionView.java | Add feature-aware loaders + sorting/grouping of caps/reqs. |
| bndtools.core/src/bndtools/views/repository/RepositoriesView.java | Open/download feature artifacts; adjust editor opening code path. |
| bndtools.core/src/bndtools/utils/SelectionDragAdapter.java | Add drag payload for repository features. |
| bndtools.core/src/bndtools/model/resolution/RequirementWrapperLabelProvider.java | Feature/bundle icon distinction for identity requirements. |
| bndtools.core/src/bndtools/model/repo/SearchableRepositoryTreeContentProvider.java | Add constructors forwarding phase/modes. |
| bndtools.core/src/bndtools/model/repo/RequiredFeatureItem.java | New wrapper node for <requires><import> items. |
| bndtools.core/src/bndtools/model/repo/RepositoryTreeLabelProvider.java | Add feature/folder node rendering (but see review comments). |
| bndtools.core/src/bndtools/model/repo/RepositoryTreeContentProvider.java | Add feature nodes + feature search results + wildcard matching. |
| bndtools.core/src/bndtools/model/repo/RepositoryFeatureResource.java | New lightweight wrapper for feature resources from R5 search. |
| bndtools.core/src/bndtools/model/repo/RepositoryFeature.java | New synthetic repo entry for p2 features. |
| bndtools.core/src/bndtools/model/repo/RepositoryEntry.java | Allow subclasses to pass properties and filter resource types. |
| bndtools.core/src/bndtools/model/repo/RepositoryBundle.java | Filter out feature resources + request bundle type properties. |
| bndtools.core/src/bndtools/model/repo/IncludedFeatureItem.java | New wrapper node for <includes> items. |
| bndtools.core/src/bndtools/model/repo/IncludedBundleItem.java | New wrapper node for <plugin> items. |
| bndtools.core/src/bndtools/model/repo/FeatureVersionNode.java | New virtual node for feature version presentation. |
| bndtools.core/src/bndtools/model/repo/FeatureFolderNode.java | New folder nodes for feature hierarchy (included/required/bundles). |
| bndtools.core/src/bndtools/editor/project/RepositoryBundleSelectionPart.java | Accept feature/bundle items on drop and convert into clauses. |
| bndtools.core/src/bndtools/editor/project/AvailableBundlesPart.java | Show/select features alongside bundles. |
| bndtools.core/src/bndtools/editor/project/AbstractRequirementListPart.java | Create bnd.identity reqs for features (adds type). |
| bndtools.core/resources/unprocessed/icons/feature_obj_16x16.png | Add feature icon asset. |
| bndtools.core/resources/unprocessed/icons/feature_obj.svg | Add feature icon source. |
| bndtools.core/resources/unprocessed/icons/eclipse-icon-16x16.png | Add eclipse icon asset. |
| bndtools.core/icons.properties | Register icons.feature and folder icon mapping. |
| biz.aQute.repository/test/aQute/p2/provider/P2ImplTest.java | Add Windows opaque file URI test + temp dir usage. |
| biz.aQute.repository/test/aQute/p2/provider/Feature_Version_Filter_Implementation.md | Implementation notes for feature version filters. |
| biz.aQute.repository/test/aQute/p2/provider/FeatureVersionFilterTest.java | Tests for match-rule → OSGi filter conversion. |
| biz.aQute.repository/test/aQute/p2/provider/FeatureParserTest.java | Tests for parsing features into OSGi resources. |
| biz.aQute.repository/test/aQute/bnd/repository/p2/provider/P2IndexerTest.java | Update expectations to include feature BSNs. |
| biz.aQute.repository/test/aQute/bnd/repository/p2/provider/P2IndexerFeatureTest.java | Test feature resources appear in the index. |
| biz.aQute.repository/test/aQute/bnd/repository/p2/provider/P2IndexerExtractFeatureTest.java | Test extracting features from indexed resources. |
| biz.aQute.repository/test/aQute/bnd/repository/p2/provider/FeatureRequirementsInIndexTest.java | Document/verify how feature requirements appear in index. |
| biz.aQute.repository/test/aQute/bnd/repository/p2/provider/FeaturePropertiesTest.java | Test resolving %key via feature.properties. |
| biz.aQute.repository/test/aQute/bnd/repository/p2/provider/Eclipse438PlatformFeatureTest.java | Integration tests against Eclipse 4.38 update site. |
| biz.aQute.repository/test/aQute/bnd/repository/p2/provider/Eclipse438FeatureTest.java | Comprehensive integration tests for Eclipse 4.38 features. |
| biz.aQute.repository/src/aQute/p2/provider/TargetImpl.java | Ensure feature is parsed; normalize plugin versions to OSGi Version. |
| biz.aQute.repository/src/aQute/p2/provider/P2Impl.java | Normalize opaque file URIs + robust path handling. |
| biz.aQute.repository/src/aQute/p2/provider/Feature.java | Feature parser + resource creation + match-rule version filters. |
| biz.aQute.repository/src/aQute/bnd/repository/p2/provider/package-info.java | Bump package version to 1.6.0. |
| biz.aQute.repository/src/aQute/bnd/repository/p2/provider/P2Repository.java | Expose feature list/get APIs. |
| biz.aQute.repository/src/aQute/bnd/repository/p2/provider/P2Indexer.java | Index features, process artifacts by classifier, expose getFeatures(). |
| biz.aQute.repository/bnd.bnd | Export aQute.p2.provider package. |
| biz.aQute.bndlib/src/aQute/bnd/service/package-info.java | Bump package version to 4.10.0. |
| biz.aQute.bndlib/src/aQute/bnd/osgi/resource/CapReqBuilder.java | Unalias identity requirements including optional type + version filters. |
| biz.aQute.bndlib.tests/test/aQute/bnd/osgi/resource/CapReqBuilderTest.java | Add tests for typed feature identity alias unaliasing. |
| .vscode/settings.json | VS Code workspace setting added (see review comment). |
| .github/specs/PR7124_Support-Eclipse-Features_p2-repos.md | Internal spec/doc describing feature requirements/indexing. |
Comment on lines
+2
to
+4
| "chat.tools.terminal.autoApprove": { | ||
| "jar": true | ||
| } |
peterkir
force-pushed
the
ecl-fea-support
branch
2 times, most recently
from
March 14, 2026 20:51
8b459f6 to
53e42e8
Compare
peterkir
force-pushed
the
ecl-fea-support
branch
from
March 15, 2026 15:11
53e42e8 to
42539d6
Compare
Contributor
Contributor
Contributor
Contributor
peterkir
force-pushed
the
ecl-fea-support
branch
3 times, most recently
from
March 16, 2026 14:11
5b6b82b to
923f992
Compare
Signed-off-by: Peter Kirschner <peter@klib.io>
peterkir
force-pushed
the
ecl-fea-support
branch
from
March 16, 2026 14:18
923f992 to
1ef7c82
Compare
peterkir
added a commit
that referenced
this pull request
Jun 25, 2026
Signed-off-by: Peter Kirschner <peter@klib.io>
peterkir
added a commit
that referenced
this pull request
Jun 25, 2026
fixing issue #7124 mix up features and bundles in p2 repository
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.