aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2015-05-11 14:14:54 +0200
committerSimon Brandhof <simon.brandhof@sonarsource.com>2015-05-11 14:14:54 +0200
commit94ee5102c5c1dcfbb0e21388da8dbd12dd7154fc (patch)
treea1311836107e54624c2cb70b53354a15f7b5d5c1
parent2e42d82b6033763f1d7bd410cd13f6c65b2cb094 (diff)
downloadsonarqube-94ee5102c5c1dcfbb0e21388da8dbd12dd7154fc.tar.gz
sonarqube-94ee5102c5c1dcfbb0e21388da8dbd12dd7154fc.zip
SONAR-6517 fix loading of field Sonar-RequirePlugins
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/plugins/PluginReferentialMetadataConverter.java20
-rw-r--r--sonar-core/src/main/java/org/sonar/core/platform/PluginInfo.java5
-rw-r--r--sonar-core/src/test/java/org/sonar/core/platform/PluginInfoTest.java3
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");