From: Julien Lancelot Date: Fri, 23 Oct 2015 09:22:27 +0000 (+0200) Subject: Move NetworkUtils to util package X-Git-Tag: 5.3-RC1~439 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=2ca32f86c1bde9971250aba1a4c78dabb5d34570;p=sonarqube.git Move NetworkUtils to util package --- diff --git a/it/it-tests/src/test/java/com/sonar/orchestrator/util/NetworkUtils.java b/it/it-tests/src/test/java/com/sonar/orchestrator/util/NetworkUtils.java deleted file mode 100644 index ebe398646d0..00000000000 --- a/it/it-tests/src/test/java/com/sonar/orchestrator/util/NetworkUtils.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Orchestrator - * Copyright (C) 2011 SonarSource - * sonarqube@googlegroups.com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package com.sonar.orchestrator.util; - -import java.io.IOException; -import java.net.InetSocketAddress; -import java.net.ServerSocket; -import java.util.concurrent.atomic.AtomicInteger; - -public final class NetworkUtils { - private static final int MAX_TRY = 10; - private static final AtomicInteger nextPort = new AtomicInteger(20000); - - private NetworkUtils() { - } - - public static int getNextAvailablePort() { - if (isOnTravisCI()) { - for (int i = 0; i < MAX_TRY; i++) { - int port = nextPort.getAndIncrement(); - - // Check that the port is really available. - // (On Travis, if the build is single threaded, it should be) - // - try { - Process process = new ProcessBuilder("nc", "-z", "localhost", Integer.toString(port)).start(); - if (process.waitFor() == 1) { - return port; - } - } catch (Exception e) { - throw new IllegalStateException("Can't test that a network port is available", e); - } - } - - throw new IllegalStateException("Can't find a free network port"); - } - - try (ServerSocket socket = new ServerSocket()) { - socket.bind(new InetSocketAddress("localhost", 0)); - return socket.getLocalPort(); - } catch (IOException e) { - throw new IllegalStateException("Can't find a free network port", e); - } - } - - private static boolean isOnTravisCI() { - return "true".equals(System.getenv("TRAVIS")); - } -} diff --git a/it/it-tests/src/test/java/qualitygate/QualityGateNotificationTest.java b/it/it-tests/src/test/java/qualitygate/QualityGateNotificationTest.java index ad6d638dcfa..4254a01f0f2 100644 --- a/it/it-tests/src/test/java/qualitygate/QualityGateNotificationTest.java +++ b/it/it-tests/src/test/java/qualitygate/QualityGateNotificationTest.java @@ -8,7 +8,6 @@ package qualitygate; import com.sonar.orchestrator.Orchestrator; import com.sonar.orchestrator.build.SonarRunner; import com.sonar.orchestrator.selenium.Selenese; -import com.sonar.orchestrator.util.NetworkUtils; import java.util.Iterator; import javax.mail.internet.MimeMessage; import org.junit.Before; @@ -25,6 +24,7 @@ import org.sonar.wsclient.services.ResourceQuery; import org.subethamail.wiser.Wiser; import org.subethamail.wiser.WiserMessage; import util.ItUtils; +import util.NetworkUtils; import util.selenium.SeleneseTest; import static org.assertj.core.api.Assertions.assertThat; diff --git a/it/it-tests/src/test/java/server/HttpsTest.java b/it/it-tests/src/test/java/server/HttpsTest.java index 4566ebd14c6..87ddefa1ecb 100644 --- a/it/it-tests/src/test/java/server/HttpsTest.java +++ b/it/it-tests/src/test/java/server/HttpsTest.java @@ -6,7 +6,6 @@ package server; import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.util.NetworkUtils; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -29,6 +28,7 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import util.NetworkUtils; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.fail; diff --git a/it/it-tests/src/test/java/util/NetworkUtils.java b/it/it-tests/src/test/java/util/NetworkUtils.java new file mode 100644 index 00000000000..e3d5676f895 --- /dev/null +++ b/it/it-tests/src/test/java/util/NetworkUtils.java @@ -0,0 +1,66 @@ +/* + * Orchestrator + * Copyright (C) 2011 SonarSource + * sonarqube@googlegroups.com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 + */ +package util; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.ServerSocket; +import java.util.concurrent.atomic.AtomicInteger; + +public final class NetworkUtils { + private static final int MAX_TRY = 10; + private static final AtomicInteger nextPort = new AtomicInteger(20000); + + private NetworkUtils() { + } + + public static int getNextAvailablePort() { + if (isOnTravisCI()) { + for (int i = 0; i < MAX_TRY; i++) { + int port = nextPort.getAndIncrement(); + + // Check that the port is really available. + // (On Travis, if the build is single threaded, it should be) + // + try { + Process process = new ProcessBuilder("nc", "-z", "localhost", Integer.toString(port)).start(); + if (process.waitFor() == 1) { + return port; + } + } catch (Exception e) { + throw new IllegalStateException("Can't test that a network port is available", e); + } + } + + throw new IllegalStateException("Can't find a free network port"); + } + + try (ServerSocket socket = new ServerSocket()) { + socket.bind(new InetSocketAddress("localhost", 0)); + return socket.getLocalPort(); + } catch (IOException e) { + throw new IllegalStateException("Can't find a free network port", e); + } + } + + private static boolean isOnTravisCI() { + return "true".equals(System.getenv("TRAVIS")); + } +}