This is an automated email from the ASF dual-hosted git repository.
claude pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/creadur-rat.git
The following commit(s) were added to refs/heads/master by this push:
new 17ea9c1d Quick fix for log breaking build (#399)
17ea9c1d is described below
commit 17ea9c1d849b9d7b383c0d9c42aa59e8c30241f6
Author: Claude Warren <[email protected]>
AuthorDate: Wed Nov 20 08:04:37 2024 +0000
Quick fix for log breaking build (#399)
* Added ability to set log level in all cases or lot that it is not
supported
* Added log cleanup to ReportTest
---
.../src/it/java/org/apache/rat/ReportTest.java | 29 +++++++++++++---------
.../main/java/org/apache/rat/commandline/Arg.java | 14 ++++-------
.../src/main/java/org/apache/rat/utils/Log.java | 15 +++++++++++
.../apache/rat/test/AbstractOptionsProvider.java | 2 +-
4 files changed, 38 insertions(+), 22 deletions(-)
diff --git a/apache-rat-core/src/it/java/org/apache/rat/ReportTest.java
b/apache-rat-core/src/it/java/org/apache/rat/ReportTest.java
index 45d74840..98098ff9 100644
--- a/apache-rat-core/src/it/java/org/apache/rat/ReportTest.java
+++ b/apache-rat-core/src/it/java/org/apache/rat/ReportTest.java
@@ -106,19 +106,24 @@ public class ReportTest {
File logFile = new File(baseDir,"log.txt");
FileLog fileLog = new FileLog(logFile);
- DefaultLog.setInstance(fileLog);
-
- argsList.add(new File(baseDir, "src").getAbsolutePath());
-
- File expectedMsg = new File(baseDir, "expected-message.txt");
- if (expectedMsg.exists()) {
- String msg = IOUtils.readLines(new
FileReader(expectedMsg)).get(0).trim();
- assertThrows(RatDocumentAnalysisException.class, () ->
Report.main(asArgs(argsList)),
- msg);
- } else {
- Report.main(asArgs(argsList));
+ Log oldLog = null;
+ try {
+ oldLog = DefaultLog.setInstance(fileLog);
+
+ argsList.add(new File(baseDir, "src").getAbsolutePath());
+
+ File expectedMsg = new File(baseDir, "expected-message.txt");
+ if (expectedMsg.exists()) {
+ String msg = IOUtils.readLines(new
FileReader(expectedMsg)).get(0).trim();
+ assertThrows(RatDocumentAnalysisException.class, () ->
Report.main(asArgs(argsList)),
+ msg);
+ } else {
+ Report.main(asArgs(argsList));
+ }
+ } finally {
+ DefaultLog.setInstance(oldLog);
+ fileLog.close();
}
- fileLog.close();
File groovyScript = new File(baseDir, "verify.groovy");
if (groovyScript.exists()) {
diff --git a/apache-rat-core/src/main/java/org/apache/rat/commandline/Arg.java
b/apache-rat-core/src/main/java/org/apache/rat/commandline/Arg.java
index c176f037..d0591900 100644
--- a/apache-rat-core/src/main/java/org/apache/rat/commandline/Arg.java
+++ b/apache-rat-core/src/main/java/org/apache/rat/commandline/Arg.java
@@ -738,15 +738,11 @@ public enum Arg {
*/
public static void processLogLevel(final CommandLine commandLine) {
if (LOG_LEVEL.getSelected() != null) {
- if (DefaultLog.getInstance() instanceof DefaultLog) {
- DefaultLog dLog = (DefaultLog) DefaultLog.getInstance();
- try {
-
dLog.setLevel(commandLine.getParsedOptionValue(LOG_LEVEL.getSelected()));
- } catch (ParseException e) {
- logParseException(DefaultLog.getInstance(), e,
LOG_LEVEL.getSelected(), commandLine, dLog.getLevel());
- }
- } else {
- DefaultLog.getInstance().error("Log was not a DefaultLog
instance. LogLevel not set.");
+ Log dLog = DefaultLog.getInstance();
+ try {
+
dLog.setLevel(commandLine.getParsedOptionValue(LOG_LEVEL.getSelected()));
+ } catch (ParseException e) {
+ logParseException(DefaultLog.getInstance(), e,
LOG_LEVEL.getSelected(), commandLine, dLog.getLevel());
}
}
}
diff --git a/apache-rat-core/src/main/java/org/apache/rat/utils/Log.java
b/apache-rat-core/src/main/java/org/apache/rat/utils/Log.java
index 5f00ddca..d12db3e6 100644
--- a/apache-rat-core/src/main/java/org/apache/rat/utils/Log.java
+++ b/apache-rat-core/src/main/java/org/apache/rat/utils/Log.java
@@ -51,6 +51,21 @@ public interface Log {
*/
Level getLevel();
+ /**
+ * Sets the log level.
+ * Implementations may elect not to set the level dynamically. However,
if the option is supported
+ * this method should be overridden.
+ * @param level the level to set.
+ */
+ default void setLevel(Level level) {
+ warn(String.format("This logger does not support dynamically setting
the log level. Setting to %s ignored.", level));
+ }
+
+ /**
+ * Determines if the log level is enabled.
+ * @param level The level to check.
+ * @return true if the level will produce output in the log.
+ */
default boolean isEnabled(Level level) {
return getLevel().ordinal() <= level.ordinal();
}
diff --git
a/apache-rat-core/src/test/java/org/apache/rat/test/AbstractOptionsProvider.java
b/apache-rat-core/src/test/java/org/apache/rat/test/AbstractOptionsProvider.java
index bc27598e..772d3944 100644
---
a/apache-rat-core/src/test/java/org/apache/rat/test/AbstractOptionsProvider.java
+++
b/apache-rat-core/src/test/java/org/apache/rat/test/AbstractOptionsProvider.java
@@ -663,7 +663,7 @@ public abstract class AbstractOptionsProvider {
}
}
} finally {
- ((DefaultLog) DefaultLog.getInstance()).setLevel(logLevel);
+ DefaultLog.getInstance().setLevel(logLevel);
}
}