Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ARCHETYPE-691] Refactor FileCharsetDetector #248

Merged
merged 1 commit into from
Jan 6, 2025

Conversation

Stellar1999
Copy link
Contributor

@Stellar1999 Stellar1999 commented Dec 12, 2024

Remove FileCharsetDetector.java and moved its methods to the usage side.

Following this checklist to help us incorporate your
contribution quickly and easily:

  • Make sure there is a JIRA issue filed
    for the change (usually before you start working on it). Trivial changes like typos do not
    require a JIRA issue. Your pull request should address just this issue, without
    pulling in other changes.
  • Each commit in the pull request should have a meaningful subject line and body.
  • Format the pull request title like [ARCHETYPE-XXX] SUMMARY,
    where you replace ARCHETYPE-XXX and SUMMARY with the appropriate JIRA issue.
  • Also format the first line of the commit message like [ARCHETYPE-XXX] SUMMARY.
    Best practice is to use the JIRA issue title in both the pull request title and in the first line of the commit message.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Run mvn clean verify to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.

If your pull request is about ~20 lines of code you don't need to sign an
Individual Contributor License Agreement if you are unsure
please ask on the developers list.

To make clear that you license your contribution under
the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

@@ -1632,6 +1634,18 @@ private FileSet getUnpackagedFileSet(
return createFileSet(excludes, false, filtered, group, includes, defaultEncoding);
}

private String getFileCharsetEncoding(File detectedFile, String defaultEncoding) {
try (FileInputStream fileInputStream = new FileInputStream(detectedFile);
BufferedInputStream is = new BufferedInputStream(fileInputStream)) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

put both streams into the try block argument

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use finally to close these streams?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I don't understand what you mean actually. But I've changed my code, please take a look.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I filed the issue because the helper class was very poorly designed and implemented. I didn't initially realize it was only used in one place and could be inlined so neatly and trivially. However it turns out that it can, and this PR noticeably simplifies the archetype creator class as well as eliminating the charset detectpr class. It's good work.

detector.setText(is);
CharsetMatch match = detector.detect();
return match.getName().toUpperCase(Locale.ENGLISH);
} catch (IOException e) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is going the wrong way. Use try with resources

private String getFileCharsetEncoding(File detectedFile, String defaultEncoding) {
FileInputStream fileInputStream = null;
BufferedInputStream is = null;
try {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

try (InputStream in = new BufferedInputStream(new FileInputStream(...)))

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, I now understand what an argument is, and I've updated my code.

@slawekjaranowski slawekjaranowski merged commit 7dee5ee into apache:master Jan 6, 2025
20 checks passed
@slawekjaranowski slawekjaranowski added this to the next-release milestone Jan 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants