diff options
author | Simon Brandhof <simon.brandhof@sonarsource.com> | 2015-05-11 14:14:54 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2015-05-11 14:14:54 +0200 |
commit | 94ee5102c5c1dcfbb0e21388da8dbd12dd7154fc (patch) | |
tree | a1311836107e54624c2cb70b53354a15f7b5d5c1 | |
parent | 2e42d82b6033763f1d7bd410cd13f6c65b2cb094 (diff) | |
download | sonarqube-94ee5102c5c1dcfbb0e21388da8dbd12dd7154fc.tar.gz sonarqube-94ee5102c5c1dcfbb0e21388da8dbd12dd7154fc.zip |
SONAR-6517 fix loading of field Sonar-RequirePlugins
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<PluginInfo> metadata) { - List<PluginManifest> pluginManifestList = getPluginManifestList(metadata); + public static PluginReferential getInstalledPluginReferential(Collection<PluginInfo> infos) { + List<PluginManifest> 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<PluginInfo.RequiredPlugin, String> { + 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<PluginInfo> { 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"); |