From 94ee5102c5c1dcfbb0e21388da8dbd12dd7154fc Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Mon, 11 May 2015 14:14:54 +0200 Subject: [PATCH] SONAR-6517 fix loading of field Sonar-RequirePlugins --- .../PluginReferentialMetadataConverter.java | 20 ++++++++++++++++--- .../org/sonar/core/platform/PluginInfo.java | 5 +++++ .../sonar/core/platform/PluginInfoTest.java | 3 +++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/plugins/PluginReferentialMetadataConverter.java b/server/sonar-server/src/main/java/org/sonar/server/plugins/PluginReferentialMetadataConverter.java index 70afcb42068..1355a971f0c 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/plugins/PluginReferentialMetadataConverter.java +++ b/server/sonar-server/src/main/java/org/sonar/server/plugins/PluginReferentialMetadataConverter.java @@ -19,12 +19,16 @@ */ package org.sonar.server.plugins; +import com.google.common.base.Function; +import com.google.common.collect.Collections2; import org.sonar.core.platform.PluginInfo; import org.sonar.updatecenter.common.PluginManifest; import org.sonar.updatecenter.common.PluginReferential; import org.sonar.updatecenter.common.PluginReferentialManifestConverter; import org.sonar.updatecenter.common.Version; +import javax.annotation.Nonnull; + import java.util.Collection; import java.util.List; @@ -36,8 +40,8 @@ public class PluginReferentialMetadataConverter { // Only static call } - public static PluginReferential getInstalledPluginReferential(Collection metadata) { - List pluginManifestList = getPluginManifestList(metadata); + public static PluginReferential getInstalledPluginReferential(Collection infos) { + List pluginManifestList = getPluginManifestList(infos); return PluginReferentialManifestConverter.fromPluginManifests(pluginManifestList); } @@ -67,7 +71,17 @@ public class PluginReferentialMetadataConverter { pluginManifest.setHomepage(metadata.getHomepageUrl()); pluginManifest.setIssueTrackerUrl(metadata.getIssueTrackerUrl()); pluginManifest.setBasePlugin(metadata.getBasePlugin()); - pluginManifest.setRequirePlugins(metadata.getRequiredPlugins().toArray(new String[] {})); + pluginManifest.setRequirePlugins(Collections2.transform(metadata.getRequiredPlugins(), RequiredPluginToString.INSTANCE).toArray( + new String[metadata.getRequiredPlugins().size()])); return pluginManifest; } + + private enum RequiredPluginToString implements Function { + INSTANCE; + + @Override + public String apply(@Nonnull PluginInfo.RequiredPlugin requiredPlugin) { + return requiredPlugin.toString(); + } + } } diff --git a/sonar-core/src/main/java/org/sonar/core/platform/PluginInfo.java b/sonar-core/src/main/java/org/sonar/core/platform/PluginInfo.java index 66e1942ee58..71edd759fb2 100644 --- a/sonar-core/src/main/java/org/sonar/core/platform/PluginInfo.java +++ b/sonar-core/src/main/java/org/sonar/core/platform/PluginInfo.java @@ -87,6 +87,11 @@ public class PluginInfo implements Comparable { public int hashCode() { return key.hashCode(); } + + @Override + public String toString() { + return new StringBuilder().append(key).append(':').append(minimalVersion.getName()).toString(); + } } private final String key; diff --git a/sonar-core/src/test/java/org/sonar/core/platform/PluginInfoTest.java b/sonar-core/src/test/java/org/sonar/core/platform/PluginInfoTest.java index ccc1d4793cc..02cdea2aebe 100644 --- a/sonar-core/src/test/java/org/sonar/core/platform/PluginInfoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/platform/PluginInfoTest.java @@ -47,6 +47,9 @@ public class PluginInfoTest { PluginInfo.RequiredPlugin plugin = PluginInfo.RequiredPlugin.parse("java:1.1"); assertThat(plugin.getKey()).isEqualTo("java"); assertThat(plugin.getMinimalVersion().getName()).isEqualTo("1.1"); + assertThat(plugin.toString()).isEqualTo("java:1.1"); + assertThat(plugin.equals(PluginInfo.RequiredPlugin.parse("java:1.2"))).isTrue(); + assertThat(plugin.equals(PluginInfo.RequiredPlugin.parse("php:1.2"))).isFalse(); try { PluginInfo.RequiredPlugin.parse("java"); -- 2.39.5