From: Simon Brandhof Date: Mon, 25 May 2015 19:36:47 +0000 (+0200) Subject: SONAR-6370 Remove guava from dependencies of sonar-colorizer X-Git-Tag: 5.2-RC1~1810 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=1bdb2686d791326ea0694127047323ad3d8695be;p=sonarqube.git SONAR-6370 Remove guava from dependencies of sonar-colorizer --- diff --git a/sonar-batch/src/main/java/org/sonar/batch/source/CodeColorizerSensor.java b/sonar-batch/src/main/java/org/sonar/batch/source/CodeColorizerSensor.java index 0d19be3cdea..95d553a7ff5 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/source/CodeColorizerSensor.java +++ b/sonar-batch/src/main/java/org/sonar/batch/source/CodeColorizerSensor.java @@ -28,11 +28,7 @@ import org.sonar.api.batch.sensor.SensorDescriptor; import org.sonar.batch.index.BatchComponentCache; import org.sonar.batch.protocol.output.BatchReportReader; import org.sonar.batch.report.ReportPublisher; -import org.sonar.colorizer.CodeColorizer; -/** - * Execute deprecated {@link CodeColorizer} if necessary. - */ @Phase(name = Phase.Name.POST) public final class CodeColorizerSensor implements Sensor { diff --git a/sonar-batch/src/main/java/org/sonar/batch/source/CodeColorizers.java b/sonar-batch/src/main/java/org/sonar/batch/source/CodeColorizers.java index ca29460d8c8..f607efb8b9c 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/source/CodeColorizers.java +++ b/sonar-batch/src/main/java/org/sonar/batch/source/CodeColorizers.java @@ -20,18 +20,6 @@ package org.sonar.batch.source; import com.google.common.collect.Lists; -import org.apache.commons.io.input.BOMInputStream; -import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.sonar.api.batch.BatchSide; -import org.sonar.api.batch.sensor.highlighting.NewHighlighting; -import org.sonar.api.web.CodeColorizerFormat; -import org.sonar.colorizer.CodeColorizer; -import org.sonar.colorizer.Tokenizer; - -import javax.annotation.CheckForNull; - import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; @@ -41,6 +29,16 @@ import java.nio.charset.Charset; import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.annotation.CheckForNull; +import org.apache.commons.io.input.BOMInputStream; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.sonar.api.batch.BatchSide; +import org.sonar.api.batch.sensor.highlighting.NewHighlighting; +import org.sonar.api.web.CodeColorizerFormat; +import org.sonar.colorizer.JavaTokenizers; +import org.sonar.colorizer.Tokenizer; /** * Central point for sonar-colorizer extensions @@ -77,7 +75,7 @@ public class CodeColorizers { // TODO can be dropped when Java plugin embed its own CodeColorizerFormat of (better) provides highlighting for tests // See SONARJAVA-830 if ("java".equals(language)) { - tokenizers = CodeColorizer.Format.JAVA.getTokenizers(); + tokenizers = JavaTokenizers.forHtml(); } else { return; } diff --git a/sonar-colorizer/pom.xml b/sonar-colorizer/pom.xml index 19ff87b1503..9d590ec2d77 100644 --- a/sonar-colorizer/pom.xml +++ b/sonar-colorizer/pom.xml @@ -15,13 +15,15 @@ Code syntax highlighter - - com.google.guava - guava - org.codehaus.sonar sonar-channel + + + commons-io + commons-io + + com.google.code.findbugs diff --git a/sonar-colorizer/src/main/java/org/sonar/colorizer/CodeColorizer.java b/sonar-colorizer/src/main/java/org/sonar/colorizer/CodeColorizer.java index 91982b62c71..f319d6669c4 100644 --- a/sonar-colorizer/src/main/java/org/sonar/colorizer/CodeColorizer.java +++ b/sonar-colorizer/src/main/java/org/sonar/colorizer/CodeColorizer.java @@ -40,10 +40,6 @@ public class CodeColorizer { this.tokenizers = format.getTokenizers(); } - public String toHtml(Reader code) { - return toHtml(code, null); - } - public String toHtml(Reader code, @Nullable HtmlOptions options) { HtmlOptions opts = options == null ? HtmlOptions.DEFAULT : options; return new HtmlRenderer(opts).render(code, tokenizers); @@ -57,10 +53,6 @@ public class CodeColorizer { return new CodeColorizer(Format.GROOVY).toHtml(code, options); } - public static String getCss() { - return HtmlDecorator.getCss(); - } - public enum Format { JAVA(JavaTokenizers.forHtml()), GROOVY(GroovyTokenizers.forHtml()); diff --git a/sonar-colorizer/src/main/java/org/sonar/colorizer/GroovyKeywords.java b/sonar-colorizer/src/main/java/org/sonar/colorizer/GroovyKeywords.java index 8728faadd92..e7c34270683 100644 --- a/sonar-colorizer/src/main/java/org/sonar/colorizer/GroovyKeywords.java +++ b/sonar-colorizer/src/main/java/org/sonar/colorizer/GroovyKeywords.java @@ -19,8 +19,8 @@ */ package org.sonar.colorizer; -import com.google.common.collect.ImmutableSet; - +import java.util.Arrays; +import java.util.HashSet; import java.util.Set; /** @@ -28,10 +28,14 @@ import java.util.Set; */ @Deprecated public final class GroovyKeywords { - private static final Set KEYWORDS = ImmutableSet.of( - "as", "assert", "break", "case", "catch", "class", "continue", "def", - "default", "do", "else", "extends", "finally", "for", "if", "in", "implements", "import", "instanceof", "interface", "new", "package", - "property", "return", "switch", "throw", "throws", "try", "while"); + + private static final Set KEYWORDS = new HashSet<>(); + + static { + KEYWORDS.addAll(Arrays.asList("as", "assert", "break", "case", "catch", "class", "continue", "def", + "default", "do", "else", "extends", "finally", "for", "if", "in", "implements", "import", "instanceof", "interface", "new", "package", + "property", "return", "switch", "throw", "throws", "try", "while")); + } private GroovyKeywords() { } diff --git a/sonar-colorizer/src/main/java/org/sonar/colorizer/HtmlDecorator.java b/sonar-colorizer/src/main/java/org/sonar/colorizer/HtmlDecorator.java index 48b65acaaf9..ed1ee38eb3c 100644 --- a/sonar-colorizer/src/main/java/org/sonar/colorizer/HtmlDecorator.java +++ b/sonar-colorizer/src/main/java/org/sonar/colorizer/HtmlDecorator.java @@ -19,22 +19,14 @@ */ package org.sonar.colorizer; -import com.google.common.io.ByteStreams; -import com.google.common.io.Closeables; import org.sonar.channel.CodeReader; -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; - /** * @deprecated since 4.5.2 replace by highlighting mechanism */ @Deprecated public class HtmlDecorator extends Tokenizer { - private static final String CSS_PATH = "/sonar-colorizer.css"; - private HtmlOptions options; private int lineId; @@ -50,9 +42,7 @@ public class HtmlDecorator extends Tokenizer { StringBuilder sb = new StringBuilder(); if (options.isGenerateHtmlHeader()) { sb.append(""); + + "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"); } sb.append(" KEYWORDS = ImmutableSet.of( + private static final Set KEYWORDS = Collections.unmodifiableSet(new HashSet<>(Arrays.asList( "abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "default", "do", "double", "else", "enum", "extends", "false", "final", "finally", "float", "for", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native", "new", "null", "package", "private", "protected", "public", "return", "short", "static", "strictfp", - "super", "switch", "synchronized", "this", "throw", "throws", "transient", "true", "try", "void", "volatile", "while"); + "super", "switch", "synchronized", "this", "throw", "throws", "transient", "true", "try", "void", "volatile", "while"))); private JavaKeywords() { } diff --git a/sonar-colorizer/src/main/java/org/sonar/colorizer/JavaTokenizers.java b/sonar-colorizer/src/main/java/org/sonar/colorizer/JavaTokenizers.java index f040d376594..05390a6cbb8 100644 --- a/sonar-colorizer/src/main/java/org/sonar/colorizer/JavaTokenizers.java +++ b/sonar-colorizer/src/main/java/org/sonar/colorizer/JavaTokenizers.java @@ -29,17 +29,20 @@ import java.util.List; @Deprecated public final class JavaTokenizers { + private static final List TOKENIZERS = Collections.unmodifiableList(Arrays.asList( + new JavaAnnotationTokenizer("", ""), + new LiteralTokenizer("", ""), + new CDocTokenizer("", ""), + new JavadocTokenizer("", ""), + new CppDocTokenizer("", ""), + new JavaConstantTokenizer("", ""), + new KeywordsTokenizer("", "", JavaKeywords.get()))); + private JavaTokenizers() { + // only static stuff } public static List forHtml() { - return Collections.unmodifiableList(Arrays.asList( - new JavaAnnotationTokenizer("", ""), - new LiteralTokenizer("", ""), - new CDocTokenizer("", ""), - new JavadocTokenizer("", ""), - new CppDocTokenizer("", ""), - new JavaConstantTokenizer("", ""), - new KeywordsTokenizer("", "", JavaKeywords.get()))); + return TOKENIZERS; } } diff --git a/sonar-colorizer/src/test/java/org/sonar/colorizer/CodeColorizerTest.java b/sonar-colorizer/src/test/java/org/sonar/colorizer/CodeColorizerTest.java index d3a5c4cb217..5b53df03f79 100644 --- a/sonar-colorizer/src/test/java/org/sonar/colorizer/CodeColorizerTest.java +++ b/sonar-colorizer/src/test/java/org/sonar/colorizer/CodeColorizerTest.java @@ -78,12 +78,6 @@ public class CodeColorizerTest { assertContains(html, "
class Greet {
"); } - @Test - public void getCss() { - assertThat(CodeColorizer.getCss().length()).isGreaterThan(100); - assertThat(CodeColorizer.getCss()).contains(".code"); - } - @Test public void mustBeThreadsafe() throws InterruptedException, ExecutionException, IOException { final int taskCount = 50; @@ -151,7 +145,7 @@ public class CodeColorizerTest { } private void assertHtml(String html) { - assertContains(html, ""); + assertContains(html, "
"); } private void assertContains(String html, String... strings) { diff --git a/sonar-colorizer/src/test/java/org/sonar/colorizer/HtmlDecoratorTest.java b/sonar-colorizer/src/test/java/org/sonar/colorizer/HtmlDecoratorTest.java index ff69b9b1e05..49fc1d6711b 100644 --- a/sonar-colorizer/src/test/java/org/sonar/colorizer/HtmlDecoratorTest.java +++ b/sonar-colorizer/src/test/java/org/sonar/colorizer/HtmlDecoratorTest.java @@ -30,7 +30,7 @@ public class HtmlDecoratorTest { public void beginOfFileTag() { HtmlDecorator decorator = new HtmlDecorator(HtmlOptions.DEFAULT); String tag = decorator.getTagBeginOfFile(); - assertContains(tag, ""); - assertThat(html).contains("