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());