From b704fe39e6b3d71d151115b80d231b694264f8ee Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Mon, 16 Jun 2014 09:35:37 +0200 Subject: [PATCH] SONAR-5389 Allow to register unpackaged plugins --- .../sonar/batch/bootstrap/BatchPluginRepository.java | 10 ++++++++++ .../batch/bootstrap/DefaultPluginsReferential.java | 9 +++++++++ .../org/sonar/batch/bootstrap/PluginsReferential.java | 10 +++++++++- .../org/sonar/api/issue/internal/DefaultIssue.java | 8 ++++++-- 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchPluginRepository.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchPluginRepository.java index aea375f3c0d..e65adbce4fc 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchPluginRepository.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchPluginRepository.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonar.api.CoreProperties; import org.sonar.api.Plugin; +import org.sonar.api.SonarPlugin; import org.sonar.api.config.Settings; import org.sonar.api.platform.PluginMetadata; import org.sonar.api.platform.PluginRepository; @@ -69,6 +70,15 @@ public class BatchPluginRepository implements PluginRepository { public void start() { LOG.info("Install plugins"); doStart(pluginsReferential.pluginList()); + + Map localPlugins = pluginsReferential.localPlugins(); + if (!localPlugins.isEmpty()) { + LOG.info("Install local plugins"); + for (Map.Entry pluginByMetadata : localPlugins.entrySet()) { + metadataByKey.put(pluginByMetadata.getKey().getKey(), pluginByMetadata.getKey()); + pluginsByKey.put(pluginByMetadata.getKey().getKey(), pluginByMetadata.getValue()); + } + } } void doStart(List remotePlugins) { diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/DefaultPluginsReferential.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/DefaultPluginsReferential.java index 93ae4e97c34..4d3c8d30d64 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/DefaultPluginsReferential.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/DefaultPluginsReferential.java @@ -24,13 +24,17 @@ import org.apache.commons.lang.CharUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.sonar.api.SonarPlugin; +import org.sonar.api.platform.PluginMetadata; import org.sonar.core.plugins.RemotePlugin; import org.sonar.core.plugins.RemotePluginFile; import org.sonar.home.cache.FileCache; import java.io.File; import java.io.IOException; +import java.util.Collections; import java.util.List; +import java.util.Map; /** * A {@link PluginsReferential} implementation that put downloaded plugins in a FS cache. @@ -87,4 +91,9 @@ public class DefaultPluginsReferential implements PluginsReferential { } } + @Override + public Map localPlugins() { + return Collections.emptyMap(); + } + } diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/PluginsReferential.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/PluginsReferential.java index daf38ae7abf..330c8bfb337 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/PluginsReferential.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/PluginsReferential.java @@ -19,10 +19,13 @@ */ package org.sonar.batch.bootstrap; +import org.sonar.api.SonarPlugin; +import org.sonar.api.platform.PluginMetadata; import org.sonar.core.plugins.RemotePlugin; import java.io.File; import java.util.List; +import java.util.Map; /** * Plugin referential. @@ -31,7 +34,7 @@ import java.util.List; public interface PluginsReferential { /** - * Return list of plugins to be installed + * Return list of remote plugins to be installed */ List pluginList(); @@ -40,4 +43,9 @@ public interface PluginsReferential { */ File pluginFile(RemotePlugin remote); + /** + * Return the list of local plugins to be installed + */ + Map localPlugins(); + } diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java index d5a4f38d177..51a5abfd174 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java @@ -39,7 +39,11 @@ import javax.annotation.CheckForNull; import javax.annotation.Nullable; import java.io.Serializable; -import java.util.*; +import java.util.Calendar; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.Map; import static com.google.common.collect.Lists.newArrayList; @@ -215,7 +219,7 @@ public class DefaultIssue implements Issue { } @CheckForNull - public Long debtInMinutes(){ + public Long debtInMinutes() { return debt != null ? debt.toMinutes() : null; } -- 2.39.5