Skip to content

UIEXT-3554: Split legacy API from EffectPredicateProvider#198

Open
PaulBrnrther wants to merge 1 commit intomasterfrom
enh/UIEXT-3554-extension-point-effect-predicate-provider
Open

UIEXT-3554: Split legacy API from EffectPredicateProvider#198
PaulBrnrther wants to merge 1 commit intomasterfrom
enh/UIEXT-3554-extension-point-effect-predicate-provider

Conversation

@PaulBrnrther
Copy link
Copy Markdown
Contributor

UIEXT-3554 (Use an extension point for enhancing the EffectPredicateProvider (and rewrite the one for LegacyMultiFileSelection))

Copilot AI review requested due to automatic review settings April 15, 2026 11:42
@PaulBrnrther PaulBrnrther requested a review from a team as a code owner April 15, 2026 11:42
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 introduces an extension mechanism to decouple legacy predicate-initializer functionality from EffectPredicateProvider.PredicateInitializer, moving legacy-specific predicate support behind a startup-registered extension point.

Changes:

  • Add PredicateInitializerExtension marker type and PredicateInitializer#getRegisteredPredicateInitializer(Class) lookup API.
  • Introduce PredicateInitializerExtensionPoint registry and register legacy predicate extensions from CoreUIPlugin.
  • Move legacy MultiFileSelection/FileWriter predicate capabilities into dedicated legacy extension interfaces and adapt WebUI predicate translation to the new types.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
org.knime.core.ui/src/eclipse/org/knime/node/parameters/updates/PredicateInitializerExtension.java Adds marker interface for predicate initializer extensions.
org.knime.core.ui/src/eclipse/org/knime/node/parameters/updates/EffectPredicateProvider.java Removes embedded legacy reference interfaces; adds extension lookup method to PredicateInitializer.
org.knime.core.ui/src/eclipse/org/knime/node/parameters/legacy/widget/file/LegacyMultiFileSelectionPredicateInitializer.java New legacy extension interface for legacy multi-file selection predicate support.
org.knime.core.ui/src/eclipse/org/knime/node/parameters/legacy/widget/file/LegacyFileWriterPredicateInitializer.java Renames/relocates legacy file-writer predicate support into a legacy extension interface.
org.knime.core.ui/src/eclipse/org/knime/core/webui/node/dialog/defaultdialog/jsonforms/uischema/DefaultPredicateInitializer.java Implements new extension lookup via PredicateInitializerExtensionPoint.
org.knime.core.ui/src/eclipse/org/knime/core/webui/node/dialog/defaultdialog/impl/predicates/PredicateInitializerExtensionPoint.java Adds registry for extension factories, used by the predicate initializer implementation.
org.knime.core.ui/src/eclipse/org/knime/core/webui/node/dialog/defaultdialog/impl/predicates/ConditionToPredicateTranslator.java Updates imports to legacy extension reference types.
org.knime.core.ui/src/eclipse/org/knime/core/ui/CoreUIPlugin.java Registers legacy predicate initializer extensions at bundle startup.
org.knime.core.ui/META-INF/MANIFEST.MF Stops exporting the removed legacy updates package.
Comments suppressed due to low confidence (1)

org.knime.core.ui/src/eclipse/org/knime/core/ui/CoreUIPlugin.java:95

  • The extension registry is static and never cleared. On OSGi bundle stop/start or refresh this can retain stale registrations and classloader references; consider adding a clear()/unregister(...) API on PredicateInitializerExtensionPoint and calling it from stop(...) to avoid leaks and unexpected state across restarts.
    @Override
    public void stop(final BundleContext context) throws Exception {
        //
    }

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@PaulBrnrther PaulBrnrther requested a review from a team as a code owner April 20, 2026 07:23
UIEXT-3554 (Use an extension point for enhancing the EffectPredicateProvider (and rewrite the one for LegacyMultiFileSelection))
@PaulBrnrther PaulBrnrther force-pushed the enh/UIEXT-3554-extension-point-effect-predicate-provider branch from 1250dca to 211a0f8 Compare April 20, 2026 07:31
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
45.5% Coverage on New Code (required ≥ 85%)

See analysis details on SonarQube Cloud

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.

2 participants