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 0d415d80d9cd6c21276953546d84d47c187b770e..7b4d7bacf7a75ff8a6ee3ad8e67cd9a523ed6ffc 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 e2f7f2d2f67a8ed6af95a543b09d75d003aaec2c..0bef26a7e5289ed50faf3553a029a6c27d1d1ec0 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 6a7710569a56500cac8e246091f31523071c9190..40505787027f23d67c65d616d4ab9b889c0b347b 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 aa546a3218fa87200ddeb5090f9b0e7328200391..4c47a3b672cc4a81d24a34c3aa47bb684d19961b 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 6ff24f83ac9122fa073da85a772a97ff6be76307..f65d2d28af1b7df25ed6f40c6a92f36a323deb95 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 3c153f971bccd8dc41be1b3c7cd99470d0c89286..0a62f947c6504e42134e4e139aaff43886478acf 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 0565647dc30745ffb5da019f0910176bad972704..3fa00ae758861e8750be5612b857fe3cc9f2b35b 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 040c23f86adb8eb5eb4a08c1a3426e22c8e99607..c273ca5d167c831fa94c23bcc5e148ac9658a893 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 278ec6c4523045ae4784801f2b38d254efc57e0d..afa5ff76555f3a0eea4d166affb042e78d45424a 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 2eb1c9a7579ed7a3b0e3f5a3abceeacdf219753b..b48693f977353202c063d4d00dc9b3ae5d21d915 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 08781928dbc439dbf7103ba7a058b26b6301fa27..cd8ee39d85532020ee47d124fca87fdb87eabab3 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>