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 selective plugin loading mechanism #21007

Open
wants to merge 59 commits into
base: master
Choose a base branch
from
Open

Conversation

moesterheld
Copy link
Contributor

@moesterheld moesterheld commented Nov 20, 2024

Description

Adds a mechanism for loading plugins selectively.
This is needed to load different plugins for different node types (needed specifially for data node).

The selection is done by adding a SpecificNodePlugin annotation to the plugin class and specifying the PluginLoader.NodeType in GraylogNodeConfiguration.getPluginNodeType().

To keep backward compatibility, the PluginLoader will load all plugins without the annotation if no type is provided (i.e. no type = Graylog), otherwise all plugins annotated with the given node type will be loaded.

/nocl

Motivation and Context

needed for selectively loading a trino node plugin in data node

How Has This Been Tested?

Tested with https://github.com/Graylog2/graylog-plugin-enterprise/pull/9214 and ensuring all Graylog plugins are loaded without the data node specific plugin. In data node, only the specified plugin is loaded.

Added unit test for filtering in PluginLoader.

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Refactoring (non-breaking change)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.

moesterheld and others added 30 commits August 14, 2024 09:41
…ks for fresh installation of the Graylog cluster
…sn't do the fresh installation detection any more
Co-authored-by: Bernd Ahlers <[email protected]>
moesterheld and others added 21 commits November 26, 2024 16:50
# Conflicts:
#	graylog2-server/src/main/java/org/graylog2/CommonNodeConfiguration.java
#	graylog2-server/src/main/java/org/graylog2/GraylogNodeConfiguration.java
# Conflicts:
#	graylog2-server/src/main/java/org/graylog2/CommonNodeConfiguration.java
…e all properties of PathConfiguration only for plugin loading
# Conflicts:
#	graylog2-server/src/main/java/org/graylog2/GraylogNodeConfiguration.java
# Conflicts:
#	data-node/src/main/java/org/graylog/datanode/Configuration.java
#	data-node/src/main/java/org/graylog/datanode/bindings/PreflightChecksBindings.java
#	data-node/src/main/java/org/graylog/datanode/bootstrap/preflight/OpensearchConfigSync.java
#	graylog2-server/src/main/java/org/graylog2/CommonNodeConfiguration.java
#	graylog2-server/src/main/java/org/graylog2/GraylogNodeConfiguration.java
#	graylog2-server/src/main/java/org/graylog2/bootstrap/CmdLineTool.java
#	graylog2-server/src/test/java/org/graylog2/commands/MinimalNodeCommandTest.java
@moesterheld moesterheld changed the title Add trino node plugin Add selective plugin loading mechanism Dec 12, 2024
@moesterheld moesterheld marked this pull request as ready for review December 12, 2024 17:15
@moesterheld moesterheld requested a review from a team December 12, 2024 17:22
@moesterheld moesterheld requested a review from todvora December 16, 2024 14:17
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