aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2015-04-24 17:24:44 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2015-04-27 11:16:46 +0200
commit65d4574e420483ae06fed9d9a3af82ce2bd0b344 (patch)
tree120ca1aa17a987ea70499f224c2e072243e90a97
parent8e79968cc14d6a8da45feaa8cdef277b8f357663 (diff)
downloadsonarqube-65d4574e420483ae06fed9d9a3af82ce2bd0b344.tar.gz
sonarqube-65d4574e420483ae06fed9d9a3af82ce2bd0b344.zip
SONAR-6430 add plugin source revision to JSON response
information added to response of WS listing installed pluging and pending operations on plugins
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java14
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/plugins/ws/PluginWSCommons.java7
-rw-r--r--server/sonar-server/src/main/resources/org/sonar/server/plugins/ws/example-installed_plugins.json3
-rw-r--r--server/sonar-server/src/main/resources/org/sonar/server/plugins/ws/example-pending_plugins.json3
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/plugins/ws/InstalledPluginsWsActionTest.java5
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/plugins/ws/PendingPluginsWsActionTest.java8
-rw-r--r--sonar-core/src/main/java/org/sonar/core/plugins/DefaultPluginMetadata.java1
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/platform/PluginMetadata.java2
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<PluginMetadata> 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<PluginM
return this;
}
+ @Override
public String getImplementationBuild() {
return implementationBuild;
}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/platform/PluginMetadata.java b/sonar-plugin-api/src/main/java/org/sonar/api/platform/PluginMetadata.java
index 2afd2312c3c..97ab71bcfc1 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/platform/PluginMetadata.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/platform/PluginMetadata.java
@@ -69,4 +69,6 @@ public interface PluginMetadata {
List<String> getRequiredPlugins();
boolean isCore();
+
+ String getImplementationBuild();
}