You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2021/12/17 00:41:22 UTC
[logging-log4j2] branch release-2.x updated: Deprecate internal utility classes in favor of JRE classes.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/release-2.x by this push:
new 8c2caa9 Deprecate internal utility classes in favor of JRE classes.
new 37bb43f Merge branch 'release-2.x' of https://gitbox.apache.org/repos/asf/logging-log4j2.git into release-2.x
8c2caa9 is described below
commit 8c2caa947f688cdd53d8d86a2ec82078f1ca5092
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Dec 16 19:08:27 2021 -0500
Deprecate internal utility classes in favor of JRE classes.
- Holder -> AtomicReference
- BooleanHolder -> BooleanReference
- Holder<Integer> -> AtomicInteger
---
.../org/apache/log4j/builders/BooleanHolder.java | 5 +++
.../java/org/apache/log4j/builders/Holder.java | 16 +++++---
.../builders/appender/AsyncAppenderBuilder.java | 38 ++++++++---------
.../builders/appender/ConsoleAppenderBuilder.java | 36 ++++++++---------
.../appender/DailyRollingFileAppenderBuilder.java | 43 ++++++++++----------
.../builders/appender/FileAppenderBuilder.java | 43 ++++++++++----------
.../builders/appender/RewriteAppenderBuilder.java | 36 ++++++++---------
.../appender/RollingFileAppenderBuilder.java | 47 +++++++++++-----------
.../builders/appender/SyslogAppenderBuilder.java | 44 ++++++++++----------
.../builders/filter/LevelMatchFilterBuilder.java | 21 +++++-----
.../builders/filter/LevelRangeFilterBuilder.java | 23 ++++++-----
.../builders/filter/StringMatchFilterBuilder.java | 17 ++++----
.../log4j/builders/layout/HtmlLayoutBuilder.java | 19 ++++-----
.../log4j/builders/layout/TTCCLayoutBuilder.java | 27 +++++++------
.../log4j/builders/layout/XmlLayoutBuilder.java | 19 +++++----
15 files changed, 228 insertions(+), 206 deletions(-)
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/BooleanHolder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/BooleanHolder.java
index 42ad615..282c359 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/BooleanHolder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/BooleanHolder.java
@@ -16,9 +16,14 @@
*/
package org.apache.log4j.builders;
+import java.util.concurrent.atomic.AtomicReference;
+
/**
* Holds Boolean values created inside of a Lambda expression.
+ *
+ * @deprecated Use {@link AtomicReference}.
*/
+@Deprecated
public class BooleanHolder extends Holder<Boolean> {
public BooleanHolder() {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/Holder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/Holder.java
index b9ce2bf..3353c06 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/Holder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/Holder.java
@@ -16,24 +16,30 @@
*/
package org.apache.log4j.builders;
+import java.util.concurrent.atomic.AtomicReference;
+
/**
* Provides a place to hold values generated inside of a Lambda expression.
+ *
+ * @param <V> The type of object referred to by this reference.
+ * @deprecated Use {@link AtomicReference}.
*/
-public class Holder<T> {
- private T value;
+@Deprecated
+public class Holder<V> {
+ private V value;
public Holder() {
}
- public Holder(T defaultValue) {
+ public Holder(V defaultValue) {
this.value = defaultValue;
}
- public void set(T value) {
+ public void set(V value) {
this.value = value;
}
- public T get() {
+ public V get() {
return value;
}
}
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AsyncAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AsyncAppenderBuilder.java
index 940678c..3236557 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AsyncAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/AsyncAppenderBuilder.java
@@ -16,11 +16,23 @@
*/
package org.apache.log4j.builders.appender;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.config.Log4j1Configuration.APPENDER_REF_TAG;
+import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
+import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.Appender;
import org.apache.log4j.bridge.AppenderWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.BooleanHolder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.Log4j1Configuration;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.helpers.OptionConverter;
@@ -33,18 +45,6 @@ import org.apache.logging.log4j.status.StatusLogger;
import org.apache.logging.log4j.util.Strings;
import org.w3c.dom.Element;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
-import static org.apache.log4j.config.Log4j1Configuration.APPENDER_REF_TAG;
-import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
-
/**
* Build an Asynch Appender
@@ -66,11 +66,11 @@ public class AsyncAppenderBuilder extends AbstractBuilder implements AppenderBui
@Override
public Appender parseAppender(final Element appenderElement, final XmlConfiguration config) {
String name = appenderElement.getAttribute(NAME_ATTR);
- Holder<List<String>> appenderRefs = new Holder<>(new ArrayList<>());
- Holder<Boolean> blocking = new BooleanHolder();
- Holder<Boolean> includeLocation = new BooleanHolder();
- Holder<String> level = new Holder<>("trace");
- Holder<Integer> bufferSize = new Holder<>(1024);
+ AtomicReference<List<String>> appenderRefs = new AtomicReference<>(new ArrayList<>());
+ AtomicBoolean blocking = new AtomicBoolean();
+ AtomicBoolean includeLocation = new AtomicBoolean();
+ AtomicReference<String> level = new AtomicReference<>("trace");
+ AtomicReference<Integer> bufferSize = new AtomicReference<>(1024);
forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case APPENDER_REF_TAG:
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
index b7f4974..108d177 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/ConsoleAppenderBuilder.java
@@ -16,13 +16,26 @@
*/
package org.apache.log4j.builders.appender;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
+import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.Appender;
import org.apache.log4j.Layout;
import org.apache.log4j.bridge.AppenderWrapper;
import org.apache.log4j.bridge.LayoutAdapter;
import org.apache.log4j.bridge.LayoutWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.Log4j1Configuration;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.spi.Filter;
@@ -33,19 +46,6 @@ import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.status.StatusLogger;
import org.w3c.dom.Element;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
-import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
-
/**
* Build a Console Appender
*/
@@ -67,10 +67,10 @@ public class ConsoleAppenderBuilder extends AbstractBuilder implements AppenderB
@Override
public Appender parseAppender(final Element appenderElement, final XmlConfiguration config) {
String name = appenderElement.getAttribute(NAME_ATTR);
- Holder<String> target = new Holder<>(SYSTEM_OUT);
- Holder<Layout> layout = new Holder<>();
- Holder<List<Filter>> filters = new Holder<>(new ArrayList<>());
- Holder<String> level = new Holder<>();
+ AtomicReference<String> target = new AtomicReference<>(SYSTEM_OUT);
+ AtomicReference<Layout> layout = new AtomicReference<>();
+ AtomicReference<List<Filter>> filters = new AtomicReference<>(new ArrayList<>());
+ AtomicReference<String> level = new AtomicReference<>();
forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case LAYOUT_TAG:
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/DailyRollingFileAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/DailyRollingFileAppenderBuilder.java
index 9115f29..701bc74 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/DailyRollingFileAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/DailyRollingFileAppenderBuilder.java
@@ -16,14 +16,26 @@
*/
package org.apache.log4j.builders.appender;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
+import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.Appender;
import org.apache.log4j.Layout;
import org.apache.log4j.bridge.AppenderWrapper;
import org.apache.log4j.bridge.LayoutAdapter;
import org.apache.log4j.bridge.LayoutWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.BooleanHolder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.Log4j1Configuration;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.spi.Filter;
@@ -38,17 +50,6 @@ import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.status.StatusLogger;
import org.w3c.dom.Element;
-import java.util.Properties;
-
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
-import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
-
/**
* Build a Daily Rolling File Appender
@@ -69,14 +70,14 @@ public class DailyRollingFileAppenderBuilder extends AbstractBuilder implements
@Override
public Appender parseAppender(final Element appenderElement, final XmlConfiguration config) {
String name = appenderElement.getAttribute(NAME_ATTR);
- Holder<Layout> layout = new Holder<>();
- Holder<Filter> filter = new Holder<>();
- Holder<String> fileName = new Holder<>();
- Holder<String> level = new Holder<>();
- Holder<Boolean> immediateFlush = new BooleanHolder();
- Holder<Boolean> append = new BooleanHolder();
- Holder<Boolean> bufferedIo = new BooleanHolder();
- Holder<Integer> bufferSize = new Holder<>(8192);
+ AtomicReference<Layout> layout = new AtomicReference<>();
+ AtomicReference<Filter> filter = new AtomicReference<>();
+ AtomicReference<String> fileName = new AtomicReference<>();
+ AtomicReference<String> level = new AtomicReference<>();
+ AtomicBoolean immediateFlush = new AtomicBoolean();
+ AtomicBoolean append = new AtomicBoolean();
+ AtomicBoolean bufferedIo = new AtomicBoolean();
+ AtomicInteger bufferSize = new AtomicInteger(8192);
forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case LAYOUT_TAG:
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/FileAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/FileAppenderBuilder.java
index e3be66d..8682d35 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/FileAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/FileAppenderBuilder.java
@@ -16,14 +16,26 @@
*/
package org.apache.log4j.builders.appender;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
+import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.Appender;
import org.apache.log4j.Layout;
import org.apache.log4j.bridge.AppenderWrapper;
import org.apache.log4j.bridge.LayoutAdapter;
import org.apache.log4j.bridge.LayoutWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.BooleanHolder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.Log4j1Configuration;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.spi.Filter;
@@ -34,17 +46,6 @@ import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.status.StatusLogger;
import org.w3c.dom.Element;
-import java.util.Properties;
-
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
-import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
-
/**
* Build a File Appender
*/
@@ -63,14 +64,14 @@ public class FileAppenderBuilder extends AbstractBuilder implements AppenderBuil
@Override
public Appender parseAppender(Element appenderElement, XmlConfiguration config) {
String name = appenderElement.getAttribute(NAME_ATTR);
- Holder<Layout> layout = new Holder<>();
- Holder<Filter> filter = new Holder<>();
- Holder<String> fileName = new Holder<>();
- Holder<String> level = new Holder<>();
- Holder<Boolean> immediateFlush = new BooleanHolder();
- Holder<Boolean> append = new BooleanHolder();
- Holder<Boolean> bufferedIo = new BooleanHolder();
- Holder<Integer> bufferSize = new Holder<>(8192);
+ AtomicReference<Layout> layout = new AtomicReference<>();
+ AtomicReference<Filter> filter = new AtomicReference<>();
+ AtomicReference<String> fileName = new AtomicReference<>();
+ AtomicReference<String> level = new AtomicReference<>();
+ AtomicBoolean immediateFlush = new AtomicBoolean();
+ AtomicBoolean append = new AtomicBoolean();
+ AtomicBoolean bufferedIo = new AtomicBoolean();
+ AtomicInteger bufferSize = new AtomicInteger(8192);
forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case LAYOUT_TAG:
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java
index 3c6e642..6e25557 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RewriteAppenderBuilder.java
@@ -16,12 +16,25 @@
*/
package org.apache.log4j.builders.appender;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.config.Log4j1Configuration.APPENDER_REF_TAG;
+import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
+import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.Appender;
import org.apache.log4j.bridge.AppenderWrapper;
import org.apache.log4j.bridge.RewritePolicyAdapter;
import org.apache.log4j.bridge.RewritePolicyWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.Log4j1Configuration;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.helpers.OptionConverter;
@@ -36,19 +49,6 @@ import org.apache.logging.log4j.status.StatusLogger;
import org.apache.logging.log4j.util.Strings;
import org.w3c.dom.Element;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.config.Log4j1Configuration.APPENDER_REF_TAG;
-import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
-import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
-
/**
* Build an Asynch Appender
@@ -69,10 +69,10 @@ public class RewriteAppenderBuilder extends AbstractBuilder implements AppenderB
@Override
public Appender parseAppender(final Element appenderElement, final XmlConfiguration config) {
String name = appenderElement.getAttribute(NAME_ATTR);
- Holder<List<String>> appenderRefs = new Holder<>(new ArrayList<>());
- Holder<RewritePolicy> rewritePolicyHolder = new Holder<>();
- Holder<String> level = new Holder<>();
- Holder<Filter> filter = new Holder<>();
+ AtomicReference<List<String>> appenderRefs = new AtomicReference<>(new ArrayList<>());
+ AtomicReference<RewritePolicy> rewritePolicyHolder = new AtomicReference<>();
+ AtomicReference<String> level = new AtomicReference<>();
+ AtomicReference<Filter> filter = new AtomicReference<>();
forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case APPENDER_REF_TAG:
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RollingFileAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RollingFileAppenderBuilder.java
index 6f04f88..73246e5 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RollingFileAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/RollingFileAppenderBuilder.java
@@ -16,14 +16,26 @@
*/
package org.apache.log4j.builders.appender;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
+import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.Appender;
import org.apache.log4j.Layout;
import org.apache.log4j.bridge.AppenderWrapper;
import org.apache.log4j.bridge.LayoutAdapter;
import org.apache.log4j.bridge.LayoutWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.BooleanHolder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.Log4j1Configuration;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.spi.Filter;
@@ -40,17 +52,6 @@ import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.status.StatusLogger;
import org.w3c.dom.Element;
-import java.util.Properties;
-
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
-import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
-
/**
* Build a File Appender
@@ -70,16 +71,16 @@ public class RollingFileAppenderBuilder extends AbstractBuilder implements Appen
@Override
public Appender parseAppender(Element appenderElement, XmlConfiguration config) {
String name = appenderElement.getAttribute(NAME_ATTR);
- Holder<Layout> layout = new Holder<>();
- Holder<Filter> filter = new Holder<>();
- Holder<String> fileName = new Holder<>();
- Holder<Boolean> immediateFlush = new BooleanHolder();
- Holder<Boolean> append = new BooleanHolder();
- Holder<Boolean> bufferedIo = new BooleanHolder();
- Holder<Integer> bufferSize = new Holder<>(8192);
- Holder<String> maxSize = new Holder<>();
- Holder<String> maxBackups = new Holder<>();
- Holder<String> level = new Holder<>();
+ AtomicReference<Layout> layout = new AtomicReference<>();
+ AtomicReference<Filter> filter = new AtomicReference<>();
+ AtomicReference<String> fileName = new AtomicReference<>();
+ AtomicBoolean immediateFlush = new AtomicBoolean();
+ AtomicBoolean append = new AtomicBoolean();
+ AtomicBoolean bufferedIo = new AtomicBoolean();
+ AtomicInteger bufferSize = new AtomicInteger(8192);
+ AtomicReference<String> maxSize = new AtomicReference<>();
+ AtomicReference<String> maxBackups = new AtomicReference<>();
+ AtomicReference<String> level = new AtomicReference<>();
forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case LAYOUT_TAG:
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java
index 4b47196..a438895 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/appender/SyslogAppenderBuilder.java
@@ -16,20 +16,32 @@
*/
package org.apache.log4j.builders.appender;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
+import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.io.Serializable;
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.Appender;
import org.apache.log4j.Layout;
import org.apache.log4j.bridge.AppenderWrapper;
import org.apache.log4j.bridge.LayoutAdapter;
import org.apache.log4j.bridge.LayoutWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.Log4j1Configuration;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.spi.Filter;
import org.apache.log4j.xml.XmlConfiguration;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.appender.SocketAppender;
-import org.apache.logging.log4j.core.appender.SyslogAppender;
import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.core.layout.SyslogLayout;
import org.apache.logging.log4j.core.net.Facility;
@@ -37,18 +49,6 @@ import org.apache.logging.log4j.core.net.Protocol;
import org.apache.logging.log4j.status.StatusLogger;
import org.w3c.dom.Element;
-import java.io.Serializable;
-import java.util.Properties;
-
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.config.Log4j1Configuration.THRESHOLD_PARAM;
-import static org.apache.log4j.xml.XmlConfiguration.FILTER_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.LAYOUT_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
-import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
-
/**
* Build a File Appender
*/
@@ -73,11 +73,11 @@ public class SyslogAppenderBuilder extends AbstractBuilder implements AppenderBu
@Override
public Appender parseAppender(Element appenderElement, XmlConfiguration config) {
String name = appenderElement.getAttribute(NAME_ATTR);
- Holder<Layout> layout = new Holder<>();
- Holder<Filter> filter = new Holder<>();
- Holder<String> facility = new Holder<>();
- Holder<String> level = new Holder<>();
- Holder<String> host = new Holder<>();
+ AtomicReference<Layout> layout = new AtomicReference<>();
+ AtomicReference<Filter> filter = new AtomicReference<>();
+ AtomicReference<String> facility = new AtomicReference<>();
+ AtomicReference<String> level = new AtomicReference<>();
+ AtomicReference<String> host = new AtomicReference<>();
forEachElement(appenderElement.getChildNodes(), currentElement -> {
switch (currentElement.getTagName()) {
case LAYOUT_TAG:
@@ -128,8 +128,8 @@ public class SyslogAppenderBuilder extends AbstractBuilder implements AppenderBu
private Appender createAppender(final String name, final Log4j1Configuration configuration, Layout layout,
String facility, final Filter filter, final String syslogHost, final String level) {
- Holder<String> host = new Holder<>();
- Holder<Integer> port = new Holder<>();
+ AtomicReference<String> host = new AtomicReference<>();
+ AtomicInteger port = new AtomicInteger();
resolveSyslogHost(syslogHost, host, port);
org.apache.logging.log4j.core.Layout<? extends Serializable> appenderLayout;
if (layout instanceof LayoutWrapper) {
@@ -155,7 +155,7 @@ public class SyslogAppenderBuilder extends AbstractBuilder implements AppenderBu
.build());
}
- private void resolveSyslogHost(String syslogHost, Holder<String> host, Holder<Integer> port) {
+ private void resolveSyslogHost(String syslogHost, AtomicReference<String> host, AtomicInteger port) {
//
// If not an unbracketed IPv6 address then
// parse as a URL
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java
index f377a77..0f7fbf9 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelMatchFilterBuilder.java
@@ -16,10 +16,17 @@
*/
package org.apache.log4j.builders.filter;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.bridge.FilterWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.BooleanHolder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.spi.Filter;
import org.apache.log4j.xml.XmlConfiguration;
@@ -30,12 +37,6 @@ import org.apache.logging.log4j.core.filter.LevelMatchFilter;
import org.apache.logging.log4j.status.StatusLogger;
import org.w3c.dom.Element;
-import java.util.Properties;
-
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.xml.XmlConfiguration.*;
-import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
-
/**
* Build a Level match failter.
*/
@@ -55,8 +56,8 @@ public class LevelMatchFilterBuilder extends AbstractBuilder implements FilterBu
@Override
public Filter parseFilter(Element filterElement, XmlConfiguration config) {
- final Holder<String> level = new Holder<>();
- final Holder<Boolean> acceptOnMatch = new BooleanHolder();
+ final AtomicReference<String> level = new AtomicReference<>();
+ final AtomicBoolean acceptOnMatch = new AtomicBoolean();
forEachElement(filterElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals("param")) {
switch (currentElement.getAttribute(NAME_ATTR)) {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java
index 5033089..d4792c3 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/LevelRangeFilterBuilder.java
@@ -16,10 +16,17 @@
*/
package org.apache.log4j.builders.filter;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.bridge.FilterWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.BooleanHolder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.spi.Filter;
import org.apache.log4j.xml.XmlConfiguration;
@@ -30,12 +37,6 @@ import org.apache.logging.log4j.core.filter.LevelRangeFilter;
import org.apache.logging.log4j.status.StatusLogger;
import org.w3c.dom.Element;
-
-import java.util.Properties;
-
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.xml.XmlConfiguration.*;
-
/**
* Build a Level match failter.
*/
@@ -56,9 +57,9 @@ public class LevelRangeFilterBuilder extends AbstractBuilder implements FilterBu
@Override
public Filter parseFilter(Element filterElement, XmlConfiguration config) {
- final Holder<String> levelMax = new Holder<>();
- final Holder<String> levelMin = new Holder<>();
- final Holder<Boolean> acceptOnMatch = new BooleanHolder();
+ final AtomicReference<String> levelMax = new AtomicReference<>();
+ final AtomicReference<String> levelMin = new AtomicReference<>();
+ final AtomicBoolean acceptOnMatch = new AtomicBoolean();
forEachElement(filterElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals("param")) {
switch (currentElement.getAttribute(NAME_ATTR)) {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java
index 781c9e4..96326a3 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/filter/StringMatchFilterBuilder.java
@@ -16,10 +16,16 @@
*/
package org.apache.log4j.builders.filter;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.bridge.FilterWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.BooleanHolder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.spi.Filter;
import org.apache.log4j.xml.XmlConfiguration;
@@ -29,9 +35,6 @@ import org.apache.logging.log4j.core.filter.StringMatchFilter;
import org.apache.logging.log4j.status.StatusLogger;
import org.w3c.dom.Element;
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.xml.XmlConfiguration.*;
-
/**
* Build a String match filter.
*/
@@ -44,8 +47,8 @@ public class StringMatchFilterBuilder extends AbstractBuilder implements FilterB
@Override
public Filter parseFilter(Element filterElement, XmlConfiguration config) {
- final Holder<Boolean> acceptOnMatch = new BooleanHolder();
- final Holder<String> text = new Holder<>();
+ final AtomicBoolean acceptOnMatch = new AtomicBoolean();
+ final AtomicReference<String> text = new AtomicReference<>();
forEachElement(filterElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals("param")) {
switch (currentElement.getAttribute(NAME_ATTR)) {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/HtmlLayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/HtmlLayoutBuilder.java
index 7141dec..e3dd899 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/HtmlLayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/HtmlLayoutBuilder.java
@@ -16,11 +16,17 @@
*/
package org.apache.log4j.builders.layout;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.Layout;
import org.apache.log4j.bridge.LayoutWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.BooleanHolder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.xml.XmlConfiguration;
import org.apache.logging.log4j.Logger;
@@ -29,11 +35,6 @@ import org.apache.logging.log4j.core.layout.HtmlLayout;
import org.apache.logging.log4j.status.StatusLogger;
import org.w3c.dom.Element;
-import java.util.Properties;
-
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.xml.XmlConfiguration.*;
-
/**
* Build a Pattern Layout
*/
@@ -55,8 +56,8 @@ public class HtmlLayoutBuilder extends AbstractBuilder implements LayoutBuilder
@Override
public Layout parseLayout(Element layoutElement, XmlConfiguration config) {
- final Holder<String> title = new Holder<>();
- final Holder<Boolean> locationInfo = new BooleanHolder();
+ final AtomicReference<String> title = new AtomicReference<>();
+ final AtomicBoolean locationInfo = new AtomicBoolean();
forEachElement(layoutElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals(PARAM_TAG)) {
if (TITLE.equalsIgnoreCase(currentElement.getAttribute("name"))) {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java
index e09a09a..af9c083 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/TTCCLayoutBuilder.java
@@ -16,11 +16,19 @@
*/
package org.apache.log4j.builders.layout;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.xml.XmlConfiguration.NAME_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.VALUE_ATTR;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.log4j.Layout;
import org.apache.log4j.bridge.LayoutWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.BooleanHolder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.Log4j1Configuration;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.xml.XmlConfiguration;
@@ -30,11 +38,6 @@ import org.apache.logging.log4j.core.layout.PatternLayout;
import org.apache.logging.log4j.status.StatusLogger;
import org.w3c.dom.Element;
-import java.util.Properties;
-
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.xml.XmlConfiguration.*;
-
/**
* Build a Pattern Layout
*/
@@ -58,11 +61,11 @@ public class TTCCLayoutBuilder extends AbstractBuilder implements LayoutBuilder
@Override
public Layout parseLayout(Element layoutElement, XmlConfiguration config) {
- final Holder<Boolean> threadPrinting = new BooleanHolder();
- final Holder<Boolean> categoryPrefixing = new BooleanHolder();
- final Holder<Boolean> contextPrinting = new BooleanHolder();
- final Holder<String> dateFormat = new Holder<>();
- final Holder<String> timezone = new Holder<>();
+ final AtomicBoolean threadPrinting = new AtomicBoolean();
+ final AtomicBoolean categoryPrefixing = new AtomicBoolean();
+ final AtomicBoolean contextPrinting = new AtomicBoolean();
+ final AtomicReference<String> dateFormat = new AtomicReference<>();
+ final AtomicReference<String> timezone = new AtomicReference<>();
forEachElement(layoutElement.getElementsByTagName("param"), currentElement -> {
if (currentElement.getTagName().equals(PARAM_TAG)) {
switch (currentElement.getAttribute(NAME_ATTR)) {
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/XmlLayoutBuilder.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/XmlLayoutBuilder.java
index 5c13875..109b01e 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/XmlLayoutBuilder.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/layout/XmlLayoutBuilder.java
@@ -16,11 +16,16 @@
*/
package org.apache.log4j.builders.layout;
+import static org.apache.log4j.builders.BuilderManager.CATEGORY;
+import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
+import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
+
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
+
import org.apache.log4j.Layout;
import org.apache.log4j.bridge.LayoutWrapper;
import org.apache.log4j.builders.AbstractBuilder;
-import org.apache.log4j.builders.BooleanHolder;
-import org.apache.log4j.builders.Holder;
import org.apache.log4j.config.PropertiesConfiguration;
import org.apache.log4j.xml.XmlConfiguration;
import org.apache.logging.log4j.Logger;
@@ -29,12 +34,6 @@ import org.apache.logging.log4j.core.layout.XmlLayout;
import org.apache.logging.log4j.status.StatusLogger;
import org.w3c.dom.Element;
-import java.util.Properties;
-
-import static org.apache.log4j.builders.BuilderManager.CATEGORY;
-import static org.apache.log4j.xml.XmlConfiguration.PARAM_TAG;
-import static org.apache.log4j.xml.XmlConfiguration.forEachElement;
-
/**
* Build an XML Layout
*/
@@ -56,8 +55,8 @@ public class XmlLayoutBuilder extends AbstractBuilder implements LayoutBuilder {
@Override
public Layout parseLayout(Element layoutElement, XmlConfiguration config) {
- final Holder<Boolean> properties = new BooleanHolder();
- final Holder<Boolean> locationInfo = new BooleanHolder();
+ final AtomicBoolean properties = new AtomicBoolean();
+ final AtomicBoolean locationInfo = new AtomicBoolean();
forEachElement(layoutElement.getElementsByTagName(PARAM_TAG), currentElement -> {
if (PROPERTIES.equalsIgnoreCase(currentElement.getAttribute("name"))) {
properties.set(Boolean.parseBoolean(currentElement.getAttribute("value")));