Skip to content

Commit

Permalink
Issue checkstyle#3433: Cut down on Checkstyle's dependencies on Guava…
Browse files Browse the repository at this point in the history
… (part 2)
  • Loading branch information
MEZk committed Sep 20, 2016
1 parent 570d836 commit e0a3cbd
Show file tree
Hide file tree
Showing 79 changed files with 359 additions and 292 deletions.
7 changes: 5 additions & 2 deletions config/checkstyle_sevntu_checks.xml
Expand Up @@ -42,7 +42,9 @@
com.google.common.base.Charsets,com.google.common.base.MoreObjects,
com.google.common.base.Optional,com.google.common.base.Equivalence,
com.google.common.base.Preconditions,com.google.common.base.Predicate,
com.google.common.io.CharSource,com.google.common.annotations.Beta"/>
com.google.common.io.CharSource,com.google.common.annotations.Beta,
com.google.common.collect.Queues,com.google.common.collect.Sets,
com.google.common.collect.Lists"/>
</module>
<module name="ForbidCCommentsInMethods"/>
<module name="FinalizeImplementationCheck"/>
Expand Down Expand Up @@ -108,7 +110,8 @@
com\.google\.common\.base\.Charsets|com\.google\.common\.base\.MoreObjects|
com\.google\.common\.base\.Equivalence|com\.google\.common\.base\.Preconditions|
com\.google\.common\.base\.Optional|com\.google\.common\.io\.CharSource|
com\.google\.common\.primitives.*"/>
com\.google\.common\.primitives.*|com\.google\.common\.collect\.Sets|
com\.google\.common\.collect\.Queues|com\.google\.common\.collect\.Lists"/>
<property name="forbiddenImportsExcludesRegexp" value=""/>
</module>
<module name="ForbidCertainImports">
Expand Down
2 changes: 2 additions & 0 deletions config/findbugs-exclude.xml
Expand Up @@ -89,6 +89,8 @@
<!-- beginProcessing() is kind of c-tor -->
<Class name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpMultilineCheck" />
<Class name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineCheck" />
<!--Uses setters to set fields values-->
<Class name="com.puppycrawl.tools.checkstyle.api.AbstractCheck" />
</Or>
<Bug pattern="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR" />
</Match>
Expand Down
91 changes: 79 additions & 12 deletions config/import-control.xml
Expand Up @@ -7,7 +7,6 @@

<allow pkg="antlr"/>
<allow pkg="org.antlr.v4.runtime"/>
<allow pkg="com.google.common.collect"/>
<allow pkg="com.puppycrawl.tools.checkstyle.api"/>
<allow pkg="com.puppycrawl.tools.checkstyle.checks"/>
<allow pkg="java.io"/>
Expand All @@ -21,25 +20,31 @@
<allow pkg="com.puppycrawl.tools.checkstyle"/>
<allow pkg="java.lang.reflect"/>

<allow class="com.google.common.annotations.GwtCompatible" />
<allow class="com.google.common.annotations.GwtIncompatible"/>
<allow class="com.google.common.annotations.VisibleForTesting"/>
<allow class="com.google.common.base.Ascii"/>
<allow class="com.google.common.base.CaseFormat"/>
<allow class="com.google.common.base.CharMatcher"/>
<allow class="com.google.common.io.Closeables"/>
<allow class="com.google.common.io.Flushables"/>
<allow class="com.google.common.io.Files"/>
<allow class="com.google.common.reflect.ClassPath"/>

<!-- The local ones -->
<allow class="java.security.MessageDigest" local-only="true"/>
<allow class="java.security.NoSuchAlgorithmException" local-only="true"/>
<allow class="javax.xml.bind.DatatypeConverter" local-only="true"/>
<allow class="com.google.common.base.CaseFormat" local-only="true"/>
<allow class="com.google.common.io.Closeables" local-only="true"/>
<allow class="com.google.common.io.Flushables" local-only="true"/>
<allow class="com.google.common.collect.HashMultimap" local-only="true"/>
<allow class="com.google.common.collect.ImmutableCollection" local-only="true"/>
<allow class="com.google.common.collect.ImmutableList" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMap" local-only="true"/>
<allow class="com.google.common.collect.MapDifference" local-only="true"/>
<allow class="com.google.common.collect.Maps" local-only="true"/>
<allow class="com.google.common.collect.Multimap" local-only="true"/>
<allow pkg="com.puppycrawl.tools.checkstyle.grammars" local-only="true"/>
<allow pkg="org.apache.commons.cli" local-only="true"/>

<subpackage name="utils">
<allow class="com.google.common.base.CharMatcher" local-only="true"/>
<allow class="com.google.common.collect.ImmutableCollection" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMap" local-only="true"/>
</subpackage>

<subpackage name="ant">
<allow class="com.google.common.io.Closeables" local-only="true"/>
<allow pkg="org.apache.tools.ant" local-only="true"/>
<disallow pkg="com.puppycrawl.tools.checkstyle.checks"/>
<disallow pkg="com.puppycrawl.tools.checkstyle.filters"/>
Expand All @@ -57,22 +62,71 @@
local-only="true"/>
<allow class="com.puppycrawl.tools.checkstyle.Utils"
local-only="true"/>
<allow class="com.google.common.io.Closeables" local-only="true"/>
<allow class="com.google.common.collect.ImmutableCollection" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMap" local-only="true"/>
</subpackage>

<subpackage name="checks">
<allow pkg="com.puppycrawl.tools.checkstyle.checks"/>
<allow class="com.puppycrawl.tools.checkstyle.Definitions"/>
<allow class="com.google.common.io.Files" local-only="true"/>
<allow class="com.google.common.io.Closeables" local-only="true"/>
<allow class="com.google.common.collect.HashMultiset" local-only="true"/>
<allow class="com.google.common.collect.HashMultimap" local-only="true"/>
<allow class="com.google.common.collect.ImmutableList" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMap" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMultiset" local-only="true"/>
<allow class="com.google.common.collect.ImmutableSet" local-only="true"/>
<allow class="com.google.common.collect.Multimap" local-only="true"/>
<allow class="com.google.common.collect.Multiset" local-only="true"/>
<allow class="com.google.common.collect.Multiset.Entry" local-only="true"/>
<allow class="com.google.common.collect.SetMultimap" local-only="true"/>
<allow pkg="java.math"/>

<subpackage name="indentation">
<allow pkg="java.lang.reflect"/>
<allow class="com.google.common.collect.Range" local-only="true"/>
<allow class="com.google.common.collect.RangeMap" local-only="true"/>
</subpackage>
<subpackage name="header">
<allow class="java.nio.charset.Charset" local-only="true"/>
<allow class="com.google.common.io.Closeables" local-only="true"/>
<allow class="com.google.common.collect.ImmutableList" local-only="true"/>
<allow class="com.google.common.collect.ImmutableSet" local-only="true"/>
</subpackage>
<subpackage name="javadoc">
<allow pkg="com.puppycrawl.tools.checkstyle.grammars.javadoc"/>
<allow pkg="java.lang.reflect"/>
<allow class="com.google.common.base.CharMatcher" local-only="true"/>
<allow class="com.google.common.annotations.GwtCompatible" local-only="true"/>
<allow class="com.google.common.annotations.GwtIncompatible" local-only="true"/>
<allow class="com.google.common.collect.ImmutableList" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMap" local-only="true"/>
<allow class="com.google.common.collect.ImmutableSortedSet" local-only="true"/>
<allow class="com.google.common.collect.Multiset" local-only="true"/>
</subpackage>
<subpackage name="whitespace">
<allow class="com.google.common.annotations.GwtCompatible" local-only="true"/>
</subpackage>
<subpackage name="design">
<allow class="com.google.common.annotations.VisibleForTesting" local-only="true"/>
<allow class="com.google.common.collect.ImmutableList" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMap" local-only="true"/>
</subpackage>
<subpackage name="regexp">
<allow class="com.google.common.io.Files" local-only="true"/>
</subpackage>
<subpackage name="imports">
<allow class="com.google.common.collect.HashMultimap" local-only="true"/>
<allow class="com.google.common.collect.ImmutableSet" local-only="true"/>
</subpackage>
<subpackage name="coding">
<allow class="com.google.common.collect.ImmutableCollection" local-only="true"/>
<allow class="com.google.common.collect.ImmutableSet" local-only="true"/>
</subpackage>
<subpackage name="metrics">
<allow class="com.google.common.collect.ImmutableSet" local-only="true"/>
</subpackage>
</subpackage>

Expand All @@ -86,6 +140,11 @@

<subpackage name="filters">
<allow pkg="java.lang.ref"/>
<allow class="com.google.common.io.Closeables" local-only="true"/>
<allow class="com.google.common.base.CaseFormat" local-only="true"/>
<allow class="com.google.common.collect.ImmutableCollection" local-only="true"/>
<allow class="com.google.common.collect.ImmutableMap" local-only="true"/>
<allow class="com.google.common.collect.ImmutableSet" local-only="true"/>
<!-- is not possible till pkg is not a regexp -->
<!-- <disallow pkg="com.puppycrawl.tools.checkstyle.checks.*"/> -->
<disallow pkg="com.puppycrawl.tools.checkstyle.ant"/>
Expand All @@ -96,9 +155,17 @@
<subpackage name="gui">
<allow pkg="java.awt"/>
<allow pkg="javax.swing"/>
<allow class="com.google.common.collect.ImmutableList" local-only="true"/>
<disallow pkg="com.puppycrawl.tools.checkstyle.checks"/>
<disallow pkg="com.puppycrawl.tools.checkstyle.ant"/>
<disallow pkg="com.puppycrawl.tools.checkstyle.doclets"/>
<disallow pkg="com.puppycrawl.tools.checkstyle.filters"/>
</subpackage>

<subpackage name="internal">
<allow class="com.google.common.reflect.ClassPath" local-only="true"/>
<allow class="com.google.common.io.Files" local-only="true"/>
<allow class="com.google.common.collect.FluentIterable" local-only="true"/>
<allow class="com.google.common.collect.TreeTraverser"/>
</subpackage>
</import-control>
Expand Up @@ -40,7 +40,6 @@
import java.util.Properties;
import java.util.regex.Pattern;

import com.google.common.collect.Lists;
import com.puppycrawl.tools.checkstyle.BriefUtLogger;
import com.puppycrawl.tools.checkstyle.Checker;
import com.puppycrawl.tools.checkstyle.ConfigurationLoader;
Expand Down Expand Up @@ -120,9 +119,9 @@ protected void verify(Checker checker,
Integer... warnsExpected)
throws Exception {
stream.flush();
final List<File> theFiles = Lists.newArrayList();
final List<File> theFiles = new ArrayList<>();
Collections.addAll(theFiles, processedFiles);
final List<Integer> theWarnings = Lists.newArrayList();
final List<Integer> theWarnings = new ArrayList<>();
Collections.addAll(theWarnings, warnsExpected);
final int errs = checker.process(theFiles);

Expand Down
13 changes: 7 additions & 6 deletions src/main/java/com/puppycrawl/tools/checkstyle/Checker.java
Expand Up @@ -23,16 +23,17 @@
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.puppycrawl.tools.checkstyle.api.AuditEvent;
import com.puppycrawl.tools.checkstyle.api.AuditListener;
import com.puppycrawl.tools.checkstyle.api.AutomaticBean;
Expand Down Expand Up @@ -66,10 +67,10 @@ public class Checker extends AutomaticBean implements MessageDispatcher {
SeverityLevel.ERROR);

/** Vector of listeners. */
private final List<AuditListener> listeners = Lists.newArrayList();
private final List<AuditListener> listeners = new ArrayList<>();

/** Vector of fileset checks. */
private final List<FileSetCheck> fileSetChecks = Lists.newArrayList();
private final List<FileSetCheck> fileSetChecks = new ArrayList<>();

/** The audit event filters. */
private final FilterSet filters = new FilterSet();
Expand Down Expand Up @@ -214,7 +215,7 @@ public int process(List<File> files) throws CheckstyleException {
* checks and filters.
*/
private Set<String> getExternalResourceLocations() {
final Set<String> externalResources = Sets.newHashSet();
final Set<String> externalResources = new HashSet<>();
fileSetChecks.stream().filter(check -> check instanceof ExternalResourceHolder)
.forEach(check -> {
final Set<String> locations =
Expand Down Expand Up @@ -290,7 +291,7 @@ private void processFiles(List<File> files) throws CheckstyleException {
* @throws CheckstyleException if error condition within Checkstyle occurs.
*/
private SortedSet<LocalizedMessage> processFile(File file) throws CheckstyleException {
final SortedSet<LocalizedMessage> fileMessages = Sets.newTreeSet();
final SortedSet<LocalizedMessage> fileMessages = new TreeSet<>();
try {
final FileText theText = new FileText(file.getAbsoluteFile(), charset);
for (final FileSetCheck fsc : fileSetChecks) {
Expand Down
Expand Up @@ -23,7 +23,9 @@
import java.io.InputStream;
import java.net.URI;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
Expand All @@ -38,8 +40,6 @@
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.puppycrawl.tools.checkstyle.api.AbstractLoader;
import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
import com.puppycrawl.tools.checkstyle.api.Configuration;
Expand Down Expand Up @@ -129,7 +129,7 @@ private ConfigurationLoader(final PropertyResolver overrideProps,
* @return map between local resources and dtd ids.
*/
private static Map<String, String> createIdToResourceNameMap() {
final Map<String, String> map = Maps.newHashMap();
final Map<String, String> map = new HashMap<>();
map.put(DTD_PUBLIC_ID_1_0, DTD_RESOURCE_NAME_1_0);
map.put(DTD_PUBLIC_ID_1_1, DTD_RESOURCE_NAME_1_1);
map.put(DTD_PUBLIC_ID_1_2, DTD_RESOURCE_NAME_1_2);
Expand Down Expand Up @@ -270,8 +270,8 @@ private static String replaceProperties(
return null;
}

final List<String> fragments = Lists.newArrayList();
final List<String> propertyRefs = Lists.newArrayList();
final List<String> fragments = new ArrayList<>();
final List<String> propertyRefs = new ArrayList<>();
parsePropertyString(value, fragments, propertyRefs);

final StringBuilder sb = new StringBuilder();
Expand Down
Expand Up @@ -19,13 +19,13 @@

package com.puppycrawl.tools.checkstyle;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
import com.puppycrawl.tools.checkstyle.api.Configuration;

Expand All @@ -40,13 +40,13 @@ public final class DefaultConfiguration implements Configuration {
private final String name;

/** The list of child Configurations. */
private final List<Configuration> children = Lists.newArrayList();
private final List<Configuration> children = new ArrayList<>();

/** The map from attribute names to attribute values. */
private final Map<String, String> attributeMap = Maps.newHashMap();
private final Map<String, String> attributeMap = new HashMap<>();

/** The map containing custom messages. */
private final Map<String, String> messages = Maps.newHashMap();
private final Map<String, String> messages = new HashMap<>();

/**
* Instantiates a DefaultConfiguration.
Expand Down
Expand Up @@ -19,11 +19,11 @@

package com.puppycrawl.tools.checkstyle;

import java.util.HashMap;
import java.util.Map;

import com.google.common.collect.ImmutableCollection;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Maps;
import com.puppycrawl.tools.checkstyle.api.Context;

/**
Expand All @@ -32,7 +32,7 @@
*/
public final class DefaultContext implements Context {
/** Stores the context entries. */
private final Map<String, Object> entries = Maps.newHashMap();
private final Map<String, Object> entries = new HashMap<>();

@Override
public Object get(String key) {
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/com/puppycrawl/tools/checkstyle/Main.java
Expand Up @@ -26,6 +26,7 @@
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Properties;
import java.util.logging.ConsoleHandler;
Expand All @@ -44,7 +45,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.google.common.collect.Lists;
import com.google.common.io.Closeables;
import com.puppycrawl.tools.checkstyle.api.AuditListener;
import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
Expand Down Expand Up @@ -514,7 +514,7 @@ else if (PLAIN_FORMAT_NAME.equals(format)) {
*/
private static List<File> getFilesToProcess(List<Pattern> patternsToExclude,
String... filesToProcess) {
final List<File> files = Lists.newLinkedList();
final List<File> files = new LinkedList<>();
for (String element : filesToProcess) {
files.addAll(listFiles(new File(element), patternsToExclude));
}
Expand All @@ -533,7 +533,7 @@ private static List<File> getFilesToProcess(List<Pattern> patternsToExclude,
private static List<File> listFiles(File node, List<Pattern> patternsToExclude) {
// could be replaced with org.apache.commons.io.FileUtils.list() method
// if only we add commons-io library
final List<File> result = Lists.newLinkedList();
final List<File> result = new LinkedList<>();

if (node.canRead()) {
if (node.isDirectory()) {
Expand Down

0 comments on commit e0a3cbd

Please sign in to comment.