diff options
Diffstat (limited to 'sonar-ws-client')
3 files changed, 24 insertions, 2 deletions
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/system/SystemClient.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/system/SystemClient.java index db5d48620a4..297925efaa2 100644 --- a/sonar-ws-client/src/main/java/org/sonar/wsclient/system/SystemClient.java +++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/system/SystemClient.java @@ -33,4 +33,10 @@ public interface SystemClient { * Synchronously start a database migration. */ Migration migrate(long timeoutInSeconds, long rateInSeconds); + + /** + * Restart server. Available only in development mode. + * @since 4.3 + */ + void restart(); } diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/system/internal/DefaultSystemClient.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/system/internal/DefaultSystemClient.java index a385ca3ce5d..7eacea238b4 100644 --- a/sonar-ws-client/src/main/java/org/sonar/wsclient/system/internal/DefaultSystemClient.java +++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/system/internal/DefaultSystemClient.java @@ -24,7 +24,7 @@ import org.sonar.wsclient.internal.HttpRequestFactory; import org.sonar.wsclient.system.Migration; import org.sonar.wsclient.system.SystemClient; -import java.util.HashMap; +import java.util.Collections; import java.util.Map; public class DefaultSystemClient implements SystemClient { @@ -37,7 +37,7 @@ public class DefaultSystemClient implements SystemClient { @Override public Migration migrate() { - String json = requestFactory.post("/api/server/setup", new HashMap<String, Object>()); + String json = requestFactory.post("/api/server/setup", Collections.<String, Object>emptyMap()); return jsonToMigration(json); } @@ -61,6 +61,11 @@ public class DefaultSystemClient implements SystemClient { return migration; } + @Override + public void restart() { + requestFactory.post("/api/system/restart", Collections.<String, Object>emptyMap()); + } + private void sleepQuietly(long rateInMs) { try { Thread.sleep(rateInMs); diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/system/internal/DefaultSystemClientTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/system/internal/DefaultSystemClientTest.java index b2c05a2ef83..7d550852fda 100644 --- a/sonar-ws-client/src/test/java/org/sonar/wsclient/system/internal/DefaultSystemClientTest.java +++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/system/internal/DefaultSystemClientTest.java @@ -25,11 +25,14 @@ import org.sonar.wsclient.MockHttpServerInterceptor; import org.sonar.wsclient.internal.HttpRequestFactory; import org.sonar.wsclient.system.Migration; +import java.util.Collections; + import static org.fest.assertions.Assertions.assertThat; import static org.fest.assertions.Fail.fail; import static org.mockito.Matchers.anyMap; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; public class DefaultSystemClientTest { @@ -112,4 +115,12 @@ public class DefaultSystemClientTest { assertThat(e.getMessage()).isEqualTo("State is not set"); } } + + @Test + public void restart() { + HttpRequestFactory requestFactory = mock(HttpRequestFactory.class); + DefaultSystemClient client = new DefaultSystemClient(requestFactory); + client.restart(); + verify(requestFactory).post("/api/system/restart", Collections.<String, Object>emptyMap()); + } } |