]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3777 Move Batch Bootstrapper classes from Sonar to Sonar Runner
authorFabrice Bellingard <fabrice.bellingard@sonarsource.com>
Wed, 5 Sep 2012 10:44:04 +0000 (12:44 +0200)
committerFabrice Bellingard <fabrice.bellingard@sonarsource.com>
Wed, 5 Sep 2012 10:44:04 +0000 (12:44 +0200)
14 files changed:
pom.xml
sonar-batch-bootstrapper/infinitest.args [deleted file]
sonar-batch-bootstrapper/infinitest.filters [deleted file]
sonar-batch-bootstrapper/pom.xml [deleted file]
sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/BootstrapClassLoader.java [deleted file]
sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/BootstrapException.java [deleted file]
sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/Bootstrapper.java [deleted file]
sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/BootstrapperIOUtils.java [deleted file]
sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/BootstrapperVersion.java [deleted file]
sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/package-info.java [deleted file]
sonar-batch-bootstrapper/src/main/resources/org/sonar/batch/bootstrapper/version.txt [deleted file]
sonar-batch-bootstrapper/src/test/java/org/sonar/batch/bootstrapper/BootstrapClassLoaderTest.java [deleted file]
sonar-batch-bootstrapper/src/test/java/org/sonar/batch/bootstrapper/BootstrapperTest.java [deleted file]
sonar-batch-bootstrapper/src/test/java/org/sonar/batch/bootstrapper/BootstrapperVersionTest.java [deleted file]

diff --git a/pom.xml b/pom.xml
index 75f145e428103d659d2cbe4218b4429e835e68e7..7a456d5ccffeea277fa9ece50e5a5a64b226196e 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,6 @@
     <!-- public artifacts to be deployed to central repository -->
     <module>sonar-application</module>
     <module>sonar-batch</module>
-    <module>sonar-batch-bootstrapper</module>
     <module>sonar-batch-maven-compat</module>
     <module>sonar-channel</module>
     <module>sonar-check-api</module>
diff --git a/sonar-batch-bootstrapper/infinitest.args b/sonar-batch-bootstrapper/infinitest.args
deleted file mode 100644 (file)
index ed9f41d..0000000
+++ /dev/null
@@ -1 +0,0 @@
--Djava.awt.headless=true
\ No newline at end of file
diff --git a/sonar-batch-bootstrapper/infinitest.filters b/sonar-batch-bootstrapper/infinitest.filters
deleted file mode 100644 (file)
index 172859d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# These tests fail in Eclipse. Until they are fixed, let's ignore them
-
-.*BootstrapperVersionTest
diff --git a/sonar-batch-bootstrapper/pom.xml b/sonar-batch-bootstrapper/pom.xml
deleted file mode 100644 (file)
index 136dd99..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.codehaus.sonar</groupId>
-    <artifactId>sonar</artifactId>
-    <version>3.3-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>sonar-batch-bootstrapper</artifactId>
-  <name>Sonar :: Batch Bootstrapper</name>
-  <description>Provides API to bootstrap Sonar Batch.</description>
-
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.easytesting</groupId>
-      <artifactId>fest-assert</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-  
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>true</filtering>
-      </resource>
-    </resources>
-  </build>
-</project>
diff --git a/sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/BootstrapClassLoader.java b/sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/BootstrapClassLoader.java
deleted file mode 100644 (file)
index 53f0d41..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar 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.
- *
- * Sonar 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 Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
- */
-package org.sonar.batch.bootstrapper;
-
-import java.io.IOException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.Enumeration;
-
-/**
- * Special {@link URLClassLoader} to execute Sonar, which restricts loading from parent.
- */
-public class BootstrapClassLoader extends URLClassLoader {
-
-  private final String[] unmaskedPackages;
-
-  public BootstrapClassLoader(ClassLoader parent, String... unmaskedPackages) {
-    super(new URL[0], parent);
-    this.unmaskedPackages = unmaskedPackages;
-  }
-
-  /**
-   * {@inheritDoc} Visibility of a method has been relaxed to public.
-   */
-  @Override
-  public void addURL(URL url) {
-    super.addURL(url);
-  }
-
-  /**
-   * {@inheritDoc} Visibility of a method has been relaxed to public.
-   */
-  @Override
-  public Class<?> findClass(String name) throws ClassNotFoundException {
-    return super.findClass(name);
-  }
-
-  /**
-   * @return true, if class can be loaded from parent ClassLoader
-   */
-  boolean canLoadFromParent(String name) {
-    for (String pkg : unmaskedPackages) {
-      if (name.startsWith(pkg + ".")) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  /**
-   * Same behavior as in {@link URLClassLoader#loadClass(String, boolean)}, except loading from parent.
-   */
-  @Override
-  protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
-    // First, check if the class has already been loaded
-    Class<?> c = findLoadedClass(name);
-    if (c == null) {
-      try {
-        // Load from parent
-        if (getParent() != null && canLoadFromParent(name)) {
-          c = getParent().loadClass(name);
-        } else {
-          // Load from system
-
-          // I don't know for other vendors, but for Oracle JVM :
-          // - ClassLoader.getSystemClassLoader() is sun.misc.Launcher$AppClassLoader. It contains app classpath.
-          // - ClassLoader.getSystemClassLoader().getParent() is sun.misc.Launcher$ExtClassLoader. It contains core JVM
-          ClassLoader systemClassLoader = getSystemClassLoader();
-          if (systemClassLoader.getParent() != null) {
-            systemClassLoader = systemClassLoader.getParent();
-          }
-          c = systemClassLoader.loadClass(name);
-        }
-      } catch (ClassNotFoundException e) {
-        // If still not found, then invoke findClass in order
-        // to find the class.
-        c = findClass(name);
-      }
-    }
-    if (resolve) {
-      resolveClass(c);
-    }
-    return c;
-  }
-
-  /**
-   * Unlike {@link URLClassLoader#getResource(String)} don't return resource from parent.
-   * See http://jira.codehaus.org/browse/SONAR-2276
-   */
-  @Override
-  public URL getResource(String name) {
-    return findResource(name);
-  }
-
-  /**
-   * Unlike {@link URLClassLoader#getResources(String)} don't return resources from parent.
-   * See http://jira.codehaus.org/browse/SONAR-2276
-   */
-  @Override
-  public Enumeration<URL> getResources(String name) throws IOException {
-    return findResources(name);
-  }
-
-}
diff --git a/sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/BootstrapException.java b/sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/BootstrapException.java
deleted file mode 100644 (file)
index 32d8953..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar 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.
- *
- * Sonar 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 Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
- */
-package org.sonar.batch.bootstrapper;
-
-public class BootstrapException extends RuntimeException {
-
-  public BootstrapException(String message) {
-    super(message);
-  }
-
-  public BootstrapException(Throwable cause) {
-    super(cause);
-  }
-
-  public BootstrapException(String message, Throwable cause) {
-    super(message, cause);
-  }
-
-}
diff --git a/sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/Bootstrapper.java b/sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/Bootstrapper.java
deleted file mode 100644 (file)
index 5f8f17a..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar 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.
- *
- * Sonar 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 Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
- */
-package org.sonar.batch.bootstrapper;
-
-import java.io.*;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-public class Bootstrapper {
-
-  private static final String VERSION_PATH = "/api/server/version";
-  private static final String BATCH_PATH = "/batch/";
-
-  public static final int CONNECT_TIMEOUT_MILLISECONDS = 30000;
-  public static final int READ_TIMEOUT_MILLISECONDS = 60000;
-
-  private File bootDir;
-  private String serverUrl;
-  private String productToken;
-  private String serverVersion;
-
-  /**
-   * @param productToken part of User-Agent request-header field - see http://tools.ietf.org/html/rfc1945#section-10.15
-   */
-  public Bootstrapper(String productToken, String serverUrl, File workDir) {
-    this.productToken = productToken;
-    bootDir = new File(workDir, "batch");
-    bootDir.mkdirs();
-    if (serverUrl.endsWith("/")) {
-      this.serverUrl = serverUrl.substring(0, serverUrl.length() - 1);
-    } else {
-      this.serverUrl = serverUrl;
-    }
-  }
-
-  /**
-   * @return server url
-   */
-  public String getServerUrl() {
-    return serverUrl;
-  }
-
-  /**
-   * @return server version
-   */
-  public String getServerVersion() {
-    if (serverVersion == null) {
-      try {
-        serverVersion = remoteContent(VERSION_PATH);
-      } catch (IOException e) {
-        throw new BootstrapException(e.getMessage(), e);
-      }
-    }
-    return serverVersion;
-  }
-
-  /**
-   * Download batch files from server and creates {@link BootstrapClassLoader}.
-   * To use this method version of Sonar should be at least 2.6.
-   * 
-   * @param urls additional URLs for loading classes and resources
-   * @param parent parent ClassLoader
-   * @param unmaskedPackages only classes and resources from those packages would be available for loading from parent
-   */
-  public BootstrapClassLoader createClassLoader(URL[] urls, ClassLoader parent, String... unmaskedPackages) {
-    BootstrapClassLoader classLoader = new BootstrapClassLoader(parent, unmaskedPackages);
-    List<File> files = downloadBatchFiles();
-    for (URL url : urls) {
-      classLoader.addURL(url);
-    }
-    for (File file : files) {
-      try {
-        classLoader.addURL(file.toURI().toURL());
-      } catch (MalformedURLException e) {
-        throw new BootstrapException(e);
-      }
-    }
-    return classLoader;
-  }
-
-  private void remoteContentToFile(String path, File toFile) {
-    InputStream input = null;
-    FileOutputStream output = null;
-    String fullUrl = serverUrl + path;
-    try {
-      HttpURLConnection connection = newHttpConnection(new URL(fullUrl));
-      output = new FileOutputStream(toFile, false);
-      input = connection.getInputStream();
-      BootstrapperIOUtils.copyLarge(input, output);
-    } catch (IOException e) {
-      BootstrapperIOUtils.closeQuietly(output);
-      BootstrapperIOUtils.deleteFileQuietly(toFile);
-      throw new BootstrapException("Fail to download the file: " + fullUrl, e);
-    } finally {
-      BootstrapperIOUtils.closeQuietly(input);
-      BootstrapperIOUtils.closeQuietly(output);
-    }
-  }
-
-  String remoteContent(String path) throws IOException {
-    String fullUrl = serverUrl + path;
-    HttpURLConnection conn = newHttpConnection(new URL(fullUrl));
-    Reader reader = new InputStreamReader((InputStream) conn.getContent());
-    try {
-      int statusCode = conn.getResponseCode();
-      if (statusCode != HttpURLConnection.HTTP_OK) {
-        throw new IOException("Status returned by url : '" + fullUrl + "' is invalid : " + statusCode);
-      }
-      return BootstrapperIOUtils.toString(reader);
-    } finally {
-      BootstrapperIOUtils.closeQuietly(reader);
-      conn.disconnect();
-    }
-  }
-
-  /**
-   * By convention, the product tokens are listed in order of their significance for identifying the application.
-   */
-  String getUserAgent() {
-    return "sonar-bootstrapper/" + BootstrapperVersion.getVersion() + " " + productToken;
-  }
-
-  HttpURLConnection newHttpConnection(URL url) throws IOException {
-    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
-    connection.setConnectTimeout(CONNECT_TIMEOUT_MILLISECONDS);
-    connection.setReadTimeout(READ_TIMEOUT_MILLISECONDS);
-    connection.setInstanceFollowRedirects(true);
-    connection.setRequestMethod("GET");
-    connection.setRequestProperty("User-Agent", getUserAgent());
-    return connection;
-  }
-
-  private List<File> downloadBatchFiles() {
-    try {
-      List<File> files = new ArrayList<File>();
-      String libs = remoteContent(BATCH_PATH);
-      for (String lib : libs.split(",")) {
-        File file = new File(bootDir, lib);
-        remoteContentToFile(BATCH_PATH + lib, file);
-        files.add(file);
-      }
-      return files;
-    } catch (Exception e) {
-      throw new BootstrapException(e);
-    }
-  }
-}
diff --git a/sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/BootstrapperIOUtils.java b/sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/BootstrapperIOUtils.java
deleted file mode 100644 (file)
index e0dbe70..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar 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.
- *
- * Sonar 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 Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
- */
-package org.sonar.batch.bootstrapper;
-
-import java.io.*;
-
-public final class BootstrapperIOUtils {
-
-  private BootstrapperIOUtils() {
-    // only static methods
-  }
-
-  /**
-   * The default buffer size to use.
-   */
-  private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;
-
-  /**
-   * Unconditionally close a <code>Closeable</code>.
-   */
-  public static void closeQuietly(Closeable closeable) {
-    try {
-      if (closeable != null) {
-        closeable.close();
-      }
-    } catch (IOException ioe) { // NOSONAR
-    }
-  }
-
-  /**
-   * Get the contents of a <code>Reader</code> as a String.
-   */
-  public static String toString(Reader input) throws IOException {
-    StringWriter sw = new StringWriter();
-    copyLarge(input, sw);
-    return sw.toString();
-  }
-
-  /**
-   * Copy bytes from an <code>InputStream</code> to an <code>OutputStream</code>.
-   */
-  public static long copyLarge(InputStream input, OutputStream output) throws IOException {
-    byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
-    long count = 0;
-    int n = 0;
-    while (-1 != (n = input.read(buffer))) {
-      output.write(buffer, 0, n);
-      count += n;
-    }
-    return count;
-  }
-
-  /**
-   * Copy chars from a <code>Reader</code> to a <code>Writer</code>.
-   */
-  public static long copyLarge(Reader input, Writer output) throws IOException {
-    char[] buffer = new char[DEFAULT_BUFFER_SIZE];
-    long count = 0;
-    int n = 0;
-    while (-1 != (n = input.read(buffer))) {
-      output.write(buffer, 0, n);
-      count += n;
-    }
-    return count;
-  }
-
-  /**
-   * Deletes a file (not a directory).
-   */
-  public static boolean deleteFileQuietly(File file) {
-    if (file == null) {
-      return false;
-    }
-    try {
-      return file.delete();
-    } catch (Exception e) {
-      return false;
-    }
-  }
-
-}
diff --git a/sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/BootstrapperVersion.java b/sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/BootstrapperVersion.java
deleted file mode 100644 (file)
index 84e408b..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar 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.
- *
- * Sonar 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 Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
- */
-package org.sonar.batch.bootstrapper;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-public enum BootstrapperVersion {
-
-  INSTANCE;
-
-  private static final String PROPERTIES_PATH = "/org/sonar/batch/bootstrapper/version.txt";
-  private String version;
-
-  public static String getVersion() {
-    return INSTANCE.version;
-  }
-
-  private BootstrapperVersion() {
-    InputStream input = getClass().getResourceAsStream(PROPERTIES_PATH);
-    try {
-      Properties properties = new Properties();
-      properties.load(input);
-      this.version = properties.getProperty("version");
-
-    } catch (IOException e) {
-      // Can not load the version
-      this.version = "";
-
-    } finally {
-      BootstrapperIOUtils.closeQuietly(input);
-    }
-  }
-}
diff --git a/sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/package-info.java b/sonar-batch-bootstrapper/src/main/java/org/sonar/batch/bootstrapper/package-info.java
deleted file mode 100644 (file)
index 7e5aa05..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar 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.
- *
- * Sonar 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 Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
- */
-
-/**
- * Provides API to bootstrap Sonar Batch.
- */
-package org.sonar.batch.bootstrapper;
\ No newline at end of file
diff --git a/sonar-batch-bootstrapper/src/main/resources/org/sonar/batch/bootstrapper/version.txt b/sonar-batch-bootstrapper/src/main/resources/org/sonar/batch/bootstrapper/version.txt
deleted file mode 100644 (file)
index defbd48..0000000
+++ /dev/null
@@ -1 +0,0 @@
-version=${project.version}
diff --git a/sonar-batch-bootstrapper/src/test/java/org/sonar/batch/bootstrapper/BootstrapClassLoaderTest.java b/sonar-batch-bootstrapper/src/test/java/org/sonar/batch/bootstrapper/BootstrapClassLoaderTest.java
deleted file mode 100644 (file)
index 05c4718..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar 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.
- *
- * Sonar 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 Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
- */
-package org.sonar.batch.bootstrapper;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-
-import static org.fest.assertions.Assertions.assertThat;
-
-public class BootstrapClassLoaderTest {
-
-  @Rule
-  public ExpectedException thrown = ExpectedException.none();
-
-  @Test
-  public void shouldRestrictLoadingFromParent() throws Exception {
-    BootstrapClassLoader classLoader = new BootstrapClassLoader(getClass().getClassLoader(), "org.sonar.ant");
-    assertThat(classLoader.canLoadFromParent("org.sonar.ant.Launcher")).isTrue();
-    assertThat(classLoader.canLoadFromParent("org.objectweb.asm.ClassVisitor")).isFalse();
-  }
-
-  @Test
-  public void use_isolated_system_classloader_when_parent_is_excluded() throws ClassNotFoundException {
-    thrown.expect(ClassNotFoundException.class);
-    thrown.expectMessage("org.junit.Test");
-    ClassLoader parent = getClass().getClassLoader();
-    BootstrapClassLoader classLoader = new BootstrapClassLoader(parent);
-
-    // JUnit is available in the parent classloader (classpath used to execute this test) but not in the core JVM
-    assertThat(classLoader.loadClass("java.lang.String", false)).isNotNull();
-    classLoader.loadClass("org.junit.Test", false);
-  }
-
-  @Test
-  public void find_in_parent_when_matches_unmasked_packages() throws ClassNotFoundException {
-    ClassLoader parent = getClass().getClassLoader();
-    BootstrapClassLoader classLoader = new BootstrapClassLoader(parent, "org.junit");
-
-    // JUnit is available in the parent classloader (classpath used to execute this test) but not in the core JVM
-    assertThat(classLoader.loadClass("org.junit.Test", false)).isNotNull();
-  }
-}
diff --git a/sonar-batch-bootstrapper/src/test/java/org/sonar/batch/bootstrapper/BootstrapperTest.java b/sonar-batch-bootstrapper/src/test/java/org/sonar/batch/bootstrapper/BootstrapperTest.java
deleted file mode 100644 (file)
index d649b4e..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar 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.
- *
- * Sonar 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 Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
- */
-package org.sonar.batch.bootstrapper;
-
-import org.junit.Test;
-
-import java.io.File;
-import java.io.IOException;
-
-import static org.fest.assertions.Assertions.assertThat;
-
-public class BootstrapperTest {
-
-  @Test
-  public void shouldRemoveLastUrlSlash() {
-    Bootstrapper bootstrapper = new Bootstrapper("", "http://test/", new File("target"));
-    assertThat(bootstrapper.getServerUrl()).isEqualTo("http://test");
-  }
-
-  @Test(expected = Exception.class)
-  public void shouldFailIfCanNotConnectServer() {
-    Bootstrapper bootstrapper = new Bootstrapper("", "http://unknown.foo", new File("target"));
-    bootstrapper.getServerVersion();
-  }
-
-  @Test
-  public void shouldReturnUserAgent() {
-    Bootstrapper bootstrapper = new Bootstrapper("test/0.1", "http://unknown.foo", new File("target"));
-    String userAgent = bootstrapper.getUserAgent();
-
-    assertThat(userAgent.length()).isGreaterThan(0);
-    assertThat(userAgent).startsWith("sonar-bootstrapper/");
-    assertThat(userAgent).endsWith(" test/0.1");
-  }
-
-  @Test
-  public void shouldReturnValidVersion() {
-    Bootstrapper bootstrapper = new Bootstrapper("", "http://test", new File("target")) {
-      @Override
-      String remoteContent(String path) throws IOException {
-        return "2.6";
-      }
-    };
-    assertThat(bootstrapper.getServerVersion()).isEqualTo("2.6");
-  }
-
-}
diff --git a/sonar-batch-bootstrapper/src/test/java/org/sonar/batch/bootstrapper/BootstrapperVersionTest.java b/sonar-batch-bootstrapper/src/test/java/org/sonar/batch/bootstrapper/BootstrapperVersionTest.java
deleted file mode 100644 (file)
index f9a7651..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar 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.
- *
- * Sonar 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 Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
- */
-package org.sonar.batch.bootstrapper;
-
-import org.junit.Test;
-
-import static org.fest.assertions.Assertions.assertThat;
-
-public class BootstrapperVersionTest {
-
-  @Test
-  public void shouldLoadVersion() {
-    String version = BootstrapperVersion.getVersion();
-    assertThat(version).contains(".");
-    assertThat(version).doesNotContain("$");
-  }
-
-}