]> source.dussan.org Git - sonarqube.git/commitdiff
Reduce technical debt
authorsimonbrandhof <simon.brandhof@gmail.com>
Thu, 5 May 2011 13:08:04 +0000 (15:08 +0200)
committersimonbrandhof <simon.brandhof@gmail.com>
Thu, 5 May 2011 13:08:04 +0000 (15:08 +0200)
26 files changed:
plugins/sonar-checkstyle-plugin/src/main/java/org/sonar/plugins/checkstyle/CheckstyleSensor.java
plugins/sonar-cobertura-plugin/src/main/java/org/sonar/plugins/cobertura/api/CoberturaUtils.java
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/timemachine/ViolationPersisterDecorator.java
plugins/sonar-findbugs-plugin/src/main/java/org/sonar/plugins/findbugs/FindbugsSensor.java
plugins/sonar-pmd-plugin/src/main/java/org/sonar/plugins/pmd/PmdSensor.java
plugins/sonar-squid-java-plugin/src/main/java/org/sonar/java/squid/check/EmptyFileCheck.java
plugins/sonar-surefire-plugin/src/main/java/org/sonar/plugins/surefire/SurefirePlugin.java
sonar-channel/src/main/java/org/sonar/channel/RegexChannel.java
sonar-markdown/src/main/java/org/sonar/markdown/HtmlListChannel.java
sonar-markdown/src/main/java/org/sonar/markdown/MarkdownEngine.java
sonar-plugin-api/src/main/java/org/sonar/api/Plugin.java
sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorContext.java
sonar-plugin-api/src/main/java/org/sonar/api/web/gwt/client/ResourceDictionary.java
sonar-plugin-api/src/main/java/org/sonar/api/web/gwt/client/Utils.java
sonar-plugin-api/src/main/java/org/sonar/api/web/gwt/client/webservices/BaseQueryCallback.java
sonar-plugin-api/src/main/java/org/sonar/api/web/gwt/client/webservices/JSONHandlerDispatcher.java
sonar-plugin-api/src/main/java/org/sonar/api/web/gwt/client/webservices/JsonUtils.java
sonar-plugin-api/src/main/java/org/sonar/api/web/gwt/client/webservices/Query.java
sonar-plugin-api/src/main/java/org/sonar/api/web/gwt/client/webservices/QueryCallBack.java
sonar-plugin-api/src/main/java/org/sonar/api/web/gwt/client/webservices/ResponsePOJO.java
sonar-plugin-api/src/main/java/org/sonar/api/web/gwt/client/webservices/SequentialQueries.java
sonar-plugin-api/src/main/java/org/sonar/api/web/gwt/client/webservices/VoidResponse.java
sonar-plugin-api/src/main/java/org/sonar/api/web/gwt/client/webservices/WSMetrics.java
sonar-server/src/main/java/org/sonar/server/database/CustomHibernateConnectionProvider.java
sonar-server/src/main/java/org/sonar/server/database/JndiDatabaseConnector.java
sonar-ws-client/src/main/java/org/sonar/wsclient/services/Review.java

index 3b2311e0f1f8173d9d70b6bcb1eb3a70dd9d6ab6..83eb1b544fa6725d6f5c9a323387894fd4eeb1c6 100644 (file)
@@ -23,7 +23,6 @@ import org.sonar.api.batch.Sensor;
 import org.sonar.api.batch.SensorContext;
 import org.sonar.api.profiles.RulesProfile;
 import org.sonar.api.resources.Project;
-import org.sonar.api.utils.Logs;
 
 public class CheckstyleSensor implements Sensor {
 
index c4e24332fe2a21b1b69c5e2861bf7ed4bff9af55..70a6a843780f7ecbd1efde26b45f0a76a4b87d9a 100644 (file)
@@ -39,6 +39,7 @@ public final class CoberturaUtils {
    * @deprecated in 2.8, because assumes that Sonar executed from Maven. Not used any more in sonar-cobertura-plugin.
    *             See http://jira.codehaus.org/browse/SONAR-2321
    */
+  @Deprecated
   public static File getReport(Project project) {
     File report = getReportFromProperty(project);
     if (report == null) {
index ece114c814412d2b00a9c2d5f35fef52e4c867ce..4935390e21d780d45c4b8fa3ad933f5090e6cbcc 100644 (file)
@@ -23,7 +23,9 @@ import com.google.common.collect.LinkedHashMultimap;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Multimap;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.lang.ObjectUtils;
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.math.NumberUtils;
 import org.sonar.api.batch.*;
 import org.sonar.api.database.model.RuleFailureModel;
 import org.sonar.api.database.model.SnapshotSource;
@@ -123,7 +125,7 @@ public class ViolationPersisterDecorator implements Decorator {
     return violationMap;
   }
 
-  private final boolean isNotAlreadyMapped(Violation newViolation, Map<Violation, RuleFailureModel> violationMap) {
+  private boolean isNotAlreadyMapped(Violation newViolation, Map<Violation, RuleFailureModel> violationMap) {
     return violationMap.get(newViolation) == null;
   }
 
@@ -161,7 +163,10 @@ public class ViolationPersisterDecorator implements Decorator {
   }
 
   private boolean isSameLine(Violation newViolation, RuleFailureModel pastViolation) {
-    return pastViolation.getLine() == newViolation.getLineId(); //When lines are null, we also return true
+    if (pastViolation.getLine()==null && newViolation.getLineId()==null) {
+      return true;
+    }
+    return ObjectUtils.equals(pastViolation.getLine(), newViolation.getLineId());
   }
 
   private boolean isSameMessage(Violation newViolation, RuleFailureModel pastViolation) {
index 7a5b86c08309ccd554e8448cb60b2a7314df1e39..5a62645666faf81104b25e84eef1b13cf1e4a175 100644 (file)
@@ -19,7 +19,6 @@
  */
 package org.sonar.plugins.findbugs;
 
-import org.apache.commons.lang.StringUtils;
 import org.sonar.api.CoreProperties;
 import org.sonar.api.batch.Sensor;
 import org.sonar.api.batch.SensorContext;
index 079be40e4f3527e173d44bf32e2e334e2fd4f468..8be261318ba3331c205ea6088b3b5aab0f21d518 100644 (file)
  */
 package org.sonar.plugins.pmd;
 
-import java.io.File;
-
 import org.sonar.api.batch.Sensor;
 import org.sonar.api.batch.SensorContext;
 import org.sonar.api.profiles.RulesProfile;
 import org.sonar.api.resources.Project;
 import org.sonar.api.rules.RuleFinder;
-import org.sonar.api.utils.Logs;
 import org.sonar.api.utils.XmlParserException;
 
+import java.io.File;
+
 public class PmdSensor implements Sensor {
 
   private RulesProfile profile;
index 40e276d4d13c88db294613565cffd6abfc581cb2..9377f080c6a226675da5db1e2efd91efed59daf2 100644 (file)
@@ -22,9 +22,7 @@ package org.sonar.java.squid.check;
 
 import org.sonar.check.Priority;
 import org.sonar.check.Rule;
-import org.sonar.check.RuleProperty;
 import org.sonar.squid.api.CheckMessage;
-import org.sonar.squid.api.SourceClass;
 import org.sonar.squid.api.SourceFile;
 import org.sonar.squid.measures.Metric;
 
@@ -35,7 +33,7 @@ public final class EmptyFileCheck extends SquidCheck {
   @Override
   public void visitFile(SourceFile file) {
     int loc = file.getInt(Metric.LINES_OF_CODE);
-    if (loc==0) {
+    if (loc == 0) {
       CheckMessage message = new CheckMessage(this, "This Java file is empty");
       file.log(message);
     }
index 27f9abe2d8ea09c7a84377721e127d0e860ee4ce..1cefa95d4e9989077136455f8d0aeed17525a38c 100644 (file)
  */
 package org.sonar.plugins.surefire;
 
-import org.sonar.api.*;
+import org.sonar.api.CoreProperties;
+import org.sonar.api.Properties;
+import org.sonar.api.Property;
+import org.sonar.api.SonarPlugin;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
index cf44de7f3a8061c220d24db54684d9d3d48779ad..f453522d427f300dc78e853488394e9b98530878 100644 (file)
@@ -52,7 +52,7 @@ public abstract class RegexChannel<OUTPUT> extends Channel<OUTPUT> {
       }
       return false;
     } catch (StackOverflowError e) {
-      throw new RuntimeException(
+      throw new IllegalArgumentException(
           "The regular expression "
               + regex
               + " has led to a stack overflow error. "
index 0f71e4cda310d494f45a354fbc1be5b1e5860c75..956bd1978e56bd8f759a35ae7c26ae6ea1e4642c 100644 (file)
@@ -34,6 +34,7 @@ class HtmlListChannel extends Channel<MarkdownOutput> {
     try {
       if (code.getColumnPosition() == 0 && listElement.consume(code, output)) {
         while (endOfLine.consume(code, output) && listElement.consume(code, output)) {
+          // consume input
         }
         output.append("</ul>");
         return true;
@@ -52,7 +53,7 @@ class HtmlListChannel extends Channel<MarkdownOutput> {
 
     @Override
     protected void consume(CharSequence token, MarkdownOutput output) {
-      if ( !pendingListConstruction) {
+      if (!pendingListConstruction) {
         output.append("<ul>");
         pendingListConstruction = true;
       }
@@ -75,7 +76,7 @@ class HtmlListChannel extends Channel<MarkdownOutput> {
     }
   }
 
-  private class EndOfLine extends RegexChannel<MarkdownOutput> {
+  private static final class EndOfLine extends RegexChannel<MarkdownOutput> {
 
     public EndOfLine() {
       super("(\r?\n)|(\r)");
index 73c639e8182b6ca0a10731f7d34e22c0e2e68c72..13c80ce39ff16c939946f1ec74938d6bfe281394 100644 (file)
  */
 package org.sonar.markdown;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.sonar.channel.Channel;
 import org.sonar.channel.ChannelDispatcher;
 import org.sonar.channel.CodeReader;
 
+import java.util.Arrays;
+import java.util.List;
+
 /**
  * Entry point of the Markdown library
  */
-public class MarkdownEngine {
+public final class MarkdownEngine {
 
-  private MarkdownOutput output;
   private ChannelDispatcher<MarkdownOutput> dispatcher;
 
   private MarkdownEngine() {
-    output = new MarkdownOutput();
-    List<Channel> markdownChannels = new ArrayList<Channel>();
-    markdownChannels.add(new HtmlUrlChannel());
-    markdownChannels.add(new HtmlEndOfLineChannel());
-    markdownChannels.add(new HtmlEmphasisChannel());
-    markdownChannels.add(new HtmlListChannel());
-    markdownChannels.add(new HtmlCodeChannel());
-    markdownChannels.add(new IdentifierAndNumberChannel());
-    markdownChannels.add(new BlackholeChannel());
+    List<Channel> markdownChannels = Arrays.<Channel>asList(
+        new HtmlUrlChannel(),
+        new HtmlEndOfLineChannel(),
+        new HtmlEmphasisChannel(),
+        new HtmlListChannel(),
+        new HtmlCodeChannel(),
+        new IdentifierAndNumberChannel(),
+        new BlackholeChannel());
     dispatcher = new ChannelDispatcher<MarkdownOutput>(markdownChannels);
   }
 
+  private String convert(String input) {
+    CodeReader reader = new CodeReader(input);
+    try {
+      MarkdownOutput output = new MarkdownOutput();
+      dispatcher.consume(reader, output);
+      return output.toString();
+      
+    } finally {
+      reader.close();
+    }
+  }
+
   public static String convertToHtml(String input) {
-    MarkdownEngine engine = new MarkdownEngine();
-    engine.dispatcher.consume(new CodeReader(input), engine.output);
-    return engine.output.toString();
+    return new MarkdownEngine().convert(input);
   }
 }
index 092489ec08f22c6f9493246c4ec5b7f785189fde..b69bc0cea6f67c8d498b11050fc4cf340a28caff 100644 (file)
@@ -31,6 +31,7 @@ import java.util.List;
  * @since 1.10
  * @deprecated in 2.8. Use {@link SonarPlugin} instead.
  */
+@Deprecated
 public interface Plugin {
 
   /**
index 57103c691d0d2ec05cf27ce20e6a45104083c547..2a737ad13adfcd744d9d35eff9831e767016bc92 100644 (file)
@@ -109,7 +109,7 @@ public interface DecoratorContext {
    *          the request parameters specified as a {@link ViolationQuery}
    * @return the list of violations that match those parameters
    */
-  public abstract List<Violation> getViolations(ViolationQuery violationQuery);
+  abstract List<Violation> getViolations(ViolationQuery violationQuery);
 
   /**
    * Returns all the active (= non switched-off) violations found on the current resource.
index 2453e5646e92f20876544e026984f7c3ab47ed67..ea08ac8c8ddf23acaafa91dcc3018b73b87f28ee 100644 (file)
@@ -21,6 +21,10 @@ package org.sonar.api.web.gwt.client;
 
 import com.google.gwt.i18n.client.Dictionary;
 
+/**
+ * @deprecated since 2.8. Use sonar-gwt-api instead.
+ */
+@Deprecated
 public final class ResourceDictionary {
 
   public final static String CONF_PERMALINK_BASE = "permalink_url_base";
index 4c19d9cd61c501103dc3921663f1d546ef12e3c9..97f6b9d6a8f3ef790c7ac73731d0780867c33015 100644 (file)
@@ -32,7 +32,9 @@ import java.util.Set;
  * A class of web utility
  *
  * @since 1.10
+ * @deprecated since 2.8. Use sonar-gwt-api instead.
  */
+@Deprecated
 public final class Utils {
   private Utils() {
   }
index ba17c5ea0a838e7b6f82a85dc07b995a15500604..bd997d099b9c028ad5cdca853822c5ed5cd8e8ab 100644 (file)
@@ -22,6 +22,10 @@ package org.sonar.api.web.gwt.client.webservices;
 import org.sonar.api.web.gwt.client.Utils;
 import org.sonar.api.web.gwt.client.widgets.LoadingLabel;
 
+/**
+ * @deprecated since 2.8. Use sonar-gwt-api instead.
+ */
+@Deprecated
 public abstract class BaseQueryCallback<P extends ResponsePOJO> implements QueryCallBack<P> {
 
   private LoadingLabel loading;
index 4f5fa9cf9bdfcc256b29886c77ecf4bf81fd150f..0ff29c002dca7dff6a3790a854f197fe0a8a8364 100644 (file)
@@ -21,6 +21,10 @@ package org.sonar.api.web.gwt.client.webservices;
 
 import com.google.gwt.core.client.JavaScriptObject;
 
+/**
+ * @deprecated since 2.8. Use sonar-gwt-api instead.
+ */
+@Deprecated
 public abstract class JSONHandlerDispatcher<P extends ResponsePOJO> implements JsonUtils.JSONHandler {
 
   private QueryCallBack<P> callBack;
index 2ed28c9ff686f08ab7386cc254f5df8b8e399d93..a2d6552a25407cdf8f378356173467eecee72e19 100644 (file)
@@ -32,6 +32,10 @@ import com.google.gwt.json.client.JSONObject;
 import com.google.gwt.json.client.JSONString;
 import com.google.gwt.json.client.JSONValue;
 
+/**
+ * @deprecated since 2.8. Use sonar-gwt-api instead.
+ */
+@Deprecated
 public final class JsonUtils {
   private static int requestId = 0;
 
index 1509665b08b078bd141cc47bd93eb378657592bc..7bbfacc2a2c53273264c538c07cfa9bea2c49fd8 100644 (file)
  */
 package org.sonar.api.web.gwt.client.webservices;
 
+/**
+ * @deprecated since 2.8. Use sonar-gwt-api instead.
+ */
+@Deprecated
 public abstract class Query<R extends ResponsePOJO> {
 
   public abstract void execute(final QueryCallBack<R> callback);
index f0d433a88151fdd6072b4340c5e677362a13a88d..4f441b2be5b2fc4ab83d5d17c0bc21d41f7591c0 100644 (file)
@@ -21,6 +21,10 @@ package org.sonar.api.web.gwt.client.webservices;
 
 import com.google.gwt.core.client.JavaScriptObject;
 
+/**
+ * @deprecated since 2.8. Use sonar-gwt-api instead.
+ */
+@Deprecated
 public interface QueryCallBack<RESPONSE_POJO extends ResponsePOJO> {
 
   void onResponse(RESPONSE_POJO response, JavaScriptObject jsonRawResponse);
index 2f2e6abb335ab97bae9dcf12767a53788547b0f9..6a54fffb9410e4bc673bd6972f88d7593200c736 100644 (file)
@@ -22,6 +22,10 @@ package org.sonar.api.web.gwt.client.webservices;
 /**
  * Marker class for WS query response objects
  */
+/**
+ * @deprecated since 2.8. Use sonar-gwt-api instead.
+ */
+@Deprecated
 public abstract class ResponsePOJO {
 
 }
index ebbcd3926d502257a0b2d6e379a9cba0bd0f1564..55301f41367a22973426c2ef4605836e03984f06 100644 (file)
@@ -25,6 +25,10 @@ import java.util.List;
 import com.google.gwt.core.client.JavaScriptObject;
 import com.google.gwt.user.client.Timer;
 
+/**
+ * @deprecated since 2.8. Use sonar-gwt-api instead.
+ */
+@Deprecated
 public class SequentialQueries extends Query<VoidResponse> {
   
   private List<AjaxQuery<?>> queries = new ArrayList<AjaxQuery<?>>();
index 593254c98bb7d8a9a17e2bd5a848e5031bac2c0b..6eee34741a266d2e8fa8732a5f2f66b0f530a99c 100644 (file)
  */
 package org.sonar.api.web.gwt.client.webservices;
 
+/**
+ * @deprecated since 2.8. Use sonar-gwt-api instead.
+ */
+@Deprecated
 public class VoidResponse extends ResponsePOJO {
 
 }
index ee1b5c409f1fdabe5ca2419476c22a801cc938b2..5b8ffadd08a2874c651c2f589cb70c633eeb0544 100644 (file)
@@ -24,6 +24,10 @@ import com.google.gwt.core.client.JavaScriptObject;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * @deprecated since 2.8. Use sonar-gwt-api instead.
+ */
+@Deprecated
 public final class WSMetrics {
 
   private WSMetrics() {
index 35d83ecce785ed82af377bcf573f25a5bf3ad823..695a706c9aeb3c25c7172b1f234a4ea080abd5cc 100644 (file)
@@ -20,7 +20,6 @@
 
 package org.sonar.server.database;
 
-import org.hibernate.HibernateException;
 import org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider;
 
 import javax.sql.DataSource;
@@ -31,7 +30,7 @@ public class CustomHibernateConnectionProvider extends InjectedDataSourceConnect
   static DataSource datasource;
 
   @Override
-  public void configure(Properties props) throws HibernateException {
+  public void configure(Properties props) {
     setDataSource(datasource);
     super.configure(props);
   }
index e78ba0bacc4f863c9e03650581d6fe2fd3195695..fa694867bd7d777d83712c404c34b79b5a86d86b 100644 (file)
@@ -23,7 +23,6 @@ import org.apache.commons.configuration.Configuration;
 import org.apache.commons.dbcp.BasicDataSourceFactory;
 import org.apache.commons.lang.StringUtils;
 import org.hibernate.cfg.Environment;
-import org.sonar.api.CoreProperties;
 import org.sonar.api.database.DatabaseProperties;
 import org.sonar.api.utils.Logs;
 import org.sonar.api.utils.SonarException;
@@ -92,7 +91,7 @@ public class JndiDatabaseConnector extends AbstractDatabaseConnector {
 
     try {
       Context envCtx = (Context) ctx.lookup(JNDI_ENV_CONTEXT);
-      datasource = (DataSource)envCtx.lookup(jndiKey);
+      datasource = (DataSource) envCtx.lookup(jndiKey);
       Logs.INFO.info("JDBC datasource loaded from JNDI: " + jndiKey);
 
     } catch (NamingException e) {
@@ -117,7 +116,7 @@ public class JndiDatabaseConnector extends AbstractDatabaseConnector {
       }
 
       datasource = BasicDataSourceFactory.createDataSource(properties);
-      CustomHibernateConnectionProvider.datasource=datasource;
+      CustomHibernateConnectionProvider.datasource = datasource;
     } catch (Exception e) {
       throw new SonarException("Fail to connect to database", e);
     }
index e2c1756d726a33cb9df7ef9f08fa906532ddab1e..eef8c5a475b0d9ab7500c0618cce4779f4329157 100644 (file)
@@ -52,8 +52,9 @@ public class Review extends Model {
    * @param id
    *          the id to set
    */
-  public void setId(Long id) {
+  public Review setId(Long id) {
     this.id = id;
+    return this;
   }
 
   /**
@@ -67,8 +68,9 @@ public class Review extends Model {
    * @param createdAt
    *          the createdAt to set
    */
-  public void setCreatedAt(Date createdAt) {
+  public Review setCreatedAt(Date createdAt) {
     this.createdAt = createdAt;
+    return this;
   }
 
   /**
@@ -82,8 +84,9 @@ public class Review extends Model {
    * @param updatedAt
    *          the updatedAt to set
    */
-  public void setUpdatedAt(Date updatedAt) {
+  public Review setUpdatedAt(Date updatedAt) {
     this.updatedAt = updatedAt;
+    return this;
   }
 
   /**
@@ -94,11 +97,12 @@ public class Review extends Model {
   }
 
   /**
-   * @param authorLogin
+   * @param s
    *          the authorLogin to set
    */
-  public void setAuthorLogin(String authorLogin) {
-    this.authorLogin = authorLogin;
+  public Review setAuthorLogin(String s) {
+    this.authorLogin = s;
+    return this;
   }
 
   /**
@@ -109,11 +113,12 @@ public class Review extends Model {
   }
 
   /**
-   * @param assigneeLogin
+   * @param s
    *          the assigneeLogin to set
    */
-  public void setAssigneeLogin(String assigneeLogin) {
-    this.assigneeLogin = assigneeLogin;
+  public Review setAssigneeLogin(String s) {
+    this.assigneeLogin = s;
+    return this;
   }
 
   /**
@@ -124,11 +129,12 @@ public class Review extends Model {
   }
 
   /**
-   * @param title
+   * @param s
    *          the title to set
    */
-  public void setTitle(String title) {
-    this.title = title;
+  public Review setTitle(String s) {
+    this.title = s;
+    return this;
   }
 
   /**
@@ -139,11 +145,12 @@ public class Review extends Model {
   }
 
   /**
-   * @param type
+   * @param s
    *          the type to set
    */
-  public void setType(String type) {
-    this.type = type;
+  public Review setType(String s) {
+    this.type = s;
+    return this;
   }
 
   /**
@@ -157,8 +164,9 @@ public class Review extends Model {
    * @param status
    *          the status to set
    */
-  public void setStatus(String status) {
+  public Review setStatus(String status) {
     this.status = status;
+    return this;
   }
 
   /**
@@ -172,8 +180,9 @@ public class Review extends Model {
    * @param severity
    *          the severity to set
    */
-  public void setSeverity(String severity) {
+  public Review setSeverity(String severity) {
     this.severity = severity;
+    return this;
   }
 
   /**
@@ -187,8 +196,9 @@ public class Review extends Model {
    * @param resourceKee
    *          the resourceKee to set
    */
-  public void setResourceKee(String resourceKee) {
+  public Review setResourceKee(String resourceKee) {
     this.resourceKee = resourceKee;
+    return this;
   }
 
   /**
@@ -202,8 +212,9 @@ public class Review extends Model {
    * @param line
    *          the line to set
    */
-  public void setLine(Integer line) {
+  public Review setLine(Integer line) {
     this.line = line;
+    return this;
   }
 
   /**
@@ -213,18 +224,15 @@ public class Review extends Model {
     return comments;
   }
 
-  /**
-   * @param comments
-   *          the comments to set
-   */
-  public void addComments(Date updatedAt, String authorLogin, String text) {
+  public Review addComments(Date updatedAt, String authorLogin, String text) {
     this.comments.add(new Review.Comment(updatedAt, authorLogin, text));
+    return this;
   }
 
   /**
    * @since 2.8
    */
-  public class Comment extends Model {
+  public static final class Comment extends Model {
 
     private String authorLogin = null;
     private Date updatedAt = null;