From ea1e4ee1f836fb00b6a305ea098cdd75b3975c53 Mon Sep 17 00:00:00 2001 From: reshmabidikar Date: Tue, 28 Nov 2023 14:31:55 +0530 Subject: [PATCH 1/2] Convert mandatory plugins property to set --- .../java/org/killbill/billing/osgi/BundleRegistry.java | 2 +- .../org/killbill/billing/osgi/DefaultOSGIService.java | 5 ++--- .../org/killbill/billing/osgi/config/OSGIConfig.java | 9 ++++++--- .../billing/osgi/pluginconf/TestPluginFinder.java | 3 ++- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/osgi/src/main/java/org/killbill/billing/osgi/BundleRegistry.java b/osgi/src/main/java/org/killbill/billing/osgi/BundleRegistry.java index dd326e62..82e73dbf 100644 --- a/osgi/src/main/java/org/killbill/billing/osgi/BundleRegistry.java +++ b/osgi/src/main/java/org/killbill/billing/osgi/BundleRegistry.java @@ -115,7 +115,7 @@ public void startBundles(final Iterable mandatoryPlugins) throws Excepti } - if (mandatoryPlugins.iterator().hasNext()) { + if (mandatoryPlugins != null && mandatoryPlugins.iterator().hasNext()) { checkIfMandatoryPluginsAreStarted(pluginsStarted, mandatoryPlugins); } else { diff --git a/osgi/src/main/java/org/killbill/billing/osgi/DefaultOSGIService.java b/osgi/src/main/java/org/killbill/billing/osgi/DefaultOSGIService.java index 244eee64..21218b51 100644 --- a/osgi/src/main/java/org/killbill/billing/osgi/DefaultOSGIService.java +++ b/osgi/src/main/java/org/killbill/billing/osgi/DefaultOSGIService.java @@ -100,10 +100,9 @@ public void initialize() { @LifecycleHandlerType(LifecycleHandlerType.LifecycleLevel.START_PLUGIN) public void start() throws Exception { - final String mandatoryPlugins = osgiConfig.getMandatoryPluginsList(); - final Set mandatoryPluginsList = mandatoryPlugins != null && !mandatoryPlugins.isEmpty() ? Set.of(mandatoryPlugins.split("\\s*,\\s*")) : Collections.emptySet(); + final Set mandatoryPlugins = osgiConfig.getMandatoryPlugins(); // This will call the start() method for the bundles - bundleRegistry.startBundles(mandatoryPluginsList); + bundleRegistry.startBundles(mandatoryPlugins); // Tell the plugins all bundles have started killbillActivator.sendEvent("org/killbill/billing/osgi/lifecycle/STARTED", new HashMap()); } diff --git a/osgi/src/main/java/org/killbill/billing/osgi/config/OSGIConfig.java b/osgi/src/main/java/org/killbill/billing/osgi/config/OSGIConfig.java index 560a2848..223d5c15 100644 --- a/osgi/src/main/java/org/killbill/billing/osgi/config/OSGIConfig.java +++ b/osgi/src/main/java/org/killbill/billing/osgi/config/OSGIConfig.java @@ -19,9 +19,12 @@ package org.killbill.billing.osgi.config; +import java.util.Set; + import org.killbill.billing.platform.api.KillbillPlatformConfig; import org.skife.config.Config; import org.skife.config.Default; +import org.skife.config.DefaultNull; import org.skife.config.Description; public interface OSGIConfig extends KillbillPlatformConfig { @@ -268,8 +271,8 @@ public interface OSGIConfig extends KillbillPlatformConfig { public String getSystemBundleExportPackagesExtra(); @Config("org.killbill.billing.plugin.mandatory.plugins") - @Description("List of mandatory plugins") - @Default("") - public String getMandatoryPluginsList(); + @Description("Comma separated list of mandatory plugins") + @DefaultNull + public Set getMandatoryPlugins(); } diff --git a/osgi/src/test/java/org/killbill/billing/osgi/pluginconf/TestPluginFinder.java b/osgi/src/test/java/org/killbill/billing/osgi/pluginconf/TestPluginFinder.java index 6d60c744..73602785 100644 --- a/osgi/src/test/java/org/killbill/billing/osgi/pluginconf/TestPluginFinder.java +++ b/osgi/src/test/java/org/killbill/billing/osgi/pluginconf/TestPluginFinder.java @@ -22,6 +22,7 @@ import java.io.File; import java.io.IOException; import java.util.List; +import java.util.Set; import javax.annotation.Nullable; @@ -211,7 +212,7 @@ public String getSystemBundleExportPackagesExtra() { return null; } @Override - public String getMandatoryPluginsList() { + public Set getMandatoryPlugins() { return null; } From 9c11e5098b6fb1d26792358115321ae66cc51d63 Mon Sep 17 00:00:00 2001 From: reshmabidikar Date: Tue, 28 Nov 2023 14:49:14 +0530 Subject: [PATCH 2/2] Minor optimizations --- .../killbill/billing/osgi/BundleRegistry.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/osgi/src/main/java/org/killbill/billing/osgi/BundleRegistry.java b/osgi/src/main/java/org/killbill/billing/osgi/BundleRegistry.java index 82e73dbf..8b9a9c31 100644 --- a/osgi/src/main/java/org/killbill/billing/osgi/BundleRegistry.java +++ b/osgi/src/main/java/org/killbill/billing/osgi/BundleRegistry.java @@ -101,7 +101,6 @@ private void stopAndUninstallBundle(final Bundle bundle, final String pluginName } public void startBundles(final Iterable mandatoryPlugins) throws Exception { - log.info("List of mandatory plugins: {}", mandatoryPlugins); final List pluginsStarted = new LinkedList<>(); for (final BundleWithConfig bundleWithConfig : bundleWithConfigs) { final boolean isBundleStarted = fileInstall.startBundle(bundleWithConfig.getBundle()); @@ -115,16 +114,17 @@ public void startBundles(final Iterable mandatoryPlugins) throws Excepti } - if (mandatoryPlugins != null && mandatoryPlugins.iterator().hasNext()) { - checkIfMandatoryPluginsAreStarted(pluginsStarted, mandatoryPlugins); - } - else { - log.info("Mandatory plugins not specified, skipping mandatory plugins check"); - } - + checkIfMandatoryPluginsAreStarted(pluginsStarted, mandatoryPlugins); } private void checkIfMandatoryPluginsAreStarted(final List pluginsStarted, final Iterable mandatoryPlugins) throws Exception { + log.info("List of mandatory plugins: {}", mandatoryPlugins); + + if (mandatoryPlugins == null || !mandatoryPlugins.iterator().hasNext()) { + log.info("Mandatory plugins not specified, skipping mandatory plugins check"); + return; + } + for (final String pluginName : mandatoryPlugins) { if (!pluginsStarted.contains(pluginName)) { log.warn("Mandatory plugin {} not started", pluginName);