]> source.dussan.org Git - sonar-scanner-cli.git/commitdiff
Fix quality flaws
authorSimon Brandhof <simon.brandhof@gmail.com>
Sun, 7 Apr 2013 11:27:04 +0000 (13:27 +0200)
committerSimon Brandhof <simon.brandhof@gmail.com>
Sun, 7 Apr 2013 11:27:04 +0000 (13:27 +0200)
sonar-runner-batch/src/test/java/org/sonar/runner/batch/LauncherTest.java [deleted file]
sonar-runner-impl/src/main/java/org/sonar/runner/impl/BatchLauncher.java

diff --git a/sonar-runner-batch/src/test/java/org/sonar/runner/batch/LauncherTest.java b/sonar-runner-batch/src/test/java/org/sonar/runner/batch/LauncherTest.java
deleted file mode 100644 (file)
index 87f558a..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Sonar Runner - Batch
- * Copyright (C) 2011 SonarSource
- * dev@sonar.codehaus.org
- *
- * 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 org.sonar.runner.batch;
-//
-//import com.google.common.collect.Lists;
-//import org.junit.Test;
-//
-//import java.util.Properties;
-//
-//import static org.fest.assertions.Assertions.assertThat;
-//
-//public class LauncherTest {
-//
-//  @Test
-//  public void testGetSqlLevel() throws Exception {
-//    Properties conf = new Properties();
-//
-//    assertThat(Launcher.getSqlLevel(conf)).isEqualTo("WARN");
-//
-//    conf.setProperty("sonar.showSql", "true");
-//    assertThat(Launcher.getSqlLevel(conf)).isEqualTo("DEBUG");
-//
-//    conf.setProperty("sonar.showSql", "false");
-//    assertThat(Launcher.getSqlLevel(conf)).isEqualTo("WARN");
-//  }
-//
-//  @Test
-//  public void testGetSqlResultsLevel() throws Exception {
-//    Properties conf = new Properties();
-//
-//    assertThat(Launcher.getSqlResultsLevel(conf)).isEqualTo("WARN");
-//
-//    conf.setProperty("sonar.showSqlResults", "true");
-//    assertThat(Launcher.getSqlResultsLevel(conf)).isEqualTo("DEBUG");
-//
-//    conf.setProperty("sonar.showSqlResults", "false");
-//    assertThat(Launcher.getSqlResultsLevel(conf)).isEqualTo("WARN");
-//  }
-//
-//  @Test
-//  public void shouldDetermineVerboseMode() {
-//    Properties properties = new Properties();
-//    Launcher launcher = new Launcher(properties, Lists.newArrayList());
-//    assertThat(launcher.isDebug()).isFalse();
-//    properties.setProperty("sonar.verbose", "true");
-//    assertThat(launcher.isDebug()).isTrue();
-//  }
-//
-//  @Test
-//  public void shouldSupportDeprecatedDebugProperty() {
-//    Properties properties = new Properties();
-//    Launcher launcher = new Launcher(properties, Lists.newArrayList());
-//    properties.setProperty("runner.debug", "true");
-//    assertThat(launcher.isDebug()).isTrue();
-//  }
-//
-//}
index 1d3cdb8b09b386d4417b94563fa872876f9b2c98..6a7a20743fc364a2abf02daebc306befdfd6ebb3 100644 (file)
@@ -22,6 +22,8 @@ package org.sonar.runner.impl;
 import java.io.File;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.List;
 import java.util.Properties;
 
@@ -49,31 +51,38 @@ public class BatchLauncher {
   /**
    * @return the {@link IsolatedLauncher} instance for unit tests
    */
-  Object doExecute(JarDownloader jarDownloader, Properties props, List<Object> extensions) {
-    List<File> jarFiles = jarDownloader.download();
-    String unmaskedPackages = props.getProperty(InternalProperties.RUNNER_UNMASKED_PACKAGES, "");
-    IsolatedClassloader classloader = new IsolatedClassloader(getClass().getClassLoader(), unmaskedPackages.split(":"));
-    classloader.addFiles(jarFiles);
-    return delegateExecution(classloader, props, extensions);
-  }
+  Object doExecute(final JarDownloader jarDownloader, final Properties props, final List<Object> extensions) {
+    Object launcher = AccessController.doPrivileged(new PrivilegedAction<Object>() {
+      public Object run() {
+        List<File> jarFiles = jarDownloader.download();
+        String unmaskedPackages = props.getProperty(InternalProperties.RUNNER_UNMASKED_PACKAGES, "");
+        IsolatedClassloader classloader = new IsolatedClassloader(getClass().getClassLoader(), unmaskedPackages.split(":"));
+        classloader.addFiles(jarFiles);
+        return delegateExecution(classloader, props, extensions);
+      }
 
-  private Object delegateExecution(IsolatedClassloader classloader, Properties properties, List<Object> extensions) {
-    ClassLoader initialContextClassLoader = Thread.currentThread().getContextClassLoader();
-    try {
-      Thread.currentThread().setContextClassLoader(classloader);
-      Class<?> launcherClass = classloader.loadClass(isolatedLauncherClass);
-      Method executeMethod = launcherClass.getMethod("execute", Properties.class, List.class);
-      Object launcher = launcherClass.newInstance();
-      executeMethod.invoke(launcher, properties, extensions);
-      return launcher;
-    } catch (InvocationTargetException e) {
-      // Unwrap original exception
-      throw new RunnerException("Unable to execute Sonar", e.getTargetException());
-    } catch (Exception e) {
-      // Catch all other exceptions, which relates to reflection
-      throw new RunnerException("Unable to execute Sonar", e);
-    } finally {
-      Thread.currentThread().setContextClassLoader(initialContextClassLoader);
-    }
+      private Object delegateExecution(IsolatedClassloader classloader, Properties properties, List<Object> extensions) {
+        ClassLoader initialContextClassLoader = Thread.currentThread().getContextClassLoader();
+        try {
+          Thread.currentThread().setContextClassLoader(classloader);
+          Class<?> launcherClass = classloader.loadClass(isolatedLauncherClass);
+          Method executeMethod = launcherClass.getMethod("execute", Properties.class, List.class);
+          Object launcher = launcherClass.newInstance();
+          executeMethod.invoke(launcher, properties, extensions);
+          return launcher;
+        } catch (InvocationTargetException e) {
+          // Unwrap original exception
+          throw new RunnerException("Unable to execute Sonar", e.getTargetException());
+        } catch (Exception e) {
+          // Catch all other exceptions, which relates to reflection
+          throw new RunnerException("Unable to execute Sonar", e);
+        } finally {
+          Thread.currentThread().setContextClassLoader(initialContextClassLoader);
+        }
+      }
+    });
+    return launcher;
   }
-}
+
+
+}
\ No newline at end of file