镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Support for Eclipse Features in p2 repositories - #7124

Merged
peterkir merged 1 commit into
masterfrom
ecl-fea-support
Mar 16, 2026
Merged

peterkir merged 1 commit into
masterfrom
ecl-fea-support

Conversation

@peterkir

@peterkir peterkir commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@peterkir

Copy link
Copy Markdown
Contributor Author

@copilot
can the introduction of the aQute.bnd.sevice.FeatureProvider be avoided. Can you implement the same functionality without introducing the class

Copilot AI commented Mar 10, 2026

Copy link
Copy Markdown
Contributor

@peterkir I've opened a new pull request, #7133, to work on those changes. Once the pull request is ready, I'll request review from you.

@peterkir
peterkir force-pushed the ecl-fea-support branch 6 times, most recently from 9f61789 to 895f27e Compare March 13, 2026 20:27
@peterkir
peterkir requested a review from Copilot March 14, 2026 06:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 thread .vscode/settings.json Outdated
Comment on lines +2 to +4
"chat.tools.terminal.autoApprove": {
"jar": true
}

Copilot AI commented Mar 15, 2026

Copy link
Copy Markdown
Contributor

@peterkir I've opened a new pull request, #7147, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI commented Mar 15, 2026

Copy link
Copy Markdown
Contributor

@peterkir I've opened a new pull request, #7148, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI commented Mar 15, 2026

Copy link
Copy Markdown
Contributor

@peterkir I've opened a new pull request, #7149, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI commented Mar 15, 2026

Copy link
Copy Markdown
Contributor

@peterkir I've opened a new pull request, #7151, to work on those changes. Once the pull request is ready, I'll request review from you.

@peterkir peterkir changed the title support for Eclipse Features Support for Eclipse Features in p2 repositories Mar 16, 2026
@peterkir
peterkir force-pushed the ecl-fea-support branch 3 times, most recently from 5b6b82b to 923f992 Compare March 16, 2026 14:11
Signed-off-by: Peter Kirschner <peter@klib.io>
@peterkir
peterkir merged commit bc5f458 into master Mar 16, 2026
20 checks passed
@peterkir
peterkir deleted the ecl-fea-support branch March 16, 2026 17:19
peterkir pushed a commit that referenced this pull request Jun 25, 2026
peterkir pushed a commit that referenced this pull request Jun 25, 2026
peterkir added a commit that referenced this pull request Jun 25, 2026
peterkir added a commit that referenced this pull request Jun 25, 2026
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
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