From 5ddfa792621e86bcde46011829df38b70f3fbc00 Mon Sep 17 00:00:00 2001 From: Sergey Ponomarev Date: Fri, 24 Jul 2026 01:12:00 +0300 Subject: [PATCH] PluginManager: Simplify OS check --- .../org/jivesoftware/spark/PluginManager.java | 19 +++++++++++++++---- .../src/main/plugin-metadata/plugin.xml | 1 - .../src/main/plugin-metadata/plugin.xml | 1 - .../meet/src/main/plugin-metadata/plugin.xml | 1 - .../otr/src/main/plugin-metadata/plugin.xml | 1 - .../roar/src/main/plugin-metadata/plugin.xml | 1 - .../sip/src/main/plugin-metadata/plugin.xml | 1 - .../src/main/plugin-metadata/plugin.xml | 1 - .../src/main/plugin-metadata/plugin.xml | 1 - 9 files changed, 15 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/org/jivesoftware/spark/PluginManager.java b/core/src/main/java/org/jivesoftware/spark/PluginManager.java index b0a5d1912..e06b76a95 100644 --- a/core/src/main/java/org/jivesoftware/spark/PluginManager.java +++ b/core/src/main/java/org/jivesoftware/spark/PluginManager.java @@ -65,6 +65,7 @@ import java.util.jar.JarFile; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import static org.apache.commons.lang3.StringUtils.isBlank; import static org.apache.commons.lang3.StringUtils.isEmpty; import static org.jivesoftware.sparkimpl.plugin.InternalPlugins.getInternalPlugins; @@ -143,10 +144,11 @@ public class PluginManager implements MainWindowListener } /** - * Deletes Plugins in pathToSearch that have a different md5-hash than its correspondant in install\spark\plugins\ + * Deletes Plugins in pathToSearch that have a different md5-hash than its correspondent in install\spark\plugins\ */ private void deleteOldPlugins( File pathToSearch ) { + Log.debug("Deleting old plugins in " + pathToSearch.getAbsolutePath()); File installPath = Spark.getPluginDirectory(); File[] files = installPath.listFiles(); List installerFiles = files == null ? List.of() : Arrays.asList(files); @@ -176,7 +178,7 @@ public class PluginManager implements MainWindowListener final String newFile = StringUtils.getMD5Checksum( f.getAbsolutePath() ); if ( !oldFile.equals( newFile ) ) { - Log.debug( "deleting: " + file.getAbsolutePath() + "," + jarFile.getAbsolutePath() ); + Log.warning( "deleting: " + file.getAbsolutePath() + "," + jarFile.getAbsolutePath() ); uninstall( file ); jarFile.delete(); } @@ -195,6 +197,7 @@ public class PluginManager implements MainWindowListener */ private void deletePluginIfNotExistInInstallFolder(File pathToSearch) { + Log.warning("Deleting plugins in " + pathToSearch.getAbsolutePath() + " which doesn't exist in " + PLUGINS_DIRECTORY.getAbsolutePath()); final File[] files = PLUGINS_DIRECTORY.listFiles(); Set installerFiles; if ( files == null ) @@ -492,6 +495,7 @@ public class PluginManager implements MainWindowListener private void updateClasspath() { + Log.debug("updating classpath: " + PLUGINS_DIRECTORY); try { classLoader = new PluginClassLoader( getParentClassLoader(), PLUGINS_DIRECTORY ); @@ -506,6 +510,7 @@ public class PluginManager implements MainWindowListener private void loadPluginResources( String resourceName, ResourceType type ) { + Log.debug("Loading plugin resources from " + resourceName); try { PropertyResourceBundle prbPlugin = (PropertyResourceBundle) ResourceBundle.getBundle( resourceName, Locale.getDefault(), classLoader ); @@ -839,6 +844,7 @@ public class PluginManager implements MainWindowListener */ private void unzipPlugin( File file, File dir ) { + Log.warning("Unzipping plugin from " + file.getAbsolutePath() + " to " + dir.getAbsolutePath()); try { ZipFile zipFile = new JarFile( file ); @@ -899,6 +905,7 @@ public class PluginManager implements MainWindowListener private void uninstall( File pluginDir ) { + Log.warning("Uninstalling plugin: " + pluginDir); try { Files.walkFileTree( pluginDir.toPath(), new SimpleFileVisitor() @@ -931,6 +938,7 @@ public class PluginManager implements MainWindowListener */ public void removePublicPlugin( PublicPlugin plugin ) { + Log.warning("Remove plugin: " + plugin.getName()); for ( PublicPlugin publicPlugin : getPublicPlugins() ) { if ( plugin.getName().equals( publicPlugin.getName() ) ) @@ -974,14 +982,17 @@ public class PluginManager implements MainWindowListener if ( osElement != null ) { String operatingSystem = osElement.getText(); + // If no OS specified, then assume all of them are supported + if (isBlank(operatingSystem)) { + return true; + } final String currentOS = JiveInfo.getOS().toLowerCase(); // Iterate through comma-delimited string StringTokenizer tkn = new StringTokenizer( operatingSystem, "," ); while ( tkn.hasMoreTokens() ) { String os = tkn.nextToken().toLowerCase(); - if ( currentOS.contains( os ) || currentOS.equalsIgnoreCase( os ) ) - { + if (currentOS.contains(os)) { return true; } } diff --git a/plugins/battleships/src/main/plugin-metadata/plugin.xml b/plugins/battleships/src/main/plugin-metadata/plugin.xml index 57f69960a..97f3c5663 100644 --- a/plugins/battleships/src/main/plugin-metadata/plugin.xml +++ b/plugins/battleships/src/main/plugin-metadata/plugin.xml @@ -7,6 +7,5 @@ https://IgniteRealtime.org support@IgniteRealtime.org 3.1.0 - Windows,Linux,Mac 11 diff --git a/plugins/jingle/src/main/plugin-metadata/plugin.xml b/plugins/jingle/src/main/plugin-metadata/plugin.xml index 0a20e7ad5..0c003043f 100644 --- a/plugins/jingle/src/main/plugin-metadata/plugin.xml +++ b/plugins/jingle/src/main/plugin-metadata/plugin.xml @@ -7,6 +7,5 @@ support@IgniteRealtime.org org.jivesoftware.spark.plugin.jingle.JinglePlugin 3.1.0 - Windows,mac,linux 11 diff --git a/plugins/meet/src/main/plugin-metadata/plugin.xml b/plugins/meet/src/main/plugin-metadata/plugin.xml index 788b82561..68a599905 100644 --- a/plugins/meet/src/main/plugin-metadata/plugin.xml +++ b/plugins/meet/src/main/plugin-metadata/plugin.xml @@ -7,6 +7,5 @@ support@IgniteRealtime.org org.jivesoftware.spark.plugin.ofmeet.SparkMeetPlugin 3.1.0 - Windows,Linux,Mac 11 diff --git a/plugins/otr/src/main/plugin-metadata/plugin.xml b/plugins/otr/src/main/plugin-metadata/plugin.xml index 60dd5edfe..1ecd3c2c1 100644 --- a/plugins/otr/src/main/plugin-metadata/plugin.xml +++ b/plugins/otr/src/main/plugin-metadata/plugin.xml @@ -8,5 +8,4 @@ 3.1.0 11 org.jivesoftware.spark.plugin.otr.OTRPlugin - Windows,Linux,Mac diff --git a/plugins/roar/src/main/plugin-metadata/plugin.xml b/plugins/roar/src/main/plugin-metadata/plugin.xml index 6cc793c98..270eef672 100644 --- a/plugins/roar/src/main/plugin-metadata/plugin.xml +++ b/plugins/roar/src/main/plugin-metadata/plugin.xml @@ -7,6 +7,5 @@ https://IgniteRealtime.org support@IgniteRealtime.org 3.1.0 - Windows,Linux,Mac 11 diff --git a/plugins/sip/src/main/plugin-metadata/plugin.xml b/plugins/sip/src/main/plugin-metadata/plugin.xml index 58e6c0966..bd66b5a82 100644 --- a/plugins/sip/src/main/plugin-metadata/plugin.xml +++ b/plugins/sip/src/main/plugin-metadata/plugin.xml @@ -7,7 +7,6 @@ support@IgniteRealtime.org org.jivesoftware.sparkplugin.SoftPhonePlugin 3.1.0 - Windows,Mac,Linux 11 diff --git a/plugins/spelling/src/main/plugin-metadata/plugin.xml b/plugins/spelling/src/main/plugin-metadata/plugin.xml index 346d5b4f2..82080f92b 100755 --- a/plugins/spelling/src/main/plugin-metadata/plugin.xml +++ b/plugins/spelling/src/main/plugin-metadata/plugin.xml @@ -7,7 +7,6 @@ support@IgniteRealtime.org org.jivesoftware.spellchecker.SpellcheckerPlugin 3.1.0 - Windows,Mac,Linux 11 diff --git a/plugins/tictactoe/src/main/plugin-metadata/plugin.xml b/plugins/tictactoe/src/main/plugin-metadata/plugin.xml index ae2d1b787..c919bcd5e 100644 --- a/plugins/tictactoe/src/main/plugin-metadata/plugin.xml +++ b/plugins/tictactoe/src/main/plugin-metadata/plugin.xml @@ -7,6 +7,5 @@ https://IgniteRealtime.org support@IgniteRealtime.org 3.1.0 - Windows,Linux,Mac 11