diff --git a/import-control.xml b/import-control.xml index 88ebef97c..81bd34e70 100755 --- a/import-control.xml +++ b/import-control.xml @@ -18,8 +18,9 @@ - + + @@ -27,7 +28,6 @@ - Checker instance. * The instance needs to be contextualized and configured. @@ -240,7 +245,7 @@ public class Checker extends AutomaticBean implements MessageDispatcher // Prepare to start fireAuditStarted(); for (FileSetCheck fsc : mFileSetChecks) { - fsc.beginProcessing(); + fsc.beginProcessing(getCharset()); } // Process each file @@ -249,8 +254,8 @@ public class Checker extends AutomaticBean implements MessageDispatcher fireFileStarted(fileName); final TreeSet fileMessages = Sets.newTreeSet(); try { - // TODO: Need to use , getCharset() - final String[] lines = Utils.getLines(f.getAbsolutePath()); + final String[] lines = Utils.getLines(f.getAbsolutePath(), + getCharset()); final List theLines = Lists.newArrayList(lines); for (FileSetCheck fsc : mFileSetChecks) { fileMessages.addAll(fsc.process(f, theLines)); @@ -567,4 +572,25 @@ public class Checker extends AutomaticBean implements MessageDispatcher { mModuleClassLoader = aModuleClassLoader; } + + /** @return the name of the charset */ + public String getCharset() + { + return mCharset; + } + + /** + * Sets a named charset. + * @param aCharset the name of a charset + * @throws UnsupportedEncodingException if aCharset is unsupported. + */ + public void setCharset(String aCharset) + throws UnsupportedEncodingException + { + if (!Charset.isSupported(aCharset)) { + final String message = "unsupported charset: '" + aCharset + "'"; + throw new UnsupportedEncodingException(message); + } + mCharset = aCharset; + } } diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/api/AbstractFileSetCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/api/AbstractFileSetCheck.java index cd10c345b..e3215b343 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/api/AbstractFileSetCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/api/AbstractFileSetCheck.java @@ -19,8 +19,6 @@ package com.puppycrawl.tools.checkstyle.api; import java.io.File; -import java.io.UnsupportedEncodingException; -import java.nio.charset.Charset; import java.util.List; import java.util.TreeSet; @@ -43,9 +41,6 @@ public abstract class AbstractFileSetCheck /** collects the error messages */ private final LocalizedMessages mMessages = new LocalizedMessages(); - /** Name of a charset */ - private String mCharset = System.getProperty("file.encoding", "UTF-8"); - /** * Called to process a file that matches the specified file extensions. * @param aFile the file to be processed @@ -64,7 +59,7 @@ public abstract class AbstractFileSetCheck } /** {@inheritDoc} */ - public void beginProcessing() + public void beginProcessing(String aCharset) { } @@ -85,27 +80,6 @@ public abstract class AbstractFileSetCheck { } - /** @return the name of the charset */ - public String getCharset() - { - return mCharset; - } - - /** - * Sets a named charset. - * @param aCharset the name of a charset - * @throws UnsupportedEncodingException if aCharset is unsupported. - */ - public void setCharset(String aCharset) - throws UnsupportedEncodingException - { - if (!Charset.isSupported(aCharset)) { - final String message = "unsupported charset: '" + aCharset + "'"; - throw new UnsupportedEncodingException(message); - } - mCharset = aCharset; - } - /** {@inheritDoc} */ public final void setMessageDispatcher(MessageDispatcher aDispatcher) { diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/api/FileSetCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/api/FileSetCheck.java index 2608c8eb0..a89d9f1f0 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/api/FileSetCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/api/FileSetCheck.java @@ -47,8 +47,11 @@ public interface FileSetCheck /** Cleans up the object. **/ void destroy(); - /** Called when about to be called to process a set of files. */ - void beginProcessing(); + /** + * Called when about to be called to process a set of files. + * @param aCharset the character set used to read the files. + */ + void beginProcessing(String aCharset); /** * Request to process a file. The implementation should use the supplied diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/TranslationCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/TranslationCheck.java index 0603e875c..3d0e4cede 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/TranslationCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/TranslationCheck.java @@ -70,9 +70,9 @@ public class TranslationCheck } @Override - public void beginProcessing() + public void beginProcessing(String aCharset) { - super.beginProcessing(); + super.beginProcessing(aCharset); mPropertyFiles.clear(); } diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/duplicates/StrictDuplicateCodeCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/duplicates/StrictDuplicateCodeCheck.java index be9efb0fd..3a441ba84 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/duplicates/StrictDuplicateCodeCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/duplicates/StrictDuplicateCodeCheck.java @@ -193,6 +193,8 @@ public final class StrictDuplicateCodeCheck extends AbstractFileSetCheck /** total number of duplicates found */ private int mDuplicates; + /** the charset used to load files. */ + private String mCharset; /** Creates a new instance of this class. */ public StrictDuplicateCodeCheck() @@ -221,9 +223,10 @@ public final class StrictDuplicateCodeCheck extends AbstractFileSetCheck } @Override - public void beginProcessing() + public void beginProcessing(String aCharset) { - super.beginProcessing(); + super.beginProcessing(aCharset); + mCharset = aCharset; mFiles.clear(); } @@ -502,7 +505,7 @@ public final class StrictDuplicateCodeCheck extends AbstractFileSetCheck if (cachedLines != null) { return cachedLines; } - final String charset = getCharset(); + final String charset = mCharset; final String[] lines = getTrimmed(Utils.getLines(path, charset)); mTrimmedLineCache.put(path, lines); return lines; diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/header/CrossLanguageRegexpHeaderCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/header/CrossLanguageRegexpHeaderCheck.java index bb760621a..16a429ee9 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/header/CrossLanguageRegexpHeaderCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/header/CrossLanguageRegexpHeaderCheck.java @@ -116,9 +116,9 @@ public final class CrossLanguageRegexpHeaderCheck extends AbstractFileSetCheck } @Override - public void beginProcessing() + public void beginProcessing(String aCharset) { - super.beginProcessing(); + super.beginProcessing(aCharset); mRegexpHeaderChecker = new RegexpHeaderChecker(mHeaderInfo, new FileSetCheckViolationMonitor()); } diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocPackageCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocPackageCheck.java index 3cc470698..9799fbf88 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocPackageCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocPackageCheck.java @@ -47,9 +47,9 @@ public class JavadocPackageCheck extends AbstractFileSetCheck } @Override - public void beginProcessing() + public void beginProcessing(String aCharset) { - super.beginProcessing(); + super.beginProcessing(aCharset); mDirectoriesChecked.clear(); } @@ -62,7 +62,7 @@ public class JavadocPackageCheck extends AbstractFileSetCheck return; } mDirectoriesChecked.add(dir); - + // Check for the preferred file. final File packageInfo = new File(dir, "package-info.java"); final File packageHtml = new File(dir, "package.html"); @@ -71,10 +71,8 @@ public class JavadocPackageCheck extends AbstractFileSetCheck if (packageHtml.exists()) { log(0, "javadoc.legacyPackageHtml"); } - } - else if (mAllowLegacy && packageHtml.exists()) { } - else { + else if (!mAllowLegacy || !packageHtml.exists()) { log(0, "javadoc.packageInfo"); } } diff --git a/src/tests/com/puppycrawl/tools/checkstyle/BaseCheckTestSupport.java b/src/tests/com/puppycrawl/tools/checkstyle/BaseCheckTestSupport.java index d3735bed6..bf4e8dc8d 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/BaseCheckTestSupport.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/BaseCheckTestSupport.java @@ -68,7 +68,7 @@ public abstract class BaseCheckTestSupport new DefaultConfiguration("configuration"); final DefaultConfiguration twConf = createCheckConfig(TreeWalker.class); // make sure that the tests always run with this charset - twConf.addAttribute("charset", "iso-8859-1"); + dc.addAttribute("charset", "iso-8859-1"); dc.addChild(twConf); twConf.addChild(aConfig); return dc;