From 65d4574e420483ae06fed9d9a3af82ce2bd0b344 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Fri, 24 Apr 2015 17:24:44 +0200 Subject: [PATCH] SONAR-6430 add plugin source revision to JSON response information added to response of WS listing installed pluging and pending operations on plugins --- .../sonar/server/platform/ServerComponents.java | 14 ++++++++------ .../sonar/server/plugins/ws/PluginWSCommons.java | 7 ++++--- .../plugins/ws/example-installed_plugins.json | 3 +++ .../server/plugins/ws/example-pending_plugins.json | 3 +++ .../plugins/ws/InstalledPluginsWsActionTest.java | 5 +++-- .../plugins/ws/PendingPluginsWsActionTest.java | 8 +++++--- .../sonar/core/plugins/DefaultPluginMetadata.java | 1 + .../org/sonar/api/platform/PluginMetadata.java | 2 ++ 8 files changed, 29 insertions(+), 14 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java b/server/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java index e0c14535118..5cf50dc2bd3 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java +++ b/server/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java @@ -19,7 +19,13 @@ */ package org.sonar.server.platform; -import com.google.common.collect.Lists; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Properties; + +import javax.annotation.Nullable; + import org.sonar.api.config.EmailSettings; import org.sonar.api.issue.action.Actions; import org.sonar.api.platform.ComponentContainer; @@ -387,11 +393,7 @@ import org.sonar.server.view.index.ViewIndexer; import org.sonar.server.ws.ListingWs; import org.sonar.server.ws.WebServiceEngine; -import javax.annotation.Nullable; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.Properties; +import com.google.common.collect.Lists; class ServerComponents { diff --git a/server/sonar-server/src/main/java/org/sonar/server/plugins/ws/PluginWSCommons.java b/server/sonar-server/src/main/java/org/sonar/server/plugins/ws/PluginWSCommons.java index e4cfcba045a..1e694e0ed14 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/plugins/ws/PluginWSCommons.java +++ b/server/sonar-server/src/main/java/org/sonar/server/plugins/ws/PluginWSCommons.java @@ -22,6 +22,8 @@ package org.sonar.server.plugins.ws; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; import com.google.common.collect.Ordering; +import java.util.Comparator; +import javax.annotation.Nonnull; import org.sonar.api.platform.PluginMetadata; import org.sonar.api.utils.text.JsonWriter; import org.sonar.updatecenter.common.Artifact; @@ -30,9 +32,6 @@ import org.sonar.updatecenter.common.PluginUpdate; import org.sonar.updatecenter.common.Release; import org.sonar.updatecenter.common.UpdateCenter; -import javax.annotation.Nonnull; -import java.util.Comparator; - import static com.google.common.collect.Iterables.filter; import static com.google.common.collect.Iterables.transform; import static java.lang.String.CASE_INSENSITIVE_ORDER; @@ -57,6 +56,7 @@ public class PluginWSCommons { static final String OBJECT_RELEASE = "release"; static final String ARRAY_REQUIRES = "requires"; static final String PROPERTY_UPDATE_CENTER_REFRESH = "updateCenterRefresh"; + static final String PROPERTY_IMPLEMENTATION_BUILD = "implementationBuild"; public static final Ordering NAME_KEY_PLUGIN_METADATA_COMPARATOR = Ordering.natural() .onResultOf(PluginMetadataToName.INSTANCE) @@ -89,6 +89,7 @@ public class PluginWSCommons { jsonWriter.prop(PROPERTY_ORGANIZATION_URL, pluginMetadata.getOrganizationUrl()); jsonWriter.prop(PROPERTY_HOMEPAGE, pluginMetadata.getHomepage()); jsonWriter.prop(PROPERTY_ISSUE_TRACKER_URL, pluginMetadata.getIssueTrackerUrl()); + jsonWriter.prop(PROPERTY_IMPLEMENTATION_BUILD, pluginMetadata.getImplementationBuild()); } public void writeArtifact(JsonWriter jsonWriter, PluginMetadata pluginMetadata) { diff --git a/server/sonar-server/src/main/resources/org/sonar/server/plugins/ws/example-installed_plugins.json b/server/sonar-server/src/main/resources/org/sonar/server/plugins/ws/example-installed_plugins.json index 4ae7034f0b2..5c87a337d37 100644 --- a/server/sonar-server/src/main/resources/org/sonar/server/plugins/ws/example-installed_plugins.json +++ b/server/sonar-server/src/main/resources/org/sonar/server/plugins/ws/example-installed_plugins.json @@ -10,6 +10,7 @@ "organizationUrl": "http://www.sonarsource.com", "homepage": "http://redirect.sonarsource.com/plugins/scmgit.html", "issueTrackerUrl": "http://jira.codehaus.org/browse/SONARSCGIT", + "implementationBuild": "9ce9d330c313c296fab051317cc5ad4b26319e07", "artifact": { "name": "sonar-scm-git-plugin-1.0.jar" } @@ -24,6 +25,7 @@ "organizationUrl": "http://www.sonarsource.com", "homepage": "http://redirect.sonarsource.com/plugins/java.html", "issueTrackerUrl": "http://jira.codehaus.org/browse/SONARJAVA", + "implementationBuild": "65396a609ddface8b311a6a665aca92a7da694f1", "artifact": { "name": "sonar-java-plugin-3.0.jar" } @@ -38,6 +40,7 @@ "organizationUrl": "http://www.sonarsource.com", "homepage": "http://redirect.sonarsource.com/plugins/scmsvn.html", "issueTrackerUrl": "http://jira.codehaus.org/browse/SONARSCSVN", + "implementationBuild": "213fc8a8b582ff530b12dd4a59a6512be1071234", "artifact": { "name": "sonar-scm-svn-plugin-1.0.jar" } diff --git a/server/sonar-server/src/main/resources/org/sonar/server/plugins/ws/example-pending_plugins.json b/server/sonar-server/src/main/resources/org/sonar/server/plugins/ws/example-pending_plugins.json index 4e47bfe774b..508127f2ff5 100644 --- a/server/sonar-server/src/main/resources/org/sonar/server/plugins/ws/example-pending_plugins.json +++ b/server/sonar-server/src/main/resources/org/sonar/server/plugins/ws/example-pending_plugins.json @@ -11,6 +11,7 @@ "organizationUrl": "http://www.sonarsource.com", "homepage": "http://redirect.sonarsource.com/plugins/scmgit.html", "issueTrackerUrl": "http://jira.codehaus.org/browse/SONARSCGIT", + "implementationBuild": "9ce9d330c313c296fab051317cc5ad4b26319e07", "artifact": { "name": "sonar-scm-git-plugin-1.0.jar" } @@ -25,6 +26,7 @@ "organizationUrl": "http://www.sonarsource.com", "homepage": "http://redirect.sonarsource.com/plugins/java.html", "issueTrackerUrl": "http://jira.codehaus.org/browse/SONARJAVA", + "implementationBuild": "65396a609ddface8b311a6a665aca92a7da694f1", "artifact": { "name": "sonar-java-plugin-3.0.jar" } @@ -42,6 +44,7 @@ "organizationUrl": "http://www.sonarsource.com", "homepage": "http://redirect.sonarsource.com/plugins/scmsvn.html", "issueTrackerUrl": "http://jira.codehaus.org/browse/SONARSCSVN", + "implementationBuild": "213fc8a8b582ff530b12dd4a59a6512be1071234", "artifact": { "name": "sonar-scm-svn-plugin-1.0.jar" } diff --git a/server/sonar-server/src/test/java/org/sonar/server/plugins/ws/InstalledPluginsWsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/plugins/ws/InstalledPluginsWsActionTest.java index 6edf1af5264..3a79c281858 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/plugins/ws/InstalledPluginsWsActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/plugins/ws/InstalledPluginsWsActionTest.java @@ -19,6 +19,7 @@ */ package org.sonar.server.plugins.ws; +import java.io.File; import org.junit.Test; import org.sonar.api.platform.PluginMetadata; import org.sonar.api.platform.PluginRepository; @@ -27,8 +28,6 @@ import org.sonar.api.server.ws.WebService; import org.sonar.core.plugins.DefaultPluginMetadata; import org.sonar.server.ws.WsTester; -import java.io.File; - import static com.google.common.collect.ImmutableList.of; import static java.lang.String.valueOf; import static org.assertj.core.api.Assertions.assertThat; @@ -109,6 +108,7 @@ public class InstalledPluginsWsActionTest { .setHomepage("homepage_url") .setIssueTrackerUrl("issueTracker_url") .setFile(new File(getClass().getResource(jarFilename).toURI())) + .setImplementationBuild("sou_rev_sha1") ) ); @@ -128,6 +128,7 @@ public class InstalledPluginsWsActionTest { " \"organizationUrl\": \"org_url\"," + " \"homepage\": \"homepage_url\"," + " \"issueTrackerUrl\": \"issueTracker_url\"," + + " \"implementationBuild\": \"sou_rev_sha1\"," + " \"artifact\":" + " {" + " \"name\": \"some.jar\"" + diff --git a/server/sonar-server/src/test/java/org/sonar/server/plugins/ws/PendingPluginsWsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/plugins/ws/PendingPluginsWsActionTest.java index 9cace284a82..b865069d99d 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/plugins/ws/PendingPluginsWsActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/plugins/ws/PendingPluginsWsActionTest.java @@ -19,6 +19,7 @@ */ package org.sonar.server.plugins.ws; +import java.io.File; import org.junit.Test; import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.WebService; @@ -27,8 +28,6 @@ import org.sonar.server.plugins.PluginDownloader; import org.sonar.server.plugins.ServerPluginJarsInstaller; import org.sonar.server.ws.WsTester; -import java.io.File; - import static com.google.common.collect.ImmutableList.of; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; @@ -47,7 +46,8 @@ public class PendingPluginsWsActionTest { .setOrganizationUrl("http://www.sonarsource.com") .setHomepage("http://redirect.sonarsource.com/plugins/scmgit.html") .setIssueTrackerUrl("http://jira.codehaus.org/browse/SONARSCGIT") - .setFile(new File("/home/user/sonar-scm-git-plugin-1.0.jar")); + .setFile(new File("/home/user/sonar-scm-git-plugin-1.0.jar")) + .setImplementationBuild("9ce9d330c313c296fab051317cc5ad4b26319e07"); private static final String DUMMY_CONTROLLER_KEY = "dummy"; public static final DefaultPluginMetadata PLUGIN_2_2 = create("key2").setName("name2"); public static final DefaultPluginMetadata PLUGIN_2_1 = create("key1").setName("name2"); @@ -109,6 +109,7 @@ public class PendingPluginsWsActionTest { " \"organizationUrl\": \"http://www.sonarsource.com\"," + " \"homepage\": \"http://redirect.sonarsource.com/plugins/scmgit.html\"," + " \"issueTrackerUrl\": \"http://jira.codehaus.org/browse/SONARSCGIT\"," + + " \"implementationBuild\": \"9ce9d330c313c296fab051317cc5ad4b26319e07\"," + " \"artifact\": {" + " \"name\": \"sonar-scm-git-plugin-1.0.jar\"" + " }" + @@ -140,6 +141,7 @@ public class PendingPluginsWsActionTest { " \"organizationUrl\": \"http://www.sonarsource.com\"," + " \"homepage\": \"http://redirect.sonarsource.com/plugins/scmgit.html\"," + " \"issueTrackerUrl\": \"http://jira.codehaus.org/browse/SONARSCGIT\"," + + " \"implementationBuild\": \"9ce9d330c313c296fab051317cc5ad4b26319e07\"," + " \"artifact\": {" + " \"name\": \"sonar-scm-git-plugin-1.0.jar\"" + " }" + diff --git a/sonar-core/src/main/java/org/sonar/core/plugins/DefaultPluginMetadata.java b/sonar-core/src/main/java/org/sonar/core/plugins/DefaultPluginMetadata.java index d9fcf3f0290..a65036b7d94 100644 --- a/sonar-core/src/main/java/org/sonar/core/plugins/DefaultPluginMetadata.java +++ b/sonar-core/src/main/java/org/sonar/core/plugins/DefaultPluginMetadata.java @@ -263,6 +263,7 @@ public class DefaultPluginMetadata implements PluginMetadata, Comparable getRequiredPlugins(); boolean isCore(); + + String getImplementationBuild(); } -- 2.39.5