You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2021/06/17 11:34:04 UTC
[logging-log4j2] branch master updated: Use final modifier wherever
possible. (#506)
This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/master by this push:
new 0043e92 Use final modifier wherever possible. (#506)
0043e92 is described below
commit 0043e9238af0efd9dbce462463e0fa1bf14e35b0
Author: Arturo Bernal <ar...@gmail.com>
AuthorDate: Thu Jun 17 13:33:57 2021 +0200
Use final modifier wherever possible. (#506)
---
.../java/org/apache/logging/log4j/core/Logger.java | 2 +-
.../apache/logging/log4j/core/LoggerContext.java | 28 +-
.../log4j/core/appender/AbstractFileAppender.java | 2 +-
.../appender/AbstractOutputStreamAppender.java | 4 +-
.../core/appender/AbstractWriterAppender.java | 2 +-
.../core/appender/AppenderLoggingException.java | 4 +-
.../appender/AsyncAppenderEventDispatcher.java | 2 +-
.../log4j/core/appender/ConsoleAppender.java | 6 +-
.../log4j/core/appender/FailoverAppender.java | 4 +-
.../logging/log4j/core/appender/FileAppender.java | 2 +-
.../logging/log4j/core/appender/FileManager.java | 6 +-
.../core/appender/HttpURLConnectionManager.java | 6 +-
.../core/appender/MemoryMappedFileAppender.java | 2 +-
.../core/appender/MemoryMappedFileManager.java | 2 +-
.../log4j/core/appender/OutputStreamAppender.java | 2 +-
.../log4j/core/appender/OutputStreamManager.java | 2 +-
.../core/appender/RandomAccessFileManager.java | 2 +-
.../log4j/core/appender/WriterAppender.java | 2 +-
.../core/appender/db/AbstractDatabaseAppender.java | 2 +-
.../appender/db/DbAppenderLoggingException.java | 4 +-
.../log4j/core/appender/nosql/NoSqlAppender.java | 8 +-
.../core/appender/rewrite/RewriteAppender.java | 2 +-
.../appender/rolling/AbstractRolloverStrategy.java | 4 +-
.../appender/rolling/DefaultRolloverStrategy.java | 6 +-
.../core/appender/rolling/PatternProcessor.java | 4 +-
.../core/appender/rolling/RollingFileManager.java | 30 +-
.../rolling/RollingRandomAccessFileManager.java | 6 +-
.../appender/rolling/action/DeletingVisitor.java | 2 +-
.../appender/rolling/action/FileRenameAction.java | 2 +-
.../appender/rolling/action/GzCompressAction.java | 2 +-
.../appender/rolling/action/SortingVisitor.java | 2 +-
.../core/appender/routing/IdlePurgePolicy.java | 2 +-
.../core/appender/routing/RoutingAppender.java | 12 +-
.../logging/log4j/core/async/AsyncLogger.java | 16 +-
.../log4j/core/async/AsyncLoggerConfig.java | 2 +-
.../core/async/AsyncQueueFullPolicyFactory.java | 6 +-
.../async/BasicAsyncLoggerContextSelector.java | 8 +-
.../core/async/DefaultAsyncQueueFullPolicy.java | 2 +-
.../logging/log4j/core/async/DisruptorUtil.java | 2 +-
.../log4j/core/async/RingBufferLogEvent.java | 2 +-
.../core/async/RingBufferLogEventHandler.java | 2 +-
.../core/async/ThreadNameCachingStrategy.java | 6 +-
.../log4j/core/config/AbstractConfiguration.java | 34 +-
.../log4j/core/config/ConfigurationFactory.java | 26 +-
.../core/config/ConfigurationFileWatcher.java | 8 +-
.../log4j/core/config/ConfigurationSource.java | 36 +-
.../logging/log4j/core/config/Configurator.java | 6 +-
.../logging/log4j/core/config/HttpWatcher.java | 26 +-
.../logging/log4j/core/config/LoggerConfig.java | 12 +-
.../log4j/core/config/ReliabilityStrategy.java | 4 +-
.../log4j/core/config/arbiters/ScriptArbiter.java | 4 +-
.../log4j/core/config/arbiters/SelectArbiter.java | 6 +-
.../config/arbiters/SystemPropertyArbiter.java | 2 +-
.../builder/impl/DefaultConfigurationBuilder.java | 16 +-
.../config/composite/CompositeConfiguration.java | 2 +-
.../log4j/core/config/json/JsonConfiguration.java | 4 +-
.../core/config/plugins/util/PluginBuilder.java | 6 +-
.../plugins/visitors/PluginElementVisitor.java | 2 +-
.../properties/PropertiesConfigurationBuilder.java | 2 +-
.../log4j/core/config/xml/XmlConfiguration.java | 4 +-
.../log4j/core/filter/AbstractFilterable.java | 2 +-
.../logging/log4j/core/filter/NeutralFilter.java | 42 +-
.../logging/log4j/core/filter/TimeFilter.java | 10 +-
.../log4j/core/impl/ContextDataFactory.java | 2 +-
.../log4j/core/impl/ExtendedStackTraceElement.java | 4 +-
.../log4j/core/impl/Log4jContextFactory.java | 6 +-
.../logging/log4j/core/impl/Log4jLogEvent.java | 2 +-
.../logging/log4j/core/impl/LogEventFactory.java | 4 +-
.../logging/log4j/core/impl/MementoMessage.java | 4 +-
.../logging/log4j/core/impl/MutableLogEvent.java | 4 +-
.../log4j/core/impl/ReusableLogEventFactory.java | 4 +-
.../log4j/core/impl/ThreadContextDataInjector.java | 8 +-
.../logging/log4j/core/impl/ThrowableProxy.java | 2 +-
.../log4j/core/impl/ThrowableProxyHelper.java | 4 +-
.../log4j/core/impl/ThrowableProxyRenderer.java | 16 +-
.../logging/log4j/core/layout/GelfLayout.java | 20 +-
.../logging/log4j/core/layout/HtmlLayout.java | 2 +-
.../log4j/core/layout/LevelPatternSelector.java | 2 +-
.../log4j/core/layout/MarkerPatternSelector.java | 2 +-
.../logging/log4j/core/layout/PatternLayout.java | 10 +-
.../logging/log4j/core/layout/Rfc5424Layout.java | 4 +-
.../log4j/core/layout/ScriptPatternSelector.java | 2 +-
.../logging/log4j/core/lookup/Base64StrLookup.java | 2 +-
.../logging/log4j/core/lookup/StrSubstitutor.java | 6 +-
.../log4j/core/net/DatagramSocketManager.java | 2 +-
.../log4j/core/net/MulticastDnsAdvertiser.java | 2 +-
.../logging/log4j/core/net/SslSocketManager.java | 12 +-
.../logging/log4j/core/net/TcpSocketManager.java | 40 +-
.../log4j/core/net/UrlConnectionFactory.java | 18 +-
.../net/ssl/AbstractKeyStoreConfiguration.java | 2 +-
.../core/net/ssl/EnvironmentPasswordProvider.java | 2 +-
.../log4j/core/net/ssl/FilePasswordProvider.java | 8 +-
.../log4j/core/net/ssl/KeyStoreConfiguration.java | 6 +-
.../log4j/core/net/ssl/SslConfiguration.java | 2 +-
.../core/net/ssl/SslConfigurationFactory.java | 12 +-
.../core/net/ssl/StoreConfigurationException.java | 2 +-
.../core/net/ssl/TrustStoreConfiguration.java | 4 +-
.../log4j/core/osgi/BundleContextSelector.java | 2 +-
.../log4j/core/pattern/DatePatternConverter.java | 4 +-
.../log4j/core/pattern/HighlightConverter.java | 4 +-
.../log4j/core/pattern/JAnsiTextRenderer.java | 2 +-
.../log4j/core/pattern/MapPatternConverter.java | 4 +-
.../core/pattern/MessagePatternConverter.java | 2 +-
.../log4j/core/pattern/NameAbbreviator.java | 2 +-
.../logging/log4j/core/pattern/PatternParser.java | 12 +-
.../core/pattern/ProcessIdPatternConverter.java | 2 +-
.../log4j/core/pattern/RepeatPatternConverter.java | 2 +-
.../core/pattern/ThrowablePatternConverter.java | 4 +-
.../logging/log4j/core/script/ScriptFile.java | 2 +-
.../log4j/core/selector/BasicContextSelector.java | 8 +-
.../core/selector/ClassLoaderContextSelector.java | 12 +-
.../log4j/core/selector/ContextSelector.java | 12 +-
.../log4j/core/selector/JndiContextSelector.java | 10 +-
.../logging/log4j/core/time/ClockFactory.java | 8 +-
.../logging/log4j/core/time/MutableInstant.java | 4 +-
.../log4j/core/time/internal/SystemClock.java | 4 +-
.../core/time/internal/format/FastDateParser.java | 2 +-
.../core/time/internal/format/FormatCache.java | 2 +-
.../log4j/core/tools/picocli/CommandLine.java | 1166 ++++++++++----------
.../logging/log4j/core/util/AbstractWatcher.java | 2 +-
.../core/util/BasicAuthorizationProvider.java | 12 +-
.../core/util/DefaultShutdownCallbackRegistry.java | 6 +-
.../apache/logging/log4j/core/util/FileUtils.java | 4 +-
.../org/apache/logging/log4j/core/util/Loader.java | 4 +-
.../apache/logging/log4j/core/util/NetUtils.java | 4 +-
.../logging/log4j/core/util/OptionConverter.java | 30 +-
.../logging/log4j/core/util/ProcessIdUtil.java | 12 +-
.../org/apache/logging/log4j/core/util/Source.java | 6 +-
.../apache/logging/log4j/core/util/UuidUtil.java | 2 +-
.../logging/log4j/core/util/WatchManager.java | 18 +-
.../logging/log4j/core/util/WatcherFactory.java | 22 +-
.../log4j/core/util/WrappedFileWatcher.java | 18 +-
.../log4j/core/util/datetime/FastDateFormat.java | 2 +-
133 files changed, 1051 insertions(+), 1051 deletions(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/Logger.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/Logger.java
index 806f4a7..979a7bd 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/Logger.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/Logger.java
@@ -118,7 +118,7 @@ public class Logger extends AbstractLogger implements Supplier<LoggerConfig> {
if (level == getLevel()) {
return;
}
- Level actualLevel;
+ final Level actualLevel;
if (level != null) {
actualLevel = level;
} else {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
index e9487c9..0141c34 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
@@ -134,7 +134,7 @@ public class LoggerContext extends AbstractLifeCycle
externalMap.put(EXTERNAL_CONTEXT_KEY, externalContext);
}
this.configLocation = configLocn;
- Thread runner = new Thread(new ThreadContextDataTask(), "Thread Context Data Task");
+ final Thread runner = new Thread(new ThreadContextDataTask(), "Thread Context Data Task");
runner.setDaemon(true);
runner.start();
}
@@ -165,12 +165,12 @@ public class LoggerContext extends AbstractLifeCycle
} else {
configLocation = null;
}
- Thread runner = new Thread(new ThreadContextDataTask(), "Thread Context Data Task");
+ final Thread runner = new Thread(new ThreadContextDataTask(), "Thread Context Data Task");
runner.setDaemon(true);
runner.start();
}
- public void addShutdownListener(LoggerContextShutdownAware listener) {
+ public void addShutdownListener(final LoggerContextShutdownAware listener) {
if (listeners == null) {
synchronized(this) {
if (listeners == null) {
@@ -393,10 +393,10 @@ public class LoggerContext extends AbstractLifeCycle
this.setStopped();
}
if (listeners != null) {
- for (LoggerContextShutdownAware listener : listeners) {
+ for (final LoggerContextShutdownAware listener : listeners) {
try {
listener.contextShutdown(this);
- } catch (Exception ex) {
+ } catch (final Exception ex) {
// Ignore the exception.
}
}
@@ -434,27 +434,27 @@ public class LoggerContext extends AbstractLifeCycle
}
@Override
- public Object getObject(String key) {
+ public Object getObject(final String key) {
return externalMap.get(key);
}
@Override
- public Object putObject(String key, Object value) {
+ public Object putObject(final String key, final Object value) {
return externalMap.put(key, value);
}
@Override
- public Object putObjectIfAbsent(String key, Object value) {
+ public Object putObjectIfAbsent(final String key, final Object value) {
return externalMap.putIfAbsent(key, value);
}
@Override
- public Object removeObject(String key) {
+ public Object removeObject(final String key) {
return externalMap.remove(key);
}
@Override
- public boolean removeObject(String key, Object value) {
+ public boolean removeObject(final String key, final Object value) {
return externalMap.remove(key, value);
}
@@ -680,7 +680,7 @@ public class LoggerContext extends AbstractLifeCycle
* Reconfigures the context.
*/
private void reconfigure(final URI configURI) {
- Object externalContext = externalMap.get(EXTERNAL_CONTEXT_KEY);
+ final Object externalContext = externalMap.get(EXTERNAL_CONTEXT_KEY);
final ClassLoader cl = ClassLoader.class.isInstance(externalContext) ? (ClassLoader) externalContext : null;
LOGGER.debug("Reconfiguration started for context[name={}] at URI {} ({}) with optional ClassLoader: {}",
contextName, configURI, this, cl);
@@ -708,11 +708,11 @@ public class LoggerContext extends AbstractLifeCycle
reconfigure(configLocation);
}
- public void reconfigure(Configuration configuration) {
+ public void reconfigure(final Configuration configuration) {
setConfiguration(configuration);
- ConfigurationSource source = configuration.getConfigurationSource();
+ final ConfigurationSource source = configuration.getConfigurationSource();
if (source != null) {
- URI uri = source.getURI();
+ final URI uri = source.getURI();
if (uri != null) {
configLocation = uri;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractFileAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractFileAppender.java
index 4b88cc7..2ea6997 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractFileAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractFileAppender.java
@@ -160,7 +160,7 @@ public abstract class AbstractFileAppender<M extends OutputStreamManager> extend
private AbstractFileAppender(final String name, final Layout<? extends Serializable> layout, final Filter filter,
final M manager, final String filename, final boolean ignoreExceptions,
- final boolean immediateFlush, final Advertiser advertiser, Property[] properties) {
+ final boolean immediateFlush, final Advertiser advertiser, final Property[] properties) {
super(name, layout, filter, ignoreExceptions, immediateFlush, properties, manager);
if (advertiser != null) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
index b498f95..cee9a82 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
@@ -98,8 +98,8 @@ public abstract class AbstractOutputStreamAppender<M extends OutputStreamManager
* @param manager The OutputStreamManager.
*/
protected AbstractOutputStreamAppender(final String name, final Layout<? extends Serializable> layout,
- final Filter filter, final boolean ignoreExceptions, final boolean immediateFlush, Property[] properties,
- final M manager) {
+ final Filter filter, final boolean ignoreExceptions, final boolean immediateFlush, final Property[] properties,
+ final M manager) {
super(name, filter, layout, ignoreExceptions, properties);
this.manager = manager;
this.immediateFlush = immediateFlush;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractWriterAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractWriterAppender.java
index 0042a27..0ba5936 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractWriterAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractWriterAppender.java
@@ -59,7 +59,7 @@ public abstract class AbstractWriterAppender<M extends WriterManager> extends Ab
* The OutputStreamManager.
*/
protected AbstractWriterAppender(final String name, final StringLayout layout, final Filter filter,
- final boolean ignoreExceptions, final boolean immediateFlush, Property[] properties, final M manager) {
+ final boolean ignoreExceptions, final boolean immediateFlush, final Property[] properties, final M manager) {
super(name, filter, layout, ignoreExceptions, properties);
this.manager = manager;
this.immediateFlush = immediateFlush;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderLoggingException.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderLoggingException.java
index 4174e4e..592dbb8 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderLoggingException.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AppenderLoggingException.java
@@ -50,7 +50,7 @@ public class AppenderLoggingException extends LoggingException {
* @param args The reason arguments for the exception, see {@link String#format(String, Object...)}.
* @since 2.12.1
*/
- public AppenderLoggingException(final String format, Object... args) {
+ public AppenderLoggingException(final String format, final Object... args) {
super(String.format(format, args));
}
@@ -81,7 +81,7 @@ public class AppenderLoggingException extends LoggingException {
* @param args The reason arguments for the exception, see {@link String#format(String, Object...)}.
* @since 2.12.1
*/
- public AppenderLoggingException(final Throwable cause, final String format, Object... args) {
+ public AppenderLoggingException(final Throwable cause, final String format, final Object... args) {
super(String.format(format, args), cause);
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppenderEventDispatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppenderEventDispatcher.java
index d9efc94..6b7728e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppenderEventDispatcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppenderEventDispatcher.java
@@ -66,7 +66,7 @@ class AsyncAppenderEventDispatcher extends Log4jThread {
private void dispatchAll() {
while (!stoppedRef.get()) {
- LogEvent event;
+ final LogEvent event;
try {
event = queue.take();
} catch (final InterruptedException ignored) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
index ce73da0..8416283 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
@@ -88,14 +88,14 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt
public abstract Charset getDefaultCharset();
- protected Charset getCharset(final String property, Charset defaultCharset) {
+ protected Charset getCharset(final String property, final Charset defaultCharset) {
return new PropertiesUtil(PropertiesUtil.getSystemProperties()).getCharsetProperty(property, defaultCharset);
}
}
private ConsoleAppender(final String name, final Layout<? extends Serializable> layout, final Filter filter,
- final OutputStreamManager manager, final boolean ignoreExceptions, final Target target, Property[] properties) {
+ final OutputStreamManager manager, final boolean ignoreExceptions, final Target target, final Property[] properties) {
super(name, layout, filter, ignoreExceptions, true, properties, manager);
this.target = target;
}
@@ -204,7 +204,7 @@ public final class ConsoleAppender extends AbstractOutputStreamAppender<OutputSt
return outputStream;
}
- private static String clean(String string) {
+ private static String clean(final String string) {
return string.replace(Chars.NUL, Chars.SPACE);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java
index 965330e..cc1f0b7 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java
@@ -64,7 +64,7 @@ public final class FailoverAppender extends AbstractAppender {
private FailoverAppender(final String name, final Filter filter, final String primary, final String[] failovers,
final int intervalMillis, final Configuration config, final boolean ignoreExceptions,
- Property[] properties) {
+ final Property[] properties) {
super(name, filter, null, ignoreExceptions, properties);
this.primaryRef = primary;
this.failovers = failovers;
@@ -191,7 +191,7 @@ public final class FailoverAppender extends AbstractAppender {
@PluginElement final Filter filter,
@PluginAttribute(defaultBoolean = true) final boolean ignoreExceptions) {
- int retryIntervalMillis;
+ final int retryIntervalMillis;
if (retryIntervalSeconds >= 0) {
retryIntervalMillis = retryIntervalSeconds * Constants.MILLIS_IN_SECONDS;
} else {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java
index 6f3af1b..7a03673 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileAppender.java
@@ -196,7 +196,7 @@ public final class FileAppender extends AbstractOutputStreamAppender<FileManager
private FileAppender(final String name, final Layout<? extends Serializable> layout, final Filter filter,
final FileManager manager, final String filename, final boolean ignoreExceptions,
- final boolean immediateFlush, final Advertiser advertiser, Property[] properties) {
+ final boolean immediateFlush, final Advertiser advertiser, final Property[] properties) {
super(name, layout, filter, ignoreExceptions, immediateFlush, properties, manager);
if (advertiser != null) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
index 8472bab..a377836 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
@@ -142,9 +142,9 @@ public class FileManager extends OutputStreamManager {
final FileOutputStream fos = new FileOutputStream(file, isAppend);
if (file.exists() && file.length() == 0) {
try {
- FileTime now = FileTime.fromMillis(System.currentTimeMillis());
+ final FileTime now = FileTime.fromMillis(System.currentTimeMillis());
Files.setAttribute(file.toPath(), "creationTime", now);
- } catch (Exception ex) {
+ } catch (final Exception ex) {
LOGGER.warn("Unable to set current file time for {}", filename);
}
writeHeader(fos);
@@ -153,7 +153,7 @@ public class FileManager extends OutputStreamManager {
return fos;
}
- protected void createParentDir(File file) {
+ protected void createParentDir(final File file) {
}
protected void defineAttributeView(final Path path) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java
index 9c66db2..cafb17a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java
@@ -105,18 +105,18 @@ public class HttpURLConnectionManager extends HttpManager {
final byte[] msg = layout.toByteArray(event);
urlConnection.setFixedLengthStreamingMode(msg.length);
urlConnection.connect();
- try (OutputStream os = urlConnection.getOutputStream()) {
+ try (final OutputStream os = urlConnection.getOutputStream()) {
os.write(msg);
}
final byte[] buffer = new byte[1024];
- try (InputStream is = urlConnection.getInputStream()) {
+ try (final InputStream is = urlConnection.getInputStream()) {
while (IOUtils.EOF != is.read(buffer)) {
// empty
}
} catch (final IOException e) {
final StringBuilder errorMessage = new StringBuilder();
- try (InputStream es = urlConnection.getErrorStream()) {
+ try (final InputStream es = urlConnection.getErrorStream()) {
errorMessage.append(urlConnection.getResponseCode());
if (urlConnection.getResponseMessage() != null) {
errorMessage.append(' ').append(urlConnection.getResponseMessage());
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java
index 105d4c8..b27c9fa 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java
@@ -127,7 +127,7 @@ public final class MemoryMappedFileAppender extends AbstractOutputStreamAppender
private MemoryMappedFileAppender(final String name, final Layout<? extends Serializable> layout,
final Filter filter, final MemoryMappedFileManager manager, final String filename,
- final boolean ignoreExceptions, final boolean immediateFlush, final Advertiser advertiser, Property[] properties) {
+ final boolean ignoreExceptions, final boolean immediateFlush, final Advertiser advertiser, final Property[] properties) {
super(name, layout, filter, ignoreExceptions, immediateFlush, properties, manager);
if (advertiser != null) {
final Map<String, String> configuration = new HashMap<>(layout.getContentFormat());
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java
index 09e2d78..40c3c02 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java
@@ -221,7 +221,7 @@ public class MemoryMappedFileManager extends OutputStreamManager {
final Field unsafeField = unsafeClass.getDeclaredField("theUnsafe");
unsafeField.setAccessible(true);
final Object unsafe = unsafeField.get(null);
- Method invokeCleaner = unsafeClass.getMethod("invokeCleaner", ByteBuffer.class);
+ final Method invokeCleaner = unsafeClass.getMethod("invokeCleaner", ByteBuffer.class);
invokeCleaner.invoke(unsafe, mbb);
return null;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamAppender.java
index a1763e9..d15c0fb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamAppender.java
@@ -165,7 +165,7 @@ public final class OutputStreamAppender extends AbstractOutputStreamAppender<Out
}
private OutputStreamAppender(final String name, final Layout<? extends Serializable> layout, final Filter filter,
- final OutputStreamManager manager, final boolean ignoreExceptions, Property[] properties) {
+ final OutputStreamManager manager, final boolean ignoreExceptions, final Property[] properties) {
super(name, layout, filter, ignoreExceptions, true, null, manager);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
index e6aa359..34fdc15 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/OutputStreamManager.java
@@ -122,7 +122,7 @@ public class OutputStreamManager extends AbstractManager implements ByteBufferDe
return closeOutputStream();
}
- protected void writeHeader(OutputStream os) {
+ protected void writeHeader(final OutputStream os) {
if (layout != null && os != null) {
final byte[] header = layout.getHeader();
if (header != null) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
index f2c17d9..56be44c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
@@ -193,7 +193,7 @@ public class RandomAccessFileManager extends OutputStreamManager {
final boolean writeHeader = !data.append || !file.exists();
final OutputStream os = NullOutputStream.getInstance();
- RandomAccessFile raf;
+ final RandomAccessFile raf;
try {
FileUtils.makeParentDirs(file);
raf = new RandomAccessFile(name, "rw");
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/WriterAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/WriterAppender.java
index e2ad979..1f3b30e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/WriterAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/WriterAppender.java
@@ -152,7 +152,7 @@ public final class WriterAppender extends AbstractWriterAppender<WriterManager>
}
private WriterAppender(final String name, final StringLayout layout, final Filter filter,
- final WriterManager manager, final boolean ignoreExceptions, Property[] properties) {
+ final WriterManager manager, final boolean ignoreExceptions, final Property[] properties) {
super(name, layout, filter, ignoreExceptions, true, properties, manager);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppender.java
index 7323d97..e6d3d13 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppender.java
@@ -63,7 +63,7 @@ public abstract class AbstractDatabaseAppender<T extends AbstractDatabaseManager
* @param manager The matching {@link AbstractDatabaseManager} implementation.
*/
protected AbstractDatabaseAppender(final String name, final Filter filter,
- final Layout<? extends Serializable> layout, final boolean ignoreExceptions, Property[] properties, final T manager) {
+ final Layout<? extends Serializable> layout, final boolean ignoreExceptions, final Property[] properties, final T manager) {
super(name, filter, layout, ignoreExceptions, properties);
this.manager = manager;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/DbAppenderLoggingException.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/DbAppenderLoggingException.java
index 5545984..993f777 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/DbAppenderLoggingException.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/DbAppenderLoggingException.java
@@ -33,7 +33,7 @@ public class DbAppenderLoggingException extends AppenderLoggingException {
* @param args The reason arguments for the exception, see {@link String#format(String, Object...)}.
* @since 2.12.1
*/
- public DbAppenderLoggingException(String format, Object... args) {
+ public DbAppenderLoggingException(final String format, final Object... args) {
super(format, args);
}
@@ -55,7 +55,7 @@ public class DbAppenderLoggingException extends AppenderLoggingException {
* @param args The reason arguments for the exception, see {@link String#format(String, Object...)}.
* @since 2.12.1
*/
- public DbAppenderLoggingException(Throwable cause, String format, Object... args) {
+ public DbAppenderLoggingException(final Throwable cause, final String format, final Object... args) {
super(cause, format, args);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/nosql/NoSqlAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/nosql/NoSqlAppender.java
index 8819040..9a22b13 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/nosql/NoSqlAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/nosql/NoSqlAppender.java
@@ -89,7 +89,7 @@ public final class NoSqlAppender extends AbstractDatabaseAppender<NoSqlDatabaseM
* buffer reaches this size.
* @return this
*/
- public B setBufferSize(int bufferSize) {
+ public B setBufferSize(final int bufferSize) {
this.bufferSize = bufferSize;
return asBuilder();
}
@@ -101,7 +101,7 @@ public final class NoSqlAppender extends AbstractDatabaseAppender<NoSqlDatabaseM
* The NoSQL provider that provides connections to the chosen NoSQL database.
* @return this
*/
- public B setProvider(NoSqlProvider<?> provider) {
+ public B setProvider(final NoSqlProvider<?> provider) {
this.provider = provider;
return asBuilder();
}
@@ -114,8 +114,8 @@ public final class NoSqlAppender extends AbstractDatabaseAppender<NoSqlDatabaseM
private final String description;
- private NoSqlAppender(final String name, final Filter filter, Layout<? extends Serializable> layout,
- final boolean ignoreExceptions, Property[] properties, final NoSqlDatabaseManager<?> manager) {
+ private NoSqlAppender(final String name, final Filter filter, final Layout<? extends Serializable> layout,
+ final boolean ignoreExceptions, final Property[] properties, final NoSqlDatabaseManager<?> manager) {
super(name, filter, layout, ignoreExceptions, properties, manager);
this.description = this.getName() + "{ manager=" + this.getManager() + " }";
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/RewriteAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/RewriteAppender.java
index 3d8aa26..a911797 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/RewriteAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/RewriteAppender.java
@@ -48,7 +48,7 @@ public final class RewriteAppender extends AbstractAppender {
private RewriteAppender(final String name, final Filter filter, final boolean ignoreExceptions,
final AppenderRef[] appenderRefs, final RewritePolicy rewritePolicy,
- final Configuration config, Property[] properties) {
+ final Configuration config, final Property[] properties) {
super(name, filter, null, ignoreExceptions, properties);
this.config = config;
this.rewritePolicy = rewritePolicy;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/AbstractRolloverStrategy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/AbstractRolloverStrategy.java
index 375dc09..da3ad10 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/AbstractRolloverStrategy.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/AbstractRolloverStrategy.java
@@ -123,14 +123,14 @@ public abstract class AbstractRolloverStrategy implements RolloverStrategy {
final Path current = currentFile.length() > 0 ? new File(currentFile).toPath() : null;
LOGGER.debug("Current file: {}", currentFile);
- try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
+ try (final DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
for (final Path entry: stream) {
final Matcher matcher = pattern.matcher(entry.toFile().getName());
if (matcher.matches() && !entry.equals(current)) {
try {
final Integer index = Integer.parseInt(matcher.group(1));
eligibleFiles.put(index, entry);
- } catch (NumberFormatException ex) {
+ } catch (final NumberFormatException ex) {
LOGGER.debug("Ignoring file {} which matches pattern but the index is invalid.",
entry.toFile().getName());
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java
index 0a2bbb7..560257e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java
@@ -114,7 +114,7 @@ public class DefaultRolloverStrategy extends AbstractRolloverStrategy {
public DefaultRolloverStrategy build() {
int minIndex;
int maxIndex;
- boolean useMax;
+ final boolean useMax;
if (fileIndex != null && fileIndex.equalsIgnoreCase("nomax")) {
minIndex = Integer.MIN_VALUE;
@@ -141,7 +141,7 @@ public class DefaultRolloverStrategy extends AbstractRolloverStrategy {
}
final int compressionLevel = Integers.parseInt(compressionLevelStr, Deflater.DEFAULT_COMPRESSION);
// The config object can be null when this object is built programmatically.
- StrSubstitutor nonNullStrSubstitutor = config != null ? config.getStrSubstitutor() : new StrSubstitutor();
+ final StrSubstitutor nonNullStrSubstitutor = config != null ? config.getStrSubstitutor() : new StrSubstitutor();
return new DefaultRolloverStrategy(minIndex, maxIndex, useMax, compressionLevel, nonNullStrSubstitutor,
customActions, stopCustomActionsOnError, tempCompressedFilePattern);
}
@@ -460,7 +460,7 @@ public class DefaultRolloverStrategy extends AbstractRolloverStrategy {
*/
@Override
public RolloverDescription rollover(final RollingFileManager manager) throws SecurityException {
- int fileIndex;
+ final int fileIndex;
final StringBuilder buf = new StringBuilder(255);
if (minIndex == Integer.MIN_VALUE) {
final SortedMap<Integer, Path> eligibleFiles = getEligibleFiles(manager);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessor.java
index 42f77f5..79b7b38 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessor.java
@@ -115,7 +115,7 @@ public class PatternProcessor {
this.currentFileTime = copy.currentFileTime;
}
- public void setTimeBased(boolean isTimeBased) {
+ public void setTimeBased(final boolean isTimeBased) {
this.isTimeBased = isTimeBased;
}
@@ -153,7 +153,7 @@ public class PatternProcessor {
// Call setMinimalDaysInFirstWeek(7);
//
prevFileTime = nextFileTime;
- long nextTime;
+ final long nextTime;
if (frequency == null) {
throw new IllegalStateException("Pattern does not contain a date");
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
index 5d55355..204a9b5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
@@ -115,7 +115,7 @@ public class RollingFileManager extends FileManager {
// LOG4J2-2981 - set the file size before initializing the triggering policy.
if (directWrite) {
// LOG4J2-2485: Initialize size from the most recently written file.
- File file = new File(getFileName());
+ final File file = new File(getFileName());
if (file.exists()) {
size = file.length();
} else {
@@ -169,7 +169,7 @@ public class RollingFileManager extends FileManager {
* Add a RolloverListener.
* @param listener The RolloverListener.
*/
- public void addRolloverListener(RolloverListener listener) {
+ public void addRolloverListener(final RolloverListener listener) {
rolloverListeners.add(listener);
}
@@ -177,7 +177,7 @@ public class RollingFileManager extends FileManager {
* Remove a RolloverListener.
* @param listener The RolloverListener.
*/
- public void removeRolloverListener(RolloverListener listener) {
+ public void removeRolloverListener(final RolloverListener listener) {
rolloverListeners.remove(listener);
}
@@ -194,7 +194,7 @@ public class RollingFileManager extends FileManager {
}
@Override
- protected void createParentDir(File file) {
+ protected void createParentDir(final File file) {
if (directWrite) {
file.getParentFile().mkdirs();
}
@@ -302,7 +302,7 @@ public class RollingFileManager extends FileManager {
return status;
}
- public synchronized void rollover(long prevFileTime, long prevRollTime) {
+ public synchronized void rollover(final long prevFileTime, final long prevRollTime) {
getPatternProcessor().setPrevFileTime(prevFileTime);
getPatternProcessor().setCurrentFileTime(prevRollTime);
rollover();
@@ -312,12 +312,12 @@ public class RollingFileManager extends FileManager {
if (!hasOutputStream() && !isCreateOnDemand() && !isDirectWrite()) {
return;
}
- String currentFileName = fileName;
+ final String currentFileName = fileName;
if (rolloverListeners.size() > 0) {
- for (RolloverListener listener : rolloverListeners) {
+ for (final RolloverListener listener : rolloverListeners) {
try {
listener.rolloverTriggered(currentFileName);
- } catch (Exception ex) {
+ } catch (final Exception ex) {
LOGGER.warn("Rollover Listener {} failed with {}: {}", listener.getClass().getSimpleName(),
ex.getClass().getName(), ex.getMessage());
}
@@ -333,10 +333,10 @@ public class RollingFileManager extends FileManager {
}
}
if (rolloverListeners.size() > 0) {
- for (RolloverListener listener : rolloverListeners) {
+ for (final RolloverListener listener : rolloverListeners) {
try {
listener.rolloverComplete(currentFileName);
- } catch (Exception ex) {
+ } catch (final Exception ex) {
LOGGER.warn("Rollover Listener {} failed with {}: {}", listener.getClass().getSimpleName(),
ex.getClass().getName(), ex.getMessage());
}
@@ -685,17 +685,17 @@ public class RollingFileManager extends FileManager {
}
}
- private static long initialFileTime(File file) {
- Path path = file.toPath();
+ private static long initialFileTime(final File file) {
+ final Path path = file.toPath();
if (Files.exists(path)) {
try {
- BasicFileAttributes attrs = Files.readAttributes(path, BasicFileAttributes.class);
- FileTime fileTime = attrs.creationTime();
+ final BasicFileAttributes attrs = Files.readAttributes(path, BasicFileAttributes.class);
+ final FileTime fileTime = attrs.creationTime();
if (fileTime.compareTo(EPOCH) > 0) {
return fileTime.toMillis();
}
LOGGER.info("Unable to obtain file creation time for " + file.getAbsolutePath());
- } catch (Exception ex) {
+ } catch (final Exception ex) {
LOGGER.info("Unable to calculate file creation time for " + file.getAbsolutePath() + ": " + ex.getMessage());
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
index 7f7bf85..924a7c4 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
@@ -121,8 +121,8 @@ public class RollingRandomAccessFileManager extends RollingFileManager {
protected synchronized void writeToDestination(final byte[] bytes, final int offset, final int length) {
try {
if (randomAccessFile == null) {
- String fileName = getFileName();
- File file = new File(fileName);
+ final String fileName = getFileName();
+ final File file = new File(fileName);
FileUtils.makeParentDirs(file);
createFileAfterRollover(fileName);
}
@@ -139,7 +139,7 @@ public class RollingRandomAccessFileManager extends RollingFileManager {
createFileAfterRollover(getFileName());
}
- private void createFileAfterRollover(String fileName) throws IOException {
+ private void createFileAfterRollover(final String fileName) throws IOException {
this.randomAccessFile = new RandomAccessFile(fileName, "rw");
if (isAttributeViewEnabled()) {
defineAttributeView(Paths.get(fileName));
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/DeletingVisitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/DeletingVisitor.java
index 78ae1cf..f0502db 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/DeletingVisitor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/DeletingVisitor.java
@@ -77,7 +77,7 @@ public class DeletingVisitor extends SimpleFileVisitor<Path> {
}
@Override
- public FileVisitResult visitFileFailed(Path file, IOException ioException) throws IOException {
+ public FileVisitResult visitFileFailed(final Path file, final IOException ioException) throws IOException {
// LOG4J2-2677: Appenders may rollover and purge in parallel. SimpleVisitor rethrows exceptions from
// failed attempts to load file attributes.
if (ioException instanceof NoSuchFileException) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/FileRenameAction.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/FileRenameAction.java
index 3ddca2c..2da33aa 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/FileRenameAction.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/FileRenameAction.java
@@ -173,7 +173,7 @@ public class FileRenameAction extends AbstractAction {
return false;
}
- private static boolean moveFile(Path source, Path target) throws IOException {
+ private static boolean moveFile(final Path source, final Path target) throws IOException {
try {
Files.move(source, target,
StandardCopyOption.ATOMIC_MOVE, StandardCopyOption.REPLACE_EXISTING);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/GzCompressAction.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/GzCompressAction.java
index 5ee0ff3..f8faad2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/GzCompressAction.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/GzCompressAction.java
@@ -158,7 +158,7 @@ public final class GzCompressAction extends AbstractAction {
private static final class ConfigurableLevelGZIPOutputStream extends GZIPOutputStream {
- ConfigurableLevelGZIPOutputStream(OutputStream out, int bufSize, int level) throws IOException {
+ ConfigurableLevelGZIPOutputStream(final OutputStream out, final int bufSize, final int level) throws IOException {
super(out, bufSize);
def.setLevel(level);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/SortingVisitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/SortingVisitor.java
index 0b9f1ca..28760de 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/SortingVisitor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/SortingVisitor.java
@@ -57,7 +57,7 @@ public class SortingVisitor extends SimpleFileVisitor<Path> {
}
@Override
- public FileVisitResult visitFileFailed(Path file, IOException ioException) throws IOException {
+ public FileVisitResult visitFileFailed(final Path file, final IOException ioException) throws IOException {
// LOG4J2-2677: Appenders may rollover and purge in parallel. SimpleVisitor rethrows exceptions from
// failed attempts to load file attributes.
if (ioException instanceof NoSuchFileException) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/IdlePurgePolicy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/IdlePurgePolicy.java
index 950cdd9..30bb1f1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/IdlePurgePolicy.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/IdlePurgePolicy.java
@@ -73,7 +73,7 @@ public class IdlePurgePolicy extends AbstractLifeCycle implements PurgePolicy, R
public void purge() {
final long createTime = System.currentTimeMillis() - timeToLive;
for (final Entry<String, Long> entry : appendersUsage.entrySet()) {
- long entryValue = entry.getValue();
+ final long entryValue = entry.getValue();
if (entryValue < createTime) {
if (appendersUsage.remove(entry.getKey(), entryValue)) {
LOGGER.debug("Removing appender {}", entry.getKey());
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java
index 2d2e3d0..a1e9051 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java
@@ -157,7 +157,7 @@ public final class RoutingAppender extends AbstractAppender {
private RoutingAppender(final String name, final Filter filter, final boolean ignoreExceptions, final Routes routes,
final RewritePolicy rewritePolicy, final Configuration configuration, final PurgePolicy purgePolicy,
- final AbstractScript defaultRouteScript, Property[] properties, final Boolean requiresLocation) {
+ final AbstractScript defaultRouteScript, final Property[] properties, final Boolean requiresLocation) {
super(name, filter, null, ignoreExceptions, properties);
this.routes = routes;
this.configuration = configuration;
@@ -286,7 +286,7 @@ public final class RoutingAppender extends AbstractAppender {
if (app == null) {
return null;
}
- CreatedRouteAppenderControl created = new CreatedRouteAppenderControl(app);
+ final CreatedRouteAppenderControl created = new CreatedRouteAppenderControl(app);
control = created;
createdAppenders.put(key, created);
}
@@ -404,7 +404,7 @@ public final class RoutingAppender extends AbstractAppender {
*/
private static abstract class RouteAppenderControl extends AppenderControl {
- RouteAppenderControl(Appender appender) {
+ RouteAppenderControl(final Appender appender) {
super(appender, null, null);
}
@@ -418,7 +418,7 @@ public final class RoutingAppender extends AbstractAppender {
private volatile boolean pendingDeletion;
private final AtomicInteger depth = new AtomicInteger();
- CreatedRouteAppenderControl(Appender appender) {
+ CreatedRouteAppenderControl(final Appender appender) {
super(appender);
}
@@ -443,7 +443,7 @@ public final class RoutingAppender extends AbstractAppender {
// 1. Another invocation of tryStopAppender has succeeded, or
// 2. Events are being appended, and will trigger stop when they complete
&& depth.compareAndSet(0, -100_000)) {
- Appender appender = getAppender();
+ final Appender appender = getAppender();
LOGGER.debug("Stopping appender {}", appender);
appender.stop();
}
@@ -452,7 +452,7 @@ public final class RoutingAppender extends AbstractAppender {
private static final class ReferencedRouteAppenderControl extends RouteAppenderControl {
- ReferencedRouteAppenderControl(Appender appender) {
+ ReferencedRouteAppenderControl(final Appender appender) {
super(appender);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java
index 22f3d4c..36370ab 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java
@@ -148,13 +148,13 @@ public class AsyncLogger extends Logger implements EventTranslatorVararg<RingBuf
private final TranslatorType threadLocalTranslatorType = new TranslatorType() {
@Override
- void log(String fqcn, StackTraceElement location, Level level, Marker marker, Message message,
- Throwable thrown) {
+ void log(final String fqcn, final StackTraceElement location, final Level level, final Marker marker, final Message message,
+ final Throwable thrown) {
logWithThreadLocalTranslator(fqcn, location, level, marker, message, thrown);
}
@Override
- void log(String fqcn, Level level, Marker marker, Message message, Throwable thrown) {
+ void log(final String fqcn, final Level level, final Marker marker, final Message message, final Throwable thrown) {
logWithThreadLocalTranslator(fqcn, level, marker, message, thrown);
}
};
@@ -162,12 +162,12 @@ public class AsyncLogger extends Logger implements EventTranslatorVararg<RingBuf
private final TranslatorType varargTranslatorType = new TranslatorType() {
@Override
- void log(String fqcn, StackTraceElement location, Level level, Marker marker, Message message,
- Throwable thrown) {
+ void log(final String fqcn, final StackTraceElement location, final Level level, final Marker marker, final Message message,
+ final Throwable thrown) {
logWithVarargTranslator(fqcn, location, level, marker, message, thrown);
}
@Override
- void log(String fqcn, Level level, Marker marker, Message message, Throwable thrown) {
+ void log(final String fqcn, final Level level, final Marker marker, final Message message, final Throwable thrown) {
// LOG4J2-1172: avoid storing non-JDK classes in ThreadLocals to avoid memory leaks in web apps
logWithVarargTranslator(fqcn, level, marker, message, thrown);
}
@@ -491,7 +491,7 @@ public class AsyncLogger extends Logger implements EventTranslatorVararg<RingBuf
@SuppressWarnings("ForLoopReplaceableByForEach") // Avoid iterator allocation
private void onPropertiesPresent(final RingBufferLogEvent event, final List<Property> properties) {
- StringMap contextData = getContextData(event);
+ final StringMap contextData = getContextData(event);
for (int i = 0, size = properties.size(); i < size; i++) {
final Property prop = properties.get(i);
if (contextData.getValue(prop.getName()) != null) {
@@ -506,7 +506,7 @@ public class AsyncLogger extends Logger implements EventTranslatorVararg<RingBuf
}
private static StringMap getContextData(final RingBufferLogEvent event) {
- StringMap contextData = (StringMap) event.getContextData();
+ final StringMap contextData = (StringMap) event.getContextData();
if (contextData.isFrozen()) {
final StringMap temp = ContextDataFactory.createContextData();
temp.putAll(contextData);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java
index 3a6613f..796f56d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java
@@ -120,7 +120,7 @@ public class AsyncLoggerConfig extends LoggerConfig {
super.callAppenders(event);
}
- private void logToAsyncDelegate(LogEvent event) {
+ private void logToAsyncDelegate(final LogEvent event) {
if (!isFiltered(event)) {
// Passes on the event to a separate thread that will call
// asyncCallAppenders(LogEvent).
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactory.java
index a80c787..c9a59e5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactory.java
@@ -78,9 +78,9 @@ public class AsyncQueueFullPolicyFactory {
}
private static boolean isRouterSelected(
- String propertyValue,
- Class<? extends AsyncQueueFullPolicy> policy,
- String shortPropertyValue) {
+ final String propertyValue,
+ final Class<? extends AsyncQueueFullPolicy> policy,
+ final String shortPropertyValue) {
return propertyValue != null && (shortPropertyValue.equalsIgnoreCase(propertyValue)
|| policy.getName().equals(propertyValue)
|| policy.getSimpleName().equals(propertyValue));
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/BasicAsyncLoggerContextSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/BasicAsyncLoggerContextSelector.java
index 463be00..adfa04c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/BasicAsyncLoggerContextSelector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/BasicAsyncLoggerContextSelector.java
@@ -35,16 +35,16 @@ public class BasicAsyncLoggerContextSelector implements ContextSelector {
private static final AsyncLoggerContext CONTEXT = new AsyncLoggerContext("AsyncDefault");
@Override
- public void shutdown(String fqcn, ClassLoader loader, boolean currentContext, boolean allContexts) {
- LoggerContext ctx = getContext(fqcn, loader, currentContext);
+ public void shutdown(final String fqcn, final ClassLoader loader, final boolean currentContext, final boolean allContexts) {
+ final LoggerContext ctx = getContext(fqcn, loader, currentContext);
if (ctx != null && ctx.isStarted()) {
ctx.stop(DEFAULT_STOP_TIMEOUT, TimeUnit.MILLISECONDS);
}
}
@Override
- public boolean hasContext(String fqcn, ClassLoader loader, boolean currentContext) {
- LoggerContext ctx = getContext(fqcn, loader, currentContext);
+ public boolean hasContext(final String fqcn, final ClassLoader loader, final boolean currentContext) {
+ final LoggerContext ctx = getContext(fqcn, loader, currentContext);
return ctx != null && ctx.isStarted();
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DefaultAsyncQueueFullPolicy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DefaultAsyncQueueFullPolicy.java
index d3d53e1..e8abfcc 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DefaultAsyncQueueFullPolicy.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DefaultAsyncQueueFullPolicy.java
@@ -30,7 +30,7 @@ public class DefaultAsyncQueueFullPolicy implements AsyncQueueFullPolicy {
// LOG4J2-471: prevent deadlock when RingBuffer is full and object
// being logged calls Logger.log() from its toString() method
- Thread currentThread = Thread.currentThread();
+ final Thread currentThread = Thread.currentThread();
if (currentThread.getId() == backgroundThreadId
// Threads owned by log4j are most likely to result in
// deadlocks because they generally consume events.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java
index 5925187..b77a4f6 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java
@@ -97,7 +97,7 @@ final class DisruptorUtil {
private static long parseAdditionalLongProperty(
final String propertyName,
final String additionalKey,
- long defaultValue) {
+ final long defaultValue) {
final String key = getFullPropertyKey(propertyName, additionalKey);
return PropertiesUtil.getProperties().getLongProperty(key, defaultValue);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
index f9183b5..c7370d6 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
@@ -275,7 +275,7 @@ public class RingBufferLogEvent implements LogEvent, ReusableMessage, CharSequen
}
@Override
- public <S> void forEachParameter(ParameterConsumer<S> action, S state) {
+ public <S> void forEachParameter(final ParameterConsumer<S> action, final S state) {
if (parameters != null) {
for (short i = 0; i < parameterCount; i++) {
action.accept(parameters[i], i, state);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventHandler.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventHandler.java
index dfec3e4..5331821 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventHandler.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventHandler.java
@@ -54,7 +54,7 @@ public class RingBufferLogEventHandler implements
}
}
- private void notifyCallback(long sequence) {
+ private void notifyCallback(final long sequence) {
if (++counter > NOTIFY_PROGRESS_THRESHOLD) {
sequenceCallback.set(sequence);
counter = 0;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ThreadNameCachingStrategy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ThreadNameCachingStrategy.java
index 32e15e8..c686fbc 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ThreadNameCachingStrategy.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ThreadNameCachingStrategy.java
@@ -70,13 +70,13 @@ public enum ThreadNameCachingStrategy { // LOG4J2-467
// LOG4J2-2052, LOG4J2-2635 JDK 8u102 ("1.8.0_102") removed the String allocation in Thread.getName()
if (Constants.JAVA_MAJOR_VERSION == 8) {
try {
- Pattern javaVersionPattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)_(\\d+)");
- Matcher m = javaVersionPattern.matcher(System.getProperty("java.version"));
+ final Pattern javaVersionPattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)_(\\d+)");
+ final Matcher m = javaVersionPattern.matcher(System.getProperty("java.version"));
if (m.matches()) {
return Integer.parseInt(m.group(3)) == 0 && Integer.parseInt(m.group(4)) < 102;
}
return true;
- } catch (Exception e) {
+ } catch (final Exception e) {
return true;
}
} else {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
index 1b0f608..8c1217a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
@@ -246,8 +246,8 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
LOGGER.debug("Configuration {} initialized", this);
}
- protected void initializeWatchers(Reconfigurable reconfigurable, ConfigurationSource configSource,
- int monitorIntervalSeconds) {
+ protected void initializeWatchers(final Reconfigurable reconfigurable, final ConfigurationSource configSource,
+ final int monitorIntervalSeconds) {
if (configSource.getFile() != null || configSource.getURL() != null) {
if (monitorIntervalSeconds > 0) {
watchManager.setIntervalSeconds(monitorIntervalSeconds);
@@ -268,7 +268,7 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
}
}
- private void monitorSource(Reconfigurable reconfigurable, ConfigurationSource configSource) {
+ private void monitorSource(final Reconfigurable reconfigurable, final ConfigurationSource configSource) {
if (configSource.getLastModified() > 0) {
final Source cfgSource = new Source(configSource);
final Watcher watcher = WatcherFactory.getInstance(pluginPackages)
@@ -528,8 +528,8 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
*/
protected void processConditionals(final Node node) {
try {
- List<Node> addList = new ArrayList<>();
- List<Node> removeList = new ArrayList<>();
+ final List<Node> addList = new ArrayList<>();
+ final List<Node> removeList = new ArrayList<>();
for (final Node child : node.getChildren()) {
final PluginType<?> type = child.getType();
if (type != null && Arbiter.ELEMENT_TYPE.equals(type.getElementName())) {
@@ -540,7 +540,7 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
} else if (Arbiter.class.isAssignableFrom(clazz)) {
removeList.add(child);
try {
- Arbiter condition = (Arbiter) createPluginObject(type, child, null);
+ final Arbiter condition = (Arbiter) createPluginObject(type, child, null);
if (condition.isCondition()) {
addList.addAll(child.getChildren());
processConditionals(child);
@@ -560,10 +560,10 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
}
}
if (!removeList.isEmpty()) {
- List<Node> children = node.getChildren();
+ final List<Node> children = node.getChildren();
children.removeAll(removeList);
children.addAll(addList);
- for (Node grandChild : addList) {
+ for (final Node grandChild : addList) {
grandChild.setParent(node);
}
}
@@ -579,15 +579,15 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
* @param type The PluginType of the Select Node.
* @return The list of Nodes to be added to the parent.
*/
- protected List<Node> processSelect(Node selectNode, PluginType<?> type) {
- List<Node> addList = new ArrayList<>();
- SelectArbiter select = (SelectArbiter) createPluginObject(type, selectNode, null);
- List<Arbiter> conditions = new ArrayList<>();
- for (Node child : selectNode.getChildren()) {
- PluginType<?> nodeType = child.getType();
+ protected List<Node> processSelect(final Node selectNode, final PluginType<?> type) {
+ final List<Node> addList = new ArrayList<>();
+ final SelectArbiter select = (SelectArbiter) createPluginObject(type, selectNode, null);
+ final List<Arbiter> conditions = new ArrayList<>();
+ for (final Node child : selectNode.getChildren()) {
+ final PluginType<?> nodeType = child.getType();
if (nodeType != null) {
if (Arbiter.class.isAssignableFrom(nodeType.getPluginClass())) {
- Arbiter condition = (Arbiter) createPluginObject(nodeType, child, null);
+ final Arbiter condition = (Arbiter) createPluginObject(nodeType, child, null);
conditions.add(condition);
child.setObject(condition);
} else {
@@ -598,9 +598,9 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
LOGGER.error("No PluginType for node {}", child.getName());
}
}
- Arbiter condition = select.evaluateConditions(conditions);
+ final Arbiter condition = select.evaluateConditions(conditions);
if (condition != null) {
- for (Node child : selectNode.getChildren()) {
+ for (final Node child : selectNode.getChildren()) {
if (condition == child.getObject()) {
addList.addAll(child.getChildren());
processConditionals(child);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
index 744a3d8..36f93ff 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
@@ -163,7 +163,7 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
try {
if (factories == null) {
final List<ConfigurationFactory> list = new ArrayList<>();
- PropertiesUtil props = PropertiesUtil.getProperties();
+ final PropertiesUtil props = PropertiesUtil.getProperties();
final String factoryClass = props.getStringProperty(CONFIGURATION_FACTORY_PROPERTY);
if (factoryClass != null) {
addFactory(list, factoryClass);
@@ -197,18 +197,18 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
return configFactory;
}
- public static AuthorizationProvider authorizationProvider(PropertiesUtil props) {
+ public static AuthorizationProvider authorizationProvider(final PropertiesUtil props) {
final String authClass = props.getStringProperty(AUTHORIZATION_PROVIDER);
AuthorizationProvider provider = null;
if (authClass != null) {
try {
- Object obj = LoaderUtil.newInstanceOf(authClass);
+ final Object obj = LoaderUtil.newInstanceOf(authClass);
if (obj instanceof AuthorizationProvider) {
provider = (AuthorizationProvider) obj;
} else {
LOGGER.warn("{} is not an AuthorizationProvider, using default", obj.getClass().getName());
}
- } catch (Exception ex) {
+ } catch (final Exception ex) {
LOGGER.warn("Unable to create {}, using default: {}", authClass, ex.getMessage());
}
}
@@ -356,8 +356,8 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
protected ConfigurationSource getInputFromString(final String config, final ClassLoader loader) {
try {
final URL url = new URL(config);
- URLConnection urlConnection = UrlConnectionFactory.createConnection(url);
- File file = FileUtils.fileFromUri(url.toURI());
+ final URLConnection urlConnection = UrlConnectionFactory.createConnection(url);
+ final File file = FileUtils.fileFromUri(url.toURI());
if (file != null) {
return new ConfigurationSource(urlConnection.getInputStream(), FileUtils.fileFromUri(url.toURI()));
} else {
@@ -398,7 +398,7 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
final String configLocationStr = this.substitutor.replace(PropertiesUtil.getProperties()
.getStringProperty(CONFIGURATION_FILE_PROPERTY));
if (configLocationStr != null) {
- String[] sources = parseConfigLocations(configLocationStr);
+ final String[] sources = parseConfigLocations(configLocationStr);
if (sources.length > 1) {
final List<AbstractConfiguration> configs = new ArrayList<>();
for (final String sourceLocation : sources) {
@@ -444,7 +444,7 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
}
} else {
// configLocation != null
- String[] sources = parseConfigLocations(configLocation);
+ final String[] sources = parseConfigLocations(configLocation);
if (sources.length > 1) {
final List<AbstractConfiguration> configs = new ArrayList<>();
for (final String sourceLocation : sources) {
@@ -500,7 +500,7 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
return getConfiguration(null, loggerContext, configLocationStr);
}
- private Configuration getConfiguration(String requiredVersion, final LoggerContext loggerContext,
+ private Configuration getConfiguration(final String requiredVersion, final LoggerContext loggerContext,
final String configLocationStr) {
ConfigurationSource source = null;
try {
@@ -593,13 +593,13 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
return null;
}
- private String[] parseConfigLocations(URI configLocations) {
+ private String[] parseConfigLocations(final URI configLocations) {
final String[] uris = configLocations.toString().split("\\?");
final List<String> locations = new ArrayList<>();
if (uris.length > 1) {
locations.add(uris[0]);
final String[] pairs = configLocations.getQuery().split("&");
- for (String pair : pairs) {
+ for (final String pair : pairs) {
final int idx = pair.indexOf("=");
final String key = idx > 0 ? URLDecoder.decode(pair.substring(0, idx), StandardCharsets.UTF_8) : pair;
if (key.equalsIgnoreCase(OVERRIDE_PARAM)) {
@@ -611,14 +611,14 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
return new String[] {uris[0]};
}
- private String[] parseConfigLocations(String configLocations) {
+ private String[] parseConfigLocations(final String configLocations) {
final String[] uris = configLocations.split(",");
if (uris.length > 1) {
return uris;
}
try {
return parseConfigLocations(new URI(configLocations));
- } catch (URISyntaxException ex) {
+ } catch (final URISyntaxException ex) {
LOGGER.warn("Error parsing URI {}", configLocations);
}
return new String[] {configLocations};
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFileWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFileWatcher.java
index e777fbf..c1569ff 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFileWatcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFileWatcher.java
@@ -33,7 +33,7 @@ public class ConfigurationFileWatcher extends AbstractWatcher implements FileWat
private long lastModifiedMillis;
public ConfigurationFileWatcher(final Configuration configuration, final Reconfigurable reconfigurable,
- final List<ConfigurationListener> configurationListeners, long lastModifiedMillis) {
+ final List<ConfigurationListener> configurationListeners, final long lastModifiedMillis) {
super(configuration, reconfigurable, configurationListeners);
this.lastModifiedMillis = lastModifiedMillis;
}
@@ -48,7 +48,7 @@ public class ConfigurationFileWatcher extends AbstractWatcher implements FileWat
}
@Override
- public void watching(Source source) {
+ public void watching(final Source source) {
file = source.getFile();
lastModifiedMillis = file.lastModified();
super.watching(source);
@@ -61,8 +61,8 @@ public class ConfigurationFileWatcher extends AbstractWatcher implements FileWat
@Override
public Watcher newWatcher(final Reconfigurable reconfigurable, final List<ConfigurationListener> listeners,
- long lastModifiedMillis) {
- ConfigurationFileWatcher watcher = new ConfigurationFileWatcher(getConfiguration(), reconfigurable, listeners,
+ final long lastModifiedMillis) {
+ final ConfigurationFileWatcher watcher = new ConfigurationFileWatcher(getConfiguration(), reconfigurable, listeners,
lastModifiedMillis);
if (getSource() != null) {
watcher.watching(getSource());
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
index 439fbe6..36ca3ab 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
@@ -86,7 +86,7 @@ public class ConfigurationSource {
long modified = 0;
try {
modified = file.lastModified();
- } catch (Exception ex) {
+ } catch (final Exception ex) {
// There is a problem with the file. It will be handled somewhere else.
}
this.lastModified = modified;
@@ -100,7 +100,7 @@ public class ConfigurationSource {
* @param url the URL where the input stream originated
* @param lastModified when the source was last modified.
*/
- public ConfigurationSource(final InputStream stream, final URL url, long lastModified) {
+ public ConfigurationSource(final InputStream stream, final URL url, final long lastModified) {
this.stream = Objects.requireNonNull(stream, "stream is null");
this.url = Objects.requireNonNull(url, "URL is null");
this.location = url.toString();
@@ -136,7 +136,7 @@ public class ConfigurationSource {
this(toByteArray(stream), null, 0);
}
- public ConfigurationSource(final Source source, final byte[] data, long lastModified) throws IOException {
+ public ConfigurationSource(final Source source, final byte[] data, final long lastModified) throws IOException {
Objects.requireNonNull(source, "source is null");
this.data = Objects.requireNonNull(data, "data is null");
this.stream = new ByteArrayInputStream(data);
@@ -146,7 +146,7 @@ public class ConfigurationSource {
this.lastModified = lastModified;
}
- private ConfigurationSource(final byte[] data, final URL url, long lastModified) {
+ private ConfigurationSource(final byte[] data, final URL url, final long lastModified) {
this.data = Objects.requireNonNull(data, "data is null");
this.stream = new ByteArrayInputStream(data);
this.file = null;
@@ -198,15 +198,15 @@ public class ConfigurationSource {
return url;
}
- public void setSource(Source source) {
+ public void setSource(final Source source) {
this.source = source;
}
- public void setData(byte[] data) {
+ public void setData(final byte[] data) {
this.data = data;
}
- public void setModifiedMillis(long modifiedMillis) {
+ public void setModifiedMillis(final long modifiedMillis) {
this.modifiedMillis = modifiedMillis;
}
@@ -329,10 +329,10 @@ public class ConfigurationSource {
return null;
}
try {
- URL url = configLocation.toURL();
- URLConnection urlConnection = UrlConnectionFactory.createConnection(url);
- InputStream is = urlConnection.getInputStream();
- long lastModified = urlConnection.getLastModified();
+ final URL url = configLocation.toURL();
+ final URLConnection urlConnection = UrlConnectionFactory.createConnection(url);
+ final InputStream is = urlConnection.getInputStream();
+ final long lastModified = urlConnection.getLastModified();
return new ConfigurationSource(is, configLocation.toURL(), lastModified);
} catch (final FileNotFoundException ex) {
ConfigurationFactory.LOGGER.warn("Could not locate file {}", configLocation.toString());
@@ -358,13 +358,13 @@ public class ConfigurationSource {
return getConfigurationSource(url);
}
- private static ConfigurationSource getConfigurationSource(URL url) {
+ private static ConfigurationSource getConfigurationSource(final URL url) {
try {
- URLConnection urlConnection = url.openConnection();
- AuthorizationProvider provider = ConfigurationFactory.authorizationProvider(PropertiesUtil.getProperties());
+ final URLConnection urlConnection = url.openConnection();
+ final AuthorizationProvider provider = ConfigurationFactory.authorizationProvider(PropertiesUtil.getProperties());
provider.addAuthorization(urlConnection);
if (url.getProtocol().equals(HTTPS)) {
- SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration();
+ final SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration();
if (sslConfiguration != null) {
((HttpsURLConnection) urlConnection).setSSLSocketFactory(sslConfiguration.getSslSocketFactory());
if (!sslConfiguration.isVerifyHostName()) {
@@ -372,18 +372,18 @@ public class ConfigurationSource {
}
}
}
- File file = FileUtils.fileFromUri(url.toURI());
+ final File file = FileUtils.fileFromUri(url.toURI());
try {
if (file != null) {
return new ConfigurationSource(urlConnection.getInputStream(), FileUtils.fileFromUri(url.toURI()));
} else {
return new ConfigurationSource(urlConnection.getInputStream(), url, urlConnection.getLastModified());
}
- } catch (FileNotFoundException ex) {
+ } catch (final FileNotFoundException ex) {
ConfigurationFactory.LOGGER.info("Unable to locate file {}, ignoring.", url.toString());
return null;
}
- } catch (IOException | URISyntaxException ex) {
+ } catch (final IOException | URISyntaxException ex) {
ConfigurationFactory.LOGGER.warn("Error accessing {} due to {}, ignoring.", url.toString(),
ex.getMessage());
return null;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java
index 6c8c624..9f508ef 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java
@@ -272,7 +272,7 @@ public final class Configurator {
*/
public static void reconfigure() {
try {
- Log4jContextFactory factory = getFactory();
+ final Log4jContextFactory factory = getFactory();
if (factory != null) {
factory.getSelector().getContext(FQCN, null, false).reconfigure();
} else {
@@ -290,7 +290,7 @@ public final class Configurator {
*/
public static void reconfigure(final URI uri) {
try {
- Log4jContextFactory factory = getFactory();
+ final Log4jContextFactory factory = getFactory();
if (factory != null) {
factory.getSelector().getContext(FQCN, null, false).setConfigLocation(uri);
} else {
@@ -374,7 +374,7 @@ public final class Configurator {
}
private static boolean setLevel(final String loggerName, final Level level, final Configuration config) {
- boolean set;
+ final boolean set;
LoggerConfig loggerConfig = config.getLoggerConfig(loggerName);
if (!loggerName.equals(loggerConfig.getName())) {
// TODO Should additivity be inherited?
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
index 485481d..b781a4c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
@@ -54,7 +54,7 @@ public class HttpWatcher extends AbstractWatcher {
private static final String HTTPS = "https";
public HttpWatcher(final Configuration configuration, final Reconfigurable reconfigurable,
- final List<ConfigurationListener> configurationListeners, long lastModifiedMillis) {
+ final List<ConfigurationListener> configurationListeners, final long lastModifiedMillis) {
super(configuration, reconfigurable, configurationListeners);
sslConfiguration = SslConfigurationFactory.getSslConfiguration();
this.lastModifiedMillis = lastModifiedMillis;
@@ -71,23 +71,23 @@ public class HttpWatcher extends AbstractWatcher {
}
@Override
- public void watching(Source source) {
+ public void watching(final Source source) {
if (!source.getURI().getScheme().equals(HTTP) && !source.getURI().getScheme().equals(HTTPS)) {
throw new IllegalArgumentException(
"HttpWatcher requires a url using the HTTP or HTTPS protocol, not " + source.getURI().getScheme());
}
try {
url = source.getURI().toURL();
- } catch (MalformedURLException ex) {
+ } catch (final MalformedURLException ex) {
throw new IllegalArgumentException("Invalid URL for HttpWatcher " + source.getURI(), ex);
}
super.watching(source);
}
@Override
- public Watcher newWatcher(Reconfigurable reconfigurable, List<ConfigurationListener> listeners,
- long lastModifiedMillis) {
- HttpWatcher watcher = new HttpWatcher(getConfiguration(), reconfigurable, listeners, lastModifiedMillis);
+ public Watcher newWatcher(final Reconfigurable reconfigurable, final List<ConfigurationListener> listeners,
+ final long lastModifiedMillis) {
+ final HttpWatcher watcher = new HttpWatcher(getConfiguration(), reconfigurable, listeners, lastModifiedMillis);
if (getSource() != null) {
watcher.watching(getSource());
}
@@ -101,22 +101,22 @@ public class HttpWatcher extends AbstractWatcher {
urlConnection.connect();
try {
- int code = urlConnection.getResponseCode();
+ final int code = urlConnection.getResponseCode();
switch (code) {
case NOT_MODIFIED: {
LOGGER.debug("Configuration Not Modified");
return false;
}
case OK: {
- try (InputStream is = urlConnection.getInputStream()) {
- ConfigurationSource configSource = getConfiguration().getConfigurationSource();
+ try (final InputStream is = urlConnection.getInputStream()) {
+ final ConfigurationSource configSource = getConfiguration().getConfigurationSource();
configSource.setData(readStream(is));
lastModifiedMillis = urlConnection.getLastModified();
configSource.setModifiedMillis(lastModifiedMillis);
LOGGER.debug("Content was modified for {}", url.toString());
return true;
} catch (final IOException e) {
- try (InputStream es = urlConnection.getErrorStream()) {
+ try (final InputStream es = urlConnection.getErrorStream()) {
LOGGER.info("Error accessing configuration at {}: {}", url, readStream(es));
} catch (final IOException ioe) {
LOGGER.error("Error accessing configuration at {}: {}", url, e.getMessage());
@@ -142,9 +142,9 @@ public class HttpWatcher extends AbstractWatcher {
return false;
}
- private byte[] readStream(InputStream is) throws IOException {
- ByteArrayOutputStream result = new ByteArrayOutputStream();
- byte[] buffer = new byte[BUF_SIZE];
+ private byte[] readStream(final InputStream is) throws IOException {
+ final ByteArrayOutputStream result = new ByteArrayOutputStream();
+ final byte[] buffer = new byte[BUF_SIZE];
int length;
while ((length = is.read(buffer)) != -1) {
result.write(buffer, 0, length);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
index 4170f42..9d0df1b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
@@ -374,7 +374,7 @@ public class LoggerConfig extends AbstractFilterable {
}
}
}
- StackTraceElement location = requiresLocation() ? StackLocatorUtil.calcLocation(fqcn) : null;
+ final StackTraceElement location = requiresLocation() ? StackLocatorUtil.calcLocation(fqcn) : null;
final LogEvent logEvent = logEventFactory.createEvent(loggerName, marker, fqcn, location, level, data, props, t);
try {
log(logEvent, LoggerConfigPredicate.ALL);
@@ -462,7 +462,7 @@ public class LoggerConfig extends AbstractFilterable {
return reliabilityStrategy;
}
- private void processLogEvent(final LogEvent event, LoggerConfigPredicate predicate) {
+ private void processLogEvent(final LogEvent event, final LoggerConfigPredicate predicate) {
event.setIncludeLocation(isIncludeLocation());
if (predicate.allow(this)) {
callAppenders(event);
@@ -477,7 +477,7 @@ public class LoggerConfig extends AbstractFilterable {
AppenderControl[] controls = appenders.get();
LoggerConfig loggerConfig = this;
while (loggerConfig != null) {
- for (AppenderControl control : controls) {
+ for (final AppenderControl control : controls) {
if (control.getAppender().requiresLocation()) {
return true;
}
@@ -596,19 +596,19 @@ public class LoggerConfig extends AbstractFilterable {
protected enum LoggerConfigPredicate {
ALL() {
@Override
- boolean allow(LoggerConfig config) {
+ boolean allow(final LoggerConfig config) {
return true;
}
},
ASYNCHRONOUS_ONLY() {
@Override
- boolean allow(LoggerConfig config) {
+ boolean allow(final LoggerConfig config) {
return config instanceof AsyncLoggerConfig;
}
},
SYNCHRONOUS_ONLY() {
@Override
- boolean allow(LoggerConfig config) {
+ boolean allow(final LoggerConfig config) {
return !ASYNCHRONOUS_ONLY.allow(config);
}
};
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ReliabilityStrategy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ReliabilityStrategy.java
index 6400435..75d16c3 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ReliabilityStrategy.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ReliabilityStrategy.java
@@ -55,8 +55,8 @@ public interface ReliabilityStrategy {
* @param t A Throwable or null.
* @since 3.0
*/
- default void log(Supplier<LoggerConfig> reconfigured, String loggerName, String fqcn, StackTraceElement location,
- Marker marker, Level level, Message data, Throwable t) {
+ default void log(final Supplier<LoggerConfig> reconfigured, final String loggerName, final String fqcn, final StackTraceElement location,
+ final Marker marker, final Level level, final Message data, final Throwable t) {
}
/**
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ScriptArbiter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ScriptArbiter.java
index 4fda875..c968a32 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ScriptArbiter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ScriptArbiter.java
@@ -92,8 +92,8 @@ public class ScriptArbiter implements Arbiter {
public ScriptArbiter build() {
AbstractScript script = null;
- for (Node child : node.getChildren()) {
- PluginType<?> type = child.getType();
+ for (final Node child : node.getChildren()) {
+ final PluginType<?> type = child.getType();
if (type == null) {
LOGGER.error("Node {} is missing a Plugintype", child.getName());
continue;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SelectArbiter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SelectArbiter.java
index 2fb39f0..36493b5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SelectArbiter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SelectArbiter.java
@@ -30,12 +30,12 @@ import org.apache.logging.log4j.plugins.Plugin;
printObject = true)
public class SelectArbiter {
- public Arbiter evaluateConditions(List<Arbiter> conditions) {
- Optional<Arbiter> opt = conditions.stream().filter((c) -> c instanceof DefaultArbiter)
+ public Arbiter evaluateConditions(final List<Arbiter> conditions) {
+ final Optional<Arbiter> opt = conditions.stream().filter((c) -> c instanceof DefaultArbiter)
.reduce((a, b) -> {
throw new IllegalStateException("Multiple elements: " + a + ", " + b);
});
- for (Arbiter condition : conditions) {
+ for (final Arbiter condition : conditions) {
if (condition instanceof DefaultArbiter) {
continue;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SystemPropertyArbiter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SystemPropertyArbiter.java
index 078ca32..e26690c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SystemPropertyArbiter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/SystemPropertyArbiter.java
@@ -43,7 +43,7 @@ public class SystemPropertyArbiter implements Arbiter {
*/
@Override
public boolean isCondition() {
- String value = System.getProperty(propertyName);
+ final String value = System.getProperty(propertyName);
return value != null && (propertyValue == null || value.equals(propertyValue));
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
index 822f742..4b299a5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
@@ -182,7 +182,7 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
@Override
public T build(final boolean initialize) {
- T configuration;
+ final T configuration;
try {
if (source == null) {
source = ConfigurationSource.NULL_SOURCE;
@@ -253,7 +253,7 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
return writer.toString();
}
- private String formatXml(String xml)
+ private String formatXml(final String xml)
throws TransformerConfigurationException, TransformerException, TransformerFactoryConfigurationError {
final StringWriter writer = new StringWriter();
formatXml(new StreamSource(new StringReader(xml)), new StreamResult(writer));
@@ -363,12 +363,12 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
}
@Override
- public LoggerComponentBuilder newAsyncLogger(String name) {
+ public LoggerComponentBuilder newAsyncLogger(final String name) {
return new DefaultLoggerComponentBuilder(this, name, null, "AsyncLogger");
}
@Override
- public LoggerComponentBuilder newAsyncLogger(String name, boolean includeLocation) {
+ public LoggerComponentBuilder newAsyncLogger(final String name, final boolean includeLocation) {
return new DefaultLoggerComponentBuilder(this, name, null, "AsyncLogger", includeLocation);
}
@@ -398,7 +398,7 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
}
@Override
- public RootLoggerComponentBuilder newAsyncRootLogger(boolean includeLocation) {
+ public RootLoggerComponentBuilder newAsyncRootLogger(final boolean includeLocation) {
return new DefaultRootLoggerComponentBuilder(this, null, "AsyncRoot", includeLocation);
}
@@ -471,12 +471,12 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
}
@Override
- public LoggerComponentBuilder newLogger(String name) {
+ public LoggerComponentBuilder newLogger(final String name) {
return new DefaultLoggerComponentBuilder(this, name, null);
}
@Override
- public LoggerComponentBuilder newLogger(String name, boolean includeLocation) {
+ public LoggerComponentBuilder newLogger(final String name, final boolean includeLocation) {
return new DefaultLoggerComponentBuilder(this, name, null, includeLocation);
}
@@ -506,7 +506,7 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
}
@Override
- public RootLoggerComponentBuilder newRootLogger(boolean includeLocation) {
+ public RootLoggerComponentBuilder newRootLogger(final boolean includeLocation) {
return new DefaultRootLoggerComponentBuilder(this, null, includeLocation);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java
index 4a6de10..0308896 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java
@@ -68,7 +68,7 @@ public class CompositeConfiguration extends AbstractConfiguration implements Rec
DefaultMergeStrategy.class.getName());
try {
mergeStrategy = Loader.newInstanceOf(mergeStrategyClassName);
- } catch (ClassNotFoundException | IllegalAccessException | InvocationTargetException |
+ } catch (final ClassNotFoundException | IllegalAccessException | InvocationTargetException |
InstantiationException ex) {
mergeStrategy = new DefaultMergeStrategy();
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java
index ef32a6c..bff1c9c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java
@@ -53,7 +53,7 @@ public class JsonConfiguration extends AbstractConfiguration implements Reconfig
public JsonConfiguration(final LoggerContext loggerContext, final ConfigurationSource configSource) {
super(loggerContext, configSource);
final File configFile = configSource.getFile();
- byte[] buffer;
+ final byte[] buffer;
try {
try (final InputStream configStream = configSource.getInputStream()) {
buffer = toByteArray(configStream);
@@ -196,7 +196,7 @@ public class JsonConfiguration extends AbstractConfiguration implements Reconfig
}
}
- String t;
+ final String t;
if (type == null) {
t = "null";
} else {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java
index 8ebb37d..dd98827 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java
@@ -306,13 +306,13 @@ public class PluginBuilder implements Builder<Object> {
private final LogEvent event;
private final StrSubstitutor strSubstitutor;
- Substitutor(LogEvent event) {
+ Substitutor(final LogEvent event) {
this.event = event;
this.strSubstitutor = configuration.getStrSubstitutor();
}
@Override
- public String apply(String str) {
+ public String apply(final String str) {
return strSubstitutor.replace(event, str);
}
}
@@ -320,7 +320,7 @@ public class PluginBuilder implements Builder<Object> {
public static class BuilderWrapper<T> implements Builder<T> {
private final org.apache.logging.log4j.core.util.Builder<T> builder;
- BuilderWrapper(org.apache.logging.log4j.core.util.Builder<T> builder) {
+ BuilderWrapper(final org.apache.logging.log4j.core.util.Builder<T> builder) {
this.builder = builder;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginElementVisitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginElementVisitor.java
index 90dc00e..2fddd6a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginElementVisitor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginElementVisitor.java
@@ -58,7 +58,7 @@ public class PluginElementVisitor extends AbstractConfigurationInjector<PluginEl
if (childObject == null) {
LOGGER.warn("Skipping null object returned for element {} in node {}", child.getName(), node.getName());
} else if (childObject.getClass().isArray()) {
- Object[] children = (Object[]) childObject;
+ final Object[] children = (Object[]) childObject;
debugLog.append(Arrays.toString(children)).append('}');
node.getChildren().removeAll(used);
configurationBinder.bindObject(factory, children);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
index 41d274f..ef8fd9c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
@@ -258,7 +258,7 @@ public class PropertiesConfigurationBuilder extends ConfigurationBuilderFactory
final String level = Strings.trimToNull((String) properties.remove("level"));
final String type = (String) properties.remove(CONFIG_TYPE);
final LoggerComponentBuilder loggerBuilder;
- boolean includeLocation;
+ final boolean includeLocation;
if (type != null) {
if (type.equalsIgnoreCase("asyncLogger")) {
if (location != null) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
index ca053ce..6e689d9 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
@@ -141,7 +141,7 @@ public class XmlConfiguration extends AbstractConfiguration implements Reconfigu
LOGGER.error("Error parsing " + configSource.getLocation(), e);
}
if (strict && schemaResource != null && buffer != null) {
- try (InputStream is = Loader.getResourceAsStream(schemaResource, XmlConfiguration.class.getClassLoader())) {
+ try (final InputStream is = Loader.getResourceAsStream(schemaResource, XmlConfiguration.class.getClassLoader())) {
if (is != null) {
final javax.xml.transform.Source src = new StreamSource(is, LOG4J_XSD);
final SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
@@ -202,7 +202,7 @@ public class XmlConfiguration extends AbstractConfiguration implements Reconfigu
private static void setFeature(final DocumentBuilderFactory factory, final String featureName, final boolean value) {
try {
factory.setFeature(featureName, value);
- } catch (Exception | LinkageError e) {
+ } catch (final Exception | LinkageError e) {
getStatusLogger().error("Caught {} setting feature {} to {} on DocumentBuilderFactory {}: {}",
e.getClass().getCanonicalName(), featureName, value, factory, e, e);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java
index cbc53a1..b1d6a3d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/AbstractFilterable.java
@@ -80,7 +80,7 @@ public abstract class AbstractFilterable extends AbstractLifeCycle implements Fi
this(null, null);
}
- protected AbstractFilterable(final Filter filter, Property[] propertyArray) {
+ protected AbstractFilterable(final Filter filter, final Property[] propertyArray) {
this.filter = filter;
this.propertyArray = propertyArray == null ? Property.EMPTY_ARRAY : propertyArray;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NeutralFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NeutralFilter.java
index eac45dc..9dd1c30 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NeutralFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/NeutralFilter.java
@@ -31,79 +31,79 @@ public class NeutralFilter extends AbstractFilter {
public static final NeutralFilter INSTANCE = new NeutralFilter();
@Override
- public Result filter(LogEvent event) {
+ public Result filter(final LogEvent event) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, Message msg, Throwable t) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final Message msg, final Throwable t) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, Object msg, Throwable t) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final Object msg, final Throwable t) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object... params) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, final Object... params) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, final Object p0) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, final Object p0, final Object p1) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, final Object p0, final Object p1, final Object p2) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2,
- Object p3) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, final Object p0, final Object p1, final Object p2,
+ final Object p3) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2,
- Object p3, Object p4) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, final Object p0, final Object p1, final Object p2,
+ final Object p3, final Object p4) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2,
- Object p3, Object p4, Object p5) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, final Object p0, final Object p1, final Object p2,
+ final Object p3, final Object p4, final Object p5) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2,
- Object p3, Object p4, Object p5, Object p6) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, final Object p0, final Object p1, final Object p2,
+ final Object p3, final Object p4, final Object p5, final Object p6) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2,
- Object p3, Object p4, Object p5, Object p6, Object p7) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, final Object p0, final Object p1, final Object p2,
+ final Object p3, final Object p4, final Object p5, final Object p6, final Object p7) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2,
- Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, final Object p0, final Object p1, final Object p2,
+ final Object p3, final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) {
return Result.NEUTRAL;
}
@Override
- public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2,
- Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+ public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, final Object p0, final Object p1, final Object p2,
+ final Object p3, final Object p4, final Object p5, final Object p6, final Object p7, final Object p8, final Object p9) {
return Result.NEUTRAL;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/TimeFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/TimeFilter.java
index c6f0799..67078af 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/TimeFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/TimeFilter.java
@@ -77,7 +77,7 @@ public final class TimeFilter extends AbstractFilter {
* Expose for unit testing.
*/
TimeFilter(final LocalTime start, final LocalTime end, final ZoneId timeZone, final Result onMatch,
- final Result onMismatch, LocalDate now) {
+ final Result onMismatch, final LocalDate now) {
super(onMatch, onMismatch);
this.startTime = start;
this.endTime = end;
@@ -90,7 +90,7 @@ public final class TimeFilter extends AbstractFilter {
}
duration = startTime.isBefore(endTime) ? Duration.between(startTime, endTime).toMillis() :
Duration.between(startTime, endTime).plusHours(24).toMillis();
- long difference = (endMillis - this.start) - duration;
+ final long difference = (endMillis - this.start) - duration;
if (difference != 0) {
// Handle switch from standard time to daylight time and daylight time to standard time.
endMillis -= difference;
@@ -103,18 +103,18 @@ public final class TimeFilter extends AbstractFilter {
this(start, end, timeZone, onMatch, onMismatch, LocalDate.now(timeZone));
}
- private synchronized void adjustTimes(long currentTimeMillis) {
+ private synchronized void adjustTimes(final long currentTimeMillis) {
if (currentTimeMillis <= end) {
return;
}
- LocalDate date = Instant.ofEpochMilli(currentTimeMillis).atZone(timeZone).toLocalDate();
+ final LocalDate date = Instant.ofEpochMilli(currentTimeMillis).atZone(timeZone).toLocalDate();
this.start = ZonedDateTime.of(date, startTime, timeZone).withEarlierOffsetAtOverlap().toInstant().toEpochMilli();
long endMillis = ZonedDateTime.of(date, endTime, timeZone).withEarlierOffsetAtOverlap().toInstant().toEpochMilli();
if (endTime.isBefore(startTime)) {
// End time must be tomorrow.
endMillis += DAY_MS;
}
- long difference = (endMillis - this.start) - duration;
+ final long difference = (endMillis - this.start) - duration;
if (difference != 0) {
// Handle switch from standard time to daylight time and daylight time to standard time.
endMillis -= difference;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataFactory.java
index 2a152d7..cb745ff 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataFactory.java
@@ -121,7 +121,7 @@ public class ContextDataFactory {
public static StringMap createContextData(final Map<String, String> context) {
final StringMap contextData = createContextData(context.size());
- for (Entry<String, String> entry : context.entrySet()) {
+ for (final Entry<String, String> entry : context.entrySet()) {
contextData.putValue(entry.getKey(), entry.getValue());
}
return contextData;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ExtendedStackTraceElement.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ExtendedStackTraceElement.java
index c65eaa1..f207ccd 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ExtendedStackTraceElement.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ExtendedStackTraceElement.java
@@ -166,8 +166,8 @@ public final class ExtendedStackTraceElement implements Serializable {
private void render(final StackTraceElement stElement, final StringBuilder output, final TextRenderer textRenderer) {
final String fileName = stElement.getFileName();
final int lineNumber = stElement.getLineNumber();
- String moduleName = getModuleName();
- String moduleVersion = getModuleVersion();
+ final String moduleName = getModuleName();
+ final String moduleVersion = getModuleVersion();
if (Strings.isNotEmpty(moduleName)) {
textRenderer.render(moduleName, output, "StackTraceElement.ModuleName");
if (Strings.isNotEmpty(moduleVersion) && !moduleName.startsWith("java")) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java
index 4ea5518..0b99ac0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java
@@ -303,7 +303,7 @@ public class Log4jContextFactory implements LoggerContextFactory, ShutdownCallba
if (configurations.size() == 0) {
LOGGER.error("No configurations could be created for {}", configLocations.toString());
} else if (configurations.size() == 1) {
- AbstractConfiguration config = configurations.get(0);
+ final AbstractConfiguration config = configurations.get(0);
LOGGER.debug("Starting LoggerContext[name={}] from configuration at {}", ctx.getName(),
config.getConfigurationSource().getLocation());
ctx.start(config);
@@ -322,7 +322,7 @@ public class Log4jContextFactory implements LoggerContextFactory, ShutdownCallba
}
@Override
- public void shutdown(String fqcn, ClassLoader loader, boolean currentContext, boolean allContexts) {
+ public void shutdown(final String fqcn, final ClassLoader loader, final boolean currentContext, final boolean allContexts) {
if (selector.hasContext(fqcn, loader, currentContext)) {
selector.shutdown(fqcn, loader, currentContext, allContexts);
}
@@ -338,7 +338,7 @@ public class Log4jContextFactory implements LoggerContextFactory, ShutdownCallba
* @since 2.13.0
*/
@Override
- public boolean hasContext(String fqcn, ClassLoader loader, boolean currentContext) {
+ public boolean hasContext(final String fqcn, final ClassLoader loader, final boolean currentContext) {
return selector.hasContext(fqcn, loader, currentContext);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
index ed9237d..1054786 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
@@ -350,7 +350,7 @@ public class Log4jLogEvent implements LogEvent {
final String threadName, final int threadPriority, final StackTraceElement source,
final long timestampMillis, final int nanoOfMillisecond, final long nanoTime) {
this(loggerName, marker, loggerFQCN, level, message, thrown, thrownProxy, contextData, contextStack, threadId, threadName, threadPriority, source, nanoTime);
- long millis = message instanceof TimestampMessage
+ final long millis = message instanceof TimestampMessage
? ((TimestampMessage) message).getTimestamp()
: timestampMillis;
instant.initFromEpochMilli(millis, nanoOfMillisecond);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/LogEventFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/LogEventFactory.java
index b2af73a..7593b64 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/LogEventFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/LogEventFactory.java
@@ -33,8 +33,8 @@ public interface LogEventFactory {
LogEvent createEvent(String loggerName, Marker marker, String fqcn, Level level, Message data,
List<Property> properties, Throwable t);
- default LogEvent createEvent(String loggerName, Marker marker, String fqcn, StackTraceElement location, Level level,
- Message data, List<Property> properties, Throwable t) {
+ default LogEvent createEvent(final String loggerName, final Marker marker, final String fqcn, final StackTraceElement location, final Level level,
+ final Message data, final List<Property> properties, final Throwable t) {
return createEvent(loggerName, marker, fqcn, level, data, properties, t);
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MementoMessage.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MementoMessage.java
index c867ce4..3cfcb3d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MementoMessage.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MementoMessage.java
@@ -36,7 +36,7 @@ public final class MementoMessage implements Message, StringBuilderFormattable {
private final String format;
private final Object[] parameters;
- public MementoMessage(String formattedMessage, String format, Object[] parameters) {
+ public MementoMessage(final String formattedMessage, final String format, final Object[] parameters) {
this.formattedMessage = formattedMessage;
this.format = format;
this.parameters = parameters;
@@ -68,7 +68,7 @@ public final class MementoMessage implements Message, StringBuilderFormattable {
}
@Override
- public void formatTo(StringBuilder buffer) {
+ public void formatTo(final StringBuilder buffer) {
buffer.append(formattedMessage);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java
index d08863c..7863cd2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java
@@ -253,7 +253,7 @@ public class MutableLogEvent implements LogEvent, ReusableMessage, ParameterVisi
}
@Override
- public <S> void forEachParameter(ParameterConsumer<S> action, S state) {
+ public <S> void forEachParameter(final ParameterConsumer<S> action, final S state) {
if (parameters != null) {
for (short i = 0; i < parameterCount; i++) {
action.accept(parameters[i], i, state);
@@ -350,7 +350,7 @@ public class MutableLogEvent implements LogEvent, ReusableMessage, ParameterVisi
return thrownProxy;
}
- public void setSource(StackTraceElement source) {
+ public void setSource(final StackTraceElement source) {
this.source = source;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java
index ee8a0cd..cee5334 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java
@@ -74,7 +74,7 @@ public class ReusableLogEventFactory implements LogEventFactory {
*/
@Override
public LogEvent createEvent(final String loggerName, final Marker marker,
- final String fqcn, StackTraceElement location, final Level level, final Message message,
+ final String fqcn, final StackTraceElement location, final Level level, final Message message,
final List<Property> properties, final Throwable t) {
MutableLogEvent result = mutableLogEventThreadLocal.get();
if (result == null || result.reserved) {
@@ -118,7 +118,7 @@ public class ReusableLogEventFactory implements LogEventFactory {
*/
public static void release(final LogEvent logEvent) { // LOG4J2-1583
if (logEvent instanceof MutableLogEvent) {
- MutableLogEvent mutableLogEvent = (MutableLogEvent) logEvent;
+ final MutableLogEvent mutableLogEvent = (MutableLogEvent) logEvent;
mutableLogEvent.clear();
mutableLogEvent.reserved = false;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
index b203897..15f69c9 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
@@ -79,7 +79,7 @@ public class ThreadContextDataInjector {
}
private static List<ContextDataProvider> getServiceProviders() {
- List<ContextDataProvider> providers = new ArrayList<>();
+ final List<ContextDataProvider> providers = new ArrayList<>();
for (final ClassLoader classLoader : LoaderUtil.getClassLoaders()) {
try {
for (final ContextDataProvider provider : ServiceLoader.load(ContextDataProvider.class, classLoader)) {
@@ -126,7 +126,7 @@ public class ThreadContextDataInjector {
copy = providers.get(0).supplyContextData();
} else {
copy = new HashMap<>();
- for (ContextDataProvider provider : providers) {
+ for (final ContextDataProvider provider : providers) {
copy.putAll(provider.supplyContextData());
}
}
@@ -244,7 +244,7 @@ public class ThreadContextDataInjector {
return providers.get(0).supplyStringMap();
}
int count = props == null ? 0 : props.size();
- StringMap[] maps = new StringMap[providers.size()];
+ final StringMap[] maps = new StringMap[providers.size()];
for (int i = 0; i < providers.size(); ++i) {
maps[i] = providers.get(i).supplyStringMap();
count += maps[i].size();
@@ -255,7 +255,7 @@ public class ThreadContextDataInjector {
// the ThreadContext - this will throw an UnsupportedOperationException if we try to modify it.
final StringMap result = ContextDataFactory.createContextData(count);
copyProperties(props, result);
- for (StringMap map : maps) {
+ for (final StringMap map : maps) {
result.putAll(map);
}
return result;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java
index c948a0c..1c043af 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java
@@ -298,7 +298,7 @@ public class ThrowableProxy implements Serializable {
*
* @param value New value of commonElementCount.
*/
- void setCommonElementCount(int value) {
+ void setCommonElementCount(final int value) {
this.commonElementCount = value;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxyHelper.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxyHelper.java
index 547ca09..edeaf9f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxyHelper.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxyHelper.java
@@ -72,7 +72,7 @@ class ThrowableProxyHelper {
final Stack<Class<?>> stack, final Map<String, CacheEntry> map,
final StackTraceElement[] rootTrace,
final StackTraceElement[] stackTrace) {
- int stackLength;
+ final int stackLength;
if (rootTrace != null) {
int rootIndex = rootTrace.length - 1;
int stackIndex = stackTrace.length - 1;
@@ -95,7 +95,7 @@ class ThrowableProxyHelper {
// The stack returned from getCurrentStack may be missing entries for java.lang.reflect.Method.invoke()
// and its implementation. The Throwable might also contain stack entries that are no longer
// present as those methods have returned.
- ExtendedClassInfo extClassInfo;
+ final ExtendedClassInfo extClassInfo;
if (clazz != null && className.equals(clazz.getName())) {
final CacheEntry entry = toCacheEntry(clazz, true);
extClassInfo = entry.element;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxyRenderer.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxyRenderer.java
index d86d2bb..f13943a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxyRenderer.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxyRenderer.java
@@ -53,13 +53,13 @@ class ThrowableProxyRenderer {
}
private static void formatCause(final StringBuilder sb, final String prefix, final ThrowableProxy cause,
- final List<String> ignorePackages, final TextRenderer textRenderer, final String suffix, String lineSeparator) {
+ final List<String> ignorePackages, final TextRenderer textRenderer, final String suffix, final String lineSeparator) {
formatThrowableProxy(sb, prefix, CAUSED_BY_LABEL, cause, ignorePackages, textRenderer, suffix, lineSeparator);
}
private static void formatThrowableProxy(final StringBuilder sb, final String prefix, final String causeLabel,
final ThrowableProxy throwableProxy, final List<String> ignorePackages,
- final TextRenderer textRenderer, final String suffix, String lineSeparator) {
+ final TextRenderer textRenderer, final String suffix, final String lineSeparator) {
if (throwableProxy == null) {
return;
}
@@ -75,7 +75,7 @@ class ThrowableProxyRenderer {
}
private static void formatSuppressed(final StringBuilder sb, final String prefix, final ThrowableProxy[] suppressedProxies,
- final List<String> ignorePackages, final TextRenderer textRenderer, final String suffix, String lineSeparator) {
+ final List<String> ignorePackages, final TextRenderer textRenderer, final String suffix, final String lineSeparator) {
if (suppressedProxies == null) {
return;
}
@@ -86,7 +86,7 @@ class ThrowableProxyRenderer {
private static void formatElements(final StringBuilder sb, final String prefix, final int commonCount,
final StackTraceElement[] causedTrace, final ExtendedStackTraceElement[] extStackTrace,
- final List<String> ignorePackages, final TextRenderer textRenderer, final String suffix, String lineSeparator) {
+ final List<String> ignorePackages, final TextRenderer textRenderer, final String suffix, final String lineSeparator) {
if (ignorePackages == null || ignorePackages.isEmpty()) {
for (final ExtendedStackTraceElement element : extStackTrace) {
formatEntry(element, sb, prefix, textRenderer, suffix, lineSeparator);
@@ -126,7 +126,7 @@ class ThrowableProxyRenderer {
}
private static void appendSuppressedCount(final StringBuilder sb, final String prefix, final int count,
- final TextRenderer textRenderer, final String suffix, String lineSeparator) {
+ final TextRenderer textRenderer, final String suffix, final String lineSeparator) {
textRenderer.render(prefix, sb, "Prefix");
if (count == 1) {
textRenderer.render("\t... ", sb, "Suppressed");
@@ -140,7 +140,7 @@ class ThrowableProxyRenderer {
}
private static void formatEntry(final ExtendedStackTraceElement extStackTraceElement, final StringBuilder sb,
- final String prefix, final TextRenderer textRenderer, final String suffix, String lineSeparator) {
+ final String prefix, final TextRenderer textRenderer, final String suffix, final String lineSeparator) {
textRenderer.render(prefix, sb, "Prefix");
textRenderer.render("\tat ", sb, "At");
extStackTraceElement.renderOn(sb, textRenderer);
@@ -170,7 +170,7 @@ class ThrowableProxyRenderer {
* @param suffix Append this to the end of each stack frame.
* @param lineSeparator The end-of-line separator.
*/
- static void formatExtendedStackTraceTo(ThrowableProxy src, final StringBuilder sb, final List<String> ignorePackages, final TextRenderer textRenderer, final String suffix, final String lineSeparator) {
+ static void formatExtendedStackTraceTo(final ThrowableProxy src, final StringBuilder sb, final List<String> ignorePackages, final TextRenderer textRenderer, final String suffix, final String lineSeparator) {
textRenderer.render(src.getName(), sb, "Name");
textRenderer.render(": ", sb, "NameMessageSeparator");
textRenderer.render(src.getMessage(), sb, "Message");
@@ -193,7 +193,7 @@ class ThrowableProxyRenderer {
* @param lineSeparator The end-of-line separator.
*/
static void formatCauseStackTrace(final ThrowableProxy src, final StringBuilder sb, final List<String> ignorePackages, final TextRenderer textRenderer, final String suffix, final String lineSeparator) {
- ThrowableProxy causeProxy = src.getCauseProxy();
+ final ThrowableProxy causeProxy = src.getCauseProxy();
if (causeProxy != null) {
formatWrapper(sb, causeProxy, ignorePackages, textRenderer, suffix, lineSeparator);
sb.append(WRAPPED_BY_LABEL);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
index ab5a63b..15af8b8 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
@@ -176,8 +176,8 @@ public final class GelfLayout extends AbstractStringLayout {
@Override
public GelfLayout build() {
- ListChecker mdcChecker = createChecker(threadContextExcludes, threadContextIncludes);
- ListChecker mapChecker = createChecker(mapMessageExcludes, mapMessageIncludes);
+ final ListChecker mdcChecker = createChecker(threadContextExcludes, threadContextIncludes);
+ final ListChecker mapChecker = createChecker(mapMessageExcludes, mapMessageIncludes);
PatternLayout patternLayout = null;
if (messagePattern != null && patternSelector != null) {
LOGGER.error("A message pattern and PatternSelector cannot both be specified on GelfLayout, "
@@ -202,12 +202,12 @@ public final class GelfLayout extends AbstractStringLayout {
threadContextPrefix, mapPrefix);
}
- private ListChecker createChecker(String excludes, String includes) {
+ private ListChecker createChecker(final String excludes, final String includes) {
ListChecker checker = null;
if (excludes != null) {
final String[] array = excludes.split(Patterns.COMMA_SEPARATOR);
if (array.length > 0) {
- List<String> excludeList = new ArrayList<>(array.length);
+ final List<String> excludeList = new ArrayList<>(array.length);
for (final String str : array) {
excludeList.add(str.trim());
}
@@ -217,7 +217,7 @@ public final class GelfLayout extends AbstractStringLayout {
if (includes != null) {
final String[] array = includes.split(Patterns.COMMA_SEPARATOR);
if (array.length > 0) {
- List<String> includeList = new ArrayList<>(array.length);
+ final List<String> includeList = new ArrayList<>(array.length);
for (final String str : array) {
includeList.add(str.trim());
}
@@ -471,7 +471,7 @@ public final class GelfLayout extends AbstractStringLayout {
@Override
public String toString() {
- StringBuilder sb = new StringBuilder();
+ final StringBuilder sb = new StringBuilder();
sb.append("host=").append(host);
sb.append(", compressionType=").append(compressionType.toString());
sb.append(", compressionThreshold=").append(compressionThreshold);
@@ -479,11 +479,11 @@ public final class GelfLayout extends AbstractStringLayout {
sb.append(", includeThreadContext=").append(includeThreadContext);
sb.append(", includeNullDelimiter=").append(includeNullDelimiter);
sb.append(", includeNewLineDelimiter=").append(includeNewLineDelimiter);
- String threadVars = mdcWriter.getChecker().toString();
+ final String threadVars = mdcWriter.getChecker().toString();
if (threadVars.length() > 0) {
sb.append(", ").append(threadVars);
}
- String mapVars = mapWriter.getChecker().toString();
+ final String mapVars = mapWriter.getChecker().toString();
if (mapVars.length() > 0) {
sb.append(", ").append(mapVars);
}
@@ -644,14 +644,14 @@ public final class GelfLayout extends AbstractStringLayout {
private final ListChecker checker;
private final String prefix;
- FieldWriter(ListChecker checker, String prefix) {
+ FieldWriter(final ListChecker checker, final String prefix) {
this.checker = checker;
this.prefix = prefix;
}
@Override
public void accept(final String key, final Object value, final StringBuilder stringBuilder) {
- String stringValue = String.valueOf(value);
+ final String stringValue = String.valueOf(value);
if (checker.check(key) && (Strings.isNotEmpty(stringValue) || !omitEmptyFields)) {
stringBuilder.append(QU);
JsonUtils.quoteAsString(Strings.concat(prefix, key), stringBuilder);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java
index 700b81d..7dada21 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java
@@ -101,7 +101,7 @@ public final class HtmlLayout extends AbstractStringLayout {
}
private HtmlLayout(final boolean locationInfo, final String title, final String contentType, final Charset charset,
- final String font, final String fontSize, final String headerSize, String datePattern, String timezone) {
+ final String font, final String fontSize, final String headerSize, final String datePattern, final String timezone) {
super(charset);
this.locationInfo = locationInfo;
this.title = title;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/LevelPatternSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/LevelPatternSelector.java
index 7b2b67b..116327f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/LevelPatternSelector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/LevelPatternSelector.java
@@ -139,7 +139,7 @@ public class LevelPatternSelector implements PatternSelector{
try {
final List<PatternFormatter> list = parser.parse(property.getPattern(), alwaysWriteExceptions,
disableAnsi, noConsoleNoAnsi);
- PatternFormatter[] formatters = list.toArray(new PatternFormatter[0]);
+ final PatternFormatter[] formatters = list.toArray(new PatternFormatter[0]);
formatterMap.put(property.getKey(), formatters);
for (int i = 0; !needsLocation && i < formatters.length; ++i) {
needsLocation = formatters[i].requiresLocation();
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/MarkerPatternSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/MarkerPatternSelector.java
index 651cffe..838d407 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/MarkerPatternSelector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/MarkerPatternSelector.java
@@ -129,7 +129,7 @@ public class MarkerPatternSelector implements PatternSelector {
try {
final List<PatternFormatter> list = parser.parse(property.getPattern(), alwaysWriteExceptions,
disableAnsi, noConsoleNoAnsi);
- PatternFormatter[] formatters = list.toArray(new PatternFormatter[list.size()]);
+ final PatternFormatter[] formatters = list.toArray(new PatternFormatter[list.size()]);
formatterMap.put(property.getKey(), formatters);
for (int i = 0; !needsLocation && i < formatters.length; ++i) {
needsLocation = formatters[i].requiresLocation();
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
index 10a36c5..9c53164 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
@@ -184,7 +184,7 @@ public final class PatternLayout extends AbstractStringLayout {
return eventSerializer.toSerializable(event);
}
- public void serialize(final LogEvent event, StringBuilder stringBuilder) {
+ public void serialize(final LogEvent event, final StringBuilder stringBuilder) {
eventSerializer.toSerializable(event, stringBuilder);
}
@@ -285,7 +285,7 @@ public final class PatternLayout extends AbstractStringLayout {
@Override
public boolean requiresLocation() {
- for (PatternFormatter formatter : formatters) {
+ for (final PatternFormatter formatter : formatters) {
if (formatter.requiresLocation()) {
return true;
}
@@ -495,9 +495,9 @@ public final class PatternLayout extends AbstractStringLayout {
}
private boolean useAnsiEscapeCodes() {
- PropertiesUtil propertiesUtil = PropertiesUtil.getProperties();
- boolean isPlatformSupportsAnsi = !propertiesUtil.isOsWindows();
- boolean isJansiRequested = !propertiesUtil.getBooleanProperty("log4j.skipJansi", true);
+ final PropertiesUtil propertiesUtil = PropertiesUtil.getProperties();
+ final boolean isPlatformSupportsAnsi = !propertiesUtil.isOsWindows();
+ final boolean isJansiRequested = !propertiesUtil.getBooleanProperty("log4j.skipJansi", true);
return isPlatformSupportsAnsi || isJansiRequested;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java
index 969a769..3eb48e0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java
@@ -393,7 +393,7 @@ public final class Rfc5424Layout extends AbstractStringLayout {
if (isStructured) {
if (message instanceof MessageCollectionMessage) {
- for (StructuredDataMessage data : ((StructuredDataCollectionMessage)message)) {
+ for (final StructuredDataMessage data : ((StructuredDataCollectionMessage)message)) {
addStructuredData(sdElements, data);
}
} else {
@@ -446,7 +446,7 @@ public final class Rfc5424Layout extends AbstractStringLayout {
}
private String computeTimeStampString(final long now) {
- long last;
+ final long last;
synchronized (this) {
last = lastTimestamp;
if (now == lastTimestamp) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/ScriptPatternSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/ScriptPatternSelector.java
index 35bba99..356be7c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/ScriptPatternSelector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/ScriptPatternSelector.java
@@ -159,7 +159,7 @@ public class ScriptPatternSelector implements PatternSelector {
for (final PatternMatch property : properties) {
try {
final List<PatternFormatter> list = parser.parse(property.getPattern(), alwaysWriteExceptions, disableAnsi, noConsoleNoAnsi);
- PatternFormatter[] formatters = list.toArray(new PatternFormatter[list.size()]);
+ final PatternFormatter[] formatters = list.toArray(new PatternFormatter[list.size()]);
formatterMap.put(property.getKey(), formatters);
patternMap.put(property.getKey(), property.getPattern());
for (int i = 0; !needsLocation && i < formatters.length; ++i) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Base64StrLookup.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Base64StrLookup.java
index d498d98..6d7b37c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Base64StrLookup.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Base64StrLookup.java
@@ -12,7 +12,7 @@ import org.apache.logging.log4j.core.LogEvent;
public class Base64StrLookup extends AbstractLookup {
@Override
- public String lookup(LogEvent event, String key) {
+ public String lookup(final LogEvent event, final String key) {
return new String(Base64.getDecoder().decode(key));
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/StrSubstitutor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/StrSubstitutor.java
index 33fc535..488a793 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/StrSubstitutor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/StrSubstitutor.java
@@ -995,9 +995,9 @@ public class StrSubstitutor implements ConfigurationAware {
break;
}
if (valueEscapeDelimiterMatcher != null) {
- int matchLen = valueEscapeDelimiterMatcher.isMatch(varNameExprChars, i);
+ final int matchLen = valueEscapeDelimiterMatcher.isMatch(varNameExprChars, i);
if (matchLen != 0) {
- String varNamePrefix = varNameExpr.substring(0, i) + Interpolator.PREFIX_SEPARATOR;
+ final String varNamePrefix = varNameExpr.substring(0, i) + Interpolator.PREFIX_SEPARATOR;
varName = varNamePrefix + varNameExpr.substring(i + matchLen - 1);
for (int j = i + matchLen; j < varNameExprChars.length; ++j){
if ((valueDelimiterMatchLen = valueDelimiterMatcher.isMatch(varNameExprChars, j)) != 0) {
@@ -1350,7 +1350,7 @@ public class StrSubstitutor implements ConfigurationAware {
setValueDelimiterMatcher(null);
return this;
}
- String escapeValue = valueDelimiter.substring(0, valueDelimiter.length() - 1) + "\\"
+ final String escapeValue = valueDelimiter.substring(0, valueDelimiter.length() - 1) + "\\"
+ valueDelimiter.substring(valueDelimiter.length() - 1);
valueEscapeDelimiterMatcher = StrMatcher.stringMatcher(escapeValue);
return setValueDelimiterMatcher(StrMatcher.stringMatcher(valueDelimiter));
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/DatagramSocketManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/DatagramSocketManager.java
index 844c614..036f63c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/DatagramSocketManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/DatagramSocketManager.java
@@ -110,7 +110,7 @@ public class DatagramSocketManager extends AbstractSocketManager {
@Override
public DatagramSocketManager createManager(final String name, final FactoryData data) {
- InetAddress inetAddress;
+ final InetAddress inetAddress;
try {
inetAddress = InetAddress.getByName(data.host);
} catch (final UnknownHostException ex) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/MulticastDnsAdvertiser.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/MulticastDnsAdvertiser.java
index fc7daf2..d03f69f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/MulticastDnsAdvertiser.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/MulticastDnsAdvertiser.java
@@ -93,7 +93,7 @@ public class MulticastDnsAdvertiser implements Advertiser {
} catch (final NoSuchMethodException e) {
// no-op
}
- Object serviceInfo;
+ final Object serviceInfo;
if (isVersion3) {
serviceInfo = buildServiceInfoVersion3(zone, port, name, truncatedProperties);
} else {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SslSocketManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SslSocketManager.java
index 666aa7e..2f2e521 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SslSocketManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SslSocketManager.java
@@ -108,7 +108,7 @@ public class SslSocketManager extends TcpSocketManager {
}
private static SSLSocketFactory createSslSocketFactory(final SslConfiguration sslConf) {
- SSLSocketFactory socketFactory;
+ final SSLSocketFactory socketFactory;
if (sslConf != null) {
socketFactory = sslConf.getSslSocketFactory();
@@ -123,8 +123,8 @@ public class SslSocketManager extends TcpSocketManager {
private static class SslSocketManagerFactory extends TcpSocketManagerFactory<SslSocketManager, SslFactoryData> {
@Override
- SslSocketManager createManager(final String name, OutputStream os, Socket socket, InetAddress inetAddress,
- final SslFactoryData data) {
+ SslSocketManager createManager(final String name, final OutputStream os, final Socket socket, final InetAddress inetAddress,
+ final SslFactoryData data) {
return new SslSocketManager(name, os, socket, data.sslConfiguration, inetAddress, data.host, data.port,
data.connectTimeoutMillis, data.reconnectDelayMillis, data.immediateFail, data.layout, data.bufferSize,
data.socketOptions);
@@ -132,13 +132,13 @@ public class SslSocketManager extends TcpSocketManager {
@Override
Socket createSocket(final SslFactoryData data) throws IOException {
- List<InetSocketAddress> socketAddresses = resolver.resolveHost(data.host, data.port);
+ final List<InetSocketAddress> socketAddresses = resolver.resolveHost(data.host, data.port);
IOException ioe = null;
- for (InetSocketAddress socketAddress : socketAddresses) {
+ for (final InetSocketAddress socketAddress : socketAddresses) {
try {
return SslSocketManager.createSocket(socketAddress, data.connectTimeoutMillis,
data.sslConfiguration, data.socketOptions);
- } catch (IOException ex) {
+ } catch (final IOException ex) {
ioe = ex;
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TcpSocketManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TcpSocketManager.java
index 9b39bce..7d2c154 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TcpSocketManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TcpSocketManager.java
@@ -162,7 +162,7 @@ public class TcpSocketManager extends AbstractSocketManager {
reconnector = createReconnector();
try {
reconnector.reconnect();
- } catch (IOException reconnEx) {
+ } catch (final IOException reconnEx) {
LOGGER.debug("Cannot reestablish socket connection to {}: {}; starting reconnector thread {}",
config, reconnEx.getLocalizedMessage(), reconnector.getName(), reconnEx);
reconnector.start();
@@ -171,7 +171,7 @@ public class TcpSocketManager extends AbstractSocketManager {
}
try {
writeAndFlush(bytes, offset, length, immediateFlush);
- } catch (IOException e) {
+ } catch (final IOException e) {
throw new AppenderLoggingException(
String.format("Error writing to %s after reestablishing connection for %s", getName(),
config),
@@ -281,18 +281,18 @@ public class TcpSocketManager extends AbstractSocketManager {
}
void reconnect() throws IOException {
- List<InetSocketAddress> socketAddresses = FACTORY.resolver.resolveHost(host, port);
+ final List<InetSocketAddress> socketAddresses = FACTORY.resolver.resolveHost(host, port);
if (socketAddresses.size() == 1) {
LOGGER.debug("Reconnecting " + socketAddresses.get(0));
connect(socketAddresses.get(0));
} else {
IOException ioe = null;
- for (InetSocketAddress socketAddress : socketAddresses) {
+ for (final InetSocketAddress socketAddress : socketAddresses) {
try {
LOGGER.debug("Reconnecting " + socketAddress);
connect(socketAddress);
return;
- } catch (IOException ex) {
+ } catch (final IOException ex) {
ioe = ex;
}
}
@@ -300,11 +300,11 @@ public class TcpSocketManager extends AbstractSocketManager {
}
}
- private void connect(InetSocketAddress socketAddress) throws IOException {
+ private void connect(final InetSocketAddress socketAddress) throws IOException {
final Socket sock = createSocket(socketAddress);
@SuppressWarnings("resource") // newOS is managed by the enclosing Manager.
final OutputStream newOS = sock.getOutputStream();
- InetAddress prev = socket != null ? socket.getInetAddress() : null;
+ final InetAddress prev = socket != null ? socket.getInetAddress() : null;
synchronized (owner) {
Closer.closeSilently(getOutputStream());
setOutputStream(newOS);
@@ -312,7 +312,7 @@ public class TcpSocketManager extends AbstractSocketManager {
reconnector = null;
shutdown = true;
}
- String type = prev != null && prev.getHostAddress().equals(socketAddress.getAddress().getHostAddress()) ?
+ final String type = prev != null && prev.getHostAddress().equals(socketAddress.getAddress().getHostAddress()) ?
"reestablished" : "established";
LOGGER.debug("Connection to {}:{} {}: {}", host, port, type, socket);
}
@@ -401,7 +401,7 @@ public class TcpSocketManager extends AbstractSocketManager {
@SuppressWarnings("resource")
@Override
public M createManager(final String name, final T data) {
- InetAddress inetAddress;
+ final InetAddress inetAddress;
OutputStream os;
try {
inetAddress = InetAddress.getByName(data.host);
@@ -427,27 +427,27 @@ public class TcpSocketManager extends AbstractSocketManager {
}
@SuppressWarnings("unchecked")
- M createManager(final String name, OutputStream os, Socket socket, InetAddress inetAddress, final T data) {
+ M createManager(final String name, final OutputStream os, final Socket socket, final InetAddress inetAddress, final T data) {
return (M) new TcpSocketManager(name, os, socket, inetAddress, data.host, data.port,
data.connectTimeoutMillis, data.reconnectDelayMillis, data.immediateFail, data.layout,
data.bufferSize, data.socketOptions);
}
Socket createSocket(final T data) throws IOException {
- List<InetSocketAddress> socketAddresses = resolver.resolveHost(data.host, data.port);
+ final List<InetSocketAddress> socketAddresses = resolver.resolveHost(data.host, data.port);
IOException ioe = null;
- for (InetSocketAddress socketAddress : socketAddresses) {
+ for (final InetSocketAddress socketAddress : socketAddresses) {
try {
return TcpSocketManager.createSocket(socketAddress, data.socketOptions, data.connectTimeoutMillis);
- } catch (IOException ex) {
+ } catch (final IOException ex) {
ioe = ex;
}
}
throw new IOException(errorMessage(data, socketAddresses) , ioe);
}
- protected String errorMessage(final T data, List<InetSocketAddress> socketAddresses) {
- StringBuilder sb = new StringBuilder("Unable to create socket for ");
+ protected String errorMessage(final T data, final List<InetSocketAddress> socketAddresses) {
+ final StringBuilder sb = new StringBuilder("Unable to create socket for ");
sb.append(data.host).append(" at port ").append(data.port);
if (socketAddresses.size() == 1) {
if (!socketAddresses.get(0).getAddress().getHostAddress().equals(data.host)) {
@@ -472,16 +472,16 @@ public class TcpSocketManager extends AbstractSocketManager {
* This method is only for unit testing. It is not Thread-safe.
* @param resolver the HostResolver.
*/
- public static void setHostResolver(HostResolver resolver) {
+ public static void setHostResolver(final HostResolver resolver) {
TcpSocketManagerFactory.resolver = resolver;
}
public static class HostResolver {
- public List<InetSocketAddress> resolveHost(String host, int port) throws UnknownHostException {
- InetAddress[] addresses = InetAddress.getAllByName(host);
- List<InetSocketAddress> socketAddresses = new ArrayList<>(addresses.length);
- for (InetAddress address: addresses) {
+ public List<InetSocketAddress> resolveHost(final String host, final int port) throws UnknownHostException {
+ final InetAddress[] addresses = InetAddress.getAllByName(host);
+ final List<InetSocketAddress> socketAddresses = new ArrayList<>(addresses.length);
+ for (final InetAddress address: addresses) {
socketAddresses.add(new InetSocketAddress(address, port));
}
return socketAddresses;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
index fab8b77..63df3d2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
@@ -43,10 +43,10 @@ public class UrlConnectionFactory {
private static final String HTTP = "http";
private static final String HTTPS = "https";
- public static HttpURLConnection createConnection(URL url, long lastModifiedMillis, SslConfiguration sslConfiguration)
+ public static HttpURLConnection createConnection(final URL url, final long lastModifiedMillis, final SslConfiguration sslConfiguration)
throws IOException {
final HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
- AuthorizationProvider provider = ConfigurationFactory.getAuthorizationProvider();
+ final AuthorizationProvider provider = ConfigurationFactory.getAuthorizationProvider();
if (provider != null) {
provider.addAuthorization(urlConnection);
}
@@ -60,9 +60,9 @@ public class UrlConnectionFactory {
if (readTimeoutMillis > 0) {
urlConnection.setReadTimeout(readTimeoutMillis);
}
- String[] fileParts = url.getFile().split("\\.");
- String type = fileParts[fileParts.length - 1].trim();
- String contentType = isXml(type) ? XML : isJson(type) ? JSON : isProperties(type) ? PROPERTIES : TEXT;
+ final String[] fileParts = url.getFile().split("\\.");
+ final String type = fileParts[fileParts.length - 1].trim();
+ final String contentType = isXml(type) ? XML : isJson(type) ? JSON : isProperties(type) ? PROPERTIES : TEXT;
urlConnection.setRequestProperty("Content-Type", contentType);
if (lastModifiedMillis > 0) {
urlConnection.setIfModifiedSince(lastModifiedMillis);
@@ -76,7 +76,7 @@ public class UrlConnectionFactory {
return urlConnection;
}
- public static URLConnection createConnection(URL url) throws IOException {
+ public static URLConnection createConnection(final URL url) throws IOException {
URLConnection urlConnection = null;
if (url.getProtocol().equals(HTTPS) || url.getProtocol().equals(HTTP)) {
urlConnection = createConnection(url, 0, SslConfigurationFactory.getSslConfiguration());
@@ -87,15 +87,15 @@ public class UrlConnectionFactory {
}
- private static boolean isXml(String type) {
+ private static boolean isXml(final String type) {
return type.equalsIgnoreCase("xml");
}
- private static boolean isJson(String type) {
+ private static boolean isJson(final String type) {
return type.equalsIgnoreCase("json") || type.equalsIgnoreCase("jsn");
}
- private static boolean isProperties(String type) {
+ private static boolean isProperties(final String type) {
return type.equalsIgnoreCase("properties");
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java
index 511fd56..bff261d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/AbstractKeyStoreConfiguration.java
@@ -52,7 +52,7 @@ public class AbstractKeyStoreConfiguration extends StoreConfiguration<KeyStore>
}
try (final InputStream fin = openInputStream(loadLocation)) {
final KeyStore ks = KeyStore.getInstance(this.keyStoreType);
- char[] password = this.getPassword();
+ final char[] password = this.getPassword();
try {
ks.load(fin, password);
} finally {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/EnvironmentPasswordProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/EnvironmentPasswordProvider.java
index d60f82c..da16622 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/EnvironmentPasswordProvider.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/EnvironmentPasswordProvider.java
@@ -49,7 +49,7 @@ class EnvironmentPasswordProvider implements PasswordProvider {
@Override
public char[] getPassword() {
- String password = System.getenv(passwordEnvironmentVariable);
+ final String password = System.getenv(passwordEnvironmentVariable);
return password == null ? null : password.toCharArray();
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/FilePasswordProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/FilePasswordProvider.java
index ff59b00..355a781 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/FilePasswordProvider.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/FilePasswordProvider.java
@@ -65,14 +65,14 @@ class FilePasswordProvider implements PasswordProvider {
byte[] bytes = null;
try {
bytes = Files.readAllBytes(passwordPath);
- ByteBuffer bb = ByteBuffer.wrap(bytes);
- CharBuffer decoded = Charset.defaultCharset().decode(bb);
- char[] result = new char[decoded.limit()];
+ final ByteBuffer bb = ByteBuffer.wrap(bytes);
+ final CharBuffer decoded = Charset.defaultCharset().decode(bb);
+ final char[] result = new char[decoded.limit()];
decoded.get(result, 0, result.length);
decoded.rewind();
decoded.put(new char[result.length]); // erase decoded CharBuffer
return result;
- } catch (IOException e) {
+ } catch (final IOException e) {
throw new IllegalStateException("Could not read password from " + passwordPath + ": " + e, e);
} finally {
if (bytes != null) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java
index abe1e25..6459ac0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/KeyStoreConfiguration.java
@@ -107,7 +107,7 @@ public class KeyStoreConfiguration extends AbstractKeyStoreConfiguration {
}
try {
// @formatter:off
- PasswordProvider provider = passwordFile != null
+ final PasswordProvider provider = passwordFile != null
? new FilePasswordProvider(passwordFile)
: passwordEnvironmentVariable != null
? new EnvironmentPasswordProvider(passwordEnvironmentVariable)
@@ -118,7 +118,7 @@ public class KeyStoreConfiguration extends AbstractKeyStoreConfiguration {
Arrays.fill(password, '\0');
}
return new KeyStoreConfiguration(location, provider, keyStoreType, keyManagerFactoryAlgorithm);
- } catch (Exception ex) {
+ } catch (final Exception ex) {
throw new StoreConfigurationException("Could not configure KeyStore", ex);
}
}
@@ -126,7 +126,7 @@ public class KeyStoreConfiguration extends AbstractKeyStoreConfiguration {
public KeyManagerFactory initKeyManagerFactory() throws NoSuchAlgorithmException, UnrecoverableKeyException,
KeyStoreException {
final KeyManagerFactory kmFactory = KeyManagerFactory.getInstance(this.keyManagerFactoryAlgorithm);
- char[] password = this.getPassword();
+ final char[] password = this.getPassword();
try {
kmFactory.init(this.getKeyStore(), password);
} finally {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
index 6c5d087..45b4961 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
@@ -49,7 +49,7 @@ public class SslConfiguration {
private final boolean verifyHostName;
private SslConfiguration(final String protocol, final KeyStoreConfiguration keyStoreConfig,
- final TrustStoreConfiguration trustStoreConfig, boolean verifyHostName) {
+ final TrustStoreConfiguration trustStoreConfig, final boolean verifyHostName) {
this.keyStoreConfig = keyStoreConfig;
this.trustStoreConfig = trustStoreConfig;
this.protocol = protocol == null ? SslConfigurationDefaults.PROTOCOL : protocol;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
index d0a517d..df0fdd5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
@@ -43,12 +43,12 @@ public class SslConfigurationFactory {
private static final String verifyHostName = "log4j2.ssl.verifyHostName";
static {
- PropertiesUtil props = PropertiesUtil.getProperties();
+ final PropertiesUtil props = PropertiesUtil.getProperties();
KeyStoreConfiguration keyStoreConfiguration = null;
TrustStoreConfiguration trustStoreConfiguration = null;
String location = props.getStringProperty(trustStorelocation);
if (location != null) {
- String password = props.getStringProperty(trustStorePassword);
+ final String password = props.getStringProperty(trustStorePassword);
char[] passwordChars = null;
if (password != null) {
passwordChars = password.toCharArray();
@@ -57,14 +57,14 @@ public class SslConfigurationFactory {
trustStoreConfiguration = TrustStoreConfiguration.createKeyStoreConfiguration(location, passwordChars,
props.getStringProperty(trustStorePasswordEnvVar), props.getStringProperty(trustStorePasswordFile),
props.getStringProperty(trustStoreKeyStoreType), props.getStringProperty(trustStoreKeyManagerFactoryAlgorithm));
- } catch (Exception ex) {
+ } catch (final Exception ex) {
LOGGER.warn("Unable to create trust store configuration due to: {} {}", ex.getClass().getName(),
ex.getMessage());
}
}
location = props.getStringProperty(keyStoreLocation);
if (location != null) {
- String password = props.getStringProperty(keyStorePassword);
+ final String password = props.getStringProperty(keyStorePassword);
char[] passwordChars = null;
if (password != null) {
passwordChars = password.toCharArray();
@@ -73,13 +73,13 @@ public class SslConfigurationFactory {
keyStoreConfiguration = KeyStoreConfiguration.createKeyStoreConfiguration(location, passwordChars,
props.getStringProperty(keyStorePasswordEnvVar), props.getStringProperty(keyStorePasswordFile),
props.getStringProperty(keyStoreType), props.getStringProperty(keyStoreKeyManagerFactoryAlgorithm));
- } catch (Exception ex) {
+ } catch (final Exception ex) {
LOGGER.warn("Unable to create key store configuration due to: {} {}", ex.getClass().getName(),
ex.getMessage());
}
}
if (trustStoreConfiguration != null || keyStoreConfiguration != null) {
- boolean isVerifyHostName = props.getBooleanProperty(verifyHostName, false);
+ final boolean isVerifyHostName = props.getBooleanProperty(verifyHostName, false);
sslConfiguration = SslConfiguration.createSSLConfiguration("https", keyStoreConfiguration,
trustStoreConfiguration, isVerifyHostName);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/StoreConfigurationException.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/StoreConfigurationException.java
index 793e6df..f635145 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/StoreConfigurationException.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/StoreConfigurationException.java
@@ -30,7 +30,7 @@ public class StoreConfigurationException extends Exception {
super(message);
}
- public StoreConfigurationException(String message, Exception e) {
+ public StoreConfigurationException(final String message, final Exception e) {
super(message, e);
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java
index 17cbe51..219a861 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/TrustStoreConfiguration.java
@@ -86,7 +86,7 @@ public class TrustStoreConfiguration extends AbstractKeyStoreConfiguration {
}
try {
// @formatter:off
- PasswordProvider provider = passwordFile != null
+ final PasswordProvider provider = passwordFile != null
? new FilePasswordProvider(passwordFile)
: passwordEnvironmentVariable != null
? new EnvironmentPasswordProvider(passwordEnvironmentVariable)
@@ -97,7 +97,7 @@ public class TrustStoreConfiguration extends AbstractKeyStoreConfiguration {
Arrays.fill(password, '\0');
}
return new TrustStoreConfiguration(location, provider, keyStoreType, trustManagerFactoryAlgorithm);
- } catch (Exception ex) {
+ } catch (final Exception ex) {
throw new StoreConfigurationException("Could not configure TrustStore", ex);
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/osgi/BundleContextSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/osgi/BundleContextSelector.java
index ba0a14e..c14a63f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/osgi/BundleContextSelector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/osgi/BundleContextSelector.java
@@ -88,7 +88,7 @@ public class BundleContextSelector extends ClassLoaderContextSelector {
return null;
}
- private void removeLoggerContext(LoggerContext context) {
+ private void removeLoggerContext(final LoggerContext context) {
CONTEXT_MAP.remove(context.getName());
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java
index a0c013d..3946bf8 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java
@@ -184,7 +184,7 @@ public final class DatePatternConverter extends LogEventPatternConverter impleme
cachedTime = new AtomicReference<>(fromEpochMillis(System.currentTimeMillis()));
}
- private CachedTime fromEpochMillis(long epochMillis) {
+ private CachedTime fromEpochMillis(final long epochMillis) {
final MutableInstant temp = new MutableInstant();
temp.initFromEpochMilli(epochMillis, 0);
return new CachedTime(temp);
@@ -266,7 +266,7 @@ public final class DatePatternConverter extends LogEventPatternConverter impleme
}
public void format(final long epochMilli, final StringBuilder output) {
- MutableInstant instant = getMutableInstant();
+ final MutableInstant instant = getMutableInstant();
instant.initFromEpochMilli(epochMilli, 0);
format(instant, output);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java
index 5ac11eb..cc925ad 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java
@@ -231,7 +231,7 @@ public final class HighlightConverter extends LogEventPatternConverter implement
public void format(final LogEvent event, final StringBuilder toAppendTo) {
int start = 0;
int end = 0;
- String levelStyle = levelStyles.get(event.getLevel().name());
+ final String levelStyle = levelStyles.get(event.getLevel().name());
if (!noAnsi) { // use ANSI: set prefix
start = toAppendTo.length();
if (levelStyle != null) {
@@ -256,7 +256,7 @@ public final class HighlightConverter extends LogEventPatternConverter implement
}
}
- String getLevelStyle(Level level) {
+ String getLevelStyle(final Level level) {
return levelStyles.get(level.name());
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/JAnsiTextRenderer.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/JAnsiTextRenderer.java
index 8377036..302ad5d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/JAnsiTextRenderer.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/JAnsiTextRenderer.java
@@ -172,7 +172,7 @@ public final class JAnsiTextRenderer implements TextRenderer {
public JAnsiTextRenderer(final String[] formats, final Map<String, Code[]> defaultStyleMap) {
String tempBeginToken = AnsiRenderer.BEGIN_TOKEN;
String tempEndToken = AnsiRenderer.END_TOKEN;
- Map<String, Code[]> map;
+ final Map<String, Code[]> map;
if (formats.length > 1) {
final String allStylesStr = formats[1];
// Style def split
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MapPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MapPatternConverter.java
index 8b684a4..4977dd8 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MapPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MapPatternConverter.java
@@ -53,7 +53,7 @@ public final class MapPatternConverter extends LogEventPatternConverter {
*
* @param options options, may be null.
*/
- private MapPatternConverter(final String[] options, String... format) {
+ private MapPatternConverter(final String[] options, final String... format) {
super(options != null && options.length > 0 ? "MAP{" + options[0] + '}' : "MAP", "map");
key = options != null && options.length > 0 ? options[0] : null;
this.format = format;
@@ -86,7 +86,7 @@ public final class MapPatternConverter extends LogEventPatternConverter {
*/
@Override
public void format(final LogEvent event, final StringBuilder toAppendTo) {
- MapMessage msg;
+ final MapMessage msg;
if (event.getMessage() instanceof MapMessage) {
msg = (MapMessage) event.getMessage();
} else {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java
index d76388d..4372afe 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java
@@ -139,7 +139,7 @@ public final class MessagePatternConverter extends LogEventPatternConverter {
return;
}
if (msg != null) {
- String result;
+ final String result;
if (msg instanceof MultiformatMessage) {
result = ((MultiformatMessage) msg).getFormattedMessage(formats);
} else {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java
index c65835c..869e85b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java
@@ -55,7 +55,7 @@ public abstract class NameAbbreviator {
return DEFAULT;
}
- boolean isNegativeNumber;
+ final boolean isNegativeNumber;
final String number;
// check if number is a negative number
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
index 5b32dec..67aaacc 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
@@ -186,7 +186,7 @@ public final class PatternParser {
config.setNanoClock(new SystemNanoClock());
}
}
- LogEventPatternConverter pc;
+ final LogEventPatternConverter pc;
if (converter instanceof LogEventPatternConverter) {
pc = (LogEventPatternConverter) converter;
handlesThrowable |= pc.handlesThrowable();
@@ -194,7 +194,7 @@ public final class PatternParser {
pc = new LiteralPatternConverter(config, Strings.EMPTY, true);
}
- FormattingInfo field;
+ final FormattingInfo field;
if (fieldIter.hasNext()) {
field = fieldIter.next();
} else {
@@ -275,7 +275,7 @@ public final class PatternParser {
final int begin = i; // position of first real char
int depth = 1; // already inside one level
while (depth > 0 && i < pattern.length()) {
- char c = pattern.charAt(i);
+ final char c = pattern.charAt(i);
if (c == '{') {
depth++;
} else if (c == '}') {
@@ -603,8 +603,8 @@ public final class PatternParser {
}
/** LOG4J2-2564: Returns true if all method parameters are valid for injection. */
- private static boolean areValidNewInstanceParameters(Class<?>[] parameterTypes) {
- for (Class<?> clazz : parameterTypes) {
+ private static boolean areValidNewInstanceParameters(final Class<?>[] parameterTypes) {
+ for (final Class<?> clazz : parameterTypes) {
if (!clazz.isAssignableFrom(Configuration.class)
&& !(clazz.isArray() && "[Ljava.lang.String;".equals(clazz.getName()))) {
return false;
@@ -658,7 +658,7 @@ public final class PatternParser {
noConsoleNoAnsi);
if (pc == null) {
- StringBuilder msg;
+ final StringBuilder msg;
if (Strings.isEmpty(converterId)) {
msg = new StringBuilder("Empty conversion specifier starting at position ");
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ProcessIdPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ProcessIdPatternConverter.java
index 4d73cdc..9e9eadd 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ProcessIdPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ProcessIdPatternConverter.java
@@ -32,7 +32,7 @@ public final class ProcessIdPatternConverter extends LogEventPatternConverter {
private ProcessIdPatternConverter(final String... options) {
super("Process ID", "pid");
final String defaultValue = options.length > 0 ? options[0] : DEFAULT_DEFAULT_VALUE;
- String discoveredPid = ProcessIdUtil.getProcessId();
+ final String discoveredPid = ProcessIdUtil.getProcessId();
pid = discoveredPid.equals(ProcessIdUtil.DEFAULT_PROCESSID) ? defaultValue : discoveredPid;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RepeatPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RepeatPatternConverter.java
index 0db0a3d..74141b2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RepeatPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RepeatPatternConverter.java
@@ -57,7 +57,7 @@ public final class RepeatPatternConverter extends LogEventPatternConverter {
try {
count = Integer.parseInt(options[1].trim());
result = Strings.repeat(options[0], count);
- } catch (Exception ex) {
+ } catch (final Exception ex) {
LOGGER.error("The repeat count is not an integer: {}", options[1].trim());
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.java
index 5de51d8..11eec46 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.java
@@ -127,9 +127,9 @@ public class ThrowablePatternConverter extends LogEventPatternConverter {
}
private void formatSubShortOption(final Throwable t, final String suffix, final StringBuilder buffer) {
- StackTraceElement[] trace;
+ final StackTraceElement[] trace;
StackTraceElement throwingMethod = null;
- int len;
+ final int len;
if (t != null) {
trace = t.getStackTrace();
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/script/ScriptFile.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/script/ScriptFile.java
index 097c191..6d52051 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/script/ScriptFile.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/script/ScriptFile.java
@@ -92,7 +92,7 @@ public class ScriptFile extends AbstractScript {
}
final Charset actualCharset = charset == null ? Charset.defaultCharset() : charset;
- String scriptText;
+ final String scriptText;
try (final Reader reader = new InputStreamReader(
file != null ? new FileInputStream(file) : uri.toURL().openStream(), actualCharset)) {
scriptText = IOUtils.toString(reader);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/BasicContextSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/BasicContextSelector.java
index 1c19e36..c89c1be 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/BasicContextSelector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/BasicContextSelector.java
@@ -33,16 +33,16 @@ public class BasicContextSelector implements ContextSelector {
private static final LoggerContext CONTEXT = new LoggerContext("Default");
@Override
- public void shutdown(String fqcn, ClassLoader loader, boolean currentContext, boolean allContexts) {
- LoggerContext ctx = getContext(fqcn, loader, currentContext);
+ public void shutdown(final String fqcn, final ClassLoader loader, final boolean currentContext, final boolean allContexts) {
+ final LoggerContext ctx = getContext(fqcn, loader, currentContext);
if (ctx != null && ctx.isStarted()) {
ctx.stop(DEFAULT_STOP_TIMEOUT, TimeUnit.MILLISECONDS);
}
}
@Override
- public boolean hasContext(String fqcn, ClassLoader loader, boolean currentContext) {
- LoggerContext ctx = getContext(fqcn, loader, currentContext);
+ public boolean hasContext(final String fqcn, final ClassLoader loader, final boolean currentContext) {
+ final LoggerContext ctx = getContext(fqcn, loader, currentContext);
return ctx != null && ctx.isStarted();
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java
index 73bb18f..f0810be 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java
@@ -77,7 +77,7 @@ public class ClassLoaderContextSelector implements ContextSelector, LoggerContex
}
@Override
- public void contextShutdown(org.apache.logging.log4j.spi.LoggerContext loggerContext) {
+ public void contextShutdown(final org.apache.logging.log4j.spi.LoggerContext loggerContext) {
if (loggerContext instanceof LoggerContext) {
removeContext((LoggerContext) loggerContext);
}
@@ -85,7 +85,7 @@ public class ClassLoaderContextSelector implements ContextSelector, LoggerContex
@Override
public boolean hasContext(final String fqcn, final ClassLoader loader, final boolean currentContext) {
- LoggerContext ctx;
+ final LoggerContext ctx;
if (currentContext) {
ctx = ContextAnchor.THREAD_CONTEXT.get();
} else if (loader != null) {
@@ -101,10 +101,10 @@ public class ClassLoaderContextSelector implements ContextSelector, LoggerContex
return ctx != null && ctx.isStarted();
}
- private LoggerContext findContext(ClassLoader loaderOrNull) {
+ private LoggerContext findContext(final ClassLoader loaderOrNull) {
final ClassLoader loader = loaderOrNull != null ? loaderOrNull : ClassLoader.getSystemClassLoader();
final String name = toContextMapKey(loader);
- AtomicReference<WeakReference<LoggerContext>> ref = CONTEXT_MAP.get(name);
+ final AtomicReference<WeakReference<LoggerContext>> ref = CONTEXT_MAP.get(name);
if (ref != null) {
final WeakReference<LoggerContext> weakRef = ref.get();
return weakRef.get();
@@ -215,11 +215,11 @@ public class ClassLoaderContextSelector implements ContextSelector, LoggerContex
} */
}
}
- LoggerContext ctx = createContext(name, configLocation);
+ final LoggerContext ctx = createContext(name, configLocation);
if (entry != null) {
ctx.putObject(entry.getKey(), entry.getValue());
}
- LoggerContext newContext = CONTEXT_MAP.computeIfAbsent(name,
+ final LoggerContext newContext = CONTEXT_MAP.computeIfAbsent(name,
k -> new AtomicReference<>(new WeakReference<>(ctx))).get().get();
if (newContext != null && newContext == ctx) {
newContext.addShutdownListener(this);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ContextSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ContextSelector.java
index 14b776d..4245a16 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ContextSelector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ContextSelector.java
@@ -54,7 +54,7 @@ public interface ContextSelector {
* @return true if a LoggerContext has been installed, false otherwise.
* @since 2.13.0
*/
- default boolean hasContext(String fqcn, ClassLoader loader, boolean currentContext) {
+ default boolean hasContext(final String fqcn, final ClassLoader loader, final boolean currentContext) {
return false;
}
@@ -77,8 +77,8 @@ public interface ContextSelector {
* for the caller if a more appropriate Context can be determined.
* @return The LoggerContext.
*/
- default LoggerContext getContext(String fqcn, ClassLoader loader, Map.Entry<String, Object> entry, boolean currentContext) {
- LoggerContext lc = getContext(fqcn, loader, currentContext);
+ default LoggerContext getContext(final String fqcn, final ClassLoader loader, final Map.Entry<String, Object> entry, final boolean currentContext) {
+ final LoggerContext lc = getContext(fqcn, loader, currentContext);
if (lc != null) {
lc.putObject(entry.getKey(), entry.getValue());
}
@@ -106,9 +106,9 @@ public interface ContextSelector {
* @param configLocation The location of the configuration for the LoggerContext.
* @return The LoggerContext.
*/
- default LoggerContext getContext(String fqcn, ClassLoader loader, Map.Entry<String, Object> entry,
- boolean currentContext, URI configLocation) {
- LoggerContext lc = getContext(fqcn, loader, currentContext, configLocation);
+ default LoggerContext getContext(final String fqcn, final ClassLoader loader, final Map.Entry<String, Object> entry,
+ final boolean currentContext, final URI configLocation) {
+ final LoggerContext lc = getContext(fqcn, loader, currentContext, configLocation);
if (lc != null) {
lc.putObject(entry.getKey(), entry.getValue());
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java
index 6822c96..9d0a49c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java
@@ -94,10 +94,10 @@ public class JndiContextSelector implements NamedContextSelector {
private static final StatusLogger LOGGER = StatusLogger.getLogger();
@Override
- public void shutdown(String fqcn, ClassLoader loader, boolean currentContext, boolean allContexts) {
+ public void shutdown(final String fqcn, final ClassLoader loader, final boolean currentContext, final boolean allContexts) {
LoggerContext ctx = ContextAnchor.THREAD_CONTEXT.get();
if (ctx == null) {
- String loggingContextName = getContextName();
+ final String loggingContextName = getContextName();
if (loggingContextName != null) {
ctx = CONTEXT_MAP.get(loggingContextName);
}
@@ -108,10 +108,10 @@ public class JndiContextSelector implements NamedContextSelector {
}
@Override
- public boolean hasContext(String fqcn, ClassLoader loader, boolean currentContext) {
+ public boolean hasContext(final String fqcn, final ClassLoader loader, final boolean currentContext) {
LoggerContext ctx = ContextAnchor.THREAD_CONTEXT.get();
if (ctx == null) {
- String loggingContextName = getContextName();
+ final String loggingContextName = getContextName();
if (loggingContextName == null) {
return false;
}
@@ -134,7 +134,7 @@ public class JndiContextSelector implements NamedContextSelector {
return lc;
}
- String loggingContextName = getContextName();
+ final String loggingContextName = getContextName();
return loggingContextName == null ? CONTEXT : locateContext(loggingContextName, null, configLocation);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/ClockFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/ClockFactory.java
index 4753b51..aff68c2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/ClockFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/ClockFactory.java
@@ -74,7 +74,7 @@ public final class ClockFactory {
}
private static Map<String, Supplier<Clock>> aliases() {
- Map<String, Supplier<Clock>> result = new HashMap<>();
+ final Map<String, Supplier<Clock>> result = new HashMap<>();
result.put("SystemClock", new Supplier<Clock>() { @Override public Clock get() { return new SystemClock(); } });
result.put("SystemMillisClock", new Supplier<Clock>() { @Override public Clock get() { return new SystemMillisClock(); } });
result.put("CachedClock", new Supplier<Clock>() { @Override public Clock get() { return CachedClock.instance(); } });
@@ -90,7 +90,7 @@ public final class ClockFactory {
LOGGER.trace("Using default SystemClock for timestamps.");
return logSupportedPrecision(new SystemClock());
}
- Supplier<Clock> specified = aliases().get(userRequest);
+ final Supplier<Clock> specified = aliases().get(userRequest);
if (specified != null) {
LOGGER.trace("Using specified {} for timestamps.", userRequest);
return logSupportedPrecision(specified.get());
@@ -106,8 +106,8 @@ public final class ClockFactory {
}
}
- private static Clock logSupportedPrecision(Clock clock) {
- String support = clock instanceof PreciseClock ? "supports" : "does not support";
+ private static Clock logSupportedPrecision(final Clock clock) {
+ final String support = clock instanceof PreciseClock ? "supports" : "does not support";
LOGGER.debug("{} {} precise timestamps.", clock.getClass().getName(), support);
return clock;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/MutableInstant.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/MutableInstant.java
index e63f3da..483ed7a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/MutableInstant.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/MutableInstant.java
@@ -133,7 +133,7 @@ public class MutableInstant implements Instant, Serializable, TemporalAccessor {
* the second element is the number of nanoseconds, later along the time-line, from the start of the millisecond
*/
public static void instantToMillisAndNanos(final long epochSecond, final int nano, final long[] result) {
- int millis = nano / NANOS_PER_MILLI;
+ final int millis = nano / NANOS_PER_MILLI;
result[0] = epochSecond * MILLIS_PER_SECOND + millis;
result[1] = nano - (millis * NANOS_PER_MILLI); // cheaper than nanoOfSecond % NANOS_PER_MILLI
}
@@ -207,7 +207,7 @@ public class MutableInstant implements Instant, Serializable, TemporalAccessor {
if (!(object instanceof MutableInstant)) {
return false;
}
- MutableInstant other = (MutableInstant) object;
+ final MutableInstant other = (MutableInstant) object;
return epochSecond == other.epochSecond && nanoOfSecond == other.nanoOfSecond;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/SystemClock.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/SystemClock.java
index 45f5257..59823bf 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/SystemClock.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/SystemClock.java
@@ -45,9 +45,9 @@ public final class SystemClock implements Clock, PreciseClock {
* {@inheritDoc}
*/
@Override
- public void init(MutableInstant mutableInstant) {
+ public void init(final MutableInstant mutableInstant) {
if (USE_PRECISE_CLOCK) {
- Instant instant = java.time.Clock.systemUTC().instant();
+ final Instant instant = java.time.Clock.systemUTC().instant();
mutableInstant.initFromEpochSecond(instant.getEpochSecond(), instant.getNano());
} else {
mutableInstant.initFromEpochMilli(System.currentTimeMillis(), 0);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FastDateParser.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FastDateParser.java
index 16bc0ce..5450100 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FastDateParser.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FastDateParser.java
@@ -138,7 +138,7 @@ public class FastDateParser implements DateParser, Serializable {
final Calendar definingCalendar = Calendar.getInstance(timeZone, locale);
- int centuryStartYear;
+ final int centuryStartYear;
if(centuryStart!=null) {
definingCalendar.setTime(centuryStart);
centuryStartYear= definingCalendar.get(Calendar.YEAR);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FormatCache.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FormatCache.java
index f1eff09..a75fa13 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FormatCache.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/format/FormatCache.java
@@ -197,7 +197,7 @@ abstract class FormatCache<F extends Format> {
String pattern = cDateTimeInstanceCache.get(key);
if (pattern == null) {
try {
- DateFormat formatter;
+ final DateFormat formatter;
if (dateStyle == null) {
formatter = DateFormat.getTimeInstance(timeStyle.intValue(), locale);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java
index ce04f44..554c4cc 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java
@@ -152,7 +152,7 @@ public class CommandLine {
* @param command the object to initialize from the command line arguments
* @throws InitializationException if the specified command object does not have a {@link Command}, {@link Option} or {@link Parameters} annotation
*/
- public CommandLine(Object command) {
+ public CommandLine(final Object command) {
interpreter = new Interpreter(command);
}
@@ -197,8 +197,8 @@ public class CommandLine {
* @since 0.9.7
* @see Command#subcommands()
*/
- public CommandLine addSubcommand(String name, Object command) {
- CommandLine commandLine = toCommandLine(command);
+ public CommandLine addSubcommand(final String name, final Object command) {
+ final CommandLine commandLine = toCommandLine(command);
commandLine.parent = this;
interpreter.commands.put(name, commandLine);
return this;
@@ -259,9 +259,9 @@ public class CommandLine {
* @return this {@code CommandLine} object, to allow method chaining
* @since 0.9.7
*/
- public CommandLine setOverwrittenOptionsAllowed(boolean newValue) {
+ public CommandLine setOverwrittenOptionsAllowed(final boolean newValue) {
this.overwrittenOptionsAllowed = newValue;
- for (CommandLine command : interpreter.commands.values()) {
+ for (final CommandLine command : interpreter.commands.values()) {
command.setOverwrittenOptionsAllowed(newValue);
}
return this;
@@ -288,9 +288,9 @@ public class CommandLine {
* @since 0.9.7
* @see #getUnmatchedArguments()
*/
- public CommandLine setUnmatchedArgumentsAllowed(boolean newValue) {
+ public CommandLine setUnmatchedArgumentsAllowed(final boolean newValue) {
this.unmatchedArgumentsAllowed = newValue;
- for (CommandLine command : interpreter.commands.values()) {
+ for (final CommandLine command : interpreter.commands.values()) {
command.setUnmatchedArgumentsAllowed(newValue);
}
return this;
@@ -325,8 +325,8 @@ public class CommandLine {
* @throws ParameterException if the specified command line arguments are invalid
* @since 0.9.7
*/
- public static <T> T populateCommand(T command, String... args) {
- CommandLine cli = toCommandLine(command);
+ public static <T> T populateCommand(final T command, final String... args) {
+ final CommandLine cli = toCommandLine(command);
cli.parse(args);
return command;
}
@@ -345,7 +345,7 @@ public class CommandLine {
* @throws ParameterException if the specified command line arguments are invalid; use
* {@link ParameterException#getCommandLine()} to get the command or subcommand whose user input was invalid
*/
- public List<CommandLine> parse(String... args) {
+ public List<CommandLine> parse(final String... args) {
return interpreter.parse(args);
}
/**
@@ -407,7 +407,7 @@ public class CommandLine {
* @since 2.0 */
public static class DefaultExceptionHandler implements IExceptionHandler {
@Override
- public List<Object> handleException(ParameterException ex, PrintStream out, Help.Ansi ansi, String... args) {
+ public List<Object> handleException(final ParameterException ex, final PrintStream out, final Help.Ansi ansi, final String... args) {
out.println(ex.getMessage());
ex.getCommandLine().usage(out, ansi);
return Collections.emptyList();
@@ -429,8 +429,8 @@ public class CommandLine {
* @param ansi for printing help messages using ANSI styles and colors
* @return {@code true} if help was printed, {@code false} otherwise
* @since 2.0 */
- public static boolean printHelpIfRequested(List<CommandLine> parsedCommands, PrintStream out, Help.Ansi ansi) {
- for (CommandLine parsed : parsedCommands) {
+ public static boolean printHelpIfRequested(final List<CommandLine> parsedCommands, final PrintStream out, final Help.Ansi ansi) {
+ for (final CommandLine parsed : parsedCommands) {
if (parsed.isUsageHelpRequested()) {
parsed.usage(out, ansi);
return true;
@@ -441,19 +441,19 @@ public class CommandLine {
}
return false;
}
- private static Object execute(CommandLine parsed) {
- Object command = parsed.getCommand();
+ private static Object execute(final CommandLine parsed) {
+ final Object command = parsed.getCommand();
if (command instanceof Runnable) {
try {
((Runnable) command).run();
return null;
- } catch (Exception ex) {
+ } catch (final Exception ex) {
throw new ExecutionException(parsed, "Error while running command (" + command + ")", ex);
}
} else if (command instanceof Callable) {
try {
return ((Callable<Object>) command).call();
- } catch (Exception ex) {
+ } catch (final Exception ex) {
throw new ExecutionException(parsed, "Error while calling command (" + command + ")", ex);
}
}
@@ -482,7 +482,7 @@ public class CommandLine {
* {@link ExecutionException#getCommandLine()} to get the command or subcommand where processing failed
*/
@Override
- public List<Object> handleParseResult(List<CommandLine> parsedCommands, PrintStream out, Help.Ansi ansi) {
+ public List<Object> handleParseResult(final List<CommandLine> parsedCommands, final PrintStream out, final Help.Ansi ansi) {
if (printHelpIfRequested(parsedCommands, out, ansi)) { return Collections.emptyList(); }
return Arrays.asList(execute(parsedCommands.get(0)));
}
@@ -533,9 +533,9 @@ public class CommandLine {
* {@link ExecutionException#getCommandLine()} to get the command or subcommand where processing failed
*/
@Override
- public List<Object> handleParseResult(List<CommandLine> parsedCommands, PrintStream out, Help.Ansi ansi) {
+ public List<Object> handleParseResult(final List<CommandLine> parsedCommands, final PrintStream out, final Help.Ansi ansi) {
if (printHelpIfRequested(parsedCommands, out, ansi)) { return Collections.emptyList(); }
- CommandLine last = parsedCommands.get(parsedCommands.size() - 1);
+ final CommandLine last = parsedCommands.get(parsedCommands.size() - 1);
return Arrays.asList(execute(last));
}
}
@@ -559,12 +559,12 @@ public class CommandLine {
* {@link ExecutionException#getCommandLine()} to get the command or subcommand where processing failed
*/
@Override
- public List<Object> handleParseResult(List<CommandLine> parsedCommands, PrintStream out, Help.Ansi ansi) {
+ public List<Object> handleParseResult(final List<CommandLine> parsedCommands, final PrintStream out, final Help.Ansi ansi) {
if (printHelpIfRequested(parsedCommands, out, ansi)) {
return null;
}
- List<Object> result = new ArrayList<Object>();
- for (CommandLine parsed : parsedCommands) {
+ final List<Object> result = new ArrayList<Object>();
+ for (final CommandLine parsed : parsedCommands) {
result.add(execute(parsed));
}
return result;
@@ -607,7 +607,7 @@ public class CommandLine {
* @see RunLast
* @see RunAll
* @since 2.0 */
- public List<Object> parseWithHandler(IParseResultHandler handler, PrintStream out, String... args) {
+ public List<Object> parseWithHandler(final IParseResultHandler handler, final PrintStream out, final String... args) {
return parseWithHandlers(handler, out, Help.Ansi.AUTO, new DefaultExceptionHandler(), args);
}
/**
@@ -652,11 +652,11 @@ public class CommandLine {
* @see RunAll
* @see DefaultExceptionHandler
* @since 2.0 */
- public List<Object> parseWithHandlers(IParseResultHandler handler, PrintStream out, Help.Ansi ansi, IExceptionHandler exceptionHandler, String... args) {
+ public List<Object> parseWithHandlers(final IParseResultHandler handler, final PrintStream out, final Help.Ansi ansi, final IExceptionHandler exceptionHandler, final String... args) {
try {
- List<CommandLine> result = parse(args);
+ final List<CommandLine> result = parse(args);
return handler.handleParseResult(result, out, ansi);
- } catch (ParameterException ex) {
+ } catch (final ParameterException ex) {
return exceptionHandler.handleException(ex, out, ansi, args);
}
}
@@ -666,7 +666,7 @@ public class CommandLine {
* @param out the print stream to print the help message to
* @throws IllegalArgumentException if the specified command object does not have a {@link Command}, {@link Option} or {@link Parameters} annotation
*/
- public static void usage(Object command, PrintStream out) {
+ public static void usage(final Object command, final PrintStream out) {
toCommandLine(command).usage(out);
}
@@ -678,7 +678,7 @@ public class CommandLine {
* @param ansi whether the usage message should contain ANSI escape codes or not
* @throws IllegalArgumentException if the specified command object does not have a {@link Command}, {@link Option} or {@link Parameters} annotation
*/
- public static void usage(Object command, PrintStream out, Help.Ansi ansi) {
+ public static void usage(final Object command, final PrintStream out, final Help.Ansi ansi) {
toCommandLine(command).usage(out, ansi);
}
@@ -690,7 +690,7 @@ public class CommandLine {
* @param colorScheme the {@code ColorScheme} defining the styles for options, parameters and commands when ANSI is enabled
* @throws IllegalArgumentException if the specified command object does not have a {@link Command}, {@link Option} or {@link Parameters} annotation
*/
- public static void usage(Object command, PrintStream out, Help.ColorScheme colorScheme) {
+ public static void usage(final Object command, final PrintStream out, final Help.ColorScheme colorScheme) {
toCommandLine(command).usage(out, colorScheme);
}
@@ -699,7 +699,7 @@ public class CommandLine {
* @param out the printStream to print to
* @see #usage(PrintStream, Help.ColorScheme)
*/
- public void usage(PrintStream out) {
+ public void usage(final PrintStream out) {
usage(out, Help.Ansi.AUTO);
}
@@ -709,7 +709,7 @@ public class CommandLine {
* @param ansi whether the usage message should include ANSI escape codes or not
* @see #usage(PrintStream, Help.ColorScheme)
*/
- public void usage(PrintStream out, Help.Ansi ansi) {
+ public void usage(final PrintStream out, final Help.Ansi ansi) {
usage(out, Help.defaultColorScheme(ansi));
}
/**
@@ -744,8 +744,8 @@ public class CommandLine {
* @param out the {@code PrintStream} to print the usage help message to
* @param colorScheme the {@code ColorScheme} defining the styles for options, parameters and commands when ANSI is enabled
*/
- public void usage(PrintStream out, Help.ColorScheme colorScheme) {
- Help help = new Help(interpreter.command, colorScheme).addAllSubcommands(getSubcommands());
+ public void usage(final PrintStream out, final Help.ColorScheme colorScheme) {
+ final Help help = new Help(interpreter.command, colorScheme).addAllSubcommands(getSubcommands());
if (!Help.DEFAULT_SEPARATOR.equals(getSeparator())) {
help.separator = getSeparator();
help.parameterLabelRenderer = help.createDefaultParamLabelRenderer(); // update for new separator
@@ -753,7 +753,7 @@ public class CommandLine {
if (!Help.DEFAULT_COMMAND_NAME.equals(getCommandName())) {
help.commandName = getCommandName();
}
- StringBuilder sb = new StringBuilder()
+ final StringBuilder sb = new StringBuilder()
.append(help.headerHeading())
.append(help.header())
.append(help.synopsisHeading()) //e.g. Usage:
@@ -777,7 +777,7 @@ public class CommandLine {
* @see #printVersionHelp(PrintStream, Help.Ansi)
* @since 0.9.8
*/
- public void printVersionHelp(PrintStream out) { printVersionHelp(out, Help.Ansi.AUTO); }
+ public void printVersionHelp(final PrintStream out) { printVersionHelp(out, Help.Ansi.AUTO); }
/**
* Prints version information from the {@link Command#version()} annotation to the specified {@code PrintStream}.
@@ -790,8 +790,8 @@ public class CommandLine {
* @see #isVersionHelpRequested()
* @since 0.9.8
*/
- public void printVersionHelp(PrintStream out, Help.Ansi ansi) {
- for (String versionInfo : versionLines) {
+ public void printVersionHelp(final PrintStream out, final Help.Ansi ansi) {
+ for (final String versionInfo : versionLines) {
out.println(ansi.new Text(versionInfo));
}
}
@@ -808,8 +808,8 @@ public class CommandLine {
* @see #isVersionHelpRequested()
* @since 1.0.0
*/
- public void printVersionHelp(PrintStream out, Help.Ansi ansi, Object... params) {
- for (String versionInfo : versionLines) {
+ public void printVersionHelp(final PrintStream out, final Help.Ansi ansi, final Object... params) {
+ for (final String versionInfo : versionLines) {
out.println(ansi.new Text(String.format(versionInfo, params)));
}
}
@@ -832,7 +832,7 @@ public class CommandLine {
* @see #parseWithHandlers(IParseResultHandler, PrintStream, Help.Ansi, IExceptionHandler, String...)
* @see RunFirst
*/
- public static <C extends Callable<T>, T> T call(C callable, PrintStream out, String... args) {
+ public static <C extends Callable<T>, T> T call(final C callable, final PrintStream out, final String... args) {
return call(callable, out, Help.Ansi.AUTO, args);
}
/**
@@ -880,9 +880,9 @@ public class CommandLine {
* @see #parseWithHandlers(IParseResultHandler, PrintStream, Help.Ansi, IExceptionHandler, String...)
* @see RunLast
*/
- public static <C extends Callable<T>, T> T call(C callable, PrintStream out, Help.Ansi ansi, String... args) {
- CommandLine cmd = new CommandLine(callable); // validate command outside of try-catch
- List<Object> results = cmd.parseWithHandlers(new RunLast(), out, ansi, new DefaultExceptionHandler(), args);
+ public static <C extends Callable<T>, T> T call(final C callable, final PrintStream out, final Help.Ansi ansi, final String... args) {
+ final CommandLine cmd = new CommandLine(callable); // validate command outside of try-catch
+ final List<Object> results = cmd.parseWithHandlers(new RunLast(), out, ansi, new DefaultExceptionHandler(), args);
return results == null || results.isEmpty() ? null : (T) results.get(0);
}
@@ -902,7 +902,7 @@ public class CommandLine {
* @see #parseWithHandlers(IParseResultHandler, PrintStream, Help.Ansi, IExceptionHandler, String...)
* @see RunFirst
*/
- public static <R extends Runnable> void run(R runnable, PrintStream out, String... args) {
+ public static <R extends Runnable> void run(final R runnable, final PrintStream out, final String... args) {
run(runnable, out, Help.Ansi.AUTO, args);
}
/**
@@ -948,8 +948,8 @@ public class CommandLine {
* @see #parseWithHandlers(IParseResultHandler, PrintStream, Help.Ansi, IExceptionHandler, String...)
* @see RunLast
*/
- public static <R extends Runnable> void run(R runnable, PrintStream out, Help.Ansi ansi, String... args) {
- CommandLine cmd = new CommandLine(runnable); // validate command outside of try-catch
+ public static <R extends Runnable> void run(final R runnable, final PrintStream out, final Help.Ansi ansi, final String... args) {
+ final CommandLine cmd = new CommandLine(runnable); // validate command outside of try-catch
cmd.parseWithHandlers(new RunLast(), out, ansi, new DefaultExceptionHandler(), args);
}
@@ -996,9 +996,9 @@ public class CommandLine {
* @return this CommandLine object, to allow method chaining
* @see #addSubcommand(String, Object)
*/
- public <K> CommandLine registerConverter(Class<K> cls, ITypeConverter<K> converter) {
+ public <K> CommandLine registerConverter(final Class<K> cls, final ITypeConverter<K> converter) {
interpreter.converterRegistry.put(Assert.notNull(cls, "class"), Assert.notNull(converter, "converter"));
- for (CommandLine command : interpreter.commands.values()) {
+ for (final CommandLine command : interpreter.commands.values()) {
command.registerConverter(cls, converter);
}
return this;
@@ -1014,7 +1014,7 @@ public class CommandLine {
* The separator may also be set declaratively with the {@link CommandLine.Command#separator()} annotation attribute.
* @param separator the String that separates option names from option values
* @return this {@code CommandLine} object, to allow method chaining */
- public CommandLine setSeparator(String separator) {
+ public CommandLine setSeparator(final String separator) {
interpreter.separator = Assert.notNull(separator, "separator");
return this;
}
@@ -1030,35 +1030,35 @@ public class CommandLine {
* The command name may also be set declaratively with the {@link CommandLine.Command#name()} annotation attribute.
* @param commandName command name (also called program name) displayed in the usage help synopsis
* @return this {@code CommandLine} object, to allow method chaining */
- public CommandLine setCommandName(String commandName) {
+ public CommandLine setCommandName(final String commandName) {
this.commandName = Assert.notNull(commandName, "commandName");
return this;
}
- private static boolean empty(String str) { return str == null || str.trim().length() == 0; }
- private static boolean empty(Object[] array) { return array == null || array.length == 0; }
- private static boolean empty(Text txt) { return txt == null || txt.plain.toString().trim().length() == 0; }
- private static String str(String[] arr, int i) { return (arr == null || arr.length == 0) ? "" : arr[i]; }
- private static boolean isBoolean(Class<?> type) { return type == Boolean.class || type == Boolean.TYPE; }
- private static CommandLine toCommandLine(Object obj) { return obj instanceof CommandLine ? (CommandLine) obj : new CommandLine(obj);}
- private static boolean isMultiValue(Field field) { return isMultiValue(field.getType()); }
- private static boolean isMultiValue(Class<?> cls) { return cls.isArray() || Collection.class.isAssignableFrom(cls) || Map.class.isAssignableFrom(cls); }
- private static Class<?>[] getTypeAttribute(Field field) {
- Class<?>[] explicit = field.isAnnotationPresent(Parameters.class) ? field.getAnnotation(Parameters.class).type() : field.getAnnotation(Option.class).type();
+ private static boolean empty(final String str) { return str == null || str.trim().length() == 0; }
+ private static boolean empty(final Object[] array) { return array == null || array.length == 0; }
+ private static boolean empty(final Text txt) { return txt == null || txt.plain.toString().trim().length() == 0; }
+ private static String str(final String[] arr, final int i) { return (arr == null || arr.length == 0) ? "" : arr[i]; }
+ private static boolean isBoolean(final Class<?> type) { return type == Boolean.class || type == Boolean.TYPE; }
+ private static CommandLine toCommandLine(final Object obj) { return obj instanceof CommandLine ? (CommandLine) obj : new CommandLine(obj);}
+ private static boolean isMultiValue(final Field field) { return isMultiValue(field.getType()); }
+ private static boolean isMultiValue(final Class<?> cls) { return cls.isArray() || Collection.class.isAssignableFrom(cls) || Map.class.isAssignableFrom(cls); }
+ private static Class<?>[] getTypeAttribute(final Field field) {
+ final Class<?>[] explicit = field.isAnnotationPresent(Parameters.class) ? field.getAnnotation(Parameters.class).type() : field.getAnnotation(Option.class).type();
if (explicit.length > 0) { return explicit; }
if (field.getType().isArray()) { return new Class<?>[] { field.getType().getComponentType() }; }
if (isMultiValue(field)) {
- Type type = field.getGenericType(); // e.g. Map<Long, ? extends Number>
+ final Type type = field.getGenericType(); // e.g. Map<Long, ? extends Number>
if (type instanceof ParameterizedType) {
- ParameterizedType parameterizedType = (ParameterizedType) type;
- Type[] paramTypes = parameterizedType.getActualTypeArguments(); // e.g. ? extends Number
- Class<?>[] result = new Class<?>[paramTypes.length];
+ final ParameterizedType parameterizedType = (ParameterizedType) type;
+ final Type[] paramTypes = parameterizedType.getActualTypeArguments(); // e.g. ? extends Number
+ final Class<?>[] result = new Class<?>[paramTypes.length];
for (int i = 0; i < paramTypes.length; i++) {
if (paramTypes[i] instanceof Class) { result[i] = (Class<?>) paramTypes[i]; continue; } // e.g. Long
if (paramTypes[i] instanceof WildcardType) { // e.g. ? extends Number
- WildcardType wildcardType = (WildcardType) paramTypes[i];
- Type[] lower = wildcardType.getLowerBounds(); // e.g. []
+ final WildcardType wildcardType = (WildcardType) paramTypes[i];
+ final Type[] lower = wildcardType.getLowerBounds(); // e.g. []
if (lower.length > 0 && lower[0] instanceof Class) { result[i] = (Class<?>) lower[0]; continue; }
- Type[] upper = wildcardType.getUpperBounds(); // e.g. Number
+ final Type[] upper = wildcardType.getUpperBounds(); // e.g. Number
if (upper.length > 0 && upper[0] instanceof Class) { result[i] = (Class<?>) upper[0]; continue; }
}
Arrays.fill(result, String.class); return result; // too convoluted generic type, giving up
@@ -1656,7 +1656,7 @@ public class CommandLine {
* @param unspecified {@code true} if no arity was specified on the option/parameter (value is based on type)
* @param originalValue the original value that was specified on the option or parameter
*/
- public Range(int min, int max, boolean variable, boolean unspecified, String originalValue) {
+ public Range(final int min, final int max, final boolean variable, final boolean unspecified, final String originalValue) {
this.min = min;
this.max = max;
this.isVariable = variable;
@@ -1667,7 +1667,7 @@ public class CommandLine {
* or the field type's default arity if no arity was specified.
* @param field the field whose Option annotation to inspect
* @return a new {@code Range} based on the Option arity annotation on the specified field */
- public static Range optionArity(Field field) {
+ public static Range optionArity(final Field field) {
return field.isAnnotationPresent(Option.class)
? adjustForType(Range.valueOf(field.getAnnotation(Option.class).arity()), field)
: new Range(0, 0, false, true, "0");
@@ -1676,7 +1676,7 @@ public class CommandLine {
* or the field type's default arity if no arity was specified.
* @param field the field whose Parameters annotation to inspect
* @return a new {@code Range} based on the Parameters arity annotation on the specified field */
- public static Range parameterArity(Field field) {
+ public static Range parameterArity(final Field field) {
return field.isAnnotationPresent(Parameters.class)
? adjustForType(Range.valueOf(field.getAnnotation(Parameters.class).arity()), field)
: new Range(0, 0, false, true, "0");
@@ -1684,12 +1684,12 @@ public class CommandLine {
/** Returns a new {@code Range} based on the {@link Parameters#index()} annotation on the specified field.
* @param field the field whose Parameters annotation to inspect
* @return a new {@code Range} based on the Parameters index annotation on the specified field */
- public static Range parameterIndex(Field field) {
+ public static Range parameterIndex(final Field field) {
return field.isAnnotationPresent(Parameters.class)
? Range.valueOf(field.getAnnotation(Parameters.class).index())
: new Range(0, 0, false, true, "0");
}
- static Range adjustForType(Range result, Field field) {
+ static Range adjustForType(final Range result, final Field field) {
return result.isUnspecified ? defaultArity(field) : result;
}
/** Returns the default arity {@code Range}: for {@link Option options} this is 0 for booleans and 1 for
@@ -1698,8 +1698,8 @@ public class CommandLine {
* @param field the field whose default arity to return
* @return a new {@code Range} indicating the default arity of the specified field
* @since 2.0 */
- public static Range defaultArity(Field field) {
- Class<?> type = field.getType();
+ public static Range defaultArity(final Field field) {
+ final Class<?> type = field.getType();
if (field.isAnnotationPresent(Option.class)) {
return defaultArity(type);
}
@@ -1711,14 +1711,14 @@ public class CommandLine {
/** Returns the default arity {@code Range} for {@link Option options}: booleans have arity 0, other types have arity 1.
* @param type the type whose default arity to return
* @return a new {@code Range} indicating the default arity of the specified type */
- public static Range defaultArity(Class<?> type) {
+ public static Range defaultArity(final Class<?> type) {
return isBoolean(type) ? Range.valueOf("0") : Range.valueOf("1");
}
private int size() { return 1 + max - min; }
- static Range parameterCapacity(Field field) {
- Range arity = parameterArity(field);
+ static Range parameterCapacity(final Field field) {
+ final Range arity = parameterArity(field);
if (!isMultiValue(field)) { return arity; }
- Range index = parameterIndex(field);
+ final Range index = parameterIndex(field);
if (arity.max == 0) { return arity; }
if (index.size() == 1) { return arity; }
if (index.isVariable) { return Range.valueOf(arity.min + "..*"); }
@@ -1734,7 +1734,7 @@ public class CommandLine {
* @return a new {@code Range} value */
public static Range valueOf(String range) {
range = range.trim();
- boolean unspecified = range.length() == 0 || range.startsWith(".."); // || range.endsWith("..");
+ final boolean unspecified = range.length() == 0 || range.startsWith(".."); // || range.endsWith("..");
int min = -1, max = -1;
boolean variable = false;
int dots = -1;
@@ -1749,10 +1749,10 @@ public class CommandLine {
}
return new Range(min, max, variable, unspecified, range);
}
- private static int parseInt(String str, int defaultValue) {
+ private static int parseInt(final String str, final int defaultValue) {
try {
return Integer.parseInt(str);
- } catch (Exception ex) {
+ } catch (final Exception ex) {
return defaultValue;
}
}
@@ -1760,25 +1760,25 @@ public class CommandLine {
* The {@code max} of the returned Range is guaranteed not to be less than the new {@code min} value.
* @param newMin the {@code min} value of the returned Range object
* @return a new Range object with the specified {@code min} value */
- public Range min(int newMin) { return new Range(newMin, Math.max(newMin, max), isVariable, isUnspecified, originalValue); }
+ public Range min(final int newMin) { return new Range(newMin, Math.max(newMin, max), isVariable, isUnspecified, originalValue); }
/** Returns a new Range object with the {@code max} value replaced by the specified value.
* The {@code min} of the returned Range is guaranteed not to be greater than the new {@code max} value.
* @param newMax the {@code max} value of the returned Range object
* @return a new Range object with the specified {@code max} value */
- public Range max(int newMax) { return new Range(Math.min(min, newMax), newMax, isVariable, isUnspecified, originalValue); }
+ public Range max(final int newMax) { return new Range(Math.min(min, newMax), newMax, isVariable, isUnspecified, originalValue); }
/**
* Returns {@code true} if this Range includes the specified value, {@code false} otherwise.
* @param value the value to check
* @return {@code true} if the specified value is not less than the minimum and not greater than the maximum of this Range
*/
- public boolean contains(int value) { return min <= value && max >= value; }
+ public boolean contains(final int value) { return min <= value && max >= value; }
@Override
- public boolean equals(Object object) {
+ public boolean equals(final Object object) {
if (!(object instanceof Range)) { return false; }
- Range other = (Range) object;
+ final Range other = (Range) object;
return other.max == this.max && other.min == this.min && other.isVariable == this.isVariable;
}
@Override
@@ -1790,32 +1790,32 @@ public class CommandLine {
return min == max ? String.valueOf(min) : min + ".." + (isVariable ? "*" : max);
}
@Override
- public int compareTo(Range other) {
- int result = min - other.min;
+ public int compareTo(final Range other) {
+ final int result = min - other.min;
return (result == 0) ? max - other.max : result;
}
}
- static void init(Class<?> cls,
- List<Field> requiredFields,
- Map<String, Field> optionName2Field,
- Map<Character, Field> singleCharOption2Field,
- List<Field> positionalParametersFields) {
- Field[] declaredFields = cls.getDeclaredFields();
- for (Field field : declaredFields) {
+ static void init(final Class<?> cls,
+ final List<Field> requiredFields,
+ final Map<String, Field> optionName2Field,
+ final Map<Character, Field> singleCharOption2Field,
+ final List<Field> positionalParametersFields) {
+ final Field[] declaredFields = cls.getDeclaredFields();
+ for (final Field field : declaredFields) {
field.setAccessible(true);
if (field.isAnnotationPresent(Option.class)) {
- Option option = field.getAnnotation(Option.class);
+ final Option option = field.getAnnotation(Option.class);
if (option.required()) {
requiredFields.add(field);
}
- for (String name : option.names()) { // cannot be null or empty
- Field existing = optionName2Field.put(name, field);
+ for (final String name : option.names()) { // cannot be null or empty
+ final Field existing = optionName2Field.put(name, field);
if (existing != null && existing != field) {
throw DuplicateOptionAnnotationsException.create(name, field, existing);
}
if (name.length() == 2 && name.startsWith("-")) {
- char flag = name.charAt(1);
- Field existing2 = singleCharOption2Field.put(flag, field);
+ final char flag = name.charAt(1);
+ final Field existing2 = singleCharOption2Field.put(flag, field);
if (existing2 != null && existing2 != field) {
throw DuplicateOptionAnnotationsException.create(name, field, existing2);
}
@@ -1828,17 +1828,17 @@ public class CommandLine {
+ field.getName() + "' is both.");
}
positionalParametersFields.add(field);
- Range arity = Range.parameterArity(field);
+ final Range arity = Range.parameterArity(field);
if (arity.min > 0) {
requiredFields.add(field);
}
}
}
}
- static void validatePositionalParameters(List<Field> positionalParametersFields) {
+ static void validatePositionalParameters(final List<Field> positionalParametersFields) {
int min = 0;
- for (Field field : positionalParametersFields) {
- Range index = Range.parameterIndex(field);
+ for (final Field field : positionalParametersFields) {
+ final Range index = Range.parameterIndex(field);
if (index.min > min) {
throw new ParameterIndexGapException("Missing field annotated with @Parameter(index=" + min +
"). Nearest field '" + field.getName() + "' has index=" + index.min);
@@ -1847,7 +1847,7 @@ public class CommandLine {
min = min == Integer.MAX_VALUE ? min : min + 1;
}
}
- private static <T> Stack<T> reverse(Stack<T> stack) {
+ private static <T> Stack<T> reverse(final Stack<T> stack) {
Collections.reverse(stack);
return stack;
}
@@ -1866,7 +1866,7 @@ public class CommandLine {
private String separator = Help.DEFAULT_SEPARATOR;
private int position;
- Interpreter(Object command) {
+ Interpreter(final Object command) {
converterRegistry.put(Path.class, new BuiltIn.PathConverter());
converterRegistry.put(Object.class, new BuiltIn.StringConverter());
converterRegistry.put(String.class, new BuiltIn.StringConverter());
@@ -1909,28 +1909,28 @@ public class CommandLine {
init(cls, requiredFields, optionName2Field, singleCharOption2Field, positionalParametersFields);
if (cls.isAnnotationPresent(Command.class)) {
hasCommandAnnotation = true;
- Command cmd = cls.getAnnotation(Command.class);
+ final Command cmd = cls.getAnnotation(Command.class);
declaredSeparator = (declaredSeparator == null) ? cmd.separator() : declaredSeparator;
declaredName = (declaredName == null) ? cmd.name() : declaredName;
CommandLine.this.versionLines.addAll(Arrays.asList(cmd.version()));
- for (Class<?> sub : cmd.subcommands()) {
- Command subCommand = sub.getAnnotation(Command.class);
+ for (final Class<?> sub : cmd.subcommands()) {
+ final Command subCommand = sub.getAnnotation(Command.class);
if (subCommand == null || Help.DEFAULT_COMMAND_NAME.equals(subCommand.name())) {
throw new InitializationException("Subcommand " + sub.getName() +
" is missing the mandatory @Command annotation with a 'name' attribute");
}
try {
- Constructor<?> constructor = sub.getDeclaredConstructor();
+ final Constructor<?> constructor = sub.getDeclaredConstructor();
constructor.setAccessible(true);
- CommandLine commandLine = toCommandLine(constructor.newInstance());
+ final CommandLine commandLine = toCommandLine(constructor.newInstance());
commandLine.parent = CommandLine.this;
commands.put(subCommand.name(), commandLine);
}
- catch (InitializationException ex) { throw ex; }
- catch (NoSuchMethodException ex) { throw new InitializationException("Cannot instantiate subcommand " +
+ catch (final InitializationException ex) { throw ex; }
+ catch (final NoSuchMethodException ex) { throw new InitializationException("Cannot instantiate subcommand " +
sub.getName() + ": the class has no constructor", ex); }
- catch (Exception ex) {
+ catch (final Exception ex) {
throw new InitializationException("Could not instantiate and add subcommand " +
sub.getName() + ": " + ex, ex);
}
@@ -1955,41 +1955,41 @@ public class CommandLine {
* @return a list with all commands and subcommands initialized by this method
* @throws ParameterException if the specified command line arguments are invalid
*/
- List<CommandLine> parse(String... args) {
+ List<CommandLine> parse(final String... args) {
Assert.notNull(args, "argument array");
if (tracer.isInfo()) {tracer.info("Parsing %d command line args %s%n", args.length, Arrays.toString(args));}
- Stack<String> arguments = new Stack<String>();
+ final Stack<String> arguments = new Stack<String>();
for (int i = args.length - 1; i >= 0; i--) {
arguments.push(args[i]);
}
- List<CommandLine> result = new ArrayList<CommandLine>();
+ final List<CommandLine> result = new ArrayList<CommandLine>();
parse(result, arguments, args);
return result;
}
- private void parse(List<CommandLine> parsedCommands, Stack<String> argumentStack, String[] originalArgs) {
+ private void parse(final List<CommandLine> parsedCommands, final Stack<String> argumentStack, final String[] originalArgs) {
// first reset any state in case this CommandLine instance is being reused
isHelpRequested = false;
CommandLine.this.versionHelpRequested = false;
CommandLine.this.usageHelpRequested = false;
- Class<?> cmdClass = this.command.getClass();
+ final Class<?> cmdClass = this.command.getClass();
if (tracer.isDebug()) {tracer.debug("Initializing %s: %d options, %d positional parameters, %d required, %d subcommands.%n", cmdClass.getName(), new HashSet<Field>(optionName2Field.values()).size(), positionalParametersFields.size(), requiredFields.size(), commands.size());}
parsedCommands.add(CommandLine.this);
- List<Field> required = new ArrayList<Field>(requiredFields);
- Set<Field> initialized = new HashSet<Field>();
+ final List<Field> required = new ArrayList<Field>(requiredFields);
+ final Set<Field> initialized = new HashSet<Field>();
Collections.sort(required, new PositionalParametersSorter());
try {
processArguments(parsedCommands, argumentStack, required, initialized, originalArgs);
- } catch (ParameterException ex) {
+ } catch (final ParameterException ex) {
throw ex;
- } catch (Exception ex) {
- int offendingArgIndex = originalArgs.length - argumentStack.size() - 1;
- String arg = offendingArgIndex >= 0 && offendingArgIndex < originalArgs.length ? originalArgs[offendingArgIndex] : "?";
+ } catch (final Exception ex) {
+ final int offendingArgIndex = originalArgs.length - argumentStack.size() - 1;
+ final String arg = offendingArgIndex >= 0 && offendingArgIndex < originalArgs.length ? originalArgs[offendingArgIndex] : "?";
throw ParameterException.create(CommandLine.this, ex, arg, offendingArgIndex, originalArgs);
}
if (!isAnyHelpRequested() && !required.isEmpty()) {
- for (Field missing : required) {
+ for (final Field missing : required) {
if (missing.isAnnotationPresent(Option.class)) {
throw MissingParameterException.create(CommandLine.this, required, separator);
} else {
@@ -2003,11 +2003,11 @@ public class CommandLine {
}
}
- private void processArguments(List<CommandLine> parsedCommands,
- Stack<String> args,
- Collection<Field> required,
- Set<Field> initialized,
- String[] originalArgs) throws Exception {
+ private void processArguments(final List<CommandLine> parsedCommands,
+ final Stack<String> args,
+ final Collection<Field> required,
+ final Set<Field> initialized,
+ final String[] originalArgs) throws Exception {
// arg must be one of:
// 1. the "--" double dash separating options from positional arguments
// 1. a stand-alone flag, like "-v" or "--verbose": no value required, must map to boolean or Boolean field
@@ -2044,13 +2044,13 @@ public class CommandLine {
// or an option may have one or more option parameters.
// A parameter may be attached to the option.
boolean paramAttachedToOption = false;
- int separatorIndex = arg.indexOf(separator);
+ final int separatorIndex = arg.indexOf(separator);
if (separatorIndex > 0) {
- String key = arg.substring(0, separatorIndex);
+ final String key = arg.substring(0, separatorIndex);
// be greedy. Consume the whole arg as an option if possible.
if (optionName2Field.containsKey(key) && !optionName2Field.containsKey(arg)) {
paramAttachedToOption = true;
- String optionParam = arg.substring(separatorIndex + separator.length());
+ final String optionParam = arg.substring(separatorIndex + separator.length());
args.push(optionParam);
arg = key;
if (tracer.isDebug()) {tracer.debug("Separated '%s' option from '%s' option parameter%n", key, optionParam);}
@@ -2080,43 +2080,43 @@ public class CommandLine {
}
}
}
- private boolean resemblesOption(String arg) {
+ private boolean resemblesOption(final String arg) {
int count = 0;
- for (String optionName : optionName2Field.keySet()) {
+ for (final String optionName : optionName2Field.keySet()) {
for (int i = 0; i < arg.length(); i++) {
if (optionName.length() > i && arg.charAt(i) == optionName.charAt(i)) { count++; } else { break; }
}
}
- boolean result = count > 0 && count * 10 >= optionName2Field.size() * 9; // at least one prefix char in common with 9 out of 10 options
+ final boolean result = count > 0 && count * 10 >= optionName2Field.size() * 9; // at least one prefix char in common with 9 out of 10 options
if (tracer.isDebug()) {tracer.debug("%s %s an option: %d matching prefix chars out of %d option names%n", arg, (result ? "resembles" : "doesn't resemble"), count, optionName2Field.size());}
return result;
}
- private void handleUnmatchedArguments(String arg) {Stack<String> args = new Stack<String>(); args.add(arg); handleUnmatchedArguments(args);}
- private void handleUnmatchedArguments(Stack<String> args) {
+ private void handleUnmatchedArguments(final String arg) {
+ final Stack<String> args = new Stack<String>(); args.add(arg); handleUnmatchedArguments(args);}
+ private void handleUnmatchedArguments(final Stack<String> args) {
while (!args.isEmpty()) { unmatchedArguments.add(args.pop()); } // addAll would give args in reverse order
}
- private void processRemainderAsPositionalParameters(Collection<Field> required, Set<Field> initialized, Stack<String> args) throws Exception {
+ private void processRemainderAsPositionalParameters(final Collection<Field> required, final Set<Field> initialized, final Stack<String> args) throws Exception {
while (!args.empty()) {
processPositionalParameter(required, initialized, args);
}
}
- private void processPositionalParameter(Collection<Field> required, Set<Field> initialized, Stack<String> args) throws Exception {
+ private void processPositionalParameter(final Collection<Field> required, final Set<Field> initialized, final Stack<String> args) throws Exception {
if (tracer.isDebug()) {tracer.debug("Processing next arg as a positional parameter at index=%d. Remainder=%s%n", position, reverse((Stack<String>) args.clone()));}
int consumed = 0;
- for (Field positionalParam : positionalParametersFields) {
- Range indexRange = Range.parameterIndex(positionalParam);
+ for (final Field positionalParam : positionalParametersFields) {
+ final Range indexRange = Range.parameterIndex(positionalParam);
if (!indexRange.contains(position)) {
continue;
}
- @SuppressWarnings("unchecked")
- Stack<String> argsCopy = (Stack<String>) args.clone();
- Range arity = Range.parameterArity(positionalParam);
+ @SuppressWarnings("unchecked") final Stack<String> argsCopy = (Stack<String>) args.clone();
+ final Range arity = Range.parameterArity(positionalParam);
if (tracer.isDebug()) {tracer.debug("Position %d is in index range %s. Trying to assign args to %s, arity=%s%n", position, indexRange, positionalParam, arity);}
assertNoMissingParameters(positionalParam, arity.min, argsCopy);
- int originalSize = argsCopy.size();
+ final int originalSize = argsCopy.size();
applyOption(positionalParam, Parameters.class, arity, false, argsCopy, initialized, "args[" + indexRange + "] at position " + position);
- int count = originalSize - argsCopy.size();
+ final int count = originalSize - argsCopy.size();
if (count > 0) { required.remove(positionalParam); }
consumed = Math.max(consumed, count);
}
@@ -2129,12 +2129,12 @@ public class CommandLine {
}
}
- private void processStandaloneOption(Collection<Field> required,
- Set<Field> initialized,
- String arg,
- Stack<String> args,
- boolean paramAttachedToKey) throws Exception {
- Field field = optionName2Field.get(arg);
+ private void processStandaloneOption(final Collection<Field> required,
+ final Set<Field> initialized,
+ final String arg,
+ final Stack<String> args,
+ final boolean paramAttachedToKey) throws Exception {
+ final Field field = optionName2Field.get(arg);
required.remove(field);
Range arity = Range.optionArity(field);
if (paramAttachedToKey) {
@@ -2144,19 +2144,19 @@ public class CommandLine {
applyOption(field, Option.class, arity, paramAttachedToKey, args, initialized, "option " + arg);
}
- private void processClusteredShortOptions(Collection<Field> required,
- Set<Field> initialized,
- String arg,
- Stack<String> args)
+ private void processClusteredShortOptions(final Collection<Field> required,
+ final Set<Field> initialized,
+ final String arg,
+ final Stack<String> args)
throws Exception {
- String prefix = arg.substring(0, 1);
+ final String prefix = arg.substring(0, 1);
String cluster = arg.substring(1);
boolean paramAttachedToOption = true;
do {
if (cluster.length() > 0 && singleCharOption2Field.containsKey(cluster.charAt(0))) {
- Field field = singleCharOption2Field.get(cluster.charAt(0));
+ final Field field = singleCharOption2Field.get(cluster.charAt(0));
Range arity = Range.optionArity(field);
- String argDescription = "option " + prefix + cluster.charAt(0);
+ final String argDescription = "option " + prefix + cluster.charAt(0);
if (tracer.isDebug()) {tracer.debug("Found option '%s%s' in %s: field %s, arity=%s%n", prefix, cluster.charAt(0), arg, field, arity);}
required.remove(field);
cluster = cluster.length() > 0 ? cluster.substring(1) : "";
@@ -2174,7 +2174,7 @@ public class CommandLine {
if (!empty(cluster)) {
args.push(cluster); // interpret remainder as option parameter
}
- int consumed = applyOption(field, Option.class, arity, paramAttachedToOption, args, initialized, argDescription);
+ final int consumed = applyOption(field, Option.class, arity, paramAttachedToOption, args, initialized, argDescription);
// only return if cluster (and maybe more) was consumed, otherwise continue do-while loop
if (empty(cluster) || consumed > 0 || args.isEmpty()) {
return;
@@ -2207,15 +2207,15 @@ public class CommandLine {
} while (true);
}
- private int applyOption(Field field,
- Class<?> annotation,
- Range arity,
- boolean valueAttachedToOption,
- Stack<String> args,
- Set<Field> initialized,
- String argDescription) throws Exception {
+ private int applyOption(final Field field,
+ final Class<?> annotation,
+ final Range arity,
+ final boolean valueAttachedToOption,
+ final Stack<String> args,
+ final Set<Field> initialized,
+ final String argDescription) throws Exception {
updateHelpRequested(field);
- int length = args.size();
+ final int length = args.size();
assertNoMissingParameters(field, arity.min, args);
Class<?> cls = field.getType();
@@ -2232,13 +2232,13 @@ public class CommandLine {
return applyValueToSingleValuedField(field, arity, args, cls, initialized, argDescription);
}
- private int applyValueToSingleValuedField(Field field,
- Range arity,
- Stack<String> args,
- Class<?> cls,
- Set<Field> initialized,
- String argDescription) throws Exception {
- boolean noMoreValues = args.isEmpty();
+ private int applyValueToSingleValuedField(final Field field,
+ final Range arity,
+ final Stack<String> args,
+ final Class<?> cls,
+ final Set<Field> initialized,
+ final String argDescription) throws Exception {
+ final boolean noMoreValues = args.isEmpty();
String value = args.isEmpty() ? null : trim(args.pop()); // unquote the value
int result = arity.min; // the number or args we need to consume
@@ -2252,16 +2252,16 @@ public class CommandLine {
if (value != null) {
args.push(value); // we don't consume the value
}
- Boolean currentValue = (Boolean) field.get(command);
+ final Boolean currentValue = (Boolean) field.get(command);
value = String.valueOf(currentValue == null ? true : !currentValue); // #147 toggle existing boolean value
}
}
if (noMoreValues && value == null) {
return 0;
}
- ITypeConverter<?> converter = getTypeConverter(cls, field);
- Object newValue = tryConvert(field, -1, converter, value, cls);
- Object oldValue = field.get(command);
+ final ITypeConverter<?> converter = getTypeConverter(cls, field);
+ final Object newValue = tryConvert(field, -1, converter, value, cls);
+ final Object oldValue = field.get(command);
TraceLevel level = TraceLevel.INFO;
String traceMessage = "Setting %s field '%s.%s' to '%5$s' (was '%4$s') for %6$s%n";
if (initialized != null) {
@@ -2280,34 +2280,34 @@ public class CommandLine {
field.set(command, newValue);
return result;
}
- private int applyValuesToMapField(Field field,
- Class<?> annotation,
- Range arity,
- Stack<String> args,
- Class<?> cls,
- String argDescription) throws Exception {
- Class<?>[] classes = getTypeAttribute(field);
+ private int applyValuesToMapField(final Field field,
+ final Class<?> annotation,
+ final Range arity,
+ final Stack<String> args,
+ final Class<?> cls,
+ final String argDescription) throws Exception {
+ final Class<?>[] classes = getTypeAttribute(field);
if (classes.length < 2) { throw new ParameterException(CommandLine.this, "Field " + field + " needs two types (one for the map key, one for the value) but only has " + classes.length + " types configured."); }
- ITypeConverter<?> keyConverter = getTypeConverter(classes[0], field);
- ITypeConverter<?> valueConverter = getTypeConverter(classes[1], field);
+ final ITypeConverter<?> keyConverter = getTypeConverter(classes[0], field);
+ final ITypeConverter<?> valueConverter = getTypeConverter(classes[1], field);
Map<Object, Object> result = (Map<Object, Object>) field.get(command);
if (result == null) {
result = createMap(cls);
field.set(command, result);
}
- int originalSize = result.size();
+ final int originalSize = result.size();
consumeMapArguments(field, arity, args, classes, keyConverter, valueConverter, result, argDescription);
return result.size() - originalSize;
}
- private void consumeMapArguments(Field field,
- Range arity,
- Stack<String> args,
- Class<?>[] classes,
- ITypeConverter<?> keyConverter,
- ITypeConverter<?> valueConverter,
- Map<Object, Object> result,
- String argDescription) throws Exception {
+ private void consumeMapArguments(final Field field,
+ final Range arity,
+ final Stack<String> args,
+ final Class<?>[] classes,
+ final ITypeConverter<?> keyConverter,
+ final ITypeConverter<?> valueConverter,
+ final Map<Object, Object> result,
+ final String argDescription) throws Exception {
// first do the arity.min mandatory parameters
for (int i = 0; i < arity.min; i++) {
consumeOneMapArgument(field, arity, args, classes, keyConverter, valueConverter, result, i, argDescription);
@@ -2323,19 +2323,19 @@ public class CommandLine {
}
}
- private void consumeOneMapArgument(Field field,
- Range arity,
- Stack<String> args,
- Class<?>[] classes,
- ITypeConverter<?> keyConverter, ITypeConverter<?> valueConverter,
- Map<Object, Object> result,
- int index,
- String argDescription) throws Exception {
- String[] values = split(trim(args.pop()), field);
- for (String value : values) {
- String[] keyValue = value.split("=");
+ private void consumeOneMapArgument(final Field field,
+ final Range arity,
+ final Stack<String> args,
+ final Class<?>[] classes,
+ final ITypeConverter<?> keyConverter, final ITypeConverter<?> valueConverter,
+ final Map<Object, Object> result,
+ final int index,
+ final String argDescription) throws Exception {
+ final String[] values = split(trim(args.pop()), field);
+ for (final String value : values) {
+ final String[] keyValue = value.split("=");
if (keyValue.length < 2) {
- String splitRegex = splitRegex(field);
+ final String splitRegex = splitRegex(field);
if (splitRegex.length() == 0) {
throw new ParameterException(CommandLine.this, "Value for option " + optionDescription("", field,
0) + " should be in KEY=VALUE format but was " + value);
@@ -2344,44 +2344,44 @@ public class CommandLine {
0) + " should be in KEY=VALUE[" + splitRegex + "KEY=VALUE]... format but was " + value);
}
}
- Object mapKey = tryConvert(field, index, keyConverter, keyValue[0], classes[0]);
- Object mapValue = tryConvert(field, index, valueConverter, keyValue[1], classes[1]);
+ final Object mapKey = tryConvert(field, index, keyConverter, keyValue[0], classes[0]);
+ final Object mapValue = tryConvert(field, index, valueConverter, keyValue[1], classes[1]);
result.put(mapKey, mapValue);
if (tracer.isInfo()) {tracer.info("Putting [%s : %s] in %s<%s, %s> field '%s.%s' for %s%n", String.valueOf(mapKey), String.valueOf(mapValue),
result.getClass().getSimpleName(), classes[0].getSimpleName(), classes[1].getSimpleName(), field.getDeclaringClass().getSimpleName(), field.getName(), argDescription);}
}
}
- private void checkMaxArityExceeded(Range arity, int remainder, Field field, String[] values) {
+ private void checkMaxArityExceeded(final Range arity, final int remainder, final Field field, final String[] values) {
if (values.length <= remainder) { return; }
- String desc = arity.max == remainder ? "" + remainder : arity + ", remainder=" + remainder;
+ final String desc = arity.max == remainder ? "" + remainder : arity + ", remainder=" + remainder;
throw new MaxValuesforFieldExceededException(CommandLine.this, optionDescription("", field, -1) +
" max number of values (" + arity.max + ") exceeded: remainder is " + remainder + " but " +
values.length + " values were specified: " + Arrays.toString(values));
}
- private int applyValuesToArrayField(Field field,
- Class<?> annotation,
- Range arity,
- Stack<String> args,
- Class<?> cls,
- String argDescription) throws Exception {
- Object existing = field.get(command);
- int length = existing == null ? 0 : Array.getLength(existing);
- Class<?> type = getTypeAttribute(field)[0];
- List<Object> converted = consumeArguments(field, annotation, arity, args, type, length, argDescription);
- List<Object> newValues = new ArrayList<Object>();
+ private int applyValuesToArrayField(final Field field,
+ final Class<?> annotation,
+ final Range arity,
+ final Stack<String> args,
+ final Class<?> cls,
+ final String argDescription) throws Exception {
+ final Object existing = field.get(command);
+ final int length = existing == null ? 0 : Array.getLength(existing);
+ final Class<?> type = getTypeAttribute(field)[0];
+ final List<Object> converted = consumeArguments(field, annotation, arity, args, type, length, argDescription);
+ final List<Object> newValues = new ArrayList<Object>();
for (int i = 0; i < length; i++) {
newValues.add(Array.get(existing, i));
}
- for (Object obj : converted) {
+ for (final Object obj : converted) {
if (obj instanceof Collection<?>) {
newValues.addAll((Collection<?>) obj);
} else {
newValues.add(obj);
}
}
- Object array = Array.newInstance(type, newValues.size());
+ final Object array = Array.newInstance(type, newValues.size());
field.set(command, array);
for (int i = 0; i < newValues.size(); i++) {
Array.set(array, i, newValues.get(i));
@@ -2390,21 +2390,21 @@ public class CommandLine {
}
@SuppressWarnings("unchecked")
- private int applyValuesToCollectionField(Field field,
- Class<?> annotation,
- Range arity,
- Stack<String> args,
- Class<?> cls,
- String argDescription) throws Exception {
+ private int applyValuesToCollectionField(final Field field,
+ final Class<?> annotation,
+ final Range arity,
+ final Stack<String> args,
+ final Class<?> cls,
+ final String argDescription) throws Exception {
Collection<Object> collection = (Collection<Object>) field.get(command);
- Class<?> type = getTypeAttribute(field)[0];
- int length = collection == null ? 0 : collection.size();
- List<Object> converted = consumeArguments(field, annotation, arity, args, type, length, argDescription);
+ final Class<?> type = getTypeAttribute(field)[0];
+ final int length = collection == null ? 0 : collection.size();
+ final List<Object> converted = consumeArguments(field, annotation, arity, args, type, length, argDescription);
if (collection == null) {
collection = createCollection(cls);
field.set(command, collection);
}
- for (Object element : converted) {
+ for (final Object element : converted) {
if (element instanceof Collection<?>) {
collection.addAll((Collection<?>) element);
} else {
@@ -2414,14 +2414,14 @@ public class CommandLine {
return converted.size();
}
- private List<Object> consumeArguments(Field field,
- Class<?> annotation,
- Range arity,
- Stack<String> args,
- Class<?> type,
- int originalSize,
- String argDescription) throws Exception {
- List<Object> result = new ArrayList<Object>();
+ private List<Object> consumeArguments(final Field field,
+ final Class<?> annotation,
+ final Range arity,
+ final Stack<String> args,
+ final Class<?> type,
+ final int originalSize,
+ final String argDescription) throws Exception {
+ final List<Object> result = new ArrayList<Object>();
// first do the arity.min mandatory parameters
for (int i = 0; i < arity.min; i++) {
@@ -2439,16 +2439,16 @@ public class CommandLine {
return result;
}
- private int consumeOneArgument(Field field,
- Range arity,
- Stack<String> args,
- Class<?> type,
- List<Object> result,
+ private int consumeOneArgument(final Field field,
+ final Range arity,
+ final Stack<String> args,
+ final Class<?> type,
+ final List<Object> result,
int index,
- int originalSize,
- String argDescription) throws Exception {
- String[] values = split(trim(args.pop()), field);
- ITypeConverter<?> converter = getTypeConverter(type, field);
+ final int originalSize,
+ final String argDescription) throws Exception {
+ final String[] values = split(trim(args.pop()), field);
+ final ITypeConverter<?> converter = getTypeConverter(type, field);
for (int j = 0; j < values.length; j++) {
result.add(tryConvert(field, index, converter, values[j], type));
@@ -2464,13 +2464,13 @@ public class CommandLine {
return ++index;
}
- private String splitRegex(Field field) {
+ private String splitRegex(final Field field) {
if (field.isAnnotationPresent(Option.class)) { return field.getAnnotation(Option.class).split(); }
if (field.isAnnotationPresent(Parameters.class)) { return field.getAnnotation(Parameters.class).split(); }
return "";
}
- private String[] split(String value, Field field) {
- String regex = splitRegex(field);
+ private String[] split(final String value, final Field field) {
+ final String regex = splitRegex(field);
return regex.length() == 0 ? new String[] {value} : value.split(regex);
}
@@ -2480,7 +2480,7 @@ public class CommandLine {
* @param arg the string to determine whether it is an option or not
* @return true if it is an option, false otherwise
*/
- private boolean isOption(String arg) {
+ private boolean isOption(final String arg) {
if ("--".equals(arg)) {
return true;
}
@@ -2488,7 +2488,7 @@ public class CommandLine {
if (optionName2Field.containsKey(arg)) { // -v or -f or --file (not attached to param or other option)
return true;
}
- int separatorIndex = arg.indexOf(separator);
+ final int separatorIndex = arg.indexOf(separator);
if (separatorIndex > 0) { // -f=FILE or --file==FILE (attached to param via separator)
if (optionName2Field.containsKey(arg.substring(0, separatorIndex))) {
return true;
@@ -2496,33 +2496,33 @@ public class CommandLine {
}
return (arg.length() > 2 && arg.startsWith("-") && singleCharOption2Field.containsKey(arg.charAt(1)));
}
- private Object tryConvert(Field field, int index, ITypeConverter<?> converter, String value, Class<?> type)
+ private Object tryConvert(final Field field, final int index, final ITypeConverter<?> converter, final String value, final Class<?> type)
throws Exception {
try {
return converter.convert(value);
- } catch (TypeConversionException ex) {
+ } catch (final TypeConversionException ex) {
throw new ParameterException(CommandLine.this, ex.getMessage() + optionDescription(" for ", field, index));
- } catch (Exception other) {
- String desc = optionDescription(" for ", field, index) + ": " + other;
+ } catch (final Exception other) {
+ final String desc = optionDescription(" for ", field, index) + ": " + other;
throw new ParameterException(CommandLine.this, "Could not convert '" + value + "' to " + type.getSimpleName() + desc, other);
}
}
- private String optionDescription(String prefix, Field field, int index) {
- Help.IParamLabelRenderer labelRenderer = Help.createMinimalParamLabelRenderer();
+ private String optionDescription(final String prefix, final Field field, final int index) {
+ final Help.IParamLabelRenderer labelRenderer = Help.createMinimalParamLabelRenderer();
String desc = "";
if (field.isAnnotationPresent(Option.class)) {
desc = prefix + "option '" + field.getAnnotation(Option.class).names()[0] + "'";
if (index >= 0) {
- Range arity = Range.optionArity(field);
+ final Range arity = Range.optionArity(field);
if (arity.max > 1) {
desc += " at index " + index;
}
desc += " (" + labelRenderer.renderParameterLabel(field, Help.Ansi.OFF, Collections.<IStyle>emptyList()) + ")";
}
} else if (field.isAnnotationPresent(Parameters.class)) {
- Range indexRange = Range.parameterIndex(field);
- Text label = labelRenderer.renderParameterLabel(field, Help.Ansi.OFF, Collections.<IStyle>emptyList());
+ final Range indexRange = Range.parameterIndex(field);
+ final Text label = labelRenderer.renderParameterLabel(field, Help.Ansi.OFF, Collections.<IStyle>emptyList());
desc = prefix + "positional parameter at index " + indexRange + " (" + label + ")";
}
return desc;
@@ -2530,19 +2530,19 @@ public class CommandLine {
private boolean isAnyHelpRequested() { return isHelpRequested || versionHelpRequested || usageHelpRequested; }
- private void updateHelpRequested(Field field) {
+ private void updateHelpRequested(final Field field) {
if (field.isAnnotationPresent(Option.class)) {
isHelpRequested |= is(field, "help", field.getAnnotation(Option.class).help());
CommandLine.this.versionHelpRequested |= is(field, "versionHelp", field.getAnnotation(Option.class).versionHelp());
CommandLine.this.usageHelpRequested |= is(field, "usageHelp", field.getAnnotation(Option.class).usageHelp());
}
}
- private boolean is(Field f, String description, boolean value) {
+ private boolean is(final Field f, final String description, final boolean value) {
if (value) { if (tracer.isInfo()) {tracer.info("Field '%s.%s' has '%s' annotation: not validating required fields%n", f.getDeclaringClass().getSimpleName(), f.getName(), description); }}
return value;
}
@SuppressWarnings("unchecked")
- private Collection<Object> createCollection(Class<?> collectionClass) throws Exception {
+ private Collection<Object> createCollection(final Class<?> collectionClass) throws Exception {
if (collectionClass.isInterface()) {
if (List.class.isAssignableFrom(collectionClass)) {
return new ArrayList<Object>();
@@ -2558,14 +2558,14 @@ public class CommandLine {
// custom Collection implementation class must have default constructor
return (Collection<Object>) collectionClass.newInstance();
}
- private Map<Object, Object> createMap(Class<?> mapClass) throws Exception {
+ private Map<Object, Object> createMap(final Class<?> mapClass) throws Exception {
try { // if it is an implementation class, instantiate it
return (Map<Object, Object>) mapClass.newInstance();
- } catch (Exception ignored) {}
+ } catch (final Exception ignored) {}
return new LinkedHashMap<Object, Object>();
}
- private ITypeConverter<?> getTypeConverter(final Class<?> type, Field field) {
- ITypeConverter<?> result = converterRegistry.get(type);
+ private ITypeConverter<?> getTypeConverter(final Class<?> type, final Field field) {
+ final ITypeConverter<?> result = converterRegistry.get(type);
if (result != null) {
return result;
}
@@ -2573,7 +2573,7 @@ public class CommandLine {
return new ITypeConverter<Object>() {
@Override
@SuppressWarnings("unchecked")
- public Object convert(String value) throws Exception {
+ public Object convert(final String value) throws Exception {
return Enum.valueOf((Class<Enum>) type, value);
}
};
@@ -2581,17 +2581,17 @@ public class CommandLine {
throw new MissingTypeConverterException(CommandLine.this, "No TypeConverter registered for " + type.getName() + " of field " + field);
}
- private void assertNoMissingParameters(Field field, int arity, Stack<String> args) {
+ private void assertNoMissingParameters(final Field field, final int arity, final Stack<String> args) {
if (arity > args.size()) {
if (arity == 1) {
if (field.isAnnotationPresent(Option.class)) {
throw new MissingParameterException(CommandLine.this, "Missing required parameter for " +
optionDescription("", field, 0));
}
- Range indexRange = Range.parameterIndex(field);
- Help.IParamLabelRenderer labelRenderer = Help.createMinimalParamLabelRenderer();
+ final Range indexRange = Range.parameterIndex(field);
+ final Help.IParamLabelRenderer labelRenderer = Help.createMinimalParamLabelRenderer();
String sep = "";
- StringBuilder names = new StringBuilder();
+ final StringBuilder names = new StringBuilder();
int count = 0;
for (int i = indexRange.min; i < positionalParametersFields.size(); i++) {
if (Range.parameterArity(positionalParametersFields.get(i)).min > 0) {
@@ -2602,7 +2602,7 @@ public class CommandLine {
}
}
String msg = "Missing required parameter";
- Range paramArity = Range.parameterArity(field);
+ final Range paramArity = Range.parameterArity(field);
if (paramArity.isVariable) {
msg += "s at positions " + indexRange + ": ";
} else {
@@ -2618,11 +2618,11 @@ public class CommandLine {
" requires at least " + arity + " values, but only " + args.size() + " were specified: " + reverse(args));
}
}
- private String trim(String value) {
+ private String trim(final String value) {
return unquote(value);
}
- private String unquote(String value) {
+ private String unquote(final String value) {
return value == null
? null
: (value.length() > 1 && value.startsWith("\"") && value.endsWith("\""))
@@ -2632,8 +2632,8 @@ public class CommandLine {
}
private static class PositionalParametersSorter implements Comparator<Field> {
@Override
- public int compare(Field o1, Field o2) {
- int result = Range.parameterIndex(o1).compareTo(Range.parameterIndex(o2));
+ public int compare(final Field o1, final Field o2) {
+ final int result = Range.parameterIndex(o1).compareTo(Range.parameterIndex(o2));
return (result == 0) ? Range.parameterArity(o1).compareTo(Range.parameterArity(o2)) : result;
}
}
@@ -2646,25 +2646,25 @@ public class CommandLine {
}
static class StringConverter implements ITypeConverter<String> {
@Override
- public String convert(String value) { return value; }
+ public String convert(final String value) { return value; }
}
static class StringBuilderConverter implements ITypeConverter<StringBuilder> {
@Override
- public StringBuilder convert(String value) { return new StringBuilder(value); }
+ public StringBuilder convert(final String value) { return new StringBuilder(value); }
}
static class CharSequenceConverter implements ITypeConverter<CharSequence> {
@Override
- public String convert(String value) { return value; }
+ public String convert(final String value) { return value; }
}
/** Converts text to a {@code Byte} by delegating to {@link Byte#valueOf(String)}.*/
static class ByteConverter implements ITypeConverter<Byte> {
@Override
- public Byte convert(String value) { return Byte.valueOf(value); }
+ public Byte convert(final String value) { return Byte.valueOf(value); }
}
/** Converts {@code "true"} or {@code "false"} to a {@code Boolean}. Other values result in a ParameterException.*/
static class BooleanConverter implements ITypeConverter<Boolean> {
@Override
- public Boolean convert(String value) {
+ public Boolean convert(final String value) {
if ("true".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value)) {
return Boolean.parseBoolean(value);
} else {
@@ -2674,7 +2674,7 @@ public class CommandLine {
}
static class CharacterConverter implements ITypeConverter<Character> {
@Override
- public Character convert(String value) {
+ public Character convert(final String value) {
if (value.length() > 1) {
throw new TypeConversionException("'" + value + "' is not a single character");
}
@@ -2684,45 +2684,45 @@ public class CommandLine {
/** Converts text to a {@code Short} by delegating to {@link Short#valueOf(String)}.*/
static class ShortConverter implements ITypeConverter<Short> {
@Override
- public Short convert(String value) { return Short.valueOf(value); }
+ public Short convert(final String value) { return Short.valueOf(value); }
}
/** Converts text to an {@code Integer} by delegating to {@link Integer#valueOf(String)}.*/
static class IntegerConverter implements ITypeConverter<Integer> {
@Override
- public Integer convert(String value) { return Integer.valueOf(value); }
+ public Integer convert(final String value) { return Integer.valueOf(value); }
}
/** Converts text to a {@code Long} by delegating to {@link Long#valueOf(String)}.*/
static class LongConverter implements ITypeConverter<Long> {
@Override
- public Long convert(String value) { return Long.valueOf(value); }
+ public Long convert(final String value) { return Long.valueOf(value); }
}
static class FloatConverter implements ITypeConverter<Float> {
@Override
- public Float convert(String value) { return Float.valueOf(value); }
+ public Float convert(final String value) { return Float.valueOf(value); }
}
static class DoubleConverter implements ITypeConverter<Double> {
@Override
- public Double convert(String value) { return Double.valueOf(value); }
+ public Double convert(final String value) { return Double.valueOf(value); }
}
static class FileConverter implements ITypeConverter<File> {
@Override
- public File convert(String value) { return new File(value); }
+ public File convert(final String value) { return new File(value); }
}
static class URLConverter implements ITypeConverter<URL> {
@Override
- public URL convert(String value) throws MalformedURLException { return new URL(value); }
+ public URL convert(final String value) throws MalformedURLException { return new URL(value); }
}
static class URIConverter implements ITypeConverter<URI> {
@Override
- public URI convert(String value) throws URISyntaxException { return new URI(value); }
+ public URI convert(final String value) throws URISyntaxException { return new URI(value); }
}
/** Converts text in {@code yyyy-mm-dd} format to a {@code java.util.Date}. ParameterException on failure. */
static class ISO8601DateConverter implements ITypeConverter<Date> {
@Override
- public Date convert(String value) {
+ public Date convert(final String value) {
try {
return new SimpleDateFormat("yyyy-MM-dd").parse(value);
- } catch (ParseException e) {
+ } catch (final ParseException e) {
throw new TypeConversionException("'" + value + "' is not a yyyy-MM-dd date");
}
}
@@ -2731,7 +2731,7 @@ public class CommandLine {
* {@code HH:mm:ss.SSS}, {@code HH:mm:ss,SSS}. Other formats result in a ParameterException. */
static class ISO8601TimeConverter implements ITypeConverter<Time> {
@Override
- public Time convert(String value) {
+ public Time convert(final String value) {
try {
if (value.length() <= 5) {
return new Time(new SimpleDateFormat("HH:mm").parse(value).getTime());
@@ -2740,11 +2740,11 @@ public class CommandLine {
} else if (value.length() <= 12) {
try {
return new Time(new SimpleDateFormat("HH:mm:ss.SSS").parse(value).getTime());
- } catch (ParseException e2) {
+ } catch (final ParseException e2) {
return new Time(new SimpleDateFormat("HH:mm:ss,SSS").parse(value).getTime());
}
}
- } catch (ParseException ignored) {
+ } catch (final ParseException ignored) {
// ignored because we throw a ParameterException below
}
throw new TypeConversionException("'" + value + "' is not a HH:mm[:ss[.SSS]] time");
@@ -2752,28 +2752,28 @@ public class CommandLine {
}
static class BigDecimalConverter implements ITypeConverter<BigDecimal> {
@Override
- public BigDecimal convert(String value) { return new BigDecimal(value); }
+ public BigDecimal convert(final String value) { return new BigDecimal(value); }
}
static class BigIntegerConverter implements ITypeConverter<BigInteger> {
@Override
- public BigInteger convert(String value) { return new BigInteger(value); }
+ public BigInteger convert(final String value) { return new BigInteger(value); }
}
static class CharsetConverter implements ITypeConverter<Charset> {
@Override
- public Charset convert(String s) { return Charset.forName(s); }
+ public Charset convert(final String s) { return Charset.forName(s); }
}
/** Converts text to a {@code InetAddress} by delegating to {@link InetAddress#getByName(String)}. */
static class InetAddressConverter implements ITypeConverter<InetAddress> {
@Override
- public InetAddress convert(String s) throws Exception { return InetAddress.getByName(s); }
+ public InetAddress convert(final String s) throws Exception { return InetAddress.getByName(s); }
}
static class PatternConverter implements ITypeConverter<Pattern> {
@Override
- public Pattern convert(String s) { return Pattern.compile(s); }
+ public Pattern convert(final String s) { return Pattern.compile(s); }
}
static class UUIDConverter implements ITypeConverter<UUID> {
@Override
- public UUID convert(String s) throws Exception { return UUID.fromString(s); }
+ public UUID convert(final String s) throws Exception { return UUID.fromString(s); }
}
private BuiltIn() {} // private constructor: never instantiate
}
@@ -2905,7 +2905,7 @@ public class CommandLine {
/** Constructs a new {@code Help} instance with a default color scheme, initialized from annotatations
* on the specified class and superclasses.
* @param command the annotated object to create usage help for */
- public Help(Object command) {
+ public Help(final Object command) {
this(command, Ansi.AUTO);
}
@@ -2913,7 +2913,7 @@ public class CommandLine {
* on the specified class and superclasses.
* @param command the annotated object to create usage help for
* @param ansi whether to emit ANSI escape codes or not */
- public Help(Object command, Ansi ansi) {
+ public Help(final Object command, final Ansi ansi) {
this(command, defaultColorScheme(ansi));
}
@@ -2921,17 +2921,17 @@ public class CommandLine {
* on the specified class and superclasses.
* @param command the annotated object to create usage help for
* @param colorScheme the color scheme to use */
- public Help(Object command, ColorScheme colorScheme) {
+ public Help(final Object command, final ColorScheme colorScheme) {
this.command = Assert.notNull(command, "command");
this.colorScheme = Assert.notNull(colorScheme, "colorScheme").applySystemProperties();
- List<Field> options = new ArrayList<Field>();
- List<Field> operands = new ArrayList<Field>();
+ final List<Field> options = new ArrayList<Field>();
+ final List<Field> operands = new ArrayList<Field>();
Class<?> cls = command.getClass();
while (cls != null) {
- for (Field field : cls.getDeclaredFields()) {
+ for (final Field field : cls.getDeclaredFields()) {
field.setAccessible(true);
if (field.isAnnotationPresent(Option.class)) {
- Option option = field.getAnnotation(Option.class);
+ final Option option = field.getAnnotation(Option.class);
if (!option.hidden()) { // hidden options should not appear in usage help
// TODO remember longest concatenated option string length (issue #45)
options.add(field);
@@ -2943,7 +2943,7 @@ public class CommandLine {
}
// superclass values should not overwrite values if both class and superclass have a @Command annotation
if (cls.isAnnotationPresent(Command.class)) {
- Command cmd = cls.getAnnotation(Command.class);
+ final Command cmd = cls.getAnnotation(Command.class);
if (DEFAULT_COMMAND_NAME.equals(commandName)) {
commandName = cmd.name();
}
@@ -2984,9 +2984,9 @@ public class CommandLine {
* @return this Help instance (for method chaining)
* @see CommandLine#getSubcommands()
*/
- public Help addAllSubcommands(Map<String, CommandLine> commands) {
+ public Help addAllSubcommands(final Map<String, CommandLine> commands) {
if (commands != null) {
- for (Map.Entry<String, CommandLine> entry : commands.entrySet()) {
+ for (final Map.Entry<String, CommandLine> entry : commands.entrySet()) {
addSubcommand(entry.getKey(), entry.getValue().getCommand());
}
}
@@ -2998,7 +2998,7 @@ public class CommandLine {
* @param command the annotated object to get more information from
* @return this Help instance (for method chaining)
*/
- public Help addSubcommand(String commandName, Object command) {
+ public Help addSubcommand(final String commandName, final Object command) {
commands.put(commandName, new Help(command));
return this;
}
@@ -3020,7 +3020,7 @@ public class CommandLine {
* @see #detailedSynopsis(Comparator, boolean)
* @see #synopsisHeading
*/
- public String synopsis(int synopsisHeadingLength) {
+ public String synopsis(final int synopsisHeadingLength) {
if (!empty(customSynopsis)) { return customSynopsis(); }
return abbreviateSynopsis ? abbreviatedSynopsis()
: detailedSynopsis(synopsisHeadingLength, createShortOptionArityAndNameComparator(), true);
@@ -3030,12 +3030,12 @@ public class CommandLine {
* that don't apply to the command (e.g., does not show [OPTIONS] if the command has no options).
* @return a generic synopsis */
public String abbreviatedSynopsis() {
- StringBuilder sb = new StringBuilder();
+ final StringBuilder sb = new StringBuilder();
if (!optionFields.isEmpty()) { // only show if annotated object actually has options
sb.append(" [OPTIONS]");
}
// sb.append(" [--] "); // implied
- for (Field positionalParam : positionalParametersFields) {
+ for (final Field positionalParam : positionalParametersFields) {
if (!positionalParam.getAnnotation(Parameters.class).hidden()) {
sb.append(' ').append(parameterLabelRenderer.renderParameterLabel(positionalParam, ansi(), colorScheme.parameterStyles));
}
@@ -3050,7 +3050,7 @@ public class CommandLine {
* @return a detailed synopsis
* @deprecated use {@link #detailedSynopsis(int, Comparator, boolean)} instead. */
@Deprecated
- public String detailedSynopsis(Comparator<Field> optionSort, boolean clusterBooleanOptions) {
+ public String detailedSynopsis(final Comparator<Field> optionSort, final boolean clusterBooleanOptions) {
return detailedSynopsis(0, optionSort, clusterBooleanOptions);
}
@@ -3060,20 +3060,20 @@ public class CommandLine {
* @param optionSort comparator to sort options or {@code null} if options should not be sorted
* @param clusterBooleanOptions {@code true} if boolean short options should be clustered into a single string
* @return a detailed synopsis */
- public String detailedSynopsis(int synopsisHeadingLength, Comparator<Field> optionSort, boolean clusterBooleanOptions) {
+ public String detailedSynopsis(final int synopsisHeadingLength, final Comparator<Field> optionSort, final boolean clusterBooleanOptions) {
Text optionText = ansi().new Text(0);
- List<Field> fields = new ArrayList<Field>(optionFields); // iterate in declaration order
+ final List<Field> fields = new ArrayList<Field>(optionFields); // iterate in declaration order
if (optionSort != null) {
Collections.sort(fields, optionSort);// iterate in specified sort order
}
if (clusterBooleanOptions) { // cluster all short boolean options into a single string
- List<Field> booleanOptions = new ArrayList<Field>();
- StringBuilder clusteredRequired = new StringBuilder("-");
- StringBuilder clusteredOptional = new StringBuilder("-");
- for (Field field : fields) {
+ final List<Field> booleanOptions = new ArrayList<Field>();
+ final StringBuilder clusteredRequired = new StringBuilder("-");
+ final StringBuilder clusteredOptional = new StringBuilder("-");
+ for (final Field field : fields) {
if (field.getType() == boolean.class || field.getType() == Boolean.class) {
- Option option = field.getAnnotation(Option.class);
- String shortestName = ShortestFirst.sort(option.names())[0];
+ final Option option = field.getAnnotation(Option.class);
+ final String shortestName = ShortestFirst.sort(option.names())[0];
if (shortestName.length() == 2 && shortestName.startsWith("-")) {
booleanOptions.add(field);
if (option.required()) {
@@ -3092,8 +3092,8 @@ public class CommandLine {
optionText = optionText.append(" [").append(colorScheme.optionText(clusteredOptional.toString())).append("]");
}
}
- for (Field field : fields) {
- Option option = field.getAnnotation(Option.class);
+ for (final Field field : fields) {
+ final Option option = field.getAnnotation(Option.class);
if (!option.hidden()) {
if (option.required()) {
optionText = appendOptionSynopsis(optionText, field, ShortestFirst.sort(option.names())[0], " ", "");
@@ -3108,28 +3108,28 @@ public class CommandLine {
}
}
}
- for (Field positionalParam : positionalParametersFields) {
+ for (final Field positionalParam : positionalParametersFields) {
if (!positionalParam.getAnnotation(Parameters.class).hidden()) {
optionText = optionText.append(" ");
- Text label = parameterLabelRenderer.renderParameterLabel(positionalParam, colorScheme.ansi(), colorScheme.parameterStyles);
+ final Text label = parameterLabelRenderer.renderParameterLabel(positionalParam, colorScheme.ansi(), colorScheme.parameterStyles);
optionText = optionText.append(label);
}
}
// Fix for #142: first line of synopsis overshoots max. characters
- int firstColumnLength = commandName.length() + synopsisHeadingLength;
+ final int firstColumnLength = commandName.length() + synopsisHeadingLength;
// synopsis heading ("Usage: ") may be on the same line, so adjust column width
- TextTable textTable = new TextTable(ansi(), firstColumnLength, usageHelpWidth - firstColumnLength);
+ final TextTable textTable = new TextTable(ansi(), firstColumnLength, usageHelpWidth - firstColumnLength);
textTable.indentWrappedLines = 1; // don't worry about first line: options (2nd column) always start with a space
// right-adjust the command name by length of synopsis heading
- Text PADDING = Ansi.OFF.new Text(stringOf('X', synopsisHeadingLength));
+ final Text PADDING = Ansi.OFF.new Text(stringOf('X', synopsisHeadingLength));
textTable.addRowValues(new Text[] {PADDING.append(colorScheme.commandText(commandName)), optionText});
return textTable.toString().substring(synopsisHeadingLength); // cut off leading synopsis heading spaces
}
- private Text appendOptionSynopsis(Text optionText, Field field, String optionName, String prefix, String suffix) {
- Text optionParamText = parameterLabelRenderer.renderParameterLabel(field, colorScheme.ansi(), colorScheme.optionParamStyles);
+ private Text appendOptionSynopsis(final Text optionText, final Field field, final String optionName, final String prefix, final String suffix) {
+ final Text optionParamText = parameterLabelRenderer.renderParameterLabel(field, colorScheme.ansi(), colorScheme.optionParamStyles);
return optionText.append(prefix)
.append(colorScheme.optionText(optionName))
.append(optionParamText)
@@ -3141,7 +3141,7 @@ public class CommandLine {
* @see #detailedSynopsis(int, Comparator, boolean)
*/
public int synopsisHeadingLength() {
- String[] lines = Ansi.OFF.new Text(synopsisHeading).toString().split("\\r?\\n|\\r|%n", -1);
+ final String[] lines = Ansi.OFF.new Text(synopsisHeading).toString().split("\\r?\\n|\\r|%n", -1);
return lines[lines.length - 1].length();
}
/**
@@ -3153,7 +3153,7 @@ public class CommandLine {
* @see #optionList(Layout, Comparator, IParamLabelRenderer)
*/
public String optionList() {
- Comparator<Field> sortOrder = sortOptions == null || sortOptions.booleanValue()
+ final Comparator<Field> sortOrder = sortOptions == null || sortOptions.booleanValue()
? createShortOptionNameComparator()
: null;
return optionList(createDefaultLayout(), sortOrder, parameterLabelRenderer);
@@ -3167,8 +3167,8 @@ public class CommandLine {
* @param valueLabelRenderer used for options with a parameter
* @return the fully formatted option list
*/
- public String optionList(Layout layout, Comparator<Field> optionSort, IParamLabelRenderer valueLabelRenderer) {
- List<Field> fields = new ArrayList<Field>(optionFields); // options are stored in order of declaration
+ public String optionList(final Layout layout, final Comparator<Field> optionSort, final IParamLabelRenderer valueLabelRenderer) {
+ final List<Field> fields = new ArrayList<Field>(optionFields); // options are stored in order of declaration
if (optionSort != null) {
Collections.sort(fields, optionSort); // default: sort options ABC
}
@@ -3189,20 +3189,20 @@ public class CommandLine {
* @param paramLabelRenderer for rendering parameter names
* @return the section of the usage help message that lists the parameters
*/
- public String parameterList(Layout layout, IParamLabelRenderer paramLabelRenderer) {
+ public String parameterList(final Layout layout, final IParamLabelRenderer paramLabelRenderer) {
layout.addPositionalParameters(positionalParametersFields, paramLabelRenderer);
return layout.toString();
}
- private static String heading(Ansi ansi, String values, Object... params) {
- StringBuilder sb = join(ansi, new String[] {values}, new StringBuilder(), params);
+ private static String heading(final Ansi ansi, final String values, final Object... params) {
+ final StringBuilder sb = join(ansi, new String[] {values}, new StringBuilder(), params);
String result = sb.toString();
result = result.endsWith(System.getProperty("line.separator"))
? result.substring(0, result.length() - System.getProperty("line.separator").length()) : result;
return result + new String(spaces(countTrailingSpaces(values)));
}
- private static char[] spaces(int length) { char[] result = new char[length]; Arrays.fill(result, ' '); return result; }
- private static int countTrailingSpaces(String str) {
+ private static char[] spaces(final int length) { final char[] result = new char[length]; Arrays.fill(result, ' '); return result; }
+ private static int countTrailingSpaces(final String str) {
if (str == null) {return 0;}
int trailingSpaces = 0;
for (int i = str.length() - 1; i >= 0 && str.charAt(i) == ' '; i--) { trailingSpaces++; }
@@ -3215,19 +3215,19 @@ public class CommandLine {
* @param sb the StringBuilder to collect the formatted strings
* @param params the parameters to pass to the format method when formatting each value
* @return the specified StringBuilder */
- public static StringBuilder join(Ansi ansi, String[] values, StringBuilder sb, Object... params) {
+ public static StringBuilder join(final Ansi ansi, final String[] values, final StringBuilder sb, final Object... params) {
if (values != null) {
- TextTable table = new TextTable(ansi, usageHelpWidth);
+ final TextTable table = new TextTable(ansi, usageHelpWidth);
table.indentWrappedLines = 0;
- for (String summaryLine : values) {
- Text[] lines = ansi.new Text(format(summaryLine, params)).splitLines();
- for (Text line : lines) { table.addRowValues(line); }
+ for (final String summaryLine : values) {
+ final Text[] lines = ansi.new Text(format(summaryLine, params)).splitLines();
+ for (final Text line : lines) { table.addRowValues(line); }
}
table.toString(sb);
}
return sb;
}
- private static String format(String formatString, Object... params) {
+ private static String format(final String formatString, final Object... params) {
return formatString == null ? "" : String.format(formatString, params);
}
/** Returns command custom synopsis as a string. A custom synopsis can be zero or more lines, and can be
@@ -3236,7 +3236,7 @@ public class CommandLine {
* @param params Arguments referenced by the format specifiers in the synopsis strings
* @return the custom synopsis lines combined into a single String (which may be empty)
*/
- public String customSynopsis(Object... params) {
+ public String customSynopsis(final Object... params) {
return join(ansi(), customSynopsis, new StringBuilder(), params).toString();
}
/** Returns command description text as a string. Description text can be zero or more lines, and can be specified
@@ -3245,7 +3245,7 @@ public class CommandLine {
* @param params Arguments referenced by the format specifiers in the description strings
* @return the description lines combined into a single String (which may be empty)
*/
- public String description(Object... params) {
+ public String description(final Object... params) {
return join(ansi(), description, new StringBuilder(), params).toString();
}
/** Returns the command header text as a string. Header text can be zero or more lines, and can be specified
@@ -3254,7 +3254,7 @@ public class CommandLine {
* @param params Arguments referenced by the format specifiers in the header strings
* @return the header lines combined into a single String (which may be empty)
*/
- public String header(Object... params) {
+ public String header(final Object... params) {
return join(ansi(), header, new StringBuilder(), params).toString();
}
/** Returns command footer text as a string. Footer text can be zero or more lines, and can be specified
@@ -3263,21 +3263,21 @@ public class CommandLine {
* @param params Arguments referenced by the format specifiers in the footer strings
* @return the footer lines combined into a single String (which may be empty)
*/
- public String footer(Object... params) {
+ public String footer(final Object... params) {
return join(ansi(), footer, new StringBuilder(), params).toString();
}
/** Returns the text displayed before the header text; the result of {@code String.format(headerHeading, params)}.
* @param params the parameters to use to format the header heading
* @return the formatted header heading */
- public String headerHeading(Object... params) {
+ public String headerHeading(final Object... params) {
return heading(ansi(), headerHeading, params);
}
/** Returns the text displayed before the synopsis text; the result of {@code String.format(synopsisHeading, params)}.
* @param params the parameters to use to format the synopsis heading
* @return the formatted synopsis heading */
- public String synopsisHeading(Object... params) {
+ public String synopsisHeading(final Object... params) {
return heading(ansi(), synopsisHeading, params);
}
@@ -3285,7 +3285,7 @@ public class CommandLine {
* otherwise the result of {@code String.format(descriptionHeading, params)}.
* @param params the parameters to use to format the description heading
* @return the formatted description heading */
- public String descriptionHeading(Object... params) {
+ public String descriptionHeading(final Object... params) {
return empty(descriptionHeading) ? "" : heading(ansi(), descriptionHeading, params);
}
@@ -3293,7 +3293,7 @@ public class CommandLine {
* parameters, otherwise the result of {@code String.format(parameterListHeading, params)}.
* @param params the parameters to use to format the parameter list heading
* @return the formatted parameter list heading */
- public String parameterListHeading(Object... params) {
+ public String parameterListHeading(final Object... params) {
return positionalParametersFields.isEmpty() ? "" : heading(ansi(), parameterListHeading, params);
}
@@ -3301,7 +3301,7 @@ public class CommandLine {
* otherwise the result of {@code String.format(optionListHeading, params)}.
* @param params the parameters to use to format the option list heading
* @return the formatted option list heading */
- public String optionListHeading(Object... params) {
+ public String optionListHeading(final Object... params) {
return optionFields.isEmpty() ? "" : heading(ansi(), optionListHeading, params);
}
@@ -3309,48 +3309,48 @@ public class CommandLine {
* otherwise the result of {@code String.format(commandListHeading, params)}.
* @param params the parameters to use to format the command list heading
* @return the formatted command list heading */
- public String commandListHeading(Object... params) {
+ public String commandListHeading(final Object... params) {
return commands.isEmpty() ? "" : heading(ansi(), commandListHeading, params);
}
/** Returns the text displayed before the footer text; the result of {@code String.format(footerHeading, params)}.
* @param params the parameters to use to format the footer heading
* @return the formatted footer heading */
- public String footerHeading(Object... params) {
+ public String footerHeading(final Object... params) {
return heading(ansi(), footerHeading, params);
}
/** Returns a 2-column list with command names and the first line of their header or (if absent) description.
* @return a usage help section describing the added commands */
public String commandList() {
if (commands.isEmpty()) { return ""; }
- int commandLength = maxLength(commands.keySet());
- Help.TextTable textTable = new Help.TextTable(ansi(),
+ final int commandLength = maxLength(commands.keySet());
+ final Help.TextTable textTable = new Help.TextTable(ansi(),
new Help.Column(commandLength + 2, 2, Help.Column.Overflow.SPAN),
new Help.Column(usageHelpWidth - (commandLength + 2), 2, Help.Column.Overflow.WRAP));
- for (Map.Entry<String, Help> entry : commands.entrySet()) {
- Help command = entry.getValue();
- String header = command.header != null && command.header.length > 0 ? command.header[0]
+ for (final Map.Entry<String, Help> entry : commands.entrySet()) {
+ final Help command = entry.getValue();
+ final String header = command.header != null && command.header.length > 0 ? command.header[0]
: (command.description != null && command.description.length > 0 ? command.description[0] : "");
textTable.addRowValues(colorScheme.commandText(entry.getKey()), ansi().new Text(header));
}
return textTable.toString();
}
- private static int maxLength(Collection<String> any) {
- List<String> strings = new ArrayList<String>(any);
+ private static int maxLength(final Collection<String> any) {
+ final List<String> strings = new ArrayList<String>(any);
Collections.sort(strings, Collections.reverseOrder(Help.shortestFirst()));
return strings.get(0).length();
}
- private static String join(String[] names, int offset, int length, String separator) {
+ private static String join(final String[] names, final int offset, final int length, final String separator) {
if (names == null) { return ""; }
- StringBuilder result = new StringBuilder();
+ final StringBuilder result = new StringBuilder();
for (int i = offset; i < offset + length; i++) {
result.append((i > offset) ? separator : "").append(names[i]);
}
return result.toString();
}
- private static String stringOf(char chr, int length) {
- char[] buff = new char[length];
+ private static String stringOf(final char chr, final int length) {
+ final char[] buff = new char[length];
Arrays.fill(buff, chr);
return new String(buff);
}
@@ -3375,7 +3375,7 @@ public class CommandLine {
* @return a new default OptionRenderer
*/
public IOptionRenderer createDefaultOptionRenderer() {
- DefaultOptionRenderer result = new DefaultOptionRenderer();
+ final DefaultOptionRenderer result = new DefaultOptionRenderer();
result.requiredMarker = String.valueOf(requiredOptionMarker);
if (showDefaultValues != null && showDefaultValues.booleanValue()) {
result.command = this.command;
@@ -3403,7 +3403,7 @@ public class CommandLine {
* @return a new default ParameterRenderer
*/
public IParameterRenderer createDefaultParameterRenderer() {
- DefaultParameterRenderer result = new DefaultParameterRenderer();
+ final DefaultParameterRenderer result = new DefaultParameterRenderer();
result.requiredMarker = String.valueOf(requiredOptionMarker);
return result;
}
@@ -3419,8 +3419,8 @@ public class CommandLine {
public static IParamLabelRenderer createMinimalParamLabelRenderer() {
return new IParamLabelRenderer() {
@Override
- public Text renderParameterLabel(Field field, Ansi ansi, List<IStyle> styles) {
- String text = DefaultParamLabelRenderer.renderParameterName(field);
+ public Text renderParameterLabel(final Field field, final Ansi ansi, final List<IStyle> styles) {
+ final String text = DefaultParamLabelRenderer.renderParameterName(field);
return ansi.apply(text, styles);
}
@Override
@@ -3493,49 +3493,49 @@ public class CommandLine {
private String sep;
private boolean showDefault;
@Override
- public Text[][] render(Option option, Field field, IParamLabelRenderer paramLabelRenderer, ColorScheme scheme) {
- String[] names = ShortestFirst.sort(option.names());
- int shortOptionCount = names[0].length() == 2 ? 1 : 0;
- String shortOption = shortOptionCount > 0 ? names[0] : "";
+ public Text[][] render(final Option option, final Field field, final IParamLabelRenderer paramLabelRenderer, final ColorScheme scheme) {
+ final String[] names = ShortestFirst.sort(option.names());
+ final int shortOptionCount = names[0].length() == 2 ? 1 : 0;
+ final String shortOption = shortOptionCount > 0 ? names[0] : "";
sep = shortOptionCount > 0 && names.length > 1 ? "," : "";
- String longOption = join(names, shortOptionCount, names.length - shortOptionCount, ", ");
- Text longOptionText = createLongOptionText(field, paramLabelRenderer, scheme, longOption);
+ final String longOption = join(names, shortOptionCount, names.length - shortOptionCount, ", ");
+ final Text longOptionText = createLongOptionText(field, paramLabelRenderer, scheme, longOption);
showDefault = command != null && !option.help() && !isBoolean(field.getType());
- Object defaultValue = createDefaultValue(field);
+ final Object defaultValue = createDefaultValue(field);
- String requiredOption = option.required() ? requiredMarker : "";
+ final String requiredOption = option.required() ? requiredMarker : "";
return renderDescriptionLines(option, scheme, requiredOption, shortOption, longOptionText, defaultValue);
}
- private Object createDefaultValue(Field field) {
+ private Object createDefaultValue(final Field field) {
Object defaultValue = null;
try {
defaultValue = field.get(command);
if (defaultValue == null) { showDefault = false; } // #201 don't show null default values
else if (field.getType().isArray()) {
- StringBuilder sb = new StringBuilder();
+ final StringBuilder sb = new StringBuilder();
for (int i = 0; i < Array.getLength(defaultValue); i++) {
sb.append(i > 0 ? ", " : "").append(Array.get(defaultValue, i));
}
defaultValue = sb.insert(0, "[").append("]").toString();
}
- } catch (Exception ex) {
+ } catch (final Exception ex) {
showDefault = false;
}
return defaultValue;
}
- private Text createLongOptionText(Field field, IParamLabelRenderer renderer, ColorScheme scheme, String longOption) {
+ private Text createLongOptionText(final Field field, final IParamLabelRenderer renderer, final ColorScheme scheme, final String longOption) {
Text paramLabelText = renderer.renderParameterLabel(field, scheme.ansi(), scheme.optionParamStyles);
// if no long option, fill in the space between the short option name and the param label value
if (paramLabelText.length > 0 && longOption.length() == 0) {
sep = renderer.separator();
// #181 paramLabelText may be =LABEL or [=LABEL...]
- int sepStart = paramLabelText.plainString().indexOf(sep);
- Text prefix = paramLabelText.substring(0, sepStart);
+ final int sepStart = paramLabelText.plainString().indexOf(sep);
+ final Text prefix = paramLabelText.substring(0, sepStart);
paramLabelText = prefix.append(paramLabelText.substring(sepStart + sep.length()));
}
Text longOptionText = scheme.optionText(longOption);
@@ -3543,14 +3543,14 @@ public class CommandLine {
return longOptionText;
}
- private Text[][] renderDescriptionLines(Option option,
- ColorScheme scheme,
- String requiredOption,
- String shortOption,
- Text longOptionText,
- Object defaultValue) {
- Text EMPTY = Ansi.EMPTY_TEXT;
- List<Text[]> result = new ArrayList<Text[]>();
+ private Text[][] renderDescriptionLines(final Option option,
+ final ColorScheme scheme,
+ final String requiredOption,
+ final String shortOption,
+ final Text longOptionText,
+ final Object defaultValue) {
+ final Text EMPTY = Ansi.EMPTY_TEXT;
+ final List<Text[]> result = new ArrayList<Text[]>();
Text[] descriptionFirstLines = scheme.ansi().new Text(str(option.description(), 0)).splitLines();
if (descriptionFirstLines.length == 0) {
if (showDefault) {
@@ -3566,8 +3566,8 @@ public class CommandLine {
result.add(new Text[] { EMPTY, EMPTY, EMPTY, EMPTY, descriptionFirstLines[i] });
}
for (int i = 1; i < option.description().length; i++) {
- Text[] descriptionNextLines = scheme.ansi().new Text(option.description()[i]).splitLines();
- for (Text line : descriptionNextLines) {
+ final Text[] descriptionNextLines = scheme.ansi().new Text(option.description()[i]).splitLines();
+ for (final Text line : descriptionNextLines) {
result.add(new Text[] { EMPTY, EMPTY, EMPTY, EMPTY, line });
}
}
@@ -3581,9 +3581,9 @@ public class CommandLine {
* option name and a description. If multiple names or description lines exist, the first value is used. */
static class MinimalOptionRenderer implements IOptionRenderer {
@Override
- public Text[][] render(Option option, Field field, IParamLabelRenderer parameterLabelRenderer, ColorScheme scheme) {
+ public Text[][] render(final Option option, final Field field, final IParamLabelRenderer parameterLabelRenderer, final ColorScheme scheme) {
Text optionText = scheme.optionText(option.names()[0]);
- Text paramLabelText = parameterLabelRenderer.renderParameterLabel(field, scheme.ansi(), scheme.optionParamStyles);
+ final Text paramLabelText = parameterLabelRenderer.renderParameterLabel(field, scheme.ansi(), scheme.optionParamStyles);
optionText = optionText.append(paramLabelText);
return new Text[][] {{ optionText,
scheme.ansi().new Text(option.description().length == 0 ? "" : option.description()[0]) }};
@@ -3593,7 +3593,7 @@ public class CommandLine {
* text: the parameters label and a description. If multiple description lines exist, the first value is used. */
static class MinimalParameterRenderer implements IParameterRenderer {
@Override
- public Text[][] render(Parameters param, Field field, IParamLabelRenderer parameterLabelRenderer, ColorScheme scheme) {
+ public Text[][] render(final Parameters param, final Field field, final IParamLabelRenderer parameterLabelRenderer, final ColorScheme scheme) {
return new Text[][] {{ parameterLabelRenderer.renderParameterLabel(field, scheme.ansi(), scheme.parameterStyles),
scheme.ansi().new Text(param.description().length == 0 ? "" : param.description()[0]) }};
}
@@ -3628,12 +3628,12 @@ public class CommandLine {
static class DefaultParameterRenderer implements IParameterRenderer {
public String requiredMarker = " ";
@Override
- public Text[][] render(Parameters params, Field field, IParamLabelRenderer paramLabelRenderer, ColorScheme scheme) {
- Text label = paramLabelRenderer.renderParameterLabel(field, scheme.ansi(), scheme.parameterStyles);
- Text requiredParameter = scheme.parameterText(Range.parameterArity(field).min > 0 ? requiredMarker : "");
+ public Text[][] render(final Parameters params, final Field field, final IParamLabelRenderer paramLabelRenderer, final ColorScheme scheme) {
+ final Text label = paramLabelRenderer.renderParameterLabel(field, scheme.ansi(), scheme.parameterStyles);
+ final Text requiredParameter = scheme.parameterText(Range.parameterArity(field).min > 0 ? requiredMarker : "");
- Text EMPTY = Ansi.EMPTY_TEXT;
- List<Text[]> result = new ArrayList<Text[]>();
+ final Text EMPTY = Ansi.EMPTY_TEXT;
+ final List<Text[]> result = new ArrayList<Text[]>();
Text[] descriptionFirstLines = scheme.ansi().new Text(str(params.description(), 0)).splitLines();
if (descriptionFirstLines.length == 0) { descriptionFirstLines = new Text[]{ EMPTY }; }
result.add(new Text[] { requiredParameter, EMPTY, EMPTY, label, descriptionFirstLines[0] });
@@ -3641,8 +3641,8 @@ public class CommandLine {
result.add(new Text[] { EMPTY, EMPTY, EMPTY, EMPTY, descriptionFirstLines[i] });
}
for (int i = 1; i < params.description().length; i++) {
- Text[] descriptionNextLines = scheme.ansi().new Text(params.description()[i]).splitLines();
- for (Text line : descriptionNextLines) {
+ final Text[] descriptionNextLines = scheme.ansi().new Text(params.description()[i]).splitLines();
+ for (final Text line : descriptionNextLines) {
result.add(new Text[] { EMPTY, EMPTY, EMPTY, EMPTY, line });
}
}
@@ -3675,16 +3675,16 @@ public class CommandLine {
/** The string to use to separate option parameters from their options. */
public final String separator;
/** Constructs a new DefaultParamLabelRenderer with the specified separator string. */
- public DefaultParamLabelRenderer(String separator) {
+ public DefaultParamLabelRenderer(final String separator) {
this.separator = Assert.notNull(separator, "separator");
}
@Override
public String separator() { return separator; }
@Override
- public Text renderParameterLabel(Field field, Ansi ansi, List<IStyle> styles) {
- boolean isOptionParameter = field.isAnnotationPresent(Option.class);
- Range arity = isOptionParameter ? Range.optionArity(field) : Range.parameterCapacity(field);
- String split = isOptionParameter ? field.getAnnotation(Option.class).split() : field.getAnnotation(Parameters.class).split();
+ public Text renderParameterLabel(final Field field, final Ansi ansi, final List<IStyle> styles) {
+ final boolean isOptionParameter = field.isAnnotationPresent(Option.class);
+ final Range arity = isOptionParameter ? Range.optionArity(field) : Range.parameterCapacity(field);
+ final String split = isOptionParameter ? field.getAnnotation(Option.class).split() : field.getAnnotation(Parameters.class).split();
Text result = ansi.new Text("");
String sep = isOptionParameter ? separator : "";
Text paramName = ansi.apply(renderParameterName(field), styles);
@@ -3713,7 +3713,7 @@ public class CommandLine {
}
return result;
}
- private static String renderParameterName(Field field) {
+ private static String renderParameterName(final Field field) {
String result = null;
if (field.isAnnotationPresent(Option.class)) {
result = field.getAnnotation(Option.class).paramLabel();
@@ -3725,7 +3725,7 @@ public class CommandLine {
}
String name = field.getName();
if (Map.class.isAssignableFrom(field.getType())) { // #195 better param labels for map fields
- Class<?>[] paramTypes = getTypeAttribute(field);
+ final Class<?>[] paramTypes = getTypeAttribute(field);
if (paramTypes.length < 2 || paramTypes[0] == null || paramTypes[1] == null) {
name = "String=String";
} else { name = paramTypes[0].getSimpleName() + "=" + paramTypes[1].getSimpleName(); }
@@ -3752,14 +3752,14 @@ public class CommandLine {
* {@linkplain Help#createDefaultOptionRenderer() default option renderer}, and the
* {@linkplain Help#createDefaultParameterRenderer() default parameter renderer}.
* @param colorScheme the color scheme to use for common, auto-generated parts of the usage help message */
- public Layout(ColorScheme colorScheme) { this(colorScheme, new TextTable(colorScheme.ansi())); }
+ public Layout(final ColorScheme colorScheme) { this(colorScheme, new TextTable(colorScheme.ansi())); }
/** Constructs a Layout with the specified color scheme, the specified TextTable, the
* {@linkplain Help#createDefaultOptionRenderer() default option renderer}, and the
* {@linkplain Help#createDefaultParameterRenderer() default parameter renderer}.
* @param colorScheme the color scheme to use for common, auto-generated parts of the usage help message
* @param textTable the TextTable to lay out parts of the usage help message in tabular format */
- public Layout(ColorScheme colorScheme, TextTable textTable) {
+ public Layout(final ColorScheme colorScheme, final TextTable textTable) {
this(colorScheme, textTable, new DefaultOptionRenderer(), new DefaultParameterRenderer());
}
/** Constructs a Layout with the specified color scheme, the specified TextTable, the
@@ -3768,7 +3768,7 @@ public class CommandLine {
* @param optionRenderer the object responsible for rendering Options to Text
* @param parameterRenderer the object responsible for rendering Parameters to Text
* @param textTable the TextTable to lay out parts of the usage help message in tabular format */
- public Layout(ColorScheme colorScheme, TextTable textTable, IOptionRenderer optionRenderer, IParameterRenderer parameterRenderer) {
+ public Layout(final ColorScheme colorScheme, final TextTable textTable, final IOptionRenderer optionRenderer, final IParameterRenderer parameterRenderer) {
this.colorScheme = Assert.notNull(colorScheme, "colorScheme");
this.table = Assert.notNull(textTable, "textTable");
this.optionRenderer = Assert.notNull(optionRenderer, "optionRenderer");
@@ -3781,17 +3781,17 @@ public class CommandLine {
* @param field the field annotated with the specified Option or Parameters
* @param cellValues the text values representing the Option/Parameters, to be displayed in tabular form
*/
- public void layout(Field field, Text[][] cellValues) {
- for (Text[] oneRow : cellValues) {
+ public void layout(final Field field, final Text[][] cellValues) {
+ for (final Text[] oneRow : cellValues) {
table.addRowValues(oneRow);
}
}
/** Calls {@link #addOption(Field, CommandLine.Help.IParamLabelRenderer)} for all non-hidden Options in the list.
* @param fields fields annotated with {@link Option} to add usage descriptions for
* @param paramLabelRenderer object that knows how to render option parameters */
- public void addOptions(List<Field> fields, IParamLabelRenderer paramLabelRenderer) {
- for (Field field : fields) {
- Option option = field.getAnnotation(Option.class);
+ public void addOptions(final List<Field> fields, final IParamLabelRenderer paramLabelRenderer) {
+ for (final Field field : fields) {
+ final Option option = field.getAnnotation(Option.class);
if (!option.hidden()) {
addOption(field, paramLabelRenderer);
}
@@ -3804,17 +3804,17 @@ public class CommandLine {
* @param field the field annotated with the specified Option
* @param paramLabelRenderer knows how to render option parameters
*/
- public void addOption(Field field, IParamLabelRenderer paramLabelRenderer) {
- Option option = field.getAnnotation(Option.class);
- Text[][] values = optionRenderer.render(option, field, paramLabelRenderer, colorScheme);
+ public void addOption(final Field field, final IParamLabelRenderer paramLabelRenderer) {
+ final Option option = field.getAnnotation(Option.class);
+ final Text[][] values = optionRenderer.render(option, field, paramLabelRenderer, colorScheme);
layout(field, values);
}
/** Calls {@link #addPositionalParameter(Field, CommandLine.Help.IParamLabelRenderer)} for all non-hidden Parameters in the list.
* @param fields fields annotated with {@link Parameters} to add usage descriptions for
* @param paramLabelRenderer knows how to render option parameters */
- public void addPositionalParameters(List<Field> fields, IParamLabelRenderer paramLabelRenderer) {
- for (Field field : fields) {
- Parameters parameters = field.getAnnotation(Parameters.class);
+ public void addPositionalParameters(final List<Field> fields, final IParamLabelRenderer paramLabelRenderer) {
+ for (final Field field : fields) {
+ final Parameters parameters = field.getAnnotation(Parameters.class);
if (!parameters.hidden()) {
addPositionalParameter(field, paramLabelRenderer);
}
@@ -3827,9 +3827,9 @@ public class CommandLine {
* @param field the field annotated with the specified Parameters
* @param paramLabelRenderer knows how to render option parameters
*/
- public void addPositionalParameter(Field field, IParamLabelRenderer paramLabelRenderer) {
- Parameters option = field.getAnnotation(Parameters.class);
- Text[][] values = parameterRenderer.render(option, field, paramLabelRenderer, colorScheme);
+ public void addPositionalParameter(final Field field, final IParamLabelRenderer paramLabelRenderer) {
+ final Parameters option = field.getAnnotation(Parameters.class);
+ final Text[][] values = parameterRenderer.render(option, field, paramLabelRenderer, colorScheme);
layout(field, values);
}
/** Returns the section of the usage help message accumulated in the TextTable owned by this layout. */
@@ -3840,11 +3840,11 @@ public class CommandLine {
/** Sorts short strings before longer strings. */
static class ShortestFirst implements Comparator<String> {
@Override
- public int compare(String o1, String o2) {
+ public int compare(final String o1, final String o2) {
return o1.length() - o2.length();
}
/** Sorts the specified array of Strings shortest-first and returns it. */
- public static String[] sort(String[] names) {
+ public static String[] sort(final String[] names) {
Arrays.sort(names, new ShortestFirst());
return names;
}
@@ -3853,12 +3853,12 @@ public class CommandLine {
* multiple names, the shortest name is used for the sorting. Help options follow non-help options. */
static class SortByShortestOptionNameAlphabetically implements Comparator<Field> {
@Override
- public int compare(Field f1, Field f2) {
- Option o1 = f1.getAnnotation(Option.class);
- Option o2 = f2.getAnnotation(Option.class);
+ public int compare(final Field f1, final Field f2) {
+ final Option o1 = f1.getAnnotation(Option.class);
+ final Option o2 = f2.getAnnotation(Option.class);
if (o1 == null) { return 1; } else if (o2 == null) { return -1; } // options before params
- String[] names1 = ShortestFirst.sort(o1.names());
- String[] names2 = ShortestFirst.sort(o2.names());
+ final String[] names1 = ShortestFirst.sort(o1.names());
+ final String[] names2 = ShortestFirst.sort(o2.names());
int result = names1[0].toUpperCase().compareTo(names2[0].toUpperCase()); // case insensitive sort
result = result == 0 ? -names1[0].compareTo(names2[0]) : result; // lower case before upper case
return o1.help() == o2.help() ? result : o2.help() ? -1 : 1; // help options come last
@@ -3867,11 +3867,11 @@ public class CommandLine {
/** Sorts {@code Option} instances by their max arity first, then their min arity, then delegates to super class. */
static class SortByOptionArityAndNameAlphabetically extends SortByShortestOptionNameAlphabetically {
@Override
- public int compare(Field f1, Field f2) {
- Option o1 = f1.getAnnotation(Option.class);
- Option o2 = f2.getAnnotation(Option.class);
- Range arity1 = Range.optionArity(f1);
- Range arity2 = Range.optionArity(f2);
+ public int compare(final Field f1, final Field f2) {
+ final Option o1 = f1.getAnnotation(Option.class);
+ final Option o2 = f2.getAnnotation(Option.class);
+ final Range arity1 = Range.optionArity(f1);
+ final Range arity2 = Range.optionArity(f2);
int result = arity1.max - arity2.max;
if (result == 0) {
result = arity1.min - arity2.min;
@@ -3901,7 +3901,7 @@ public class CommandLine {
/** Constructs a new Cell with the specified coordinates in the table.
* @param column the zero-based table column
* @param row the zero-based table row */
- public Cell(int column, int row) { this.column = column; this.row = row; }
+ public Cell(final int column, final int row) { this.column = column; this.row = row; }
}
/** The column definitions of this table. */
@@ -3925,7 +3925,7 @@ public class CommandLine {
* </ol>
* @param ansi whether to emit ANSI escape codes or not
*/
- public TextTable(Ansi ansi) {
+ public TextTable(final Ansi ansi) {
// "* -c, --create Creates a ...."
this(ansi, new Column[] {
new Column(2, 0, TRUNCATE), // "*"
@@ -3941,7 +3941,7 @@ public class CommandLine {
* @param ansi whether to emit ANSI escape codes or not
* @param columnWidths the width of the table columns (all columns have zero indent)
*/
- public TextTable(Ansi ansi, int... columnWidths) {
+ public TextTable(final Ansi ansi, final int... columnWidths) {
this.ansi = Assert.notNull(ansi, "ansi");
columns = new Column[columnWidths.length];
for (int i = 0; i < columnWidths.length; i++) {
@@ -3951,7 +3951,7 @@ public class CommandLine {
/** Constructs a {@code TextTable} with the specified columns.
* @param ansi whether to emit ANSI escape codes or not
* @param columns columns to construct this TextTable with */
- public TextTable(Ansi ansi, Column... columns) {
+ public TextTable(final Ansi ansi, final Column... columns) {
this.ansi = Assert.notNull(ansi, "ansi");
this.columns = Assert.notNull(columns, "columns");
if (columns.length == 0) { throw new IllegalArgumentException("At least one column is required"); }
@@ -3961,7 +3961,7 @@ public class CommandLine {
* @param col the column of the cell whose Text to return
* @return the Text object at the specified row and column
* @since 2.0 */
- public Text textAt(int row, int col) { return columnValues.get(col + (row * columns.length)); }
+ public Text textAt(final int row, final int col) { return columnValues.get(col + (row * columns.length)); }
/** Returns the {@code Text} slot at the specified row and column to write a text value into.
* @param row the row of the cell whose Text to return
@@ -3969,7 +3969,7 @@ public class CommandLine {
* @return the Text object at the specified row and column
* @deprecated use {@link #textAt(int, int)} instead */
@Deprecated
- public Text cellAt(int row, int col) { return textAt(row, col); }
+ public Text cellAt(final int row, final int col) { return textAt(row, col); }
/** Returns the current number of rows of this {@code TextTable}.
* @return the current number of rows in this TextTable */
@@ -3984,8 +3984,8 @@ public class CommandLine {
/** Delegates to {@link #addRowValues(CommandLine.Help.Ansi.Text...)}.
* @param values the text values to display in each column of the current row */
- public void addRowValues(String... values) {
- Text[] array = new Text[values.length];
+ public void addRowValues(final String... values) {
+ final Text[] array = new Text[values.length];
for (int i = 0; i < array.length; i++) {
array[i] = values[i] == null ? Ansi.EMPTY_TEXT : ansi.new Text(values[i]);
}
@@ -3998,15 +3998,15 @@ public class CommandLine {
* @param values the values to write into a new row in this TextTable
* @throws IllegalArgumentException if the number of values exceeds the number of Columns in this table
*/
- public void addRowValues(Text... values) {
+ public void addRowValues(final Text... values) {
if (values.length > columns.length) {
throw new IllegalArgumentException(values.length + " values don't fit in " +
columns.length + " columns");
}
addEmptyRow();
for (int col = 0; col < values.length; col++) {
- int row = rowCount() - 1;// write to last row: previous value may have wrapped to next row
- Cell cell = putValue(row, col, values[col]);
+ final int row = rowCount() - 1;// write to last row: previous value may have wrapped to next row
+ final Cell cell = putValue(row, col, values[col]);
// add row if a value spanned/wrapped and there are still remaining values
if ((cell.row != row || cell.column != col) && col != values.length - 1) {
@@ -4031,17 +4031,17 @@ public class CommandLine {
throw new IllegalArgumentException("Cannot write to row " + row + ": rowCount=" + rowCount());
}
if (value == null || value.plain.length() == 0) { return new Cell(col, row); }
- Column column = columns[col];
+ final Column column = columns[col];
int indent = column.indent;
switch (column.overflow) {
case TRUNCATE:
copy(value, textAt(row, col), indent);
return new Cell(col, row);
case SPAN:
- int startColumn = col;
+ final int startColumn = col;
do {
- boolean lastColumn = col == columns.length - 1;
- int charsWritten = lastColumn
+ final boolean lastColumn = col == columns.length - 1;
+ final int charsWritten = lastColumn
? copy(BreakIterator.getLineInstance(), value, textAt(row, col), indent)
: copy(value, textAt(row, col), indent);
value = value.substring(charsWritten);
@@ -4058,9 +4058,9 @@ public class CommandLine {
} while (value.length > 0);
return new Cell(col, row);
case WRAP:
- BreakIterator lineBreakIterator = BreakIterator.getLineInstance();
+ final BreakIterator lineBreakIterator = BreakIterator.getLineInstance();
do {
- int charsWritten = copy(lineBreakIterator, value, textAt(row, col), indent);
+ final int charsWritten = copy(lineBreakIterator, value, textAt(row, col), indent);
value = value.substring(charsWritten);
indent = column.indent + indentWrappedLines;
if (value.length > 0) { // value did not fit in column
@@ -4072,16 +4072,16 @@ public class CommandLine {
}
throw new IllegalStateException(column.overflow.toString());
}
- private static int length(Text str) {
+ private static int length(final Text str) {
return str.length; // TODO count some characters as double length
}
- private int copy(BreakIterator line, Text text, Text columnValue, int offset) {
+ private int copy(final BreakIterator line, final Text text, final Text columnValue, final int offset) {
// Deceive the BreakIterator to ensure no line breaks after '-' character
line.setText(text.plainString().replace("-", "\u00ff"));
int done = 0;
for (int start = line.first(), end = line.next(); end != BreakIterator.DONE; start = end, end = line.next()) {
- Text word = text.substring(start, end); //.replace("\u00ff", "-"); // not needed
+ final Text word = text.substring(start, end); //.replace("\u00ff", "-"); // not needed
if (columnValue.maxLength >= offset + done + length(word)) {
done += copy(word, columnValue, offset + done); // TODO localized length
} else {
@@ -4094,8 +4094,8 @@ public class CommandLine {
}
return done;
}
- private static int copy(Text value, Text destination, int offset) {
- int length = Math.min(value.length, destination.maxLength - offset);
+ private static int copy(final Text value, final Text destination, final int offset) {
+ final int length = Math.min(value.length, destination.maxLength - offset);
value.getStyledChars(value.from, length, destination, offset);
return length;
}
@@ -4103,11 +4103,11 @@ public class CommandLine {
/** Copies the text representation that we built up from the options into the specified StringBuilder.
* @param text the StringBuilder to write into
* @return the specified StringBuilder object (to allow method chaining and a more fluid API) */
- public StringBuilder toString(StringBuilder text) {
- int columnCount = this.columns.length;
- StringBuilder row = new StringBuilder(usageHelpWidth);
+ public StringBuilder toString(final StringBuilder text) {
+ final int columnCount = this.columns.length;
+ final StringBuilder row = new StringBuilder(usageHelpWidth);
for (int i = 0; i < columnValues.size(); i++) {
- Text column = columnValues.get(i);
+ final Text column = columnValues.get(i);
row.append(column.toString());
row.append(new String(spaces(columns[i % columnCount].width - column.length)));
if (i % columnCount == columnCount - 1) {
@@ -4140,7 +4140,7 @@ public class CommandLine {
/** Policy that determines how to handle values larger than the column width. */
public final Overflow overflow;
- public Column(int width, int indent, Overflow overflow) {
+ public Column(final int width, final int indent, final Overflow overflow) {
this.width = width;
this.indent = indent;
this.overflow = Assert.notNull(overflow, "overflow");
@@ -4167,40 +4167,40 @@ public class CommandLine {
/** Constructs a new ColorScheme with the specified Ansi enabled mode.
* @param ansi whether to emit ANSI escape codes or not
*/
- public ColorScheme(Ansi ansi) {this.ansi = Assert.notNull(ansi, "ansi"); }
+ public ColorScheme(final Ansi ansi) {this.ansi = Assert.notNull(ansi, "ansi"); }
/** Adds the specified styles to the registered styles for commands in this color scheme and returns this color scheme.
* @param styles the styles to add to the registered styles for commands in this color scheme
* @return this color scheme to enable method chaining for a more fluent API */
- public ColorScheme commands(IStyle... styles) { return addAll(commandStyles, styles); }
+ public ColorScheme commands(final IStyle... styles) { return addAll(commandStyles, styles); }
/** Adds the specified styles to the registered styles for options in this color scheme and returns this color scheme.
* @param styles the styles to add to registered the styles for options in this color scheme
* @return this color scheme to enable method chaining for a more fluent API */
- public ColorScheme options(IStyle... styles) { return addAll(optionStyles, styles);}
+ public ColorScheme options(final IStyle... styles) { return addAll(optionStyles, styles);}
/** Adds the specified styles to the registered styles for positional parameters in this color scheme and returns this color scheme.
* @param styles the styles to add to registered the styles for parameters in this color scheme
* @return this color scheme to enable method chaining for a more fluent API */
- public ColorScheme parameters(IStyle... styles) { return addAll(parameterStyles, styles);}
+ public ColorScheme parameters(final IStyle... styles) { return addAll(parameterStyles, styles);}
/** Adds the specified styles to the registered styles for option parameters in this color scheme and returns this color scheme.
* @param styles the styles to add to the registered styles for option parameters in this color scheme
* @return this color scheme to enable method chaining for a more fluent API */
- public ColorScheme optionParams(IStyle... styles) { return addAll(optionParamStyles, styles);}
+ public ColorScheme optionParams(final IStyle... styles) { return addAll(optionParamStyles, styles);}
/** Returns a Text with all command styles applied to the specified command string.
* @param command the command string to apply the registered command styles to
* @return a Text with all command styles applied to the specified command string */
- public Ansi.Text commandText(String command) { return ansi().apply(command, commandStyles); }
+ public Ansi.Text commandText(final String command) { return ansi().apply(command, commandStyles); }
/** Returns a Text with all option styles applied to the specified option string.
* @param option the option string to apply the registered option styles to
* @return a Text with all option styles applied to the specified option string */
- public Ansi.Text optionText(String option) { return ansi().apply(option, optionStyles); }
+ public Ansi.Text optionText(final String option) { return ansi().apply(option, optionStyles); }
/** Returns a Text with all parameter styles applied to the specified parameter string.
* @param parameter the parameter string to apply the registered parameter styles to
* @return a Text with all parameter styles applied to the specified parameter string */
- public Ansi.Text parameterText(String parameter) { return ansi().apply(parameter, parameterStyles); }
+ public Ansi.Text parameterText(final String parameter) { return ansi().apply(parameter, parameterStyles); }
/** Returns a Text with all optionParam styles applied to the specified optionParam string.
* @param optionParam the option parameter string to apply the registered option parameter styles to
* @return a Text with all option parameter styles applied to the specified option parameter string */
- public Ansi.Text optionParamText(String optionParam) { return ansi().apply(optionParam, optionParamStyles); }
+ public Ansi.Text optionParamText(final String optionParam) { return ansi().apply(optionParam, optionParamStyles); }
/** Replaces colors and styles in this scheme with ones specified in system properties, and returns this scheme.
* Supported property names:<ul>
@@ -4218,13 +4218,13 @@ public class CommandLine {
replace(optionParamStyles, System.getProperty("picocli.color.optionParams"));
return this;
}
- private void replace(List<IStyle> styles, String property) {
+ private void replace(final List<IStyle> styles, final String property) {
if (property != null) {
styles.clear();
addAll(styles, Style.parse(property));
}
}
- private ColorScheme addAll(List<IStyle> styles, IStyle... add) {
+ private ColorScheme addAll(final List<IStyle> styles, final IStyle... add) {
styles.addAll(Arrays.asList(add));
return this;
}
@@ -4239,7 +4239,7 @@ public class CommandLine {
* @param ansi whether the usage help message should contain ANSI escape codes or not
* @return a new default color scheme
*/
- public static ColorScheme defaultColorScheme(Ansi ansi) {
+ public static ColorScheme defaultColorScheme(final Ansi ansi) {
return new ColorScheme(ansi)
.commands(Style.bold)
.options(Style.fg_yellow)
@@ -4265,7 +4265,7 @@ public class CommandLine {
static final boolean calcTTY() {
if (isWindows && isXterm) { return true; } // Cygwin uses pseudo-tty and console is always null...
try { return System.class.getDeclaredMethod("console").invoke(null) != null; }
- catch (Throwable reflectionFailed) { return true; }
+ catch (final Throwable reflectionFailed) { return true; }
}
private static boolean ansiPossible() { return ISATTY && (!isWindows || isXterm); }
@@ -4306,7 +4306,7 @@ public class CommandLine {
private final int startCode;
private final int endCode;
- Style(int startCode, int endCode) {this.startCode = startCode; this.endCode = endCode; }
+ Style(final int startCode, final int endCode) {this.startCode = startCode; this.endCode = endCode; }
@Override
public String on() { return CSI + startCode + "m"; }
@Override
@@ -4315,9 +4315,9 @@ public class CommandLine {
/** Returns the concatenated ANSI escape codes for turning all specified styles on.
* @param styles the styles to generate ANSI escape codes for
* @return the concatenated ANSI escape codes for turning all specified styles on */
- public static String on(IStyle... styles) {
- StringBuilder result = new StringBuilder();
- for (IStyle style : styles) {
+ public static String on(final IStyle... styles) {
+ final StringBuilder result = new StringBuilder();
+ for (final IStyle style : styles) {
result.append(style.on());
}
return result.toString();
@@ -4325,9 +4325,9 @@ public class CommandLine {
/** Returns the concatenated ANSI escape codes for turning all specified styles off.
* @param styles the styles to generate ANSI escape codes for
* @return the concatenated ANSI escape codes for turning all specified styles off */
- public static String off(IStyle... styles) {
- StringBuilder result = new StringBuilder();
- for (IStyle style : styles) {
+ public static String off(final IStyle... styles) {
+ final StringBuilder result = new StringBuilder();
+ for (final IStyle style : styles) {
result.append(style.off());
}
return result.toString();
@@ -4339,9 +4339,9 @@ public class CommandLine {
* or {@code "46"} (indexed color) or {@code "0;5;0"} (RGB components of an indexed color)
* @return the IStyle for the specified converter
*/
- public static IStyle fg(String str) {
- try { return Style.valueOf(str.toLowerCase(ENGLISH)); } catch (Exception ignored) {}
- try { return Style.valueOf("fg_" + str.toLowerCase(ENGLISH)); } catch (Exception ignored) {}
+ public static IStyle fg(final String str) {
+ try { return Style.valueOf(str.toLowerCase(ENGLISH)); } catch (final Exception ignored) {}
+ try { return Style.valueOf("fg_" + str.toLowerCase(ENGLISH)); } catch (final Exception ignored) {}
return new Palette256Color(true, str);
}
/** Parses the specified style markup and returns the associated style.
@@ -4351,9 +4351,9 @@ public class CommandLine {
* or {@code "46"} (indexed color) or {@code "0;5;0"} (RGB components of an indexed color)
* @return the IStyle for the specified converter
*/
- public static IStyle bg(String str) {
- try { return Style.valueOf(str.toLowerCase(ENGLISH)); } catch (Exception ignored) {}
- try { return Style.valueOf("bg_" + str.toLowerCase(ENGLISH)); } catch (Exception ignored) {}
+ public static IStyle bg(final String str) {
+ try { return Style.valueOf(str.toLowerCase(ENGLISH)); } catch (final Exception ignored) {}
+ try { return Style.valueOf("bg_" + str.toLowerCase(ENGLISH)); } catch (final Exception ignored) {}
return new Palette256Color(false, str);
}
/** Parses the specified comma-separated sequence of style descriptors and returns the associated
@@ -4362,15 +4362,15 @@ public class CommandLine {
* @param commaSeparatedCodes one or more descriptors, e.g. {@code "bg(blue),underline,red"}
* @return an array with all styles for the specified descriptors
*/
- public static IStyle[] parse(String commaSeparatedCodes) {
- String[] codes = commaSeparatedCodes.split(",");
- IStyle[] styles = new IStyle[codes.length];
+ public static IStyle[] parse(final String commaSeparatedCodes) {
+ final String[] codes = commaSeparatedCodes.split(",");
+ final IStyle[] styles = new IStyle[codes.length];
for(int i = 0; i < codes.length; ++i) {
if (codes[i].toLowerCase(ENGLISH).startsWith("fg(")) {
- int end = codes[i].indexOf(')');
+ final int end = codes[i].indexOf(')');
styles[i] = Style.fg(codes[i].substring(3, end < 0 ? codes[i].length() : end));
} else if (codes[i].toLowerCase(ENGLISH).startsWith("bg(")) {
- int end = codes[i].indexOf(')');
+ final int end = codes[i].indexOf(')');
styles[i] = Style.bg(codes[i].substring(3, end < 0 ? codes[i].length() : end));
} else {
styles[i] = Style.fg(codes[i]);
@@ -4386,9 +4386,9 @@ public class CommandLine {
private final int fgbg;
private final int color;
- Palette256Color(boolean foreground, String color) {
+ Palette256Color(final boolean foreground, final String color) {
this.fgbg = foreground ? 38 : 48;
- String[] rgb = color.split(";");
+ final String[] rgb = color.split(";");
if (rgb.length == 3) {
this.color = 16 + 36 * Integer.decode(rgb[0]) + 6 * Integer.decode(rgb[1]) + Integer.decode(rgb[2]);
} else {
@@ -4405,10 +4405,10 @@ public class CommandLine {
final int length;
final String startStyles;
final String endStyles;
- StyledSection(int start, int len, String style1, String style2) {
+ StyledSection(final int start, final int len, final String style1, final String style2) {
startIndex = start; length = len; startStyles = style1; endStyles = style2;
}
- StyledSection withStartIndex(int newStart) {
+ StyledSection withStartIndex(final int newStart) {
return new StyledSection(newStart, length, startStyles, endStyles);
}
}
@@ -4420,10 +4420,10 @@ public class CommandLine {
* @param styles the styles to apply to the full plain text
* @return a new Text object
*/
- public Text apply(String plainText, List<IStyle> styles) {
+ public Text apply(final String plainText, final List<IStyle> styles) {
if (plainText.length() == 0) { return new Text(0); }
- Text result = new Text(plainText.length());
- IStyle[] all = styles.toArray(new IStyle[styles.size()]);
+ final Text result = new Text(plainText.length());
+ final IStyle[] all = styles.toArray(new IStyle[styles.size()]);
result.sections.add(new StyledSection(
0, plainText.length(), Style.on(all), Style.off(reverse(all)) + Style.reset.off()));
result.plain.append(plainText);
@@ -4431,9 +4431,9 @@ public class CommandLine {
return result;
}
- private static <T> T[] reverse(T[] all) {
+ private static <T> T[] reverse(final T[] all) {
for (int i = 0; i < all.length / 2; i++) {
- T temp = all[i];
+ final T temp = all[i];
all[i] = all[all.length - i - 1];
all[all.length - i - 1] = temp;
}
@@ -4454,14 +4454,14 @@ public class CommandLine {
/** Constructs a Text with the specified max length (for use in a TextTable Column).
* @param maxLength max length of this text */
- public Text(int maxLength) { this.maxLength = maxLength; }
+ public Text(final int maxLength) { this.maxLength = maxLength; }
/**
* Constructs a Text with the specified String, which may contain markup like
* {@code @|bg(red),white,underline some text|@}.
* @param input the string with markup to parse
*/
- public Text(String input) {
+ public Text(final String input) {
maxLength = -1;
plain.setLength(0);
int i = 0;
@@ -4479,7 +4479,7 @@ public class CommandLine {
return;
}
plain.append(input.substring(i, j));
- int k = input.indexOf("|@", j);
+ final int k = input.indexOf("|@", j);
if (k == -1) {
plain.append(input);
length = plain.length();
@@ -4487,35 +4487,35 @@ public class CommandLine {
}
j += 2;
- String spec = input.substring(j, k);
- String[] items = spec.split(" ", 2);
+ final String spec = input.substring(j, k);
+ final String[] items = spec.split(" ", 2);
if (items.length == 1) {
plain.append(input);
length = plain.length();
return;
}
- IStyle[] styles = Style.parse(items[0]);
+ final IStyle[] styles = Style.parse(items[0]);
addStyledSection(plain.length(), items[1].length(),
Style.on(styles), Style.off(reverse(styles)) + Style.reset.off());
plain.append(items[1]);
i = k + 2;
}
}
- private void addStyledSection(int start, int length, String startStyle, String endStyle) {
+ private void addStyledSection(final int start, final int length, final String startStyle, final String endStyle) {
sections.add(new StyledSection(start, length, startStyle, endStyle));
}
@Override
public Object clone() {
- try { return super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException(e); }
+ try { return super.clone(); } catch (final CloneNotSupportedException e) { throw new IllegalStateException(e); }
}
public Text[] splitLines() {
- List<Text> result = new ArrayList<Text>();
+ final List<Text> result = new ArrayList<Text>();
boolean trailingEmptyString = false;
int start = 0, end = 0;
for (int i = 0; i < plain.length(); i++, end = i) {
- char c = plain.charAt(i);
+ final char c = plain.charAt(i);
boolean eol = c == '\n';
eol |= (c == '\r' && i + 1 < plain.length() && plain.charAt(i + 1) == '\n' && ++i > 0); // \r\n
eol |= c == '\r';
@@ -4534,7 +4534,7 @@ public class CommandLine {
/** Returns a new {@code Text} instance that is a substring of this Text. Does not modify this instance!
* @param start index in the plain text where to start the substring
* @return a new Text instance that is a substring of this Text */
- public Text substring(int start) {
+ public Text substring(final int start) {
return substring(start, length);
}
@@ -4542,8 +4542,8 @@ public class CommandLine {
* @param start index in the plain text where to start the substring
* @param end index in the plain text where to end the substring
* @return a new Text instance that is a substring of this Text */
- public Text substring(int start, int end) {
- Text result = (Text) clone();
+ public Text substring(final int start, final int end) {
+ final Text result = (Text) clone();
result.from = from + start;
result.length = end - start;
return result;
@@ -4551,24 +4551,24 @@ public class CommandLine {
/** Returns a new {@code Text} instance with the specified text appended. Does not modify this instance!
* @param string the text to append
* @return a new Text instance */
- public Text append(String string) {
+ public Text append(final String string) {
return append(new Text(string));
}
/** Returns a new {@code Text} instance with the specified text appended. Does not modify this instance!
* @param other the text to append
* @return a new Text instance */
- public Text append(Text other) {
- Text result = (Text) clone();
+ public Text append(final Text other) {
+ final Text result = (Text) clone();
result.plain = new StringBuilder(plain.toString().substring(from, from + length));
result.from = 0;
result.sections = new ArrayList<StyledSection>();
- for (StyledSection section : sections) {
+ for (final StyledSection section : sections) {
result.sections.add(section.withStartIndex(section.startIndex - from));
}
result.plain.append(other.plain.toString().substring(other.from, other.from + other.length));
- for (StyledSection section : other.sections) {
- int index = result.length + section.startIndex - other.from;
+ for (final StyledSection section : other.sections) {
+ final int index = result.length + section.startIndex - other.from;
result.sections.add(section.withStartIndex(index));
}
result.length = result.plain.length();
@@ -4582,14 +4582,14 @@ public class CommandLine {
* @param destination destination Text to modify
* @param offset indentation (padding)
*/
- public void getStyledChars(int from, int length, Text destination, int offset) {
+ public void getStyledChars(final int from, final int length, final Text destination, final int offset) {
if (destination.length < offset) {
for (int i = destination.length; i < offset; i++) {
destination.plain.append(' ');
}
destination.length = offset;
}
- for (StyledSection section : sections) {
+ for (final StyledSection section : sections) {
destination.sections.add(section.withStartIndex(section.startIndex - from + destination.length));
}
destination.plain.append(plain.toString().substring(from, from + length));
@@ -4600,7 +4600,7 @@ public class CommandLine {
public String plainString() { return plain.toString().substring(from, from + length); }
@Override
- public boolean equals(Object obj) { return toString().equals(String.valueOf(obj)); }
+ public boolean equals(final Object obj) { return toString().equals(String.valueOf(obj)); }
@Override
public int hashCode() { return toString().hashCode(); }
@@ -4613,11 +4613,11 @@ public class CommandLine {
return plain.toString().substring(from, from + length);
}
if (length == 0) { return ""; }
- StringBuilder sb = new StringBuilder(plain.length() + 20 * sections.size());
+ final StringBuilder sb = new StringBuilder(plain.length() + 20 * sections.size());
StyledSection current = null;
- int end = Math.min(from + length, plain.length());
+ final int end = Math.min(from + length, plain.length());
for (int i = from; i < end; i++) {
- StyledSection section = findSectionContaining(i);
+ final StyledSection section = findSectionContaining(i);
if (section != current) {
if (current != null) { sb.append(current.endStyles); }
if (section != null) { sb.append(section.startStyles); }
@@ -4629,8 +4629,8 @@ public class CommandLine {
return sb.toString();
}
- private StyledSection findSectionContaining(int index) {
- for (StyledSection section : sections) {
+ private StyledSection findSectionContaining(final int index) {
+ for (final StyledSection section : sections) {
if (index >= section.startIndex && index < section.startIndex + section.length) {
return section;
}
@@ -4652,7 +4652,7 @@ public class CommandLine {
* @param <T> type of the object to check
* @return the verified object
*/
- static <T> T notNull(T object, String description) {
+ static <T> T notNull(final T object, final String description) {
if (object == null) {
throw new NullPointerException(description);
}
@@ -4661,19 +4661,19 @@ public class CommandLine {
private Assert() {} // private constructor: never instantiate
}
private enum TraceLevel { OFF, WARN, INFO, DEBUG;
- public boolean isEnabled(TraceLevel other) { return ordinal() >= other.ordinal(); }
- private void print(Tracer tracer, String msg, Object... params) {
+ public boolean isEnabled(final TraceLevel other) { return ordinal() >= other.ordinal(); }
+ private void print(final Tracer tracer, final String msg, final Object... params) {
if (tracer.level.isEnabled(this)) { tracer.stream.printf(prefix(msg), params); }
}
- private String prefix(String msg) { return "[picocli " + this + "] " + msg; }
- static TraceLevel lookup(String key) { return key == null ? WARN : empty(key) || "true".equalsIgnoreCase(key) ? INFO : valueOf(key); }
+ private String prefix(final String msg) { return "[picocli " + this + "] " + msg; }
+ static TraceLevel lookup(final String key) { return key == null ? WARN : empty(key) || "true".equalsIgnoreCase(key) ? INFO : valueOf(key); }
}
private static class Tracer {
private final TraceLevel level = TraceLevel.lookup(System.getProperty("picocli.trace"));
private final PrintStream stream = System.err;
- void warn (String msg, Object... params) { TraceLevel.WARN.print(this, msg, params); }
- void info (String msg, Object... params) { TraceLevel.INFO.print(this, msg, params); }
- void debug(String msg, Object... params) { TraceLevel.DEBUG.print(this, msg, params); }
+ void warn (final String msg, final Object... params) { TraceLevel.WARN.print(this, msg, params); }
+ void info (final String msg, final Object... params) { TraceLevel.INFO.print(this, msg, params); }
+ void debug(final String msg, final Object... params) { TraceLevel.DEBUG.print(this, msg, params); }
boolean isWarn() { return level.isEnabled(TraceLevel.WARN); }
boolean isInfo() { return level.isEnabled(TraceLevel.INFO); }
boolean isDebug() { return level.isEnabled(TraceLevel.DEBUG); }
@@ -4682,26 +4682,26 @@ public class CommandLine {
* @since 2.0 */
public static class PicocliException extends RuntimeException {
private static final long serialVersionUID = -2574128880125050818L;
- public PicocliException(String msg) { super(msg); }
- public PicocliException(String msg, Exception ex) { super(msg, ex); }
+ public PicocliException(final String msg) { super(msg); }
+ public PicocliException(final String msg, final Exception ex) { super(msg, ex); }
}
/** Exception indicating a problem during {@code CommandLine} initialization.
* @since 2.0 */
public static class InitializationException extends PicocliException {
private static final long serialVersionUID = 8423014001666638895L;
- public InitializationException(String msg) { super(msg); }
- public InitializationException(String msg, Exception ex) { super(msg, ex); }
+ public InitializationException(final String msg) { super(msg); }
+ public InitializationException(final String msg, final Exception ex) { super(msg, ex); }
}
/** Exception indicating a problem while invoking a command or subcommand.
* @since 2.0 */
public static class ExecutionException extends PicocliException {
private static final long serialVersionUID = 7764539594267007998L;
private final CommandLine commandLine;
- public ExecutionException(CommandLine commandLine, String msg) {
+ public ExecutionException(final CommandLine commandLine, final String msg) {
super(msg);
this.commandLine = Assert.notNull(commandLine, "commandLine");
}
- public ExecutionException(CommandLine commandLine, String msg, Exception ex) {
+ public ExecutionException(final CommandLine commandLine, final String msg, final Exception ex) {
super(msg, ex);
this.commandLine = Assert.notNull(commandLine, "commandLine");
}
@@ -4714,7 +4714,7 @@ public class CommandLine {
/** Exception thrown by {@link ITypeConverter} implementations to indicate a String could not be converted. */
public static class TypeConversionException extends PicocliException {
private static final long serialVersionUID = 4251973913816346114L;
- public TypeConversionException(String msg) { super(msg); }
+ public TypeConversionException(final String msg) { super(msg); }
}
/** Exception indicating something went wrong while parsing command line options. */
public static class ParameterException extends PicocliException {
@@ -4725,7 +4725,7 @@ public class CommandLine {
* @param commandLine the command or subcommand whose input was invalid
* @param msg describes the problem
* @since 2.0 */
- public ParameterException(CommandLine commandLine, String msg) {
+ public ParameterException(final CommandLine commandLine, final String msg) {
super(msg);
this.commandLine = Assert.notNull(commandLine, "commandLine");
}
@@ -4734,7 +4734,7 @@ public class CommandLine {
* @param msg describes the problem
* @param ex the exception that caused this ParameterException
* @since 2.0 */
- public ParameterException(CommandLine commandLine, String msg, Exception ex) {
+ public ParameterException(final CommandLine commandLine, final String msg, final Exception ex) {
super(msg, ex);
this.commandLine = Assert.notNull(commandLine, "commandLine");
}
@@ -4745,8 +4745,8 @@ public class CommandLine {
*/
public CommandLine getCommandLine() { return commandLine; }
- private static ParameterException create(CommandLine cmd, Exception ex, String arg, int i, String[] args) {
- String msg = ex.getClass().getSimpleName() + ": " + ex.getLocalizedMessage()
+ private static ParameterException create(final CommandLine cmd, final Exception ex, final String arg, final int i, final String[] args) {
+ final String msg = ex.getClass().getSimpleName() + ": " + ex.getLocalizedMessage()
+ " while processing argument at or before arg[" + i + "] '" + arg + "' in " + Arrays.toString(args) + ": " + ex.toString();
return new ParameterException(cmd, msg, ex);
}
@@ -4756,23 +4756,23 @@ public class CommandLine {
*/
public static class MissingParameterException extends ParameterException {
private static final long serialVersionUID = 5075678535706338753L;
- public MissingParameterException(CommandLine commandLine, String msg) {
+ public MissingParameterException(final CommandLine commandLine, final String msg) {
super(commandLine, msg);
}
- private static MissingParameterException create(CommandLine cmd, Collection<Field> missing, String separator) {
+ private static MissingParameterException create(final CommandLine cmd, final Collection<Field> missing, final String separator) {
if (missing.size() == 1) {
return new MissingParameterException(cmd, "Missing required option '"
+ describe(missing.iterator().next(), separator) + "'");
}
- List<String> names = new ArrayList<String>(missing.size());
- for (Field field : missing) {
+ final List<String> names = new ArrayList<String>(missing.size());
+ for (final Field field : missing) {
names.add(describe(field, separator));
}
return new MissingParameterException(cmd, "Missing required options " + names.toString());
}
- private static String describe(Field field, String separator) {
- String prefix = (field.isAnnotationPresent(Option.class))
+ private static String describe(final Field field, final String separator) {
+ final String prefix = (field.isAnnotationPresent(Option.class))
? field.getAnnotation(Option.class).names()[0] + separator
: "params[" + field.getAnnotation(Parameters.class).index() + "]" + separator;
return prefix + Help.DefaultParamLabelRenderer.renderParameterName(field);
@@ -4784,9 +4784,9 @@ public class CommandLine {
*/
public static class DuplicateOptionAnnotationsException extends InitializationException {
private static final long serialVersionUID = -3355128012575075641L;
- public DuplicateOptionAnnotationsException(String msg) { super(msg); }
+ public DuplicateOptionAnnotationsException(final String msg) { super(msg); }
- private static DuplicateOptionAnnotationsException create(String name, Field field1, Field field2) {
+ private static DuplicateOptionAnnotationsException create(final String name, final Field field1, final Field field2) {
return new DuplicateOptionAnnotationsException("Option name '" + name + "' is used by both " +
field1.getDeclaringClass().getName() + "." + field1.getName() + " and " +
field2.getDeclaringClass().getName() + "." + field2.getName());
@@ -4795,25 +4795,25 @@ public class CommandLine {
/** Exception indicating that there was a gap in the indices of the fields annotated with {@link Parameters}. */
public static class ParameterIndexGapException extends InitializationException {
private static final long serialVersionUID = -1520981133257618319L;
- public ParameterIndexGapException(String msg) { super(msg); }
+ public ParameterIndexGapException(final String msg) { super(msg); }
}
/** Exception indicating that a command line argument could not be mapped to any of the fields annotated with
* {@link Option} or {@link Parameters}. */
public static class UnmatchedArgumentException extends ParameterException {
private static final long serialVersionUID = -8700426380701452440L;
- public UnmatchedArgumentException(CommandLine commandLine, String msg) { super(commandLine, msg); }
- public UnmatchedArgumentException(CommandLine commandLine, Stack<String> args) { this(commandLine, new ArrayList<String>(reverse(args))); }
- public UnmatchedArgumentException(CommandLine commandLine, List<String> args) { this(commandLine, "Unmatched argument" + (args.size() == 1 ? " " : "s ") + args); }
+ public UnmatchedArgumentException(final CommandLine commandLine, final String msg) { super(commandLine, msg); }
+ public UnmatchedArgumentException(final CommandLine commandLine, final Stack<String> args) { this(commandLine, new ArrayList<String>(reverse(args))); }
+ public UnmatchedArgumentException(final CommandLine commandLine, final List<String> args) { this(commandLine, "Unmatched argument" + (args.size() == 1 ? " " : "s ") + args); }
}
/** Exception indicating that more values were specified for an option or parameter than its {@link Option#arity() arity} allows. */
public static class MaxValuesforFieldExceededException extends ParameterException {
private static final long serialVersionUID = 6536145439570100641L;
- public MaxValuesforFieldExceededException(CommandLine commandLine, String msg) { super(commandLine, msg); }
+ public MaxValuesforFieldExceededException(final CommandLine commandLine, final String msg) { super(commandLine, msg); }
}
/** Exception indicating that an option for a single-value option field has been specified multiple times on the command line. */
public static class OverwrittenOptionException extends ParameterException {
private static final long serialVersionUID = 1338029208271055776L;
- public OverwrittenOptionException(CommandLine commandLine, String msg) { super(commandLine, msg); }
+ public OverwrittenOptionException(final CommandLine commandLine, final String msg) { super(commandLine, msg); }
}
/**
* Exception indicating that an annotated field had a type for which no {@link ITypeConverter} was
@@ -4821,6 +4821,6 @@ public class CommandLine {
*/
public static class MissingTypeConverterException extends ParameterException {
private static final long serialVersionUID = -6050931703233083760L;
- public MissingTypeConverterException(CommandLine commandLine, String msg) { super(commandLine, msg); }
+ public MissingTypeConverterException(final CommandLine commandLine, final String msg) { super(commandLine, msg); }
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AbstractWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AbstractWatcher.java
index bdfd316..195ec32 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AbstractWatcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AbstractWatcher.java
@@ -64,7 +64,7 @@ public abstract class AbstractWatcher implements Watcher {
public abstract boolean isModified();
@Override
- public void watching(Source source) {
+ public void watching(final Source source) {
this.source = source;
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/BasicAuthorizationProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/BasicAuthorizationProvider.java
index d751260..52df233 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/BasicAuthorizationProvider.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/BasicAuthorizationProvider.java
@@ -41,20 +41,20 @@ public class BasicAuthorizationProvider implements AuthorizationProvider {
private String authString = null;
- public BasicAuthorizationProvider(PropertiesUtil props) {
- String userName = props.getStringProperty(PREFIXES,AUTH_USER_NAME,
+ public BasicAuthorizationProvider(final PropertiesUtil props) {
+ final String userName = props.getStringProperty(PREFIXES,AUTH_USER_NAME,
() -> props.getStringProperty(CONFIG_USER_NAME));
String password = props.getStringProperty(PREFIXES, AUTH_PASSWORD,
() -> props.getStringProperty(CONFIG_PASSWORD));
- String decryptor = props.getStringProperty(PREFIXES, AUTH_PASSWORD_DECRYPTOR,
+ final String decryptor = props.getStringProperty(PREFIXES, AUTH_PASSWORD_DECRYPTOR,
() -> props.getStringProperty(PASSWORD_DECRYPTOR));
if (decryptor != null) {
try {
- Object obj = LoaderUtil.newInstanceOf(decryptor);
+ final Object obj = LoaderUtil.newInstanceOf(decryptor);
if (obj instanceof PasswordDecryptor) {
password = ((PasswordDecryptor) obj).decryptPassword(password);
}
- } catch (Exception ex) {
+ } catch (final Exception ex) {
LOGGER.warn("Unable to decrypt password.", ex);
}
}
@@ -64,7 +64,7 @@ public class BasicAuthorizationProvider implements AuthorizationProvider {
}
@Override
- public void addAuthorization(URLConnection urlConnection) {
+ public void addAuthorization(final URLConnection urlConnection) {
if (authString != null) {
urlConnection.setRequestProperty("Authorization", authString);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/DefaultShutdownCallbackRegistry.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/DefaultShutdownCallbackRegistry.java
index e2bf8b5..749f367 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/DefaultShutdownCallbackRegistry.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/DefaultShutdownCallbackRegistry.java
@@ -73,7 +73,7 @@ public class DefaultShutdownCallbackRegistry implements ShutdownCallbackRegistry
public void run() {
if (state.compareAndSet(State.STARTED, State.STOPPING)) {
for (final Reference<Cancellable> hookRef : hooks) {
- Cancellable hook = hookRef.get();
+ final Cancellable hook = hookRef.get();
if (hook != null) {
try {
hook.run();
@@ -103,11 +103,11 @@ public class DefaultShutdownCallbackRegistry implements ShutdownCallbackRegistry
@Override
public void cancel() {
callback = null;
- Collection<Reference<Cancellable>> references = registered;
+ final Collection<Reference<Cancellable>> references = registered;
if (references != null) {
registered = null;
references.removeIf(ref -> {
- Cancellable value = ref.get();
+ final Cancellable value = ref.get();
return value == null || value == RegisteredCancellable.this;
});
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java
index a50a20d..19bf93d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java
@@ -64,7 +64,7 @@ public final class FileUtils {
if (JBOSS_FILE.equals(uri.getScheme())) try {
// patch the scheme
uri = new URI(PROTOCOL_FILE, uri.getSchemeSpecificPart(), uri.getFragment());
- } catch (URISyntaxException use) {
+ } catch (final URISyntaxException use) {
// should not happen, ignore
}
try {
@@ -75,7 +75,7 @@ public final class FileUtils {
LOGGER.warn("Invalid URI {}", uri);
}
} else {
- File file = new File(uri.toString());
+ final File file = new File(uri.toString());
try {
if (file.exists()) {
return file;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Loader.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Loader.java
index 75baa4a..f3f182f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Loader.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Loader.java
@@ -287,7 +287,7 @@ public final class Loader {
throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException,
IllegalAccessException {
final String className = PropertiesUtil.getProperties().getStringProperty(propertyName);
- ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+ final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(getClassLoader());
return LoaderUtil.newCheckedInstanceOfProperty(propertyName, clazz);
@@ -323,7 +323,7 @@ public final class Loader {
* @return {@code true} if the class could be found or {@code false} otherwise.
*/
public static boolean isClassAvailable(final String className) {
- ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+ final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(getClassLoader());
return LoaderUtil.isClassAvailable(className);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java
index 195dbff..d075aab 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java
@@ -128,7 +128,7 @@ public final class NetUtils {
public static String getMacAddressString() {
final byte[] macAddr = getMacAddress();
if (!ArrayUtils.isEmpty(macAddr)) {
- StringBuilder sb = new StringBuilder(String.format("%02x", macAddr[0]));
+ final StringBuilder sb = new StringBuilder(String.format("%02x", macAddr[0]));
for (int i = 1; i < macAddr.length; ++i) {
sb.append(":").append(String.format("%02x", macAddr[i]));
}
@@ -158,7 +158,7 @@ public final class NetUtils {
try {
final URL url = new URL(path);
return new URI(url.getProtocol(), url.getHost(), url.getPath(), null);
- } catch (MalformedURLException | URISyntaxException nestedEx) {
+ } catch (final MalformedURLException | URISyntaxException nestedEx) {
return new File(path).toURI();
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java
index eacd715..b442576 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java
@@ -156,14 +156,14 @@ public final class OptionConverter {
return defaultValue;
}
- public static Level toLevel(String value, Level defaultValue) {
+ public static Level toLevel(String value, final Level defaultValue) {
if(value == null) {
return defaultValue;
}
value = value.trim();
- int hashIndex = value.indexOf('#');
+ final int hashIndex = value.indexOf('#');
if (hashIndex == -1) {
if("NULL".equalsIgnoreCase(value)) {
return null;
@@ -175,8 +175,8 @@ public final class OptionConverter {
Level result = defaultValue;
- String clazz = value.substring(hashIndex+1);
- String levelName = value.substring(0, hashIndex);
+ final String clazz = value.substring(hashIndex+1);
+ final String levelName = value.substring(0, hashIndex);
// This is degenerate case but you never know.
if("NULL".equalsIgnoreCase(levelName)) {
@@ -187,36 +187,36 @@ public final class OptionConverter {
+ ":pri=[" + levelName + "]");
try {
- Class customLevel = Loader.loadClass(clazz);
+ final Class customLevel = Loader.loadClass(clazz);
// get a ref to the specified class' static method
// toLevel(String, org.apache.log4j.Level)
- Class[] paramTypes = new Class[] { String.class, Level.class
+ final Class[] paramTypes = new Class[] { String.class, Level.class
};
- java.lang.reflect.Method toLevelMethod =
+ final java.lang.reflect.Method toLevelMethod =
customLevel.getMethod("toLevel", paramTypes);
// now call the toLevel method, passing level string + default
- Object[] params = new Object[] {levelName, defaultValue};
- Object o = toLevelMethod.invoke(null, params);
+ final Object[] params = new Object[] {levelName, defaultValue};
+ final Object o = toLevelMethod.invoke(null, params);
result = (Level) o;
- } catch(ClassNotFoundException e) {
+ } catch(final ClassNotFoundException e) {
LOGGER.warn("custom level class [" + clazz + "] not found.");
- } catch(NoSuchMethodException e) {
+ } catch(final NoSuchMethodException e) {
LOGGER.warn("custom level class [" + clazz + "]"
+ " does not have a class function toLevel(String, Level)", e);
- } catch(java.lang.reflect.InvocationTargetException e) {
+ } catch(final java.lang.reflect.InvocationTargetException e) {
if (e.getTargetException() instanceof InterruptedException
|| e.getTargetException() instanceof InterruptedIOException) {
Thread.currentThread().interrupt();
}
LOGGER.warn("custom level class [" + clazz + "]" + " could not be instantiated", e);
- } catch(ClassCastException e) {
+ } catch(final ClassCastException e) {
LOGGER.warn("class [" + clazz + "] is not a subclass of org.apache.log4j.Level", e);
- } catch(IllegalAccessException e) {
+ } catch(final IllegalAccessException e) {
LOGGER.warn("class ["+clazz+ "] cannot be instantiated due to access restrictions", e);
- } catch(RuntimeException e) {
+ } catch(final RuntimeException e) {
LOGGER.warn("class ["+clazz+"], level [" + levelName + "] conversion failed.", e);
}
return result;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ProcessIdUtil.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ProcessIdUtil.java
index 2579350..22b7fa4 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ProcessIdUtil.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ProcessIdUtil.java
@@ -30,13 +30,13 @@ public class ProcessIdUtil {
public static String getProcessId() {
try {
// LOG4J2-2126 use reflection to improve compatibility with Android Platform which does not support JMX extensions
- Class<?> managementFactoryClass = Class.forName("java.lang.management.ManagementFactory");
- Method getRuntimeMXBean = managementFactoryClass.getDeclaredMethod("getRuntimeMXBean");
- Class<?> runtimeMXBeanClass = Class.forName("java.lang.management.RuntimeMXBean");
- Method getName = runtimeMXBeanClass.getDeclaredMethod("getName");
+ final Class<?> managementFactoryClass = Class.forName("java.lang.management.ManagementFactory");
+ final Method getRuntimeMXBean = managementFactoryClass.getDeclaredMethod("getRuntimeMXBean");
+ final Class<?> runtimeMXBeanClass = Class.forName("java.lang.management.RuntimeMXBean");
+ final Method getName = runtimeMXBeanClass.getDeclaredMethod("getName");
- Object runtimeMXBean = getRuntimeMXBean.invoke(null);
- String name = (String) getName.invoke(runtimeMXBean);
+ final Object runtimeMXBean = getRuntimeMXBean.invoke(null);
+ final String name = (String) getName.invoke(runtimeMXBean);
//String name = ManagementFactory.getRuntimeMXBean().getName(); //JMX not allowed on Android
return name.split("@")[0]; // likely works on most platforms
} catch (final Exception ex) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Source.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Source.java
index a13fa65..a870209 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Source.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Source.java
@@ -40,7 +40,7 @@ public class Source {
* Constructs a Source from a ConfigurationSource.
* @param source The ConfigurationSource.
*/
- public Source(ConfigurationSource source) {
+ public Source(final ConfigurationSource source) {
this.file = source.getFile();
this.uri = source.getURI();
this.location = source.getLocation();
@@ -105,14 +105,14 @@ public class Source {
}
@Override
- public boolean equals(Object o) {
+ public boolean equals(final Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Source)) {
return false;
}
- Source source = (Source) o;
+ final Source source = (Source) o;
return Objects.equals(location, source.location);
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/UuidUtil.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/UuidUtil.java
index a56706a..32e619e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/UuidUtil.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/UuidUtil.java
@@ -86,7 +86,7 @@ public final class UuidUtil {
final ByteBuffer buf = ByteBuffer.wrap(node);
long rand = INITIAL_UUID_SEQNO;
String assigned = PropertiesUtil.getProperties().getStringProperty(ASSIGNED_SEQUENCES);
- long[] sequences;
+ final long[] sequences;
if (assigned == null) {
sequences = new long[0];
} else {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchManager.java
index 41de183..1f4acdb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchManager.java
@@ -157,7 +157,7 @@ public class WatchManager extends AbstractLifeCycle {
}
private List<WatchEventService> getEventServices() {
- List<WatchEventService> list = new ArrayList<>();
+ final List<WatchEventService> list = new ArrayList<>();
for (final ClassLoader classLoader : LoaderUtil.getClassLoaders()) {
try {
final ServiceLoader<WatchEventService> serviceLoader =
@@ -193,7 +193,7 @@ public class WatchManager extends AbstractLifeCycle {
*/
public Map<File, FileWatcher> getWatchers() {
final Map<File, FileWatcher> map = new HashMap<>(watchers.size());
- for (Map.Entry<Source, ConfigurationMonitor> entry : watchers.entrySet()) {
+ for (final Map.Entry<Source, ConfigurationMonitor> entry : watchers.entrySet()) {
if (entry.getValue().getWatcher() instanceof ConfigurationFileWatcher) {
map.put(entry.getKey().getFile(), (FileWatcher) entry.getValue().getWatcher());
} else {
@@ -243,7 +243,7 @@ public class WatchManager extends AbstractLifeCycle {
if (file == null) {
return;
}
- Source source = new Source(file);
+ final Source source = new Source(file);
reset(source);
}
@@ -264,7 +264,7 @@ public class WatchManager extends AbstractLifeCycle {
}
final ConfigurationMonitor monitor = watchers.get(source);
if (monitor != null) {
- Watcher watcher = monitor.getWatcher();
+ final Watcher watcher = monitor.getWatcher();
if (watcher.isModified()) {
final long lastModifiedMillis = watcher.getLastModified();
if (logger.isDebugEnabled()) {
@@ -296,7 +296,7 @@ public class WatchManager extends AbstractLifeCycle {
future = scheduler.scheduleWithFixedDelay(new WatchRunnable(), intervalSeconds, intervalSeconds,
TimeUnit.SECONDS);
}
- for (WatchEventService service : eventServiceList) {
+ for (final WatchEventService service : eventServiceList) {
service.subscribe(this);
}
}
@@ -304,7 +304,7 @@ public class WatchManager extends AbstractLifeCycle {
@Override
public boolean stop(final long timeout, final TimeUnit timeUnit) {
setStopping();
- for (WatchEventService service : eventServiceList) {
+ for (final WatchEventService service : eventServiceList) {
service.unsubscribe(this);
}
final boolean stopped = stop(future);
@@ -337,7 +337,7 @@ public class WatchManager extends AbstractLifeCycle {
* @since 2.11.0
*/
public void unwatchFile(final File file) {
- Source source = new Source(file);
+ final Source source = new Source(file);
unwatch(source);
}
@@ -363,13 +363,13 @@ public class WatchManager extends AbstractLifeCycle {
* @param fileWatcher the watcher to notify of file changes.
*/
public void watchFile(final File file, final FileWatcher fileWatcher) {
- Watcher watcher;
+ final Watcher watcher;
if (fileWatcher instanceof Watcher) {
watcher = (Watcher) fileWatcher;
} else {
watcher = new WrappedFileWatcher(fileWatcher);
}
- Source source = new Source(file);
+ final Source source = new Source(file);
watch(source, watcher);
}
}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
index 31acd5a..cd4ec28 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
@@ -43,12 +43,12 @@ public class WatcherFactory {
private final Map<String, PluginType<?>> plugins;
- private WatcherFactory(List<String> packages) {
+ private WatcherFactory(final List<String> packages) {
pluginManager.collectPlugins(packages);
plugins = pluginManager.getPlugins();
}
- public static WatcherFactory getInstance(List<String> packages) {
+ public static WatcherFactory getInstance(final List<String> packages) {
if (factory == null) {
synchronized (pluginManager) {
if (factory == null) {
@@ -59,14 +59,14 @@ public class WatcherFactory {
return factory;
}
- public Watcher newWatcher(Source source, final Configuration configuration, final Reconfigurable reconfigurable,
- final List<ConfigurationListener> configurationListeners, long lastModifiedMillis) {
+ public Watcher newWatcher(final Source source, final Configuration configuration, final Reconfigurable reconfigurable,
+ final List<ConfigurationListener> configurationListeners, final long lastModifiedMillis) {
if (source.getFile() != null) {
return new ConfigurationFileWatcher(configuration, reconfigurable, configurationListeners,
lastModifiedMillis);
} else {
- String name = source.getURI().getScheme();
- PluginType<?> pluginType = plugins.get(name);
+ final String name = source.getURI().getScheme();
+ final PluginType<?> pluginType = plugins.get(name);
if (pluginType != null) {
return instantiate(name, pluginType.getPluginClass().asSubclass(Watcher.class), configuration,
reconfigurable, configurationListeners, lastModifiedMillis);
@@ -76,15 +76,15 @@ public class WatcherFactory {
}
}
- public static <T extends Watcher> T instantiate(String name, final Class<T> clazz,
- final Configuration configuration, final Reconfigurable reconfigurable,
- final List<ConfigurationListener> listeners, long lastModifiedMillis) {
+ public static <T extends Watcher> T instantiate(final String name, final Class<T> clazz,
+ final Configuration configuration, final Reconfigurable reconfigurable,
+ final List<ConfigurationListener> listeners, final long lastModifiedMillis) {
Objects.requireNonNull(clazz, "No class provided");
try {
- Constructor<T> constructor = clazz
+ final Constructor<T> constructor = clazz
.getConstructor(Configuration.class, Reconfigurable.class, List.class, long.class);
return constructor.newInstance(configuration, reconfigurable, listeners, lastModifiedMillis);
- } catch (NoSuchMethodException ex) {
+ } catch (final NoSuchMethodException ex) {
throw new IllegalArgumentException("No valid constructor for Watcher plugin " + name, ex);
} catch (final LinkageError | InstantiationException e) {
// LOG4J2-1051
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WrappedFileWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WrappedFileWatcher.java
index 54933b2..f5c5817 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WrappedFileWatcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WrappedFileWatcher.java
@@ -32,16 +32,16 @@ public class WrappedFileWatcher extends AbstractWatcher implements FileWatcher {
private final FileWatcher watcher;
private volatile long lastModifiedMillis;
- public WrappedFileWatcher(FileWatcher watcher, final Configuration configuration,
- final Reconfigurable reconfigurable, final List<ConfigurationListener> configurationListeners,
- final long lastModifiedMillis) {
+ public WrappedFileWatcher(final FileWatcher watcher, final Configuration configuration,
+ final Reconfigurable reconfigurable, final List<ConfigurationListener> configurationListeners,
+ final long lastModifiedMillis) {
super(configuration, reconfigurable, configurationListeners);
this.watcher = watcher;
this.lastModifiedMillis = lastModifiedMillis;
}
- public WrappedFileWatcher(FileWatcher watcher) {
+ public WrappedFileWatcher(final FileWatcher watcher) {
super(null, null, null);
this.watcher = watcher;
}
@@ -51,13 +51,13 @@ public class WrappedFileWatcher extends AbstractWatcher implements FileWatcher {
}
@Override
- public void fileModified(File file) {
+ public void fileModified(final File file) {
watcher.fileModified(file);
}
@Override
public boolean isModified() {
- long lastModified = getSource().getFile().lastModified();
+ final long lastModified = getSource().getFile().lastModified();
if (lastModifiedMillis != lastModified) {
lastModifiedMillis = lastModified;
return true;
@@ -84,15 +84,15 @@ public class WrappedFileWatcher extends AbstractWatcher implements FileWatcher {
}
@Override
- public void watching(Source source) {
+ public void watching(final Source source) {
lastModifiedMillis = source.getFile().lastModified();
super.watching(source);
}
@Override
public Watcher newWatcher(final Reconfigurable reconfigurable, final List<ConfigurationListener> listeners,
- long lastModifiedMillis) {
- WrappedFileWatcher watcher = new WrappedFileWatcher(this.watcher, getConfiguration(), reconfigurable, listeners,
+ final long lastModifiedMillis) {
+ final WrappedFileWatcher watcher = new WrappedFileWatcher(this.watcher, getConfiguration(), reconfigurable, listeners,
lastModifiedMillis);
if (getSource() != null) {
watcher.watching(getSource());
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/FastDateFormat.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/FastDateFormat.java
index 691b268..4b728f3 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/FastDateFormat.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/datetime/FastDateFormat.java
@@ -103,7 +103,7 @@ public class FastDateFormat extends Format implements DateParser, DatePrinter {
return new FastDateFormat(org.apache.logging.log4j.core.time.internal.format.FastDateFormat.getDateTimeInstance(dateStyle, timeStyle, timeZone, locale));
}
- private FastDateFormat(org.apache.logging.log4j.core.time.internal.format.FastDateFormat formatter) {
+ private FastDateFormat(final org.apache.logging.log4j.core.time.internal.format.FastDateFormat formatter) {
this.formatter = formatter;
}