@@ -72,7 +72,7 @@ public class ServerTest { | |||
orchestrator.getServer().getAdminWsClient().update(new PropertyUpdateQuery("sonar.forceAuthentication", "true")); | |||
// /batch/index should never need authentication | |||
String batchIndex = orchestrator.getServer().wsClient().get("/batch/index"); | |||
String batchIndex = orchestrator.getServer().wsClient().get("/scanner/index"); | |||
assertThat(batchIndex).isNotEmpty(); | |||
String jar = batchIndex.split("\\|")[0]; | |||
@@ -80,13 +80,13 @@ public class ServerTest { | |||
// /batch/file should never need authentication | |||
HttpClient httpclient = new DefaultHttpClient(); | |||
try { | |||
HttpGet get = new HttpGet(orchestrator.getServer().getUrl() + "/batch/file?name=" + jar); | |||
HttpGet get = new HttpGet(orchestrator.getServer().getUrl() + "/scanner/file?name=" + jar); | |||
HttpResponse response = httpclient.execute(get); | |||
assertThat(response.getStatusLine().getStatusCode()).isEqualTo(200); | |||
EntityUtils.consume(response.getEntity()); | |||
// As Sonar runner is still using /batch/key, we have to also verify it | |||
get = new HttpGet(orchestrator.getServer().getUrl() + "/batch/" + jar); | |||
get = new HttpGet(orchestrator.getServer().getUrl() + "/scanner/" + jar); | |||
response = httpclient.execute(get); | |||
assertThat(response.getStatusLine().getStatusCode()).isEqualTo(200); | |||
EntityUtils.consume(response.getEntity()); |
@@ -49,7 +49,7 @@ import org.sonar.server.activity.index.ActivityIndexer; | |||
import org.sonar.server.activity.ws.ActivitiesWs; | |||
import org.sonar.server.activity.ws.ActivityMapping; | |||
import org.sonar.server.authentication.ws.AuthenticationWs; | |||
import org.sonar.server.batch.BatchWsModule; | |||
import org.sonar.server.scanner.ScannerWsModule; | |||
import org.sonar.server.charts.ChartFactory; | |||
import org.sonar.server.charts.DistributionAreaChart; | |||
import org.sonar.server.charts.DistributionBarChart; | |||
@@ -343,7 +343,7 @@ public class PlatformLevel4 extends PlatformLevel { | |||
ActivityIndex.class, | |||
// batch | |||
BatchWsModule.class, | |||
ScannerWsModule.class, | |||
// Dashboard | |||
DashboardsWs.class, |
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import org.apache.commons.io.IOUtils; | |||
import org.sonar.api.server.ws.Request; | |||
@@ -36,7 +36,7 @@ import org.sonar.server.exceptions.ForbiddenException; | |||
import org.sonar.server.plugins.MimeTypes; | |||
import org.sonar.server.user.UserSession; | |||
public class GlobalAction implements BatchWsAction { | |||
public class GlobalAction implements ScannerWsAction { | |||
private final DbClient dbClient; | |||
private final PropertiesDao propertiesDao; |
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import java.io.IOException; | |||
import java.io.OutputStream; | |||
@@ -43,7 +43,7 @@ import org.sonar.server.user.UserSession; | |||
import static com.google.common.collect.Maps.newHashMap; | |||
public class IssuesAction implements BatchWsAction { | |||
public class IssuesAction implements ScannerWsAction { | |||
private static final String PARAM_KEY = "key"; | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
public interface Messages { | |||
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import java.util.HashMap; | |||
import java.util.Map; | |||
@@ -27,11 +27,11 @@ import org.sonar.api.server.ws.Response; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.batch.protocol.input.FileData; | |||
import org.sonar.batch.protocol.input.ProjectRepositories; | |||
import org.sonarqube.ws.WsBatch.WsProjectResponse; | |||
import org.sonarqube.ws.WsScanner.WsProjectResponse; | |||
import static org.sonar.server.ws.WsUtils.writeProtobuf; | |||
public class ProjectAction implements BatchWsAction { | |||
public class ProjectAction implements ScannerWsAction { | |||
private static final String PARAM_KEY = "key"; | |||
private static final String PARAM_PROFILE = "profile"; |
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import com.google.common.collect.ArrayListMultimap; | |||
import com.google.common.collect.Maps; |
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; |
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import org.apache.commons.io.FileUtils; | |||
import org.apache.commons.io.filefilter.FileFilterUtils; | |||
@@ -38,13 +38,13 @@ import java.util.Collection; | |||
* JAR files to be downloaded by sonar-runner. | |||
*/ | |||
@ServerSide | |||
public class BatchIndex implements Startable { | |||
public class ScannerIndex implements Startable { | |||
private final Server server; | |||
private String index; | |||
private File batchDir; | |||
public BatchIndex(Server server) { | |||
public ScannerIndex(Server server) { | |||
this.server = server; | |||
} | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import org.apache.commons.io.FileUtils; | |||
import org.apache.commons.io.IOUtils; | |||
@@ -28,15 +28,15 @@ import org.sonar.api.server.ws.WebService; | |||
import java.io.IOException; | |||
public class BatchWs implements WebService { | |||
public class ScannerWs implements WebService { | |||
public static final String API_ENDPOINT = "batch"; | |||
public static final String API_ENDPOINT = "scanner"; | |||
private final BatchIndex batchIndex; | |||
private final BatchWsAction[] actions; | |||
private final ScannerIndex scannerIndex; | |||
private final ScannerWsAction[] actions; | |||
public BatchWs(BatchIndex batchIndex, BatchWsAction... actions) { | |||
this.batchIndex = batchIndex; | |||
public ScannerWs(ScannerIndex scannerIndex, ScannerWsAction... actions) { | |||
this.scannerIndex = scannerIndex; | |||
this.actions = actions; | |||
} | |||
@@ -48,7 +48,7 @@ public class BatchWs implements WebService { | |||
defineIndexAction(controller); | |||
defineFileAction(controller); | |||
for (BatchWsAction action : actions) { | |||
for (ScannerWsAction action : actions) { | |||
action.define(controller); | |||
} | |||
@@ -64,7 +64,7 @@ public class BatchWs implements WebService { | |||
public void handle(Request request, Response response) { | |||
try { | |||
response.stream().setMediaType("text/plain"); | |||
IOUtils.write(batchIndex.getIndex(), response.stream().output()); | |||
IOUtils.write(scannerIndex.getIndex(), response.stream().output()); | |||
} catch (IOException e) { | |||
throw new IllegalStateException(e); | |||
} | |||
@@ -83,7 +83,7 @@ public class BatchWs implements WebService { | |||
String filename = request.mandatoryParam("name"); | |||
try { | |||
response.stream().setMediaType("application/java-archive"); | |||
FileUtils.copyFile(batchIndex.getFile(filename), response.stream().output()); | |||
FileUtils.copyFile(scannerIndex.getFile(filename), response.stream().output()); | |||
} catch (IOException e) { | |||
throw new IllegalStateException(e); | |||
} |
@@ -17,10 +17,10 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import org.sonar.server.ws.WsAction; | |||
public interface BatchWsAction extends WsAction { | |||
public interface ScannerWsAction extends WsAction { | |||
// Marker interface | |||
} |
@@ -17,20 +17,20 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import org.sonar.core.platform.Module; | |||
public class BatchWsModule extends Module { | |||
public class ScannerWsModule extends Module { | |||
@Override | |||
protected void configureModule() { | |||
add( | |||
BatchIndex.class, | |||
ScannerIndex.class, | |||
GlobalAction.class, | |||
ProjectAction.class, | |||
ProjectDataLoader.class, | |||
IssuesAction.class, | |||
UsersAction.class, | |||
BatchWs.class); | |||
ScannerWs.class); | |||
} | |||
} |
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import java.io.IOException; | |||
import java.io.OutputStream; | |||
@@ -34,7 +34,7 @@ import org.sonar.server.user.UserSession; | |||
import org.sonar.server.user.index.UserDoc; | |||
import org.sonar.server.user.index.UserIndex; | |||
public class UsersAction implements BatchWsAction { | |||
public class UsersAction implements ScannerWsAction { | |||
private static final String PARAM_LOGINS = "logins"; | |||
@@ -19,6 +19,6 @@ | |||
*/ | |||
@ParametersAreNonnullByDefault | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import javax.annotation.ParametersAreNonnullByDefault; |
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import org.junit.Before; | |||
import org.junit.Rule; | |||
@@ -66,7 +66,7 @@ public class GlobalActionTest { | |||
when(dbClient.openSession(false)).thenReturn(session); | |||
when(dbClient.metricDao()).thenReturn(metricDao); | |||
tester = new WsTester(new BatchWs(mock(BatchIndex.class), new GlobalAction(dbClient, propertiesDao, userSessionRule))); | |||
tester = new WsTester(new ScannerWs(mock(ScannerIndex.class), new GlobalAction(dbClient, propertiesDao, userSessionRule))); | |||
} | |||
@Test | |||
@@ -78,7 +78,7 @@ public class GlobalActionTest { | |||
.setWorstValue(0d).setBestValue(100d).setOptimizedBestValue(false).setDirection(1).setEnabled(true) | |||
)); | |||
WsTester.TestRequest request = tester.newGetRequest("batch", "global"); | |||
WsTester.TestRequest request = tester.newGetRequest("scanner", "global"); | |||
request.execute().assertJson(getClass(), "return_global_referentials.json"); | |||
} | |||
@@ -92,7 +92,7 @@ public class GlobalActionTest { | |||
new PropertyDto().setKey("foo.license.secured").setValue("5678") | |||
)); | |||
WsTester.TestRequest request = tester.newGetRequest("batch", "global"); | |||
WsTester.TestRequest request = tester.newGetRequest("scanner", "global"); | |||
request.execute().assertJson(getClass(), "return_global_settings.json"); | |||
} | |||
@@ -106,7 +106,7 @@ public class GlobalActionTest { | |||
new PropertyDto().setKey("foo.license.secured").setValue("5678") | |||
)); | |||
WsTester.TestRequest request = tester.newGetRequest("batch", "global"); | |||
WsTester.TestRequest request = tester.newGetRequest("scanner", "global"); | |||
request.execute().assertJson(getClass(), "return_only_license_settings_without_scan_but_with_preview_permission.json"); | |||
} | |||
@@ -122,6 +122,6 @@ public class GlobalActionTest { | |||
thrown.expect(ForbiddenException.class); | |||
tester.newGetRequest("batch", "global").execute(); | |||
tester.newGetRequest("scanner", "global").execute(); | |||
} | |||
} |
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import java.io.ByteArrayInputStream; | |||
import java.util.Arrays; | |||
@@ -90,7 +90,7 @@ public class IssuesActionTest { | |||
issueAuthorizationIndexer = new IssueAuthorizationIndexer(null, es.client()); | |||
issuesAction = new IssuesAction(db.getDbClient(), issueIndex, userSessionRule, new ComponentFinder(db.getDbClient())); | |||
tester = new WsTester(new BatchWs(new BatchIndex(mock(Server.class)), issuesAction)); | |||
tester = new WsTester(new ScannerWs(new ScannerIndex(mock(Server.class)), issuesAction)); | |||
} | |||
@Test | |||
@@ -114,7 +114,7 @@ public class IssuesActionTest { | |||
userSessionRule.login("henry").setGlobalPermissions(GlobalPermissions.PREVIEW_EXECUTION); | |||
WsTester.TestRequest request = tester.newGetRequest("batch", "issues").setParam("key", PROJECT_KEY); | |||
WsTester.TestRequest request = tester.newGetRequest("scanner", "issues").setParam("key", PROJECT_KEY); | |||
ServerIssue serverIssue = ServerIssue.parseDelimitedFrom(new ByteArrayInputStream(request.execute().output())); | |||
assertThat(serverIssue.getKey()).isEqualTo("EFGH"); | |||
@@ -153,7 +153,7 @@ public class IssuesActionTest { | |||
userSessionRule.login("henry").setGlobalPermissions(GlobalPermissions.PREVIEW_EXECUTION); | |||
WsTester.TestRequest request = tester.newGetRequest("batch", "issues").setParam("key", PROJECT_KEY); | |||
WsTester.TestRequest request = tester.newGetRequest("scanner", "issues").setParam("key", PROJECT_KEY); | |||
ServerIssue serverIssue = ServerIssue.parseDelimitedFrom(new ByteArrayInputStream(request.execute().output())); | |||
assertThat(serverIssue.getKey()).isEqualTo("EFGH"); | |||
@@ -192,7 +192,7 @@ public class IssuesActionTest { | |||
userSessionRule.login("henry").setGlobalPermissions(GlobalPermissions.PREVIEW_EXECUTION); | |||
WsTester.TestRequest request = tester.newGetRequest("batch", "issues").setParam("key", MODULE_KEY); | |||
WsTester.TestRequest request = tester.newGetRequest("scanner", "issues").setParam("key", MODULE_KEY); | |||
ServerIssue serverIssue = ServerIssue.parseDelimitedFrom(new ByteArrayInputStream(request.execute().output())); | |||
assertThat(serverIssue.getKey()).isEqualTo("EFGH"); | |||
assertThat(serverIssue.getModuleKey()).isEqualTo(MODULE_KEY); | |||
@@ -230,7 +230,7 @@ public class IssuesActionTest { | |||
userSessionRule.login("henry").setGlobalPermissions(GlobalPermissions.PREVIEW_EXECUTION); | |||
WsTester.TestRequest request = tester.newGetRequest("batch", "issues").setParam("key", FILE_KEY); | |||
WsTester.TestRequest request = tester.newGetRequest("scanner", "issues").setParam("key", FILE_KEY); | |||
ServerIssue serverIssue = ServerIssue.parseDelimitedFrom(new ByteArrayInputStream(request.execute().output())); | |||
assertThat(serverIssue.getKey()).isEqualTo("EFGH"); | |||
assertThat(serverIssue.getModuleKey()).isEqualTo(MODULE_KEY); | |||
@@ -267,7 +267,7 @@ public class IssuesActionTest { | |||
userSessionRule.login("henry").setGlobalPermissions(GlobalPermissions.PREVIEW_EXECUTION); | |||
WsTester.TestRequest request = tester.newGetRequest("batch", "issues").setParam("key", MODULE_KEY); | |||
WsTester.TestRequest request = tester.newGetRequest("scanner", "issues").setParam("key", MODULE_KEY); | |||
ServerIssue previousIssue = ServerIssue.parseDelimitedFrom(new ByteArrayInputStream(request.execute().output())); | |||
assertThat(previousIssue.getKey()).isEqualTo("EFGH"); | |||
assertThat(previousIssue.getModuleKey()).isEqualTo(MODULE_KEY); | |||
@@ -306,7 +306,7 @@ public class IssuesActionTest { | |||
userSessionRule.login("henry").setGlobalPermissions(GlobalPermissions.PREVIEW_EXECUTION); | |||
WsTester.TestRequest request = tester.newGetRequest("batch", "issues").setParam("key", PROJECT_KEY); | |||
WsTester.TestRequest request = tester.newGetRequest("scanner", "issues").setParam("key", PROJECT_KEY); | |||
ServerIssue serverIssue = ServerIssue.parseDelimitedFrom(new ByteArrayInputStream(request.execute().output())); | |||
assertThat(serverIssue.getKey()).isEqualTo("EFGH"); | |||
// Module key of removed file should be returned | |||
@@ -317,7 +317,7 @@ public class IssuesActionTest { | |||
public void fail_without_preview_permission() throws Exception { | |||
userSessionRule.login("henry").setGlobalPermissions(GlobalPermissions.PROVISIONING); | |||
WsTester.TestRequest request = tester.newGetRequest("batch", "issues").setParam("key", PROJECT_KEY); | |||
WsTester.TestRequest request = tester.newGetRequest("scanner", "issues").setParam("key", PROJECT_KEY); | |||
request.execute(); | |||
} | |||
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import org.junit.Before; | |||
import org.junit.Test; | |||
@@ -38,7 +38,7 @@ public class ProjectActionTest { | |||
@Before | |||
public void setUp() { | |||
tester = new WsTester(new BatchWs(mock(BatchIndex.class), new ProjectAction(projectDataLoader))); | |||
tester = new WsTester(new ScannerWs(mock(ScannerIndex.class), new ProjectAction(projectDataLoader))); | |||
} | |||
@Test | |||
@@ -51,7 +51,7 @@ public class ProjectActionTest { | |||
ArgumentCaptor<ProjectDataQuery> queryArgumentCaptor = ArgumentCaptor.forClass(ProjectDataQuery.class); | |||
when(projectDataLoader.load(queryArgumentCaptor.capture())).thenReturn(projectReferentials); | |||
WsTester.TestRequest request = tester.newGetRequest("batch", "project") | |||
WsTester.TestRequest request = tester.newGetRequest("scanner", "project") | |||
.setParam("key", projectKey) | |||
.setParam("profile", "Default") | |||
.setParam("preview", "false"); |
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import com.google.common.collect.ImmutableMap; | |||
import java.util.Date; |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import org.apache.commons.io.FileUtils; | |||
import org.apache.commons.lang.CharUtils; | |||
@@ -35,7 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
public class BatchIndexTest { | |||
public class ScannerIndexTest { | |||
@Rule | |||
public TemporaryFolder temp = new TemporaryFolder(); | |||
@@ -60,21 +60,21 @@ public class BatchIndexTest { | |||
@Test | |||
public void get_index() { | |||
BatchIndex batchIndex = new BatchIndex(server); | |||
batchIndex.start(); | |||
ScannerIndex scannerIndex = new ScannerIndex(server); | |||
scannerIndex.start(); | |||
String index = batchIndex.getIndex(); | |||
String index = scannerIndex.getIndex(); | |||
assertThat(index).isEqualTo("sonar-batch.jar|acbd18db4cc2f85cedef654fccc4a4d8" + CharUtils.LF); | |||
batchIndex.stop(); | |||
scannerIndex.stop(); | |||
} | |||
@Test | |||
public void get_file() { | |||
BatchIndex batchIndex = new BatchIndex(server); | |||
batchIndex.start(); | |||
ScannerIndex scannerIndex = new ScannerIndex(server); | |||
scannerIndex.start(); | |||
File file = batchIndex.getFile("sonar-batch.jar"); | |||
File file = scannerIndex.getFile("sonar-batch.jar"); | |||
assertThat(file).isEqualTo(jar); | |||
} | |||
@@ -87,10 +87,10 @@ public class BatchIndexTest { | |||
thrown.expect(IllegalArgumentException.class); | |||
thrown.expectMessage("Bad filename: ../sonar-batch.jar"); | |||
BatchIndex batchIndex = new BatchIndex(server); | |||
batchIndex.start(); | |||
ScannerIndex scannerIndex = new ScannerIndex(server); | |||
scannerIndex.start(); | |||
batchIndex.getFile("../sonar-batch.jar"); | |||
scannerIndex.getFile("../sonar-batch.jar"); | |||
} | |||
@Test | |||
@@ -98,9 +98,9 @@ public class BatchIndexTest { | |||
thrown.expect(IllegalArgumentException.class); | |||
thrown.expectMessage("Bad filename: other.jar"); | |||
BatchIndex batchIndex = new BatchIndex(server); | |||
batchIndex.start(); | |||
ScannerIndex scannerIndex = new ScannerIndex(server); | |||
scannerIndex.start(); | |||
batchIndex.getFile("other.jar"); | |||
scannerIndex.getFile("other.jar"); | |||
} | |||
} |
@@ -17,18 +17,18 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import org.junit.Test; | |||
import org.sonar.core.platform.ComponentContainer; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
public class BatchWsModuleTest { | |||
public class ScannerWsModuleTest { | |||
@Test | |||
public void verify_count_of_added_components() { | |||
ComponentContainer container = new ComponentContainer(); | |||
new BatchWsModule().configure(container); | |||
new ScannerWsModule().configure(container); | |||
assertThat(container.size()).isEqualTo(9); | |||
} | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import java.io.File; | |||
import org.apache.commons.io.FileUtils; | |||
@@ -41,7 +41,7 @@ import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
@RunWith(MockitoJUnitRunner.class) | |||
public class BatchWsTest { | |||
public class ScannerWsTest { | |||
@Rule | |||
public UserSessionRule userSessionRule = UserSessionRule.standalone(); | |||
@@ -52,13 +52,13 @@ public class BatchWsTest { | |||
public ExpectedException thrown = ExpectedException.none(); | |||
@Mock | |||
BatchIndex batchIndex; | |||
ScannerIndex scannerIndex; | |||
WsTester tester; | |||
@Before | |||
public void before() { | |||
tester = new WsTester(new BatchWs(batchIndex, | |||
tester = new WsTester(new ScannerWs(scannerIndex, | |||
new GlobalAction(mock(DbClient.class), mock(PropertiesDao.class), userSessionRule), | |||
new ProjectAction(mock(ProjectDataLoader.class)), | |||
new IssuesAction(mock(DbClient.class), mock(IssueIndex.class), userSessionRule, mock(ComponentFinder.class)))); | |||
@@ -66,9 +66,9 @@ public class BatchWsTest { | |||
@Test | |||
public void download_index() throws Exception { | |||
when(batchIndex.getIndex()).thenReturn("sonar-batch.jar|acbd18db4cc2f85cedef654fccc4a4d8"); | |||
when(scannerIndex.getIndex()).thenReturn("sonar-batch.jar|acbd18db4cc2f85cedef654fccc4a4d8"); | |||
String index = tester.newGetRequest("batch", "index").execute().outputAsString(); | |||
String index = tester.newGetRequest("scanner", "index").execute().outputAsString(); | |||
assertThat(index).isEqualTo("sonar-batch.jar|acbd18db4cc2f85cedef654fccc4a4d8"); | |||
} | |||
@@ -78,9 +78,9 @@ public class BatchWsTest { | |||
File file = temp.newFile(filename); | |||
FileUtils.writeStringToFile(file, "foo"); | |||
when(batchIndex.getFile(filename)).thenReturn(file); | |||
when(scannerIndex.getFile(filename)).thenReturn(file); | |||
String jar = tester.newGetRequest("batch", "file").setParam("name", filename).execute().outputAsString(); | |||
String jar = tester.newGetRequest("scanner", "file").setParam("name", filename).execute().outputAsString(); | |||
assertThat(jar).isEqualTo("foo"); | |||
} | |||
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.batch; | |||
package org.sonar.server.scanner; | |||
import org.junit.Before; | |||
import org.junit.ClassRule; | |||
@@ -60,7 +60,7 @@ public class UsersActionTest { | |||
userIndex = new UserIndex(es.client()); | |||
usersAction = new UsersAction(userIndex, userSessionRule); | |||
tester = new WsTester(new BatchWs(new BatchIndex(mock(Server.class)), usersAction)); | |||
tester = new WsTester(new ScannerWs(new ScannerIndex(mock(Server.class)), usersAction)); | |||
} | |||
@Test | |||
@@ -71,7 +71,7 @@ public class UsersActionTest { | |||
userSessionRule.login("sonarqtech").setGlobalPermissions(GlobalPermissions.PREVIEW_EXECUTION); | |||
WsTester.TestRequest request = tester.newGetRequest("batch", "users").setParam("logins", "ada.lovelace,grace.hopper"); | |||
WsTester.TestRequest request = tester.newGetRequest("scanner", "users").setParam("logins", "ada.lovelace,grace.hopper"); | |||
ByteArrayInputStream input = new ByteArrayInputStream(request.execute().output()); | |||
@@ -9,8 +9,8 @@ ActionController::Routing::Routes.draw do |map| | |||
map.connect 'api', :controller => 'api/java_ws', :action => 'redirect_to_ws_listing' | |||
# deprecated, sonar-runner should use batch/index and batch/file?name=xxx | |||
map.connect 'batch_bootstrap/index', :controller => 'api/java_ws', :action => 'index', :wspath => 'batch', :wsaction => 'index' | |||
map.connect 'batch/:name', :controller => 'api/java_ws', :action => 'index', :wspath => 'batch', :wsaction => 'file', :requirements => { :name => /.*/ } | |||
map.connect 'batch_bootstrap/index', :controller => 'api/java_ws', :action => 'index', :wspath => 'scanner', :wsaction => 'index' | |||
map.connect 'scanner/:name', :controller => 'api/java_ws', :action => 'index', :wspath => 'scanner', :wsaction => 'file', :requirements => { :name => /.*/ } | |||
map.connect 'api/server/:action', :controller => 'api/server' | |||
map.connect 'api/resoures', :controller => 'api/resources', :action => 'index' |
@@ -30,7 +30,7 @@ import org.sonar.batch.protocol.input.GlobalRepositories; | |||
public class DefaultGlobalRepositoriesLoader implements GlobalRepositoriesLoader { | |||
private static final String BATCH_GLOBAL_URL = "/batch/global"; | |||
private static final String BATCH_GLOBAL_URL = "/scanner/global"; | |||
private final WSLoader wsLoader; | |||
@@ -33,7 +33,7 @@ import org.sonar.batch.util.BatchUtils; | |||
public class DefaultProjectRepositoriesLoader implements ProjectRepositoriesLoader { | |||
private static final Logger LOG = LoggerFactory.getLogger(DefaultProjectRepositoriesLoader.class); | |||
private static final String BATCH_PROJECT_URL = "/batch/project"; | |||
private static final String BATCH_PROJECT_URL = "/scanner/project"; | |||
private final WSLoader wsLoader; | |||
private final DefaultAnalysisMode analysisMode; |
@@ -40,7 +40,7 @@ public class DefaultServerIssuesLoader implements ServerIssuesLoader { | |||
@Override | |||
public boolean load(String componentKey, Function<ServerIssue, Void> consumer) { | |||
WSLoaderResult<ByteSource> result = wsLoader.loadSource("/batch/issues?key=" + BatchUtils.encodeForUrl(componentKey)); | |||
WSLoaderResult<ByteSource> result = wsLoader.loadSource("/scanner/issues?key=" + BatchUtils.encodeForUrl(componentKey)); | |||
parseIssues(result.get(), consumer); | |||
return result.isFromCache(); | |||
} |
@@ -73,7 +73,7 @@ public class UserRepositoryLoader { | |||
} | |||
private ByteSource loadQuery(String loginsQuery, @Nullable MutableBoolean fromCache) { | |||
WSLoaderResult<ByteSource> result = wsLoader.loadSource("/batch/users?logins=" + loginsQuery); | |||
WSLoaderResult<ByteSource> result = wsLoader.loadSource("/scanner/users?logins=" + loginsQuery); | |||
if (fromCache != null) { | |||
fromCache.setValue(result.isFromCache()); | |||
} |
@@ -19,58 +19,55 @@ | |||
*/ | |||
package org.sonar.batch.cache; | |||
import static org.mockito.Mockito.when; | |||
import org.sonar.batch.repository.ProjectRepositoriesFactory; | |||
import org.sonar.batch.repository.DefaultProjectRepositoriesFactory; | |||
import org.junit.Rule; | |||
import org.junit.rules.ExpectedException; | |||
import org.sonar.batch.repository.ProjectSettingsRepo; | |||
import com.google.common.base.Function; | |||
import com.google.common.collect.ImmutableList; | |||
import org.sonar.batch.protocol.input.ActiveRule; | |||
import org.sonar.batch.protocol.input.QProfile; | |||
import org.apache.commons.lang.mutable.MutableBoolean; | |||
import org.sonar.batch.repository.DefaultProjectSettingsLoader; | |||
import org.sonar.batch.rule.DefaultActiveRulesLoader; | |||
import org.sonar.batch.repository.DefaultQualityProfileLoader; | |||
import org.sonar.batch.repository.ProjectSettingsLoader; | |||
import org.sonar.batch.rule.ActiveRulesLoader; | |||
import org.sonar.batch.repository.QualityProfileLoader; | |||
import org.sonar.batch.analysis.DefaultAnalysisMode; | |||
import org.sonar.batch.analysis.AnalysisProperties; | |||
import org.sonar.batch.protocol.input.ProjectRepositories; | |||
import org.sonar.batch.repository.DefaultServerIssuesLoader; | |||
import org.sonar.batch.repository.DefaultProjectRepositoriesLoader; | |||
import org.sonar.api.batch.bootstrap.ProjectReactor; | |||
import com.google.common.io.ByteSource; | |||
import com.google.common.io.Resources; | |||
import java.io.IOException; | |||
import java.net.URL; | |||
import java.nio.charset.StandardCharsets; | |||
import java.util.Date; | |||
import java.util.HashMap; | |||
import static org.mockito.Matchers.eq; | |||
import static org.mockito.Matchers.any; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Matchers.anyString; | |||
import static org.mockito.Mockito.verify; | |||
import static org.mockito.Mockito.verifyNoMoreInteractions; | |||
import com.google.common.io.Resources; | |||
import org.junit.Test; | |||
import org.apache.commons.lang.mutable.MutableBoolean; | |||
import org.junit.Before; | |||
import org.mockito.MockitoAnnotations; | |||
import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.junit.rules.ExpectedException; | |||
import org.mockito.Mock; | |||
import org.mockito.MockitoAnnotations; | |||
import org.sonar.api.batch.bootstrap.ProjectDefinition; | |||
import org.sonar.api.batch.bootstrap.ProjectReactor; | |||
import org.sonar.batch.analysis.AnalysisProperties; | |||
import org.sonar.batch.analysis.DefaultAnalysisMode; | |||
import org.sonar.batch.protocol.input.ActiveRule; | |||
import org.sonar.batch.protocol.input.ProjectRepositories; | |||
import org.sonar.batch.protocol.input.QProfile; | |||
import org.sonar.batch.repository.DefaultProjectRepositoriesFactory; | |||
import org.sonar.batch.repository.DefaultProjectRepositoriesLoader; | |||
import org.sonar.batch.repository.DefaultProjectSettingsLoader; | |||
import org.sonar.batch.repository.DefaultQualityProfileLoader; | |||
import org.sonar.batch.repository.DefaultServerIssuesLoader; | |||
import org.sonar.batch.repository.ProjectRepositoriesFactory; | |||
import org.sonar.batch.repository.ProjectRepositoriesLoader; | |||
import org.sonar.batch.repository.ProjectSettingsLoader; | |||
import org.sonar.batch.repository.ProjectSettingsRepo; | |||
import org.sonar.batch.repository.QualityProfileLoader; | |||
import org.sonar.batch.repository.ServerIssuesLoader; | |||
import org.sonar.batch.repository.user.UserRepositoryLoader; | |||
import org.sonar.batch.rule.ActiveRulesLoader; | |||
import org.sonar.batch.rule.DefaultActiveRulesLoader; | |||
import static org.mockito.Matchers.any; | |||
import static org.mockito.Matchers.anyString; | |||
import static org.mockito.Matchers.eq; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.verify; | |||
import static org.mockito.Mockito.verifyNoMoreInteractions; | |||
import static org.mockito.Mockito.when; | |||
public class ProjectCacheSynchronizerTest { | |||
private static final String BATCH_PROJECT = "/batch/project?key=org.codehaus.sonar-plugins%3Asonar-scm-git-plugin&preview=true"; | |||
private static final String ISSUES = "/batch/issues?key=org.codehaus.sonar-plugins%3Asonar-scm-git-plugin"; | |||
private static final String BATCH_PROJECT = "/scanner/project?key=org.codehaus.sonar-plugins%3Asonar-scm-git-plugin&preview=true"; | |||
private static final String ISSUES = "/scanner/issues?key=org.codehaus.sonar-plugins%3Asonar-scm-git-plugin"; | |||
private static final String PROJECT_KEY = "org.codehaus.sonar-plugins:sonar-scm-git-plugin"; | |||
@Rule |
@@ -19,22 +19,21 @@ | |||
*/ | |||
package org.sonar.batch.repository; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
import static org.mockito.Mockito.verify; | |||
import static org.mockito.Mockito.verifyNoMoreInteractions; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import org.sonar.batch.cache.WSLoaderResult; | |||
import org.sonar.batch.protocol.input.GlobalRepositories; | |||
import org.apache.commons.lang.mutable.MutableBoolean; | |||
import org.junit.Before; | |||
import org.sonar.batch.cache.WSLoader; | |||
import org.junit.Test; | |||
import org.sonar.batch.cache.WSLoader; | |||
import org.sonar.batch.cache.WSLoaderResult; | |||
import org.sonar.batch.protocol.input.GlobalRepositories; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.verify; | |||
import static org.mockito.Mockito.verifyNoMoreInteractions; | |||
import static org.mockito.Mockito.when; | |||
public class DefaultGlobalRepositoriesLoaderTest { | |||
private static final String BATCH_GLOBAL_URL = "/batch/global"; | |||
private static final String BATCH_GLOBAL_URL = "/scanner/global"; | |||
private WSLoader wsLoader; | |||
private WSLoaderResult<String> result; | |||
private DefaultGlobalRepositoriesLoader globalRepositoryLoader; |
@@ -19,25 +19,23 @@ | |||
*/ | |||
package org.sonar.batch.repository; | |||
import org.sonar.batch.cache.WSLoaderResult; | |||
import org.sonar.batch.analysis.DefaultAnalysisMode; | |||
import org.sonar.batch.cache.WSLoader; | |||
import org.apache.commons.lang.mutable.MutableBoolean; | |||
import org.apache.commons.io.IOUtils; | |||
import java.io.IOException; | |||
import java.util.Date; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import org.apache.commons.io.IOUtils; | |||
import org.apache.commons.lang.mutable.MutableBoolean; | |||
import org.junit.Before; | |||
import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.junit.rules.ExpectedException; | |||
import org.sonar.api.batch.bootstrap.ProjectDefinition; | |||
import org.sonar.api.utils.MessageException; | |||
import org.sonar.batch.analysis.DefaultAnalysisMode; | |||
import org.sonar.batch.cache.WSLoader; | |||
import org.sonar.batch.cache.WSLoaderResult; | |||
import org.sonar.batch.protocol.input.ProjectRepositories; | |||
import org.sonar.batch.protocol.input.QProfile; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Matchers.anyString; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.spy; | |||
@@ -69,11 +67,11 @@ public class DefaultProjectRepositoriesLoaderTest { | |||
project = ProjectDefinition.create().setKey("foo"); | |||
when(analysisMode.isIssues()).thenReturn(false); | |||
loader.load(project.getKeyWithBranch(), null, null); | |||
verify(wsLoader).loadString("/batch/project?key=foo&preview=false"); | |||
verify(wsLoader).loadString("/scanner/project?key=foo&preview=false"); | |||
when(analysisMode.isIssues()).thenReturn(true); | |||
loader.load(project.getKeyWithBranch(), null, null); | |||
verify(wsLoader).loadString("/batch/project?key=foo&preview=true"); | |||
verify(wsLoader).loadString("/scanner/project?key=foo&preview=true"); | |||
} | |||
@Test | |||
@@ -96,7 +94,7 @@ public class DefaultProjectRepositoriesLoaderTest { | |||
addQualityProfile(); | |||
project = ProjectDefinition.create().setKey("foo bàr"); | |||
loader.load(project.getKeyWithBranch(), null, null); | |||
verify(wsLoader).loadString("/batch/project?key=foo+b%C3%A0r&preview=false"); | |||
verify(wsLoader).loadString("/scanner/project?key=foo+b%C3%A0r&preview=false"); | |||
} | |||
@Test | |||
@@ -104,7 +102,7 @@ public class DefaultProjectRepositoriesLoaderTest { | |||
addQualityProfile(); | |||
project = ProjectDefinition.create().setKey("foo"); | |||
loader.load(project.getKeyWithBranch(), "my-profile#2", null); | |||
verify(wsLoader).loadString("/batch/project?key=foo&profile=my-profile%232&preview=false"); | |||
verify(wsLoader).loadString("/scanner/project?key=foo&profile=my-profile%232&preview=false"); | |||
} | |||
@Test |
@@ -52,7 +52,7 @@ public class DefaultServerIssuesLoaderTest { | |||
@Test | |||
public void loadFromWs() throws Exception { | |||
ByteSource bs = mock(ByteSource.class); | |||
when(wsLoader.loadSource("/batch/issues?key=foo")).thenReturn(new WSLoaderResult<>(bs, true)); | |||
when(wsLoader.loadSource("/scanner/issues?key=foo")).thenReturn(new WSLoaderResult<>(bs, true)); | |||
ByteArrayOutputStream bos = new ByteArrayOutputStream(); | |||
@@ -80,7 +80,7 @@ public class DefaultServerIssuesLoaderTest { | |||
public void testError() throws IOException { | |||
ByteSource source = mock(ByteSource.class); | |||
when(source.openBufferedStream()).thenThrow(IOException.class); | |||
when(wsLoader.loadSource("/batch/issues?key=foo")).thenReturn(new WSLoaderResult<ByteSource>(source, true)); | |||
when(wsLoader.loadSource("/scanner/issues?key=foo")).thenReturn(new WSLoaderResult<ByteSource>(source, true)); | |||
loader.load("foo", mock(Function.class)); | |||
} | |||
} |
@@ -69,7 +69,7 @@ public class UserRepositoryLoaderTest { | |||
public void testLoad() throws IOException { | |||
Map<String, String> userMap = ImmutableMap.of("fmallet", "Freddy Mallet", "sbrandhof", "Simon"); | |||
WSLoaderResult<ByteSource> res = new WSLoaderResult<>(createUsersMock(userMap), true); | |||
when(wsLoader.loadSource("/batch/users?logins=fmallet,sbrandhof")).thenReturn(res); | |||
when(wsLoader.loadSource("/scanner/users?logins=fmallet,sbrandhof")).thenReturn(res); | |||
assertThat(userRepo.load(Arrays.asList("fmallet", "sbrandhof"))).extracting("login", "name").containsOnly(tuple("fmallet", "Freddy Mallet"), tuple("sbrandhof", "Simon")); | |||
} | |||
@@ -90,7 +90,7 @@ public class UserRepositoryLoaderTest { | |||
@Test | |||
public void testLoadSingleUser() throws IOException { | |||
WSLoaderResult<ByteSource> res = new WSLoaderResult<>(createUsersMock(ImmutableMap.of("fmallet", "Freddy Mallet")), true); | |||
when(wsLoader.loadSource("/batch/users?logins=fmallet")).thenReturn(res); | |||
when(wsLoader.loadSource("/scanner/users?logins=fmallet")).thenReturn(res); | |||
assertThat(userRepo.load("fmallet").getName()).isEqualTo("Freddy Mallet"); | |||
} | |||
@@ -113,7 +113,7 @@ public class UserRepositoryLoaderTest { | |||
WSLoaderResult<ByteSource> res = new WSLoaderResult<>(source, true); | |||
when(wsLoader.loadSource("/batch/users?logins=fmallet,sbrandhof")).thenReturn(res); | |||
when(wsLoader.loadSource("/scanner/users?logins=fmallet,sbrandhof")).thenReturn(res); | |||
InputStream errorInputStream = mock(InputStream.class); | |||
Mockito.doThrow(IOException.class).when(errorInputStream).read(); |
@@ -21,11 +21,11 @@ syntax = "proto2"; | |||
package sonarqube.ws.batch; | |||
option java_package = "org.sonarqube.ws"; | |||
option java_outer_classname = "WsBatch"; | |||
option java_outer_classname = "WsScanner"; | |||
option optimize_for = SPEED; | |||
// WS api/batch/project | |||
// WS api/scanner/project | |||
message WsProjectResponse { | |||
optional int64 timestamp = 1; | |||
map<string, Settings> settingsByModule = 2; |