From 47640400dc24f783660b305213d06dfce427caa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B8=87=E4=B9=89?= Date: Mon, 31 Aug 2026 23:16:02 +0800 Subject: [PATCH] [AMORO-1523][AMS] Auto-install discovered plugins when no plugin configs exist --- .../amoro/server/manager/AbstractPluginManager.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/amoro-ams/src/main/java/org/apache/amoro/server/manager/AbstractPluginManager.java b/amoro-ams/src/main/java/org/apache/amoro/server/manager/AbstractPluginManager.java index 84d7b6922d..429d46878d 100644 --- a/amoro-ams/src/main/java/org/apache/amoro/server/manager/AbstractPluginManager.java +++ b/amoro-ams/src/main/java/org/apache/amoro/server/manager/AbstractPluginManager.java @@ -85,6 +85,19 @@ public void initialize() { foundAvailablePlugins(); List pluginConfigs = loadPluginConfigurations(); + // If no plugin configs were loaded from file but plugins were found via ServiceLoader, + // create default configurations so they can be installed. This handles the case where + // AMS is started from an IDE without the full plugins directory structure. + if (pluginConfigs.isEmpty() && !foundedPlugins.isEmpty()) { + pluginConfigs = + foundedPlugins.keySet().stream() + .map(PluginConfiguration::emptyConfig) + .collect(Collectors.toList()); + LOG.info( + "No {} plugin configurations found, auto-installing discovered plugins: {}", + pluginCategory(), + foundedPlugins.keySet()); + } pluginConfigs.stream() .sorted(Comparator.comparing(PluginConfiguration::getPriority)) .forEach(