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;