You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by jo...@apache.org on 2015/05/26 19:22:02 UTC

[06/15] struts git commit: WW-4504 - Mark current logging layer as @deprecated and use Log4j2 as default one

WW-4504 - Mark current logging layer as @deprecated and use Log4j2 as default one

- Use log4j2 Logger and LogManager instead of xwork implementation everywhere


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/95805e54
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/95805e54
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/95805e54

Branch: refs/heads/master
Commit: 95805e54f79a3c0f63325694c4a2a8a47d7330fd
Parents: 340312e
Author: Johannes Geppert <jo...@gmail.com>
Authored: Mon May 25 12:42:19 2015 +0200
Committer: Johannes Geppert <jo...@gmail.com>
Committed: Mon May 25 12:42:23 2015 +0200

----------------------------------------------------------------------
 .../src/test/java/example/HelloWorldTest.java   |  3 +--
 .../java/mailreader2/ApplicationListener.java   | 16 +++++---------
 .../mailreader2/AuthenticationInterceptor.java  |  7 ++++---
 .../src/main/java/mailreader2/Login.java        |  2 +-
 .../java/mailreader2/MailreaderSupport.java     | 11 +++++-----
 .../chat/ChatAuthenticationInterceptor.java     |  6 +++---
 .../struts2/showcase/chat/ChatInterceptor.java  |  6 +++---
 .../showcase/chat/ChatSessionListener.java      |  6 +++---
 .../struts2/showcase/chat/DateConverter.java    |  6 +++---
 .../main/java/actions/osgi/BundlesAction.java   | 12 ++++-------
 .../java/actions/osgi/HelloWorldAction.java     |  5 -----
 .../META-INF/spring/applicationContext.xml      |  5 +----
 core/pom.xml                                    | 13 ++++++------
 .../java/org/apache/struts2/RequestUtils.java   |  6 +++---
 .../apache/struts2/ServletActionContext.java    | 10 ++++-----
 .../struts2/components/ActionComponent.java     |  6 +++---
 .../org/apache/struts2/components/Anchor.java   |  6 +++---
 .../struts2/components/AppendIterator.java      |  6 +++---
 .../org/apache/struts2/components/Bean.java     |  6 +++---
 .../struts2/components/ClosingUIBean.java       |  6 +++---
 .../apache/struts2/components/Component.java    |  6 +++---
 .../org/apache/struts2/components/Date.java     |  6 +++---
 .../org/apache/struts2/components/File.java     |  6 +++---
 .../org/apache/struts2/components/I18n.java     |  6 +++---
 .../org/apache/struts2/components/Include.java  |  6 +++---
 .../struts2/components/InputTransferSelect.java |  6 +++---
 .../struts2/components/IteratorComponent.java   |  6 +++---
 .../struts2/components/MergeIterator.java       |  6 +++---
 .../org/apache/struts2/components/Number.java   |  6 +++---
 .../org/apache/struts2/components/OptGroup.java |  6 +++---
 .../components/OptionTransferSelect.java        |  6 +++---
 .../org/apache/struts2/components/Property.java |  6 +++---
 .../struts2/components/ServletUrlRenderer.java  |  6 +++---
 .../org/apache/struts2/components/Submit.java   |  6 +++---
 .../org/apache/struts2/components/Text.java     |  6 +++---
 .../org/apache/struts2/components/UIBean.java   |  6 +++---
 .../java/org/apache/struts2/components/URL.java |  6 +++---
 .../apache/struts2/components/UpDownSelect.java |  6 +++---
 .../components/template/BaseTemplateEngine.java |  6 +++---
 .../template/FreemarkerTemplateEngine.java      |  6 +++---
 .../components/template/JspTemplateEngine.java  |  6 +++---
 .../template/VelocityTemplateEngine.java        |  6 +++---
 .../config/AbstractBeanSelectionProvider.java   |  6 +++---
 .../config/DefaultBeanSelectionProvider.java    |  6 +++---
 .../apache/struts2/config/DefaultSettings.java  |  6 +++---
 .../struts2/config/PropertiesSettings.java      |  6 +++---
 .../config/StrutsXmlConfigurationProvider.java  |  6 +++---
 .../dispatcher/ActionContextCleanUp.java        |  6 +++---
 .../DefaultDispatcherErrorHandler.java          |  6 +++---
 .../dispatcher/DefaultStaticContentLoader.java  |  6 +++---
 .../apache/struts2/dispatcher/Dispatcher.java   |  6 +++---
 .../struts2/dispatcher/FilterDispatcher.java    |  6 ++++--
 .../FilterDispatcherCompatWeblogic61.java       |  6 +++---
 .../struts2/dispatcher/HttpHeaderResult.java    |  6 +++---
 .../struts2/dispatcher/PlainTextResult.java     |  6 +++---
 .../dispatcher/ServletDispatcherResult.java     |  6 +++---
 .../dispatcher/ServletRedirectResult.java       |  6 +++---
 .../apache/struts2/dispatcher/StreamResult.java |  6 +++---
 .../struts2/dispatcher/StrutsResultSupport.java |  6 +++---
 .../struts2/dispatcher/VelocityResult.java      |  6 +++---
 .../mapper/CompositeActionMapper.java           |  6 +++---
 .../dispatcher/mapper/DefaultActionMapper.java  |  6 +++---
 .../mapper/PrefixBasedActionMapper.java         |  6 +++---
 .../dispatcher/mapper/Restful2ActionMapper.java |  6 +++---
 .../dispatcher/mapper/RestfulActionMapper.java  |  6 +++---
 .../multipart/JakartaMultiPartRequest.java      |  6 +++---
 .../JakartaStreamMultiPartRequest.java          |  6 +++---
 .../multipart/MultiPartRequestWrapper.java      |  6 +++---
 .../struts2/dispatcher/ng/InitOperations.java   |  2 ++
 .../dispatcher/ng/PrepareOperations.java        |  8 +++----
 .../impl/PrefixBasedActionProxyFactory.java     |  6 +++---
 .../interceptor/CheckboxInterceptor.java        |  6 +++---
 .../interceptor/ClearSessionInterceptor.java    |  6 +++---
 .../struts2/interceptor/CookieInterceptor.java  |  6 +++---
 .../interceptor/CookieProviderInterceptor.java  |  6 +++---
 .../interceptor/CreateSessionInterceptor.java   |  6 +++---
 .../interceptor/DateTextFieldInterceptor.java   |  6 +++---
 .../interceptor/DeprecationInterceptor.java     |  6 +++---
 .../interceptor/ExecuteAndWaitInterceptor.java  |  6 +++---
 .../interceptor/FileUploadInterceptor.java      |  6 +++---
 .../interceptor/MessageStoreInterceptor.java    |  6 +++---
 .../struts2/interceptor/RolesInterceptor.java   |  6 +++---
 .../struts2/interceptor/ScopeInterceptor.java   |  6 +++---
 .../debugging/DebuggingInterceptor.java         |  6 +++---
 .../apache/struts2/util/IteratorGenerator.java  |  6 +++---
 .../apache/struts2/util/SortIteratorFilter.java |  6 +++---
 .../org/apache/struts2/util/StrutsUtil.java     |  6 +++---
 .../struts2/util/SubsetIteratorFilter.java      |  8 +++----
 .../apache/struts2/util/TextProviderHelper.java |  6 +++---
 .../org/apache/struts2/util/TokenHelper.java    |  6 +++---
 .../struts2/util/fs/JBossFileManager.java       |  6 +++---
 .../views/freemarker/FreemarkerManager.java     |  6 +++---
 .../views/freemarker/FreemarkerResult.java      |  6 +++---
 .../struts2/views/freemarker/tags/TagModel.java |  6 +++---
 .../org/apache/struts2/views/jsp/BeanTag.java   |  6 +++---
 .../jsp/iterator/IteratorGeneratorTag.java      |  6 +++---
 .../views/jsp/iterator/SubsetIteratorTag.java   |  6 +++---
 .../views/jsp/ui/AbstractUITagBeanInfo.java     |  6 +++---
 .../struts2/views/util/DefaultUrlHelper.java    |  6 +++---
 .../struts2/views/velocity/VelocityManager.java |  6 +++---
 .../struts2/views/xslt/AbstractAdapterNode.java | 10 ++++-----
 .../apache/struts2/views/xslt/ArrayAdapter.java |  6 +++---
 .../apache/struts2/views/xslt/BeanAdapter.java  |  6 +++---
 .../struts2/views/xslt/CollectionAdapter.java   |  6 +++---
 .../struts2/views/xslt/ProxyElementAdapter.java |  6 +++---
 .../struts2/views/xslt/ProxyNodeAdapter.java    |  6 +++---
 .../struts2/views/xslt/ServletURIResolver.java  |  6 +++---
 .../struts2/views/xslt/SimpleNodeList.java      |  6 +++---
 .../struts2/views/xslt/StringAdapter.java       |  6 +++---
 .../apache/struts2/views/xslt/XSLTResult.java   |  6 +++---
 .../apache/struts2/ClassInstantiationTest.java  |  2 --
 .../struts2/ExecutionCountTestAction.java       |  6 +++---
 .../struts2/ServletActionContextTest.java       | 14 ++++++-------
 .../apache/struts2/StrutsInternalTestCase.java  |  7 +------
 .../java/org/apache/struts2/TestAction.java     |  6 +-----
 .../struts2/TestConfigurationProvider.java      |  4 ++--
 .../java/org/apache/struts2/TestResult.java     | 15 +++++++------
 .../struts2/views/jsp/AbstractUITagTest.java    |  6 +++---
 .../apache/struts2/cdi/CdiObjectFactory.java    |  6 +++---
 .../config_browser/ShowConfigAction.java        |  6 +++---
 .../config_browser/ShowValidatorAction.java     |  6 +++---
 .../convention/ConventionUnknownHandler.java    |  6 +++---
 .../DefaultInterceptorMapBuilder.java           |  8 +++----
 .../convention/DefaultResultMapBuilder.java     |  6 +++---
 .../PackageBasedActionConfigBuilder.java        |  6 +++---
 .../convention/SEOActionNameBuilder.java        |  6 +++---
 .../apache/struts2/validators/DWRValidator.java |  6 +++---
 .../main/java/org/apache/struts2/JSPLoader.java |  6 +++---
 .../jasperreports/JasperReportsResult.java      |  6 +++---
 .../jasperreports/ValueStackDataSource.java     |  6 +++---
 .../struts2/convention/Java8ClassFinder.java    |  6 +++---
 .../convention/Java8ClassFinderFactory.java     |  6 +++---
 .../views/java/DefaultTagHandlerFactory.java    |  6 +++---
 .../apache/struts2/views/java/DefaultTheme.java |  6 +++---
 .../struts2/views/java/JavaTemplateEngine.java  |  6 +++---
 .../apache/struts2/dispatcher/ChartResult.java  |  6 +++---
 .../org/apache/struts2/json/JSONCleaner.java    |  6 +++---
 .../apache/struts2/json/JSONInterceptor.java    |  6 +++---
 .../org/apache/struts2/json/JSONPopulator.java  |  6 +++---
 .../org/apache/struts2/json/JSONResult.java     |  6 +++---
 .../java/org/apache/struts2/json/JSONUtil.java  |  6 +++---
 .../struts2/json/JSONValidationInterceptor.java |  6 +++---
 .../org/apache/struts2/json/JSONWriter.java     |  6 +++---
 .../org/apache/struts2/json/rpc/RPCError.java   |  6 +++---
 .../apache/struts2/json/smd/SMDGenerator.java   |  6 +++---
 .../apache/struts2/StrutsJUnit4TestCase.java    |  1 +
 .../java/org/apache/struts2/StrutsTestCase.java |  1 +
 .../junit/src/test/java/actions/ViewAction.java |  2 --
 .../struts2/osgi/BundleFreemarkerManager.java   |  6 +++---
 .../struts2/osgi/BundlePackageLoader.java       |  6 +++---
 .../struts2/osgi/DefaultBundleAccessor.java     |  6 +++---
 .../struts2/osgi/OsgiConfigurationProvider.java |  6 +++---
 .../java/org/apache/struts2/osgi/OsgiUtil.java  |  6 +++---
 .../apache/struts2/osgi/StrutsOsgiListener.java |  6 +++---
 .../apache/struts2/osgi/host/BaseOsgiHost.java  |  6 +++---
 .../apache/struts2/osgi/host/FelixOsgiHost.java |  6 +++---
 .../struts2/osgi/host/GlassfishOSGiHost.java    |  6 +++---
 .../osgi/interceptor/OsgiInterceptor.java       |  6 +++---
 .../DefaultOValValidationManager.java           |  6 +++---
 .../interceptor/OValValidationInterceptor.java  |  6 +++---
 .../multipart/PellMultiPartRequest.java         |  6 +++---
 .../org/apache/struts2/plexus/PlexusFilter.java |  6 +++---
 .../struts2/plexus/PlexusLifecycleListener.java |  6 +++---
 .../struts2/plexus/PlexusObjectFactory.java     |  6 +++---
 .../org/apache/struts2/plexus/PlexusUtils.java  |  6 +++---
 .../apache/struts2/StrutsPortletTestCase.java   |  6 +++---
 .../portlet/dispatcher/Jsr168Dispatcher.java    |  6 +++---
 .../portlet/dispatcher/Jsr286Dispatcher.java    |  6 +++---
 .../interceptor/PortletAwareInterceptor.java    |  6 +++---
 .../interceptor/PortletStateInterceptor.java    |  6 +++---
 .../struts2/portlet/result/PortletResult.java   |  6 +++---
 .../portlet/result/PortletVelocityResult.java   |  6 +++---
 .../servlet/PortletServletResponseJSR286.java   |  6 +++---
 .../struts2/portlet/util/PortletUrlHelper.java  |  6 +++---
 .../portlet/util/PortletUrlHelperJSR286.java    |  6 +++---
 .../struts2/rest/RestActionInvocation.java      |  6 +++---
 .../apache/struts2/rest/RestActionMapper.java   |  6 +++---
 .../struts2/rest/RestWorkflowInterceptor.java   |  6 +++---
 .../org/apache/struts2/sitegraph/SiteGraph.java |  6 +++---
 .../sitegraph/StrutsConfigRetriever.java        |  6 +++---
 .../sitegraph/entities/FileBasedView.java       |  6 +++---
 .../sitemesh/FreemarkerDecoratorServlet.java    | 22 ++++----------------
 ...dDecorator2NewStrutsFreemarkerDecorator.java |  6 +++---
 ...OldDecorator2NewStrutsVelocityDecorator.java |  6 +++---
 .../struts2/sitemesh/StrutsSiteMeshFactory.java |  6 +++---
 .../ClassReloadingXMLWebApplicationContext.java |  6 +++---
 .../spring/StrutsSpringObjectFactory.java       |  6 +++---
 .../struts2/tiles/StrutsTilesListener.java      |  6 +++---
 .../tiles/StrutsTilesRequestContext.java        |  6 +++---
 .../opensymphony/xwork2/ActionChainResult.java  |  6 +++---
 .../com/opensymphony/xwork2/ActionSupport.java  | 13 ++++--------
 .../xwork2/CompositeTextProvider.java           |  6 +++---
 .../xwork2/DefaultActionInvocation.java         |  7 +++----
 .../opensymphony/xwork2/DefaultActionProxy.java |  6 +++---
 .../xwork2/DefaultLocaleProvider.java           |  6 +++---
 .../com/opensymphony/xwork2/ObjectFactory.java  | 13 ++++--------
 .../xwork2/TextProviderSupport.java             |  6 +-----
 .../xwork2/XWorkJUnit4TestCase.java             |  6 +-----
 .../xwork2/config/ConfigurationManager.java     |  6 +++---
 .../xwork2/config/ConfigurationUtil.java        |  6 +++---
 .../xwork2/config/entities/PackageConfig.java   |  6 +++---
 .../xwork2/config/impl/AbstractMatcher.java     |  6 +++---
 .../config/impl/DefaultConfiguration.java       |  6 +++---
 .../config/providers/InterceptorBuilder.java    |  6 +++---
 .../providers/XmlConfigurationProvider.java     |  6 +++---
 .../DefaultConversionAnnotationProcessor.java   |  6 +++---
 .../impl/DefaultConversionFileProcessor.java    |  6 +++---
 .../DefaultConversionPropertiesProcessor.java   |  6 +++---
 .../impl/DefaultObjectTypeDeterminer.java       |  6 +++---
 .../impl/InstantiatingNullHandler.java          |  6 +++---
 .../xwork2/conversion/impl/XWorkConverter.java  |  6 +++---
 .../metadata/ConversionDescription.java         |  8 +++----
 .../xwork2/factory/DefaultConverterFactory.java |  6 +++---
 .../xwork2/interceptor/AliasInterceptor.java    |  6 +++---
 .../xwork2/interceptor/ChainingInterceptor.java |  6 +++---
 .../interceptor/DefaultWorkflowInterceptor.java |  6 +++---
 .../ExceptionMappingInterceptor.java            |  8 +++----
 .../xwork2/interceptor/I18nInterceptor.java     |  6 +++---
 .../xwork2/interceptor/LoggingInterceptor.java  |  6 +++---
 .../interceptor/MethodFilterInterceptor.java    |  6 +++---
 .../interceptor/ParameterFilterInterceptor.java |  6 +++---
 .../ParameterRemoverInterceptor.java            |  6 +++---
 .../interceptor/ParametersInterceptor.java      |  6 +++---
 .../interceptor/PrefixMethodInvocationUtil.java |  6 +++---
 .../xwork2/interceptor/PrepareInterceptor.java  |  4 ++--
 .../StaticParametersInterceptor.java            |  6 +++---
 .../xwork2/interceptor/TimerInterceptor.java    |  8 +++----
 .../com/opensymphony/xwork2/ognl/OgnlUtil.java  |  6 +++---
 .../xwork2/ognl/OgnlValueStack.java             |  6 +++---
 .../xwork2/ognl/SecurityMemberAccess.java       |  6 +++---
 .../ognl/accessor/CompoundRootAccessor.java     |  6 +++---
 .../XWorkCollectionPropertyAccessor.java        |  6 +++---
 .../ognl/accessor/XWorkMapPropertyAccessor.java |  6 +++---
 .../ognl/accessor/XWorkMethodAccessor.java      |  6 +++---
 .../DefaultAcceptedPatternsChecker.java         |  6 +++---
 .../DefaultExcludedPatternsChecker.java         |  6 +++---
 .../xwork2/spring/SpringObjectFactory.java      |  6 +++---
 .../spring/SpringProxyableObjectFactory.java    |  6 +++---
 .../ActionAutowiringInterceptor.java            |  6 +++---
 .../com/opensymphony/xwork2/util/DomHelper.java |  6 +++---
 .../xwork2/util/LocalizedTextUtil.java          |  6 +++---
 .../opensymphony/xwork2/util/ResolverUtil.java  |  6 +++---
 .../com/opensymphony/xwork2/util/URLUtil.java   |  6 +++---
 .../com/opensymphony/xwork2/util/XWorkList.java |  6 +++---
 .../util/classloader/FileResourceStore.java     |  6 +++---
 .../util/classloader/JarResourceStore.java      |  6 +++---
 .../util/classloader/ReloadingClassLoader.java  |  6 +++---
 .../classloader/ResourceStoreClassLoader.java   |  6 +++---
 .../xwork2/util/finder/DefaultClassFinder.java  |  6 +++---
 .../xwork2/util/finder/ResourceFinder.java      |  6 +++---
 .../opensymphony/xwork2/util/finder/UrlSet.java |  6 +++---
 .../xwork2/util/fs/DefaultFileManager.java      |  6 +++---
 .../util/fs/DefaultFileManagerFactory.java      |  6 +++---
 .../xwork2/util/fs/JarEntryRevision.java        |  6 +++---
 .../xwork2/util/profiling/UtilTimerStack.java   |  6 +++---
 .../AnnotationActionValidatorManager.java       |  6 +++---
 .../DefaultActionValidatorManager.java          |  6 +++---
 .../validator/DefaultValidatorFactory.java      |  6 +++---
 .../validator/DefaultValidatorFileParser.java   |  6 +++---
 .../validator/DelegatingValidatorContext.java   |  8 +++----
 .../xwork2/validator/ValidationInterceptor.java |  6 +++---
 .../validators/RangeValidatorSupport.java       |  6 +++---
 .../validators/RegexFieldValidator.java         |  6 +++---
 ...ateConversionErrorFieldValidatorSupport.java |  6 +++---
 .../validator/validators/ValidatorSupport.java  |  6 +++---
 .../opensymphony/xwork2/ActionSupportTest.java  |  6 +-----
 .../xwork2/UnknownHandlerManagerMock.java       |  2 --
 .../interceptor/TimerInterceptorTest.java       |  2 +-
 268 files changed, 798 insertions(+), 867 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/apps/jboss-blank/src/test/java/example/HelloWorldTest.java
----------------------------------------------------------------------
diff --git a/apps/jboss-blank/src/test/java/example/HelloWorldTest.java b/apps/jboss-blank/src/test/java/example/HelloWorldTest.java
index bdd80d3..4a89271 100644
--- a/apps/jboss-blank/src/test/java/example/HelloWorldTest.java
+++ b/apps/jboss-blank/src/test/java/example/HelloWorldTest.java
@@ -21,9 +21,8 @@
 
 package example;
 
-import org.apache.struts2.StrutsTestCase;
-
 import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts2.StrutsTestCase;
 
 public class HelloWorldTest extends StrutsTestCase {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/apps/mailreader/src/main/java/mailreader2/ApplicationListener.java
----------------------------------------------------------------------
diff --git a/apps/mailreader/src/main/java/mailreader2/ApplicationListener.java b/apps/mailreader/src/main/java/mailreader2/ApplicationListener.java
index 2233375..35e39fd 100644
--- a/apps/mailreader/src/main/java/mailreader2/ApplicationListener.java
+++ b/apps/mailreader/src/main/java/mailreader2/ApplicationListener.java
@@ -21,20 +21,14 @@
 
 package mailreader2;
 
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.struts.apps.mailreader.dao.impl.memory.MemoryUserDatabase;
 
 import javax.servlet.ServletContext;
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
-
-import org.apache.struts.apps.mailreader.dao.impl.memory.MemoryUserDatabase;
-
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import java.io.*;
 
 /**
  * <p><code>ServletContextListener</code> that initializes and finalizes the
@@ -100,7 +94,7 @@ public final class ApplicationListener implements ServletContextListener {
     /**
      * <p>Logging output for this plug in instance.</p>
      */
-    private Logger log = LoggerFactory.getLogger(this.getClass());
+    private Logger log = LogManager.getLogger(this.getClass());
 
     // ------------------------------------------------------------- Properties
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/apps/mailreader/src/main/java/mailreader2/AuthenticationInterceptor.java
----------------------------------------------------------------------
diff --git a/apps/mailreader/src/main/java/mailreader2/AuthenticationInterceptor.java b/apps/mailreader/src/main/java/mailreader2/AuthenticationInterceptor.java
index 254d968..77470a5 100644
--- a/apps/mailreader/src/main/java/mailreader2/AuthenticationInterceptor.java
+++ b/apps/mailreader/src/main/java/mailreader2/AuthenticationInterceptor.java
@@ -20,12 +20,13 @@
  */
 package mailreader2;
 
-import com.opensymphony.xwork2.interceptor.Interceptor;
-import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.Action;
-import java.util.Map;
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.interceptor.Interceptor;
 import org.apache.struts.apps.mailreader.dao.User;
 
+import java.util.Map;
+
 public class AuthenticationInterceptor implements Interceptor  {
 
     public void destroy () {}

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/apps/mailreader/src/main/java/mailreader2/Login.java
----------------------------------------------------------------------
diff --git a/apps/mailreader/src/main/java/mailreader2/Login.java b/apps/mailreader/src/main/java/mailreader2/Login.java
index 0efa19b..d4c1403 100644
--- a/apps/mailreader/src/main/java/mailreader2/Login.java
+++ b/apps/mailreader/src/main/java/mailreader2/Login.java
@@ -21,8 +21,8 @@
 
 package mailreader2;
 
-import org.apache.struts.apps.mailreader.dao.User;
 import org.apache.struts.apps.mailreader.dao.ExpiredPasswordException;
+import org.apache.struts.apps.mailreader.dao.User;
 
 /**
  * <p> Validate a user login. </p>

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/apps/mailreader/src/main/java/mailreader2/MailreaderSupport.java
----------------------------------------------------------------------
diff --git a/apps/mailreader/src/main/java/mailreader2/MailreaderSupport.java b/apps/mailreader/src/main/java/mailreader2/MailreaderSupport.java
index 02bad38..0136284 100644
--- a/apps/mailreader/src/main/java/mailreader2/MailreaderSupport.java
+++ b/apps/mailreader/src/main/java/mailreader2/MailreaderSupport.java
@@ -21,8 +21,9 @@
 
 package mailreader2;
 
-import java.util.Map;
-
+import com.opensymphony.xwork2.ActionSupport;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.struts.apps.mailreader.dao.ExpiredPasswordException;
 import org.apache.struts.apps.mailreader.dao.Subscription;
 import org.apache.struts.apps.mailreader.dao.User;
@@ -32,9 +33,7 @@ import org.apache.struts.apps.mailreader.dao.impl.memory.MemoryUser;
 import org.apache.struts2.interceptor.ApplicationAware;
 import org.apache.struts2.interceptor.SessionAware;
 
-import com.opensymphony.xwork2.ActionSupport;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import java.util.Map;
 
 /**
  * <p> Base Action for MailreaderSupport application. </p>
@@ -388,7 +387,7 @@ public class MailreaderSupport extends ActionSupport
     /**
      * <p><code>Log</code> instance for this application. </p>
      */
-    protected Logger log = LoggerFactory.getLogger(Constants.PACKAGE);
+    protected Logger log = LogManager.getLogger(Constants.PACKAGE);
 
     /**
      * <p> Persist the User object, including subscriptions, to the database.

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatAuthenticationInterceptor.java
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatAuthenticationInterceptor.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatAuthenticationInterceptor.java
index cd4f998..b270316 100644
--- a/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatAuthenticationInterceptor.java
+++ b/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatAuthenticationInterceptor.java
@@ -25,14 +25,14 @@ import com.opensymphony.xwork2.Action;
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.interceptor.Interceptor;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.dispatcher.SessionMap;
 
 public class ChatAuthenticationInterceptor implements Interceptor {
 
 	private static final long serialVersionUID = 1L;
-	private static final Logger LOG = LoggerFactory.getLogger(ChatAuthenticationInterceptor.class);
+	private static final Logger LOG = LogManager.getLogger(ChatAuthenticationInterceptor.class);
 	public static final String USER_SESSION_KEY = "chatUserSessionKey";
 
 	public void destroy() {

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatInterceptor.java
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatInterceptor.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatInterceptor.java
index cab13bd..06a41d9 100644
--- a/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatInterceptor.java
+++ b/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatInterceptor.java
@@ -24,8 +24,8 @@ import com.opensymphony.xwork2.Action;
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.interceptor.Interceptor;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import javax.servlet.http.HttpSession;
 
@@ -34,7 +34,7 @@ import javax.servlet.http.HttpSession;
  */
 public class ChatInterceptor implements Interceptor {
 
-	private static final Logger LOG = LoggerFactory.getLogger(ChatInterceptor.class);
+	private static final Logger LOG = LogManager.getLogger(ChatInterceptor.class);
 
 	private static final long serialVersionUID = 1L;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatSessionListener.java
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatSessionListener.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatSessionListener.java
index eb09746..7812cba 100644
--- a/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatSessionListener.java
+++ b/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/ChatSessionListener.java
@@ -20,8 +20,8 @@
  */
 package org.apache.struts2.showcase.chat;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.springframework.web.context.WebApplicationContext;
 import org.springframework.web.context.support.WebApplicationContextUtils;
 
@@ -31,7 +31,7 @@ import javax.servlet.http.HttpSessionListener;
 
 public class ChatSessionListener implements HttpSessionListener {
 
-	private static final Logger LOG = LoggerFactory.getLogger(ChatSessionListener.class);
+	private static final Logger LOG = LogManager.getLogger(ChatSessionListener.class);
 
 	public void sessionCreated(HttpSessionEvent event) {
 	}

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/DateConverter.java
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/DateConverter.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/DateConverter.java
index 8935497..5debf9d 100644
--- a/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/DateConverter.java
+++ b/apps/showcase/src/main/java/org/apache/struts2/showcase/chat/DateConverter.java
@@ -20,8 +20,8 @@
  */
 package org.apache.struts2.showcase.chat;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.util.StrutsTypeConverter;
 
 import java.text.ParseException;
@@ -31,7 +31,7 @@ import java.util.Map;
 
 public class DateConverter extends StrutsTypeConverter {
 
-	private static final Logger LOG = LoggerFactory.getLogger(DateConverter.class);
+	private static final Logger LOG = LogManager.getLogger(DateConverter.class);
 
 	public Object convertFromString(Map context, String[] values, Class toClass) {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/bundles/demo/src/main/java/actions/osgi/BundlesAction.java
----------------------------------------------------------------------
diff --git a/bundles/demo/src/main/java/actions/osgi/BundlesAction.java b/bundles/demo/src/main/java/actions/osgi/BundlesAction.java
index 0bf8b2f..eff79cc 100644
--- a/bundles/demo/src/main/java/actions/osgi/BundlesAction.java
+++ b/bundles/demo/src/main/java/actions/osgi/BundlesAction.java
@@ -20,15 +20,11 @@
  */
 package actions.osgi;
 
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Bundle;
-import org.apache.struts2.osgi.interceptor.BundleContextAware;
-import org.apache.struts2.osgi.interceptor.ServiceAware;
-import org.apache.struts2.convention.annotation.ResultPath;
-
-import java.util.List;
-
 import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts2.convention.annotation.ResultPath;
+import org.apache.struts2.osgi.interceptor.BundleContextAware;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
 
 /**
  * This action shows how to interact with the OSGi container, using the OSGi interceptor

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/bundles/demo/src/main/java/actions/osgi/HelloWorldAction.java
----------------------------------------------------------------------
diff --git a/bundles/demo/src/main/java/actions/osgi/HelloWorldAction.java b/bundles/demo/src/main/java/actions/osgi/HelloWorldAction.java
index f38c68a..cfaa279 100644
--- a/bundles/demo/src/main/java/actions/osgi/HelloWorldAction.java
+++ b/bundles/demo/src/main/java/actions/osgi/HelloWorldAction.java
@@ -3,11 +3,6 @@ package actions.osgi;
 import com.opensymphony.xwork2.ActionSupport;
 import org.apache.struts2.convention.annotation.Action;
 import org.apache.struts2.convention.annotation.ResultPath;
-import org.apache.struts2.osgi.interceptor.BundleContextAware;
-import org.apache.struts2.osgi.interceptor.ServiceAware;
-import org.osgi.framework.BundleContext;
-
-import java.util.List;
 
 @ResultPath("/content")
 public class HelloWorldAction extends ActionSupport {

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/bundles/demo/src/main/resources/META-INF/spring/applicationContext.xml
----------------------------------------------------------------------
diff --git a/bundles/demo/src/main/resources/META-INF/spring/applicationContext.xml b/bundles/demo/src/main/resources/META-INF/spring/applicationContext.xml
index bc3cc31..aae9d2b 100644
--- a/bundles/demo/src/main/resources/META-INF/spring/applicationContext.xml
+++ b/bundles/demo/src/main/resources/META-INF/spring/applicationContext.xml
@@ -1,9 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="
-    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
-    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
-    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
 
     <bean class="actions.osgi.Message" id="message">
         <constructor-arg type="java.lang.String" value="Welcome to the OSGi plugin. You can checkout any time you like, but can never leave"/>

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 6eed44f..15fd2c5 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -191,6 +191,13 @@
             <optional>true</optional>
         </dependency>
 
+        <!-- Logging -->
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-api</artifactId>
+            <version>${log4j2.version}</version>
+        </dependency>
+
         <!-- File upload -->
         <dependency>
             <groupId>commons-fileupload</groupId>
@@ -259,12 +266,6 @@
         </dependency>
 
         <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-all</artifactId>
             <scope>test</scope>

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/RequestUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/RequestUtils.java b/core/src/main/java/org/apache/struts2/RequestUtils.java
index aa911a5..0ba079d 100644
--- a/core/src/main/java/org/apache/struts2/RequestUtils.java
+++ b/core/src/main/java/org/apache/struts2/RequestUtils.java
@@ -21,9 +21,9 @@
 
 package org.apache.struts2;
 
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
 import org.apache.commons.lang3.time.FastDateFormat;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import javax.servlet.http.HttpServletRequest;
 import java.text.ParseException;
@@ -37,7 +37,7 @@ import java.util.TimeZone;
  */
 public class RequestUtils {
 
-    private static final Logger LOG = LoggerFactory.getLogger(RequestUtils.class);
+    private static final Logger LOG = LogManager.getLogger(RequestUtils.class);
 
     private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/ServletActionContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/ServletActionContext.java b/core/src/main/java/org/apache/struts2/ServletActionContext.java
index db34fda..e3f50af 100644
--- a/core/src/main/java/org/apache/struts2/ServletActionContext.java
+++ b/core/src/main/java/org/apache/struts2/ServletActionContext.java
@@ -21,17 +21,15 @@
 
 package org.apache.struts2;
 
-import java.util.Map;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.util.ValueStack;
+import org.apache.struts2.dispatcher.mapper.ActionMapping;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.jsp.PageContext;
-
-import org.apache.struts2.dispatcher.mapper.ActionMapping;
-
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.util.ValueStack;
+import java.util.Map;
 
 
 /**

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/ActionComponent.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/ActionComponent.java b/core/src/main/java/org/apache/struts2/components/ActionComponent.java
index f184454..fd58339 100644
--- a/core/src/main/java/org/apache/struts2/components/ActionComponent.java
+++ b/core/src/main/java/org/apache/struts2/components/ActionComponent.java
@@ -28,8 +28,8 @@ import com.opensymphony.xwork2.ActionProxyFactory;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.ValueStackFactory;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.StrutsException;
 import org.apache.struts2.StrutsStatics;
@@ -118,7 +118,7 @@ import java.util.Map;
  */
 @StrutsTag(name="action", tldTagClass="org.apache.struts2.views.jsp.ActionTag", description="Execute an action from within a view")
 public class ActionComponent extends ContextBean {
-    private static final Logger LOG = LoggerFactory.getLogger(ActionComponent.class);
+    private static final Logger LOG = LogManager.getLogger(ActionComponent.class);
 
     protected HttpServletResponse res;
     protected HttpServletRequest req;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/Anchor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Anchor.java b/core/src/main/java/org/apache/struts2/components/Anchor.java
index 697d8f2..3d7fdf9 100644
--- a/core/src/main/java/org/apache/struts2/components/Anchor.java
+++ b/core/src/main/java/org/apache/struts2/components/Anchor.java
@@ -23,8 +23,8 @@ package org.apache.struts2.components;
 
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
@@ -61,7 +61,7 @@ import java.util.LinkedHashMap;
         description = "Render a HTML href element that when clicked can optionally call a URL via remote XMLHttpRequest and updates its targets",
         allowDynamicAttributes = true)
 public class Anchor extends ClosingUIBean {
-    private static final Logger LOG = LoggerFactory.getLogger(Anchor.class);
+    private static final Logger LOG = LogManager.getLogger(Anchor.class);
 
     public static final String OPEN_TEMPLATE = "a";
     public static final String TEMPLATE = "a-close";

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/AppendIterator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/AppendIterator.java b/core/src/main/java/org/apache/struts2/components/AppendIterator.java
index 633fc0a..6021fe3 100644
--- a/core/src/main/java/org/apache/struts2/components/AppendIterator.java
+++ b/core/src/main/java/org/apache/struts2/components/AppendIterator.java
@@ -33,8 +33,8 @@ import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * <!-- START SNIPPET: javadoc -->
@@ -119,7 +119,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
 @StrutsTag(name="append", tldTagClass="org.apache.struts2.views.jsp.iterator.AppendIteratorTag", description="Append the values of a list of iterators to one iterator")
 public class AppendIterator extends ContextBean implements UnnamedParametric {
 
-    private static final Logger LOG = LoggerFactory.getLogger(AppendIterator.class);
+    private static final Logger LOG = LogManager.getLogger(AppendIterator.class);
 
     private AppendIteratorFilter appendIteratorFilter= null;
     private List _parameters;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/Bean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Bean.java b/core/src/main/java/org/apache/struts2/components/Bean.java
index eb361c1..2039d95 100644
--- a/core/src/main/java/org/apache/struts2/components/Bean.java
+++ b/core/src/main/java/org/apache/struts2/components/Bean.java
@@ -24,8 +24,8 @@ package org.apache.struts2.components;
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import com.opensymphony.xwork2.util.reflection.ReflectionProvider;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
@@ -95,7 +95,7 @@ import java.io.Writer;
 @StrutsTag(name = "bean", tldTagClass = "org.apache.struts2.views.jsp.BeanTag",
         description = "Instantiate a JavaBean and place it in the context")
 public class Bean extends ContextBean {
-    protected static final Logger LOG = LoggerFactory.getLogger(Bean.class);
+    protected static final Logger LOG = LogManager.getLogger(Bean.class);
 
     protected Object bean;
     protected String name;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/ClosingUIBean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/ClosingUIBean.java b/core/src/main/java/org/apache/struts2/components/ClosingUIBean.java
index d315fd7..123d58b 100644
--- a/core/src/main/java/org/apache/struts2/components/ClosingUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/ClosingUIBean.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.components;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 
 import javax.servlet.http.HttpServletRequest;
@@ -34,7 +34,7 @@ import java.io.Writer;
  * ClosingUIBean is the standard superclass for UI components such as div etc.
  */
 public abstract class ClosingUIBean extends UIBean {
-    private static final Logger LOG = LoggerFactory.getLogger(ClosingUIBean.class);
+    private static final Logger LOG = LogManager.getLogger(ClosingUIBean.class);
 
     protected ClosingUIBean(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
         super(stack, request, response);

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/Component.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Component.java b/core/src/main/java/org/apache/struts2/components/Component.java
index 62e07ee..bde06c0 100644
--- a/core/src/main/java/org/apache/struts2/components/Component.java
+++ b/core/src/main/java/org/apache/struts2/components/Component.java
@@ -25,8 +25,8 @@ import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.AnnotationUtils;
 import com.opensymphony.xwork2.util.TextParseUtil;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.StrutsException;
@@ -60,7 +60,7 @@ import java.util.concurrent.ConcurrentMap;
  */
 public class Component {
 
-    private static final Logger LOG = LoggerFactory.getLogger(Component.class);
+    private static final Logger LOG = LogManager.getLogger(Component.class);
 
     public static final String COMPONENT_STACK = "__component_stack";
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/Date.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Date.java b/core/src/main/java/org/apache/struts2/components/Date.java
index 0bb1207..e086276 100644
--- a/core/src/main/java/org/apache/struts2/components/Date.java
+++ b/core/src/main/java/org/apache/struts2/components/Date.java
@@ -24,8 +24,8 @@ package org.apache.struts2.components;
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.TextProvider;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 
@@ -143,7 +143,7 @@ import java.util.TimeZone;
 @StrutsTag(name="date", tldBodyContent="empty", tldTagClass="org.apache.struts2.views.jsp.DateTag", description="Render a formatted date.")
 public class Date extends ContextBean {
 
-    private static final Logger LOG = LoggerFactory.getLogger(Date.class);
+    private static final Logger LOG = LogManager.getLogger(Date.class);
     /**
      * Property name to fall back when no format is specified
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/File.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/File.java b/core/src/main/java/org/apache/struts2/components/File.java
index 449ba1f..6d86182 100644
--- a/core/src/main/java/org/apache/struts2/components/File.java
+++ b/core/src/main/java/org/apache/struts2/components/File.java
@@ -28,8 +28,8 @@ import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * <!-- START SNIPPET: javadoc -->
@@ -52,7 +52,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
     description="Render a file input field",
     allowDynamicAttributes=true)
 public class File extends UIBean {
-    private final static Logger LOG = LoggerFactory.getLogger(File.class);
+    private final static Logger LOG = LogManager.getLogger(File.class);
 
     final public static String TEMPLATE = "file";
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/I18n.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/I18n.java b/core/src/main/java/org/apache/struts2/components/I18n.java
index 82d991e..82d690b 100644
--- a/core/src/main/java/org/apache/struts2/components/I18n.java
+++ b/core/src/main/java/org/apache/struts2/components/I18n.java
@@ -37,8 +37,8 @@ import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.LocalizedTextUtil;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * <!-- START SNIPPET: javadoc -->
@@ -89,7 +89,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
                 " and place it on the value stack")
 public class I18n extends Component {
 
-    private static final Logger LOG = LoggerFactory.getLogger(I18n.class);
+    private static final Logger LOG = LogManager.getLogger(I18n.class);
 
     protected boolean pushed;
     protected String name;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/Include.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Include.java b/core/src/main/java/org/apache/struts2/components/Include.java
index 9a918f0..fbc702f 100644
--- a/core/src/main/java/org/apache/struts2/components/Include.java
+++ b/core/src/main/java/org/apache/struts2/components/Include.java
@@ -49,8 +49,8 @@ import org.apache.struts2.views.annotations.StrutsTagAttribute;
 
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * <!-- START SNIPPET: javadoc -->
@@ -101,7 +101,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
                 "(result of servlet or a JSP page)")
 public class Include extends Component {
 
-    private static final Logger LOG = LoggerFactory.getLogger(Include.class);
+    private static final Logger LOG = LogManager.getLogger(Include.class);
 
     private static String systemEncoding = System.getProperty("file.encoding");
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/InputTransferSelect.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/InputTransferSelect.java b/core/src/main/java/org/apache/struts2/components/InputTransferSelect.java
index e5628fe..0dcf7d0 100644
--- a/core/src/main/java/org/apache/struts2/components/InputTransferSelect.java
+++ b/core/src/main/java/org/apache/struts2/components/InputTransferSelect.java
@@ -31,8 +31,8 @@ import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * <!-- START SNIPPET: javadoc -->
@@ -75,7 +75,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
 @StrutsTag(name="inputtransferselect", tldTagClass="org.apache.struts2.views.jsp.ui.InputTransferSelectTag", description="Renders an input form")
 public class InputTransferSelect extends ListUIBean {
 
-    private static final Logger LOG = LoggerFactory.getLogger(InputTransferSelect.class);
+    private static final Logger LOG = LogManager.getLogger(InputTransferSelect.class);
 
     private static final String TEMPLATE = "inputtransferselect";
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/IteratorComponent.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/IteratorComponent.java b/core/src/main/java/org/apache/struts2/components/IteratorComponent.java
index e2acee8..45a8ee1 100644
--- a/core/src/main/java/org/apache/struts2/components/IteratorComponent.java
+++ b/core/src/main/java/org/apache/struts2/components/IteratorComponent.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.components;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.util.MakeIterator;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
@@ -225,7 +225,7 @@ import java.util.List;
  */
 @StrutsTag(name="iterator", tldTagClass="org.apache.struts2.views.jsp.IteratorTag", description="Iterate over a iterable value")
 public class IteratorComponent extends ContextBean {
-    private static final Logger LOG = LoggerFactory.getLogger(IteratorComponent.class);
+    private static final Logger LOG = LogManager.getLogger(IteratorComponent.class);
 
     protected Iterator iterator;
     protected IteratorStatus status;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/MergeIterator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/MergeIterator.java b/core/src/main/java/org/apache/struts2/components/MergeIterator.java
index a0c8c2a..f4aa31b 100644
--- a/core/src/main/java/org/apache/struts2/components/MergeIterator.java
+++ b/core/src/main/java/org/apache/struts2/components/MergeIterator.java
@@ -33,8 +33,8 @@ import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * <!-- START SNIPPET: javadoc -->
@@ -133,7 +133,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
                 "of a list of iterators into one iterator")
 public class MergeIterator extends ContextBean implements UnnamedParametric {
 
-    private static final Logger LOG = LoggerFactory.getLogger(MergeIterator.class);
+    private static final Logger LOG = LogManager.getLogger(MergeIterator.class);
 
     private MergeIteratorFilter mergeIteratorFilter = null;
     private List _parameters;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/Number.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Number.java b/core/src/main/java/org/apache/struts2/components/Number.java
index d89f45d..400ade8 100644
--- a/core/src/main/java/org/apache/struts2/components/Number.java
+++ b/core/src/main/java/org/apache/struts2/components/Number.java
@@ -26,8 +26,8 @@ package org.apache.struts2.components;
 
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 
@@ -103,7 +103,7 @@ import java.util.Currency;
 @StrutsTag(name = "number", tldBodyContent = "empty", tldTagClass = "org.apache.struts2.views.jsp.NumberTag", description = "Render a formatted number.")
 public class Number extends ContextBean {
 
-    private static final Logger LOG = LoggerFactory.getLogger(Number.class);
+    private static final Logger LOG = LogManager.getLogger(Number.class);
     /**
      * Property name to fall back when no format is specified
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/OptGroup.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/OptGroup.java b/core/src/main/java/org/apache/struts2/components/OptGroup.java
index 4eb3eb2..d3e4d77 100644
--- a/core/src/main/java/org/apache/struts2/components/OptGroup.java
+++ b/core/src/main/java/org/apache/struts2/components/OptGroup.java
@@ -34,8 +34,8 @@ import org.apache.struts2.views.annotations.StrutsTagAttribute;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * <!-- START SNIPPET: javadoc -->
@@ -79,7 +79,7 @@ public class OptGroup extends Component {
 
     public static final String INTERNAL_LIST_UI_BEAN_LIST_PARAMETER_KEY = "optGroupInternalListUiBeanList";
 
-    private static Logger LOG = LoggerFactory.getLogger(OptGroup.class);
+    private static Logger LOG = LogManager.getLogger(OptGroup.class);
 
     protected HttpServletRequest req;
     protected HttpServletResponse res;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java b/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java
index 2bac1bb..68a3f2b 100644
--- a/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java
+++ b/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.components;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 
@@ -94,7 +94,7 @@ import java.util.Map;
 @StrutsTag(name="optiontransferselect", tldTagClass="org.apache.struts2.views.jsp.ui.OptionTransferSelectTag", description="Renders an input form")
 public class OptionTransferSelect extends DoubleListUIBean {
 
-    private static final Logger LOG = LoggerFactory.getLogger(OptionTransferSelect.class);
+    private static final Logger LOG = LogManager.getLogger(OptionTransferSelect.class);
 
     private static final String TEMPLATE = "optiontransferselect";
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/Property.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Property.java b/core/src/main/java/org/apache/struts2/components/Property.java
index a01147c..5019b55 100644
--- a/core/src/main/java/org/apache/struts2/components/Property.java
+++ b/core/src/main/java/org/apache/struts2/components/Property.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.components;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
@@ -89,7 +89,7 @@ import java.io.Writer;
 @StrutsTag(name="property", tldBodyContent="empty", tldTagClass="org.apache.struts2.views.jsp.PropertyTag",
     description="Print out expression which evaluates against the stack")
 public class Property extends Component {
-    private static final Logger LOG = LoggerFactory.getLogger(Property.class);
+    private static final Logger LOG = LogManager.getLogger(Property.class);
 
     public Property(ValueStack stack) {
         super(stack);

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java b/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
index 0b4e13b..4216ddb 100644
--- a/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
+++ b/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
@@ -26,8 +26,8 @@ import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.struts2.StrutsException;
 import org.apache.struts2.dispatcher.mapper.ActionMapper;
@@ -47,7 +47,7 @@ public class ServletUrlRenderer implements UrlRenderer {
     /**
      * Provide a logging instance.
      */
-    private static final Logger LOG = LoggerFactory.getLogger(ServletUrlRenderer.class);
+    private static final Logger LOG = LogManager.getLogger(ServletUrlRenderer.class);
 
     private ActionMapper actionMapper;
     private UrlHelper urlHelper;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/Submit.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Submit.java b/core/src/main/java/org/apache/struts2/components/Submit.java
index 5db4e11..85fb0d2 100644
--- a/core/src/main/java/org/apache/struts2/components/Submit.java
+++ b/core/src/main/java/org/apache/struts2/components/Submit.java
@@ -30,8 +30,8 @@ import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * <!-- START SNIPPET: javadoc -->
@@ -53,7 +53,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
     allowDynamicAttributes=true)
 public class Submit extends FormButton {
 
-    private static final Logger LOG = LoggerFactory.getLogger(Submit.class);
+    private static final Logger LOG = LogManager.getLogger(Submit.class);
     final public static String OPEN_TEMPLATE = "submit";
     final public static String TEMPLATE = "submit-close";
     protected String src;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/Text.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Text.java b/core/src/main/java/org/apache/struts2/components/Text.java
index 146d58f..6ec0b39 100644
--- a/core/src/main/java/org/apache/struts2/components/Text.java
+++ b/core/src/main/java/org/apache/struts2/components/Text.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.components;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.struts2.util.TextProviderHelper;
 import org.apache.struts2.views.annotations.StrutsTag;
@@ -119,7 +119,7 @@ import java.util.List;
     tldTagClass="org.apache.struts2.views.jsp.TextTag",
     description="Render a I18n text message")
 public class Text extends ContextBean implements Param.UnnamedParametric {
-    private static final Logger LOG = LoggerFactory.getLogger(Text.class);
+    private static final Logger LOG = LogManager.getLogger(Text.class);
 
     protected List values = Collections.EMPTY_LIST;
     protected String actualName;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/UIBean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/UIBean.java b/core/src/main/java/org/apache/struts2/components/UIBean.java
index 5fd99a9..8c9ebf6 100644
--- a/core/src/main/java/org/apache/struts2/components/UIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/UIBean.java
@@ -24,8 +24,8 @@ package org.apache.struts2.components;
 import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.StrutsException;
 import org.apache.struts2.components.template.Template;
@@ -434,7 +434,7 @@ import java.util.Map;
  *
  */
 public abstract class UIBean extends Component {
-    private static final Logger LOG = LoggerFactory.getLogger(UIBean.class);
+    private static final Logger LOG = LogManager.getLogger(UIBean.class);
 
     protected HttpServletRequest request;
     protected HttpServletResponse response;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/URL.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/URL.java b/core/src/main/java/org/apache/struts2/components/URL.java
index 850bcce..a163acb 100644
--- a/core/src/main/java/org/apache/struts2/components/URL.java
+++ b/core/src/main/java/org/apache/struts2/components/URL.java
@@ -23,8 +23,8 @@ package org.apache.struts2.components;
 
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
@@ -110,7 +110,7 @@ import java.io.Writer;
  */
 @StrutsTag(name="url", tldTagClass="org.apache.struts2.views.jsp.URLTag", description="This tag is used to create a URL")
 public class URL extends ContextBean {
-    private static final Logger LOG = LoggerFactory.getLogger(URL.class);
+    private static final Logger LOG = LogManager.getLogger(URL.class);
     private UrlProvider urlProvider;
     private UrlRenderer urlRenderer;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/UpDownSelect.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/UpDownSelect.java b/core/src/main/java/org/apache/struts2/components/UpDownSelect.java
index af24bf9..c2a2694 100644
--- a/core/src/main/java/org/apache/struts2/components/UpDownSelect.java
+++ b/core/src/main/java/org/apache/struts2/components/UpDownSelect.java
@@ -31,8 +31,8 @@ import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * <!-- START SNIPPET: javadoc -->
@@ -82,7 +82,7 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
         description="Create a Select component with buttons to move the elements in the select component up and down")
 public class UpDownSelect extends Select {
 
-    private static final Logger LOG = LoggerFactory.getLogger(UpDownSelect.class);
+    private static final Logger LOG = LogManager.getLogger(UpDownSelect.class);
 
 
     final public static String TEMPLATE = "updownselect";

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java b/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java
index 0f3df8d..cf7414a 100644
--- a/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java
+++ b/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.components.template;
 
 import com.opensymphony.xwork2.util.ClassLoaderUtil;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.ServletActionContext;
 
 import javax.servlet.ServletContext;
@@ -42,7 +42,7 @@ import java.util.concurrent.ConcurrentHashMap;
  */
 public abstract class BaseTemplateEngine implements TemplateEngine {
 
-    private static final Logger LOG = LoggerFactory.getLogger(BaseTemplateEngine.class);
+    private static final Logger LOG = LogManager.getLogger(BaseTemplateEngine.class);
 
     /**
      * The default theme properties file name. Default is 'theme.properties'

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java b/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
index 9368ec7..478eb53 100644
--- a/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
+++ b/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
@@ -39,8 +39,8 @@ import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ClassLoaderUtil;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import freemarker.template.Configuration;
 import freemarker.template.SimpleHash;
@@ -65,7 +65,7 @@ public class FreemarkerTemplateEngine extends BaseTemplateEngine {
         }
     }
 
-    private static final Logger LOG = LoggerFactory.getLogger(FreemarkerTemplateEngine.class);
+    private static final Logger LOG = LogManager.getLogger(FreemarkerTemplateEngine.class);
 
     @Inject
     public void setFreemarkerManager(FreemarkerManager mgr) {

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/template/JspTemplateEngine.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/template/JspTemplateEngine.java b/core/src/main/java/org/apache/struts2/components/template/JspTemplateEngine.java
index 8a7d299..95b4ed6 100644
--- a/core/src/main/java/org/apache/struts2/components/template/JspTemplateEngine.java
+++ b/core/src/main/java/org/apache/struts2/components/template/JspTemplateEngine.java
@@ -34,14 +34,14 @@ import org.apache.struts2.components.Include;
 import org.apache.struts2.components.UIBean;
 
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * JSP based template engine.
  */
 public class JspTemplateEngine extends BaseTemplateEngine {
-    private static final Logger LOG = LoggerFactory.getLogger(JspTemplateEngine.class);
+    private static final Logger LOG = LogManager.getLogger(JspTemplateEngine.class);
 
 	String encoding;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/components/template/VelocityTemplateEngine.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/template/VelocityTemplateEngine.java b/core/src/main/java/org/apache/struts2/components/template/VelocityTemplateEngine.java
index 4c665fe..87fc2b8 100644
--- a/core/src/main/java/org/apache/struts2/components/template/VelocityTemplateEngine.java
+++ b/core/src/main/java/org/apache/struts2/components/template/VelocityTemplateEngine.java
@@ -36,14 +36,14 @@ import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.context.Context;
 
 import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * Velocity based template engine.
  */
 public class VelocityTemplateEngine extends BaseTemplateEngine {
-    private static final Logger LOG = LoggerFactory.getLogger(VelocityTemplateEngine.class);
+    private static final Logger LOG = LogManager.getLogger(VelocityTemplateEngine.class);
     
     private VelocityManager velocityManager;
     

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java b/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java
index 608d834..a75b877 100644
--- a/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java
+++ b/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java
@@ -11,8 +11,8 @@ import com.opensymphony.xwork2.inject.Factory;
 import com.opensymphony.xwork2.inject.Scope;
 import com.opensymphony.xwork2.util.ClassLoaderUtil;
 import com.opensymphony.xwork2.util.location.LocatableProperties;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 import java.util.Properties;
 
@@ -21,7 +21,7 @@ import java.util.Properties;
  */
 public abstract class AbstractBeanSelectionProvider implements BeanSelectionProvider {
 
-    private static final Logger LOG = LoggerFactory.getLogger(AbstractBeanSelectionProvider.class);
+    private static final Logger LOG = LogManager.getLogger(AbstractBeanSelectionProvider.class);
 
     public static final String DEFAULT_BEAN_NAME = "struts";
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
index 3a6deb2..671ea59 100644
--- a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
+++ b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
@@ -56,8 +56,8 @@ import com.opensymphony.xwork2.util.PatternMatcher;
 import com.opensymphony.xwork2.util.TextParser;
 import com.opensymphony.xwork2.util.ValueStackFactory;
 import com.opensymphony.xwork2.util.location.LocatableProperties;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import com.opensymphony.xwork2.util.reflection.ReflectionContextFactory;
 import com.opensymphony.xwork2.util.reflection.ReflectionProvider;
 import com.opensymphony.xwork2.validator.ActionValidatorManager;
@@ -357,7 +357,7 @@ import java.util.StringTokenizer;
  */
 public class DefaultBeanSelectionProvider extends AbstractBeanSelectionProvider {
 
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultBeanSelectionProvider.class);
+    private static final Logger LOG = LogManager.getLogger(DefaultBeanSelectionProvider.class);
 
     public void register(ContainerBuilder builder, LocatableProperties props) {
         alias(ObjectFactory.class, StrutsConstants.STRUTS_OBJECTFACTORY, builder, props);

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/config/DefaultSettings.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/config/DefaultSettings.java b/core/src/main/java/org/apache/struts2/config/DefaultSettings.java
index 7f21e4c..cc30f48 100644
--- a/core/src/main/java/org/apache/struts2/config/DefaultSettings.java
+++ b/core/src/main/java/org/apache/struts2/config/DefaultSettings.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.config;
 
 import com.opensymphony.xwork2.util.location.Location;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsConstants;
 
 import java.util.ArrayList;
@@ -38,7 +38,7 @@ import java.util.StringTokenizer;
  */
 public class DefaultSettings implements Settings {
 
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultSettings.class);
+    private static final Logger LOG = LogManager.getLogger(DefaultSettings.class);
 
     /**
      * The Settings object that handles API calls.

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/config/PropertiesSettings.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/config/PropertiesSettings.java b/core/src/main/java/org/apache/struts2/config/PropertiesSettings.java
index 333608b..3bbf9b4 100644
--- a/core/src/main/java/org/apache/struts2/config/PropertiesSettings.java
+++ b/core/src/main/java/org/apache/struts2/config/PropertiesSettings.java
@@ -25,8 +25,8 @@ import com.opensymphony.xwork2.util.ClassLoaderUtil;
 import com.opensymphony.xwork2.util.location.LocatableProperties;
 import com.opensymphony.xwork2.util.location.Location;
 import com.opensymphony.xwork2.util.location.LocationImpl;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsException;
 
 import java.io.IOException;
@@ -40,7 +40,7 @@ import java.util.Iterator;
  */
 class PropertiesSettings implements Settings {
 
-    private static final Logger LOG = LoggerFactory.getLogger(PropertiesSettings.class);
+    private static final Logger LOG = LogManager.getLogger(PropertiesSettings.class);
 
     private LocatableProperties settings;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java b/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java
index cf055f9..f09d6f3 100644
--- a/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java
+++ b/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java
@@ -40,15 +40,15 @@ import com.opensymphony.xwork2.inject.ContainerBuilder;
 import com.opensymphony.xwork2.inject.Context;
 import com.opensymphony.xwork2.inject.Factory;
 import com.opensymphony.xwork2.util.location.LocatableProperties;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 
 /**
  * Override Xwork class so we can use an arbitrary config file
  */
 public class StrutsXmlConfigurationProvider extends XmlConfigurationProvider {
 
-    private static final Logger LOG = LoggerFactory.getLogger(StrutsXmlConfigurationProvider.class);
+    private static final Logger LOG = LogManager.getLogger(StrutsXmlConfigurationProvider.class);
     private File baseDir = null;
     private String filename;
     private String reloadKey;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/ActionContextCleanUp.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ActionContextCleanUp.java b/core/src/main/java/org/apache/struts2/dispatcher/ActionContextCleanUp.java
index bc8032d..8664b64 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ActionContextCleanUp.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ActionContextCleanUp.java
@@ -22,8 +22,8 @@
 package org.apache.struts2.dispatcher;
 
 import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import com.opensymphony.xwork2.util.profiling.UtilTimerStack;
 
 import javax.servlet.Filter;
@@ -70,7 +70,7 @@ import java.io.IOException;
  */
 public class ActionContextCleanUp implements Filter {
 
-    private static final Logger LOG = LoggerFactory.getLogger(ActionContextCleanUp.class);
+    private static final Logger LOG = LogManager.getLogger(ActionContextCleanUp.class);
 
     private static final String COUNTER = "__cleanup_recursion_counter";
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/DefaultDispatcherErrorHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/DefaultDispatcherErrorHandler.java b/core/src/main/java/org/apache/struts2/dispatcher/DefaultDispatcherErrorHandler.java
index c093402..2b4061c 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/DefaultDispatcherErrorHandler.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/DefaultDispatcherErrorHandler.java
@@ -3,8 +3,8 @@ package org.apache.struts2.dispatcher;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.location.Location;
 import com.opensymphony.xwork2.util.location.LocationUtils;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import freemarker.template.Template;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.StrutsException;
@@ -26,7 +26,7 @@ import java.util.List;
  */
 public class DefaultDispatcherErrorHandler implements DispatcherErrorHandler {
 
-    private static final Logger LOG = LoggerFactory.getLogger(DefaultDispatcherErrorHandler.class);
+    private static final Logger LOG = LogManager.getLogger(DefaultDispatcherErrorHandler.class);
 
     private FreemarkerManager freemarkerManager;
     private boolean devMode;

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java b/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java
index c62282f..d6004eb 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java
@@ -22,8 +22,8 @@ package org.apache.struts2.dispatcher;
 
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ClassLoaderUtil;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.dispatcher.ng.HostConfig;
 
@@ -66,7 +66,7 @@ public class DefaultStaticContentLoader implements StaticContentLoader {
     /**
      * Provide a logging instance.
      */
-    private Logger LOG = LoggerFactory.getLogger(DefaultStaticContentLoader.class);
+    private Logger LOG = LogManager.getLogger(DefaultStaticContentLoader.class);
 
     /**
      * Store set of path prefixes to use with static resources.

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
index 3a4e305..d01d6e7 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -38,8 +38,8 @@ import com.opensymphony.xwork2.util.ValueStackFactory;
 import com.opensymphony.xwork2.util.location.LocatableProperties;
 import com.opensymphony.xwork2.util.location.Location;
 import com.opensymphony.xwork2.util.location.LocationUtils;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import com.opensymphony.xwork2.util.profiling.UtilTimerStack;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.StrutsConstants;
@@ -77,7 +77,7 @@ public class Dispatcher {
     /**
      * Provide a logging instance.
      */
-    private static final Logger LOG = LoggerFactory.getLogger(Dispatcher.class);
+    private static final Logger LOG = LogManager.getLogger(Dispatcher.class);
 
     /**
      * Provide a thread local instance.

http://git-wip-us.apache.org/repos/asf/struts/blob/95805e54/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
index 22fc051..715ad94 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
@@ -28,8 +28,9 @@ import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ClassLoaderUtil;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.ValueStackFactory;
-import com.opensymphony.xwork2.util.logging.Logger;
 import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import com.opensymphony.xwork2.util.profiling.UtilTimerStack;
 import org.apache.struts2.RequestUtils;
 import org.apache.struts2.StrutsStatics;
@@ -199,6 +200,7 @@ public class FilterDispatcher implements StrutsStatics, Filter {
         }
     }
 
+    @Deprecated
     private void initLogging() {
         String factoryName = filterConfig.getInitParameter("loggerFactory");
         if (factoryName != null) {
@@ -218,7 +220,7 @@ public class FilterDispatcher implements StrutsStatics, Filter {
             }
         }
 
-        log = LoggerFactory.getLogger(FilterDispatcher.class);
+        log = LogManager.getLogger(FilterDispatcher.class);
 
     }