From f266d65c950059b7cd85d3097e68fafd5f044d62 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Sun, 15 Nov 2020 13:37:41 +0100 Subject: [PATCH] #163 - Update libPlugins, prevent duplicated plugin loading --- .../playpad/initialize/PluginLoadingTask.scala | 8 ++++++++ PlayWallCore/pom.xml | 4 ++++ .../tobias/playpad/plugin/ModernPluginManager.java | 14 +++++++------- .../playpad/awakeplugin/AwakePluginImpl.java | 2 +- .../equalizerplugin/impl/EqualizerPluginImpl.java | 2 +- .../launchpadplugin/impl/LaunchpadPluginImpl.java | 2 +- .../plugin/media/main/impl/MediaPluginImpl.java | 2 +- .../playpad/plugin/NativeAudioPluginImpl.scala | 3 ++- .../playpad/plugin/playout/PlayoutLogPlugin.java | 2 +- .../tobias/playpad/plugin/api/WebApiPlugin.scala | 3 ++- pom.xml | 9 +-------- 11 files changed, 29 insertions(+), 22 deletions(-) diff --git a/PlayWall/src/main/scala/de/tobias/playpad/initialize/PluginLoadingTask.scala b/PlayWall/src/main/scala/de/tobias/playpad/initialize/PluginLoadingTask.scala index 0d415d80..7b4d7bac 100644 --- a/PlayWall/src/main/scala/de/tobias/playpad/initialize/PluginLoadingTask.scala +++ b/PlayWall/src/main/scala/de/tobias/playpad/initialize/PluginLoadingTask.scala @@ -1,4 +1,5 @@ package de.tobias.playpad.initialize + import java.io.IOException import java.nio.file.{Path, Paths} @@ -8,6 +9,8 @@ import de.thecodelabs.utils.application.ApplicationUtils import de.thecodelabs.utils.application.container.PathType import de.tobias.playpad.PlayPadImpl import de.tobias.playpad.plugin.ModernPluginManager +import javafx.application.Platform +import org.controlsfx.dialog.ExceptionDialog class PluginLoadingTask extends PlayPadInitializeTask { override def name(): String = "Plugins" @@ -34,6 +37,11 @@ class PluginLoadingTask extends PlayPadInitializeTask { case e: Exception => Logger.error("Unable to load plugins") Logger.error(e) + + Platform.runLater(() => { + val dialog = new ExceptionDialog(e) + dialog.showAndWait() + }) } } diff --git a/PlayWallCore/pom.xml b/PlayWallCore/pom.xml index e2f7f2d2..0bef26a7 100644 --- a/PlayWallCore/pom.xml +++ b/PlayWallCore/pom.xml @@ -29,10 +29,14 @@ <dependency> <groupId>de.thecodelabs</groupId> <artifactId>libPlugins-core</artifactId> + <version>${libPlugins.version}</version> + <classifier>java8</classifier> </dependency> <dependency> <groupId>de.thecodelabs</groupId> <artifactId>libPlugins-versionizer</artifactId> + <version>${libPlugins.version}</version> + <classifier>java8</classifier> </dependency> <dependency> <groupId>de.thecodelabs.versionizer</groupId> diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/plugin/ModernPluginManager.java b/PlayWallCore/src/main/java/de/tobias/playpad/plugin/ModernPluginManager.java index 6a771056..40505787 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/plugin/ModernPluginManager.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/plugin/ModernPluginManager.java @@ -2,8 +2,8 @@ package de.tobias.playpad.plugin; import de.thecodelabs.logger.Logger; import de.thecodelabs.plugins.Plugin; -import de.thecodelabs.plugins.PluginArtifact; import de.thecodelabs.plugins.PluginManager; +import de.thecodelabs.plugins.versionizer.PluginArtifact; import de.thecodelabs.utils.application.ApplicationUtils; import de.thecodelabs.utils.application.container.PathType; import de.tobias.playpad.PlayPadPlugin; @@ -25,10 +25,10 @@ public class ModernPluginManager { private static final String PLUGIN_INFO_TXT = "pluginInfo.txt"; - private PluginManager pluginManager; - private Set<Path> deletedPlugins; + private final PluginManager pluginManager; + private final Set<Path> deletedPlugins; - private Set<Module> modules; + private final Set<Module> modules; private static ModernPluginManager instance; @@ -59,14 +59,14 @@ public class ModernPluginManager { public void loadFile(Path path) { if (path.endsWith("classes")) { - pluginManager.addFile(path); + pluginManager.addPluginFile(path); } else { - pluginManager.addFolder(path); + pluginManager.addPluginsOfDirectory(path); } pluginManager.loadPlugins(); // Registriert Funktionen aus Plugin (Module) - for (Plugin p : pluginManager.getPlugins()) { + for (Plugin p : pluginManager.getLoadedPlugins()) { if (p instanceof PlayPadPluginStub) { modules.add(((PlayPadPluginStub) p).getModule()); } diff --git a/PlayWallPlugins/PlayWallPluginAwake/src/main/java/de/tobias/playpad/awakeplugin/AwakePluginImpl.java b/PlayWallPlugins/PlayWallPluginAwake/src/main/java/de/tobias/playpad/awakeplugin/AwakePluginImpl.java index aa546a32..4c47a3b6 100644 --- a/PlayWallPlugins/PlayWallPluginAwake/src/main/java/de/tobias/playpad/awakeplugin/AwakePluginImpl.java +++ b/PlayWallPlugins/PlayWallPluginAwake/src/main/java/de/tobias/playpad/awakeplugin/AwakePluginImpl.java @@ -1,8 +1,8 @@ package de.tobias.playpad.awakeplugin; import de.thecodelabs.logger.Logger; -import de.thecodelabs.plugins.PluginArtifact; import de.thecodelabs.plugins.PluginDescriptor; +import de.thecodelabs.plugins.versionizer.PluginArtifact; import de.thecodelabs.utils.application.system.NativeApplication; import de.thecodelabs.utils.ui.icon.FontAwesomeType; import de.thecodelabs.utils.ui.icon.FontIcon; diff --git a/PlayWallPlugins/PlayWallPluginEqualizer/src/main/java/de/tobias/playpad/equalizerplugin/impl/EqualizerPluginImpl.java b/PlayWallPlugins/PlayWallPluginEqualizer/src/main/java/de/tobias/playpad/equalizerplugin/impl/EqualizerPluginImpl.java index 6ff24f83..f65d2d28 100644 --- a/PlayWallPlugins/PlayWallPluginEqualizer/src/main/java/de/tobias/playpad/equalizerplugin/impl/EqualizerPluginImpl.java +++ b/PlayWallPlugins/PlayWallPluginEqualizer/src/main/java/de/tobias/playpad/equalizerplugin/impl/EqualizerPluginImpl.java @@ -1,8 +1,8 @@ package de.tobias.playpad.equalizerplugin.impl; import de.thecodelabs.logger.Logger; -import de.thecodelabs.plugins.PluginArtifact; import de.thecodelabs.plugins.PluginDescriptor; +import de.thecodelabs.plugins.versionizer.PluginArtifact; import de.thecodelabs.utils.application.ApplicationUtils; import de.thecodelabs.utils.application.container.PathType; import de.thecodelabs.utils.ui.NVCStage; diff --git a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java index 3c153f97..0a62f947 100644 --- a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java +++ b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java @@ -2,8 +2,8 @@ package de.tobias.playpad.launchpadplugin.impl; import de.thecodelabs.logger.Logger; import de.thecodelabs.midi.midi.feedback.MidiFeedbackTranscriptionRegistry; -import de.thecodelabs.plugins.PluginArtifact; import de.thecodelabs.plugins.PluginDescriptor; +import de.thecodelabs.plugins.versionizer.PluginArtifact; import de.tobias.playpad.launchpadplugin.midi.mk2.LaunchPadMK2; import de.tobias.playpad.launchpadplugin.midi.s.LaunchPadS; import de.tobias.playpad.plugin.Module; diff --git a/PlayWallPlugins/PlayWallPluginMedia/src/main/java/de/tobias/playpad/plugin/media/main/impl/MediaPluginImpl.java b/PlayWallPlugins/PlayWallPluginMedia/src/main/java/de/tobias/playpad/plugin/media/main/impl/MediaPluginImpl.java index 0565647d..3fa00ae7 100644 --- a/PlayWallPlugins/PlayWallPluginMedia/src/main/java/de/tobias/playpad/plugin/media/main/impl/MediaPluginImpl.java +++ b/PlayWallPlugins/PlayWallPluginMedia/src/main/java/de/tobias/playpad/plugin/media/main/impl/MediaPluginImpl.java @@ -2,8 +2,8 @@ package de.tobias.playpad.plugin.media.main.impl; import de.thecodelabs.logger.Logger; import de.thecodelabs.midi.action.ActionRegistry; -import de.thecodelabs.plugins.PluginArtifact; import de.thecodelabs.plugins.PluginDescriptor; +import de.thecodelabs.plugins.versionizer.PluginArtifact; import de.thecodelabs.utils.ui.icon.FontAwesomeType; import de.thecodelabs.utils.ui.icon.FontIcon; import de.thecodelabs.utils.ui.scene.HUD; diff --git a/PlayWallPlugins/PlayWallPluginNativeAudio/src/main/scala/de/tobias/playpad/plugin/NativeAudioPluginImpl.scala b/PlayWallPlugins/PlayWallPluginNativeAudio/src/main/scala/de/tobias/playpad/plugin/NativeAudioPluginImpl.scala index 040c23f8..c273ca5d 100644 --- a/PlayWallPlugins/PlayWallPluginNativeAudio/src/main/scala/de/tobias/playpad/plugin/NativeAudioPluginImpl.scala +++ b/PlayWallPlugins/PlayWallPluginNativeAudio/src/main/scala/de/tobias/playpad/plugin/NativeAudioPluginImpl.scala @@ -1,6 +1,7 @@ package de.tobias.playpad.plugin -import de.thecodelabs.plugins.{PluginArtifact, PluginDescriptor} +import de.thecodelabs.plugins.PluginDescriptor +import de.thecodelabs.plugins.versionizer.PluginArtifact import de.thecodelabs.utils.util.OS import de.thecodelabs.utils.util.OS.OSType import de.tobias.playpad.plugin.loader.{MacAudioImplLoader, WindowsAudioImplLoader} diff --git a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/PlayoutLogPlugin.java b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/PlayoutLogPlugin.java index 278ec6c4..afa5ff76 100644 --- a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/PlayoutLogPlugin.java +++ b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/PlayoutLogPlugin.java @@ -2,8 +2,8 @@ package de.tobias.playpad.plugin.playout; import de.thecodelabs.logger.LogLevel; import de.thecodelabs.logger.Logger; -import de.thecodelabs.plugins.PluginArtifact; import de.thecodelabs.plugins.PluginDescriptor; +import de.thecodelabs.plugins.versionizer.PluginArtifact; import de.thecodelabs.utils.util.Localization; import de.tobias.playpad.PlayPadPlugin; import de.tobias.playpad.plugin.Module; diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/WebApiPlugin.scala b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/WebApiPlugin.scala index 2eb1c9a7..b48693f9 100644 --- a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/WebApiPlugin.scala +++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/WebApiPlugin.scala @@ -1,7 +1,8 @@ package de.tobias.playpad.plugin.api import de.thecodelabs.logger.Logger -import de.thecodelabs.plugins.{PluginArtifact, PluginDescriptor} +import de.thecodelabs.plugins.PluginDescriptor +import de.thecodelabs.plugins.versionizer.PluginArtifact import de.tobias.playpad.PlayPadPlugin import de.tobias.playpad.plugin.api.websocket.WebSocketHandler import de.tobias.playpad.plugin.api.websocket.listener.{PadStatusListener, ProjectListener} diff --git a/pom.xml b/pom.xml index 08781928..cd8ee39d 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ <components.version>${project.version}</components.version> <jlibs.version>2.0.6</jlibs.version> - <libPlugins.version>2.2.1</libPlugins.version> + <libPlugins.version>3.0.6</libPlugins.version> <versionizer-api.version>1.2.0</versionizer-api.version> <jlayer.version>1.0.1</jlayer.version> @@ -66,13 +66,6 @@ <type>pom</type> <scope>import</scope> </dependency> - <dependency> - <groupId>de.thecodelabs</groupId> - <artifactId>libPlugins</artifactId> - <version>${libPlugins.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> </dependencies> </dependencyManagement> -- GitLab