]> source.dussan.org Git - sonarqube.git/commitdiff
Fix some quality flaws
authorSimon Brandhof <simon.brandhof@gmail.com>
Mon, 2 Apr 2012 20:32:30 +0000 (22:32 +0200)
committerSimon Brandhof <simon.brandhof@gmail.com>
Mon, 2 Apr 2012 20:32:30 +0000 (22:32 +0200)
plugins/sonar-cobertura-plugin/src/main/java/org/sonar/plugins/cobertura/CoberturaSensor.java
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ReviewNotifications.java
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ReviewWorkflowDecorator.java
sonar-core/src/main/java/org/sonar/core/plugins/PluginInstaller.java
sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyDefinition.java
sonar-server/src/main/java/org/sonar/server/plugins/ClassLoaderUtils.java

index 2c6ed02016e4c1aed5f5103a378860780ffce88b..6c629f15afdf38f448cf1e9510e2f66fed652173 100644 (file)
@@ -46,7 +46,7 @@ public class CoberturaSensor implements Sensor, CoverageExtension {
     }
     File report = project.getFileSystem().resolvePath(path);
     if (!report.exists() || !report.isFile()) {
-      Logs.INFO.warn("Cobertura report not found at {}", report);
+      LoggerFactory.getLogger(getClass()).warn("Cobertura report not found at {}", report);
       return;
     }
     parseReport(report, context);
@@ -54,12 +54,7 @@ public class CoberturaSensor implements Sensor, CoverageExtension {
 
   protected void parseReport(File xmlFile, final SensorContext context) {
     LoggerFactory.getLogger(CoberturaSensor.class).info("parsing {}", xmlFile);
-    new AbstractCoberturaParser() {
-      @Override
-      protected Resource<?> getResource(String fileName) {
-        return new JavaFile(fileName);
-      }
-    }.parseReport(xmlFile, context);
+    new JavaCoberturaParser().parseReport(xmlFile, context);
   }
 
   @Override
@@ -67,4 +62,10 @@ public class CoberturaSensor implements Sensor, CoverageExtension {
     return getClass().getSimpleName();
   }
 
+  private static final class JavaCoberturaParser extends AbstractCoberturaParser {
+    @Override
+    protected Resource<?> getResource(String fileName) {
+      return new JavaFile(fileName);
+    }
+  }
 }
index 3c79baff3f9395480f82b743be2dc0f8cae0e3cf..3fb852f651fe7849b1bdeb089d4b90c89dd96275 100644 (file)
@@ -65,7 +65,7 @@ public class ReviewNotifications implements BatchExtension {
         .setFieldValue("assignee", getAssignee(review));
   }
 
-  private @Nullable String getCreator(ReviewDto review) {
+  private String getCreator(ReviewDto review) {
     if (review.getUserId() == null) { // no creator and in fact this should never happen in real-life, however happens during unit tests
       return null;
     }
@@ -73,7 +73,7 @@ public class ReviewNotifications implements BatchExtension {
     return user != null ? user.getLogin() : null;
   }
 
-  private @Nullable String getAssignee(ReviewDto review) {
+  private String getAssignee(ReviewDto review) {
     if (review.getAssigneeId() == null) { // not assigned
       return null;
     }
index 9fc97e67ba829783c0ec0097b518d95b5c551a25..3e27ee2f61b3adfa3abd6c33ac727c32fcec5e70 100644 (file)
@@ -107,12 +107,10 @@ public class ReviewWorkflowDecorator implements Decorator {
 
     for (ReviewDto review : openReviews) {
       Violation violation = violationsByPermanentId.get(review.getViolationPermanentId());
-      if (violation != null) {
-        if (!hasUpToDateInformation(review, violation)) {
-          review.setLine(violation.getLineId());
-          review.setTitle(violation.getMessage());
-          updated.add(review);
-        }
+      if (violation != null && !hasUpToDateInformation(review, violation)) {
+        review.setLine(violation.getLineId());
+        review.setTitle(violation.getMessage());
+        updated.add(review);
       }
     }
   }
@@ -132,11 +130,7 @@ public class ReviewWorkflowDecorator implements Decorator {
   }
 
   private void closeResolvedStandardViolations(Collection<ReviewDto> openReviews, List<Violation> violations, Project project, Resource resource, Set<ReviewDto> updated) {
-    Set<Integer> violationIds = Sets.newHashSet(Collections2.transform(violations, new Function<Violation, Integer>() {
-      public Integer apply(Violation violation) {
-        return violation.getPermanentId();
-      }
-    }));
+    Set<Integer> violationIds = Sets.newHashSet(Collections2.transform(violations, new ViolationToPermanentIdFunction()));
 
     for (ReviewDto openReview : openReviews) {
       if (!openReview.isManualViolation() && !violationIds.contains(openReview.getViolationPermanentId())) {
@@ -168,4 +162,10 @@ public class ReviewWorkflowDecorator implements Decorator {
     review.setResolution(null);
     review.setUpdatedAt(new Date());
   }
+
+  private static final class ViolationToPermanentIdFunction implements Function<Violation, Integer> {
+    public Integer apply(Violation violation) {
+      return violation.getPermanentId();
+    }
+  }
 }
index 94c2c6f4bad65b707e62b3c639cd81fcd6f9be55..5566a0e0ae09a2e49958b86dbd9379ee0e051e4a 100644 (file)
@@ -48,37 +48,9 @@ public class PluginInstaller {
   public DefaultPluginMetadata install(DefaultPluginMetadata metadata, File toDir) {
     try {
       File pluginFile = metadata.getFile();
-      File pluginBasedir;
-      if (toDir != null) {
-        pluginBasedir = toDir;
-        FileUtils.forceMkdir(pluginBasedir);
-        File targetFile = new File(pluginBasedir, pluginFile.getName());
-        FileUtils.copyFile(pluginFile, targetFile);
-        metadata.addDeployedFile(targetFile);
-      } else {
-        pluginBasedir = pluginFile.getParentFile();
-        metadata.addDeployedFile(pluginFile);
-      }
-
-      if (metadata.getPathsToInternalDeps().length > 0) {
-        // needs to unzip the jar
-        ZipUtils.unzip(pluginFile, pluginBasedir, new LibFilter());
-        for (String depPath : metadata.getPathsToInternalDeps()) {
-          File dependency = new File(pluginBasedir, depPath);
-          if (!dependency.isFile() || !dependency.exists()) {
-            throw new IllegalArgumentException("Dependency " + depPath + " can not be found in " + pluginFile.getName());
-          }
-          metadata.addDeployedFile(dependency);
-        }
-      }
-
-      for (File extension : metadata.getDeprecatedExtensions()) {
-        File toFile = new File(pluginBasedir, extension.getName());
-        if (!toFile.equals(extension)) {
-          FileUtils.copyFile(extension, toFile);
-        }
-        metadata.addDeployedFile(toFile);
-      }
+      File pluginBasedir = copyPlugin(metadata, toDir, pluginFile);
+      copyDependencies(metadata, pluginFile, pluginBasedir);
+      copyDeprecatedExtensions(metadata, pluginBasedir);
 
       return metadata;
 
@@ -87,7 +59,46 @@ public class PluginInstaller {
     }
   }
 
-  private static class LibFilter implements ZipUtils.ZipEntryFilter {
+  private File copyPlugin(DefaultPluginMetadata metadata, File toDir, File pluginFile) throws IOException {
+    File pluginBasedir;
+    if (toDir != null) {
+      pluginBasedir = toDir;
+      FileUtils.forceMkdir(pluginBasedir);
+      File targetFile = new File(pluginBasedir, pluginFile.getName());
+      FileUtils.copyFile(pluginFile, targetFile);
+      metadata.addDeployedFile(targetFile);
+    } else {
+      pluginBasedir = pluginFile.getParentFile();
+      metadata.addDeployedFile(pluginFile);
+    }
+    return pluginBasedir;
+  }
+
+  private void copyDependencies(DefaultPluginMetadata metadata, File pluginFile, File pluginBasedir) throws IOException {
+    if (metadata.getPathsToInternalDeps().length > 0) {
+      // needs to unzip the jar
+      ZipUtils.unzip(pluginFile, pluginBasedir, new LibFilter());
+      for (String depPath : metadata.getPathsToInternalDeps()) {
+        File dependency = new File(pluginBasedir, depPath);
+        if (!dependency.isFile() || !dependency.exists()) {
+          throw new IllegalArgumentException("Dependency " + depPath + " can not be found in " + pluginFile.getName());
+        }
+        metadata.addDeployedFile(dependency);
+      }
+    }
+  }
+
+  private void copyDeprecatedExtensions(DefaultPluginMetadata metadata, File pluginBasedir) throws IOException {
+    for (File extension : metadata.getDeprecatedExtensions()) {
+      File toFile = new File(pluginBasedir, extension.getName());
+      if (!toFile.equals(extension)) {
+        FileUtils.copyFile(extension, toFile);
+      }
+      metadata.addDeployedFile(toFile);
+    }
+  }
+
+  private static final class LibFilter implements ZipUtils.ZipEntryFilter {
     public boolean accept(ZipEntry entry) {
       return entry.getName().startsWith("META-INF/lib");
     }
@@ -120,7 +131,7 @@ public class PluginInstaller {
     }
   }
 
-  private void completeDeprecatedMetadata(DefaultPluginMetadata metadata) throws IOException {
+  private void completeDeprecatedMetadata(DefaultPluginMetadata metadata) {
     String mainClass = metadata.getMainClass();
     File pluginFile = metadata.getFile();
     try {
index 658d328422c42dba0ca9b892181cd4fd5beda660..e10070962454ca695fdb75e9d3548916b754071d 100644 (file)
@@ -38,12 +38,12 @@ public final class PropertyDefinition {
 
     private String errorKey = null;
 
-    private static Result newError(@Nullable String key) {
+    private static Result newError(String key) {
       return new Result(key);
     }
 
     @Nullable
-    private Result(String errorKey) {
+    private Result(@Nullable String errorKey) {
       this.errorKey = errorKey;
     }
 
index 58e2d5ad0ad5d76daba3f64204b57d81ce02cd6b..9b971a24dc92b70814ee74a16c3fd29f2a5517fc 100644 (file)
@@ -98,29 +98,28 @@ public final class ClassLoaderUtils {
       rootPath = StringUtils.removeStart(rootPath, "/");
 
       URL root = classLoader.getResource(rootPath);
-      if (root == null) {
-        return paths;
-      }
-      if (!"jar".equals(root.getProtocol())) {
-        throw new IllegalStateException("Unsupported protocol: " + root.getProtocol());
-      }
+      if (root != null) {
+        if (!"jar".equals(root.getProtocol())) {
+          throw new IllegalStateException("Unsupported protocol: " + root.getProtocol());
+        }
 
-      // Path of the root directory
-      // Examples :
-      // org/sonar/sqale/index.txt  -> rootDirectory is org/sonar/sqale
-      // org/sonar/sqale/  -> rootDirectory is org/sonar/sqale
-      // org/sonar/sqale  -> rootDirectory is org/sonar/sqale
-      String rootDirectory = rootPath;
-      if (StringUtils.substringAfterLast(rootPath, "/").indexOf('.') >= 0) {
-        rootDirectory = StringUtils.substringBeforeLast(rootPath, "/");
-      }
-      String jarPath = root.getPath().substring(5, root.getPath().indexOf("!")); //strip out only the JAR file
-      JarFile jar = new JarFile(URLDecoder.decode(jarPath, CharEncoding.UTF_8));
-      Enumeration<JarEntry> entries = jar.entries();
-      while (entries.hasMoreElements()) {
-        String name = entries.nextElement().getName();
-        if (name.startsWith(rootDirectory) && predicate.apply(name)) {
-          paths.add(name);
+        // Path of the root directory
+        // Examples :
+        // org/sonar/sqale/index.txt  -> rootDirectory is org/sonar/sqale
+        // org/sonar/sqale/  -> rootDirectory is org/sonar/sqale
+        // org/sonar/sqale  -> rootDirectory is org/sonar/sqale
+        String rootDirectory = rootPath;
+        if (StringUtils.substringAfterLast(rootPath, "/").indexOf('.') >= 0) {
+          rootDirectory = StringUtils.substringBeforeLast(rootPath, "/");
+        }
+        String jarPath = root.getPath().substring(5, root.getPath().indexOf("!")); //strip out only the JAR file
+        JarFile jar = new JarFile(URLDecoder.decode(jarPath, CharEncoding.UTF_8));
+        Enumeration<JarEntry> entries = jar.entries();
+        while (entries.hasMoreElements()) {
+          String name = entries.nextElement().getName();
+          if (name.startsWith(rootDirectory) && predicate.apply(name)) {
+            paths.add(name);
+          }
         }
       }
       return paths;