From 5f6d1325c0f984cee7fe57092f5323d574693b2b Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sat, 12 Mar 2011 16:41:20 +0100 Subject: [PATCH] use plugin condition in backend --- scm-plugin-backend/pom.xml | 2 +- .../java/sonia/scm/plugin/rest/DefaultPluginFilter.java | 7 +++++-- .../sonia/scm/plugin/scanner/DefaultPluginScanner.java | 8 ++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/scm-plugin-backend/pom.xml b/scm-plugin-backend/pom.xml index 236ea1e6e1..6821630f21 100644 --- a/scm-plugin-backend/pom.xml +++ b/scm-plugin-backend/pom.xml @@ -53,7 +53,7 @@ maven-jetty-plugin 6.1.26 - 8005 + 8004 STOP ${project.build.javaLevel} ${project.build.javaLevel} diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/DefaultPluginFilter.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/DefaultPluginFilter.java index 0b74a605f9..29501abaa6 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/DefaultPluginFilter.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/DefaultPluginFilter.java @@ -35,6 +35,7 @@ package sonia.scm.plugin.rest; //~--- non-JDK imports -------------------------------------------------------- +import sonia.scm.plugin.PluginCondition; import sonia.scm.plugin.PluginFilter; import sonia.scm.plugin.PluginInformation; @@ -81,8 +82,10 @@ public class DefaultPluginFilter implements PluginFilter @Override public boolean accept(PluginInformation plugin) { - return snapshot - ||!plugin.getVersion().toUpperCase().contains(VERSION_SNAPSHOT); + PluginCondition condition = plugin.getCondition(); + return ((condition != null) && condition.isSupported(version, os, arch)) + || (condition == null) && + (snapshot || !plugin.getVersion().toUpperCase().contains(VERSION_SNAPSHOT)); } //~--- fields --------------------------------------------------------------- diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/scanner/DefaultPluginScanner.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/scanner/DefaultPluginScanner.java index 5d83ed1248..10a4f107f5 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/scanner/DefaultPluginScanner.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/scanner/DefaultPluginScanner.java @@ -40,6 +40,7 @@ import org.slf4j.LoggerFactory; import sonia.scm.plugin.Plugin; import sonia.scm.plugin.PluginBackend; +import sonia.scm.plugin.PluginCondition; import sonia.scm.plugin.PluginException; import sonia.scm.util.IOUtil; @@ -158,6 +159,13 @@ public class DefaultPluginScanner implements PluginScanner if ((plugin != null) && (plugin.getInformation() != null) && plugin.getInformation().isValid()) { + PluginCondition condition = plugin.getCondition(); + + if (condition != null) + { + plugin.getInformation().setCondition(condition); + } + if (logger.isInfoEnabled()) { logger.info("add plugin {} to backend", file.getPath());