diff --git a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenTestCase.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenTestCase.java index d25f11e2ad2..c8918d34553 100644 --- a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenTestCase.java +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenTestCase.java @@ -47,11 +47,35 @@ import java.io.File; import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.Modifier; +import java.net.HttpURLConnection; +import java.net.URL; import java.util.*; import java.util.List; import java.util.concurrent.TimeUnit; public abstract class MavenTestCase extends UsefulTestCase { + + private static final String mavenMirrorUrl = System.getProperty("idea.maven.test.mirror", + // use JB maven proxy server for internal use by default, see details at + // https://confluence.jetbrains.com/display/JBINT/Maven+proxy+server + "http://maven.labs.intellij.net/repo1"); + private static boolean mirrorDiscoverable = false; + + static { + try { + URL url = new URL(mavenMirrorUrl); + HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); + urlConnection.setConnectTimeout(1000); + int responseCode = urlConnection.getResponseCode(); + if(responseCode < 400) { + mirrorDiscoverable = true; + } + } + catch (Exception e) { + mirrorDiscoverable = false; + } + } + private File ourTempDir; protected IdeaProjectTestFixture myTestFixture; @@ -319,16 +343,22 @@ public abstract class MavenTestCase extends UsefulTestCase { } private static String createSettingsXmlContent(String content) { - String mirror = System.getProperty("idea.maven.test.mirror", - // use JB maven proxy server for internal use by default, see details at - // https://confluence.jetbrains.com/display/JBINT/Maven+proxy+server - "http://maven.labs.intellij.net/repo1"); + + if (!mirrorDiscoverable) { + System.err.println("Maven mirror at " + mavenMirrorUrl + " not reachable, so not using it."); + + return "" + + content + + ""; + } + + System.out.println("Using Maven mirror at " + mavenMirrorUrl); return "" + content + "" + " " + " jb-central-proxy" + - " " + mirror + "" + + " " + mavenMirrorUrl + "" + " external:*" + " " + "" +