You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2015/06/23 12:12:04 UTC

[2/2] struts git commit: WW-4518 Drops another deprecated APIs

WW-4518 Drops another deprecated APIs


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

Branch: refs/heads/master
Commit: c50605a945b7b6b62b0869210a3146efd084b2ae
Parents: a4abb34
Author: Lukasz Lenart <lu...@apache.org>
Authored: Tue Jun 23 12:11:49 2015 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Tue Jun 23 12:11:49 2015 +0200

----------------------------------------------------------------------
 core/pom.xml                                    |   2 +-
 .../com/opensymphony/xwork2/ActionSupport.java  |  16 --
 .../xwork2/MockActionInvocation.java            |  26 ---
 .../com/opensymphony/xwork2/ObjectFactory.java  |   7 -
 .../com/opensymphony/xwork2/XWorkException.java |  14 +-
 .../xwork2/config/Configuration.java            |   7 -
 .../config/entities/ResultTypeConfig.java       |   7 -
 .../xwork2/config/impl/ActionConfigMatcher.java |  35 ----
 .../config/impl/DefaultConfiguration.java       |  15 --
 .../xwork2/config/impl/MockConfiguration.java   |   4 -
 .../impl/AnnotationXWorkConverter.java          |  91 ----------
 .../conversion/impl/EnumTypeConverter.java      | 124 -------------
 .../impl/GenericsObjectTypeDeterminer.java      |  38 ----
 .../impl/InstantiatingNullHandler.java          |   5 +-
 .../ExceptionMappingInterceptor.java            |   8 -
 .../ognl/accessor/XWorkMethodAccessor.java      |  10 --
 .../xwork2/spring/SpringObjectFactory.java      |  10 --
 .../opensymphony/xwork2/util/ArrayUtils.java    |  56 ------
 .../com/opensymphony/xwork2/util/DomHelper.java |   7 +-
 .../com/opensymphony/xwork2/util/URLUtil.java   |  64 -------
 .../validator/validators/URLValidator.java      |   7 +-
 .../org/apache/struts2/StrutsConstants.java     |   6 +-
 .../org/apache/struts2/components/Include.java  |   9 -
 .../org/apache/struts2/components/Token.java    |   8 -
 .../config/DefaultBeanSelectionProvider.java    |   3 -
 .../apache/struts2/dispatcher/Dispatcher.java   |  59 -------
 .../dispatcher/mapper/DefaultActionMapper.java  |  11 --
 .../dispatcher/ng/ExecuteOperations.java        |   5 -
 .../dispatcher/ng/PrepareOperations.java        |   5 -
 .../struts2/interceptor/PrincipalProxy.java     |   8 -
 .../interceptor/ServletPrincipalProxy.java      |  10 --
 .../org/apache/struts2/util/StrutsUtil.java     |  13 +-
 .../apache/struts2/views/DefaultTagLibrary.java |   2 +-
 .../org/apache/struts2/views/TagLibrary.java    |  57 ------
 .../views/freemarker/FreemarkerManager.java     |  15 --
 .../struts2/views/jsp/ui/TextFieldTag.java      |   7 -
 .../struts2/views/velocity/VelocityManager.java |  16 --
 .../apache/struts2/views/xslt/XSLTResult.java   |  35 ----
 .../opensymphony/xwork2/ActionSupportTest.java  |   8 -
 .../opensymphony/xwork2/XWorkExceptionTest.java |   1 -
 .../config/impl/ActionConfigMatcherTest.java    |   5 +-
 ...nProviderInterceptorParamOverridingTest.java |   3 +-
 ...iderInterceptorStackParamOverridingTest.java |  13 +-
 ...XmlConfigurationProviderResultTypesTest.java |   4 +-
 .../ScopedModelDrivenInterceptorTest.java       |   4 +-
 .../xwork2/util/DefaultFileManagerTest.java     | 121 ++++++++++++-
 .../opensymphony/xwork2/util/URLUtilTest.java   | 177 -------------------
 .../opensymphony/xwork2/util/UrlUtilTest2.java  |   2 +-
 .../dispatcher/ActionContextCleanUpTest.java    |   4 +-
 .../struts2/dispatcher/DispatcherTest.java      |   3 +-
 .../mapper/DefaultActionMapperTest.java         |  16 +-
 .../ServletConfigInterceptorTest.java           |   1 -
 .../struts2/views/jsp/AbstractUITagTest.java    |  22 ---
 .../struts2/views/xslt/XSLTResultTest.java      |  24 +--
 .../xwork2/spring/autowireContext.xml           |   2 +-
 .../interceptor/PortletPrincipalProxy.java      |  11 --
 .../apache/struts2/TestNGStrutsTestCase.java    |  31 ----
 57 files changed, 176 insertions(+), 1098 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 05ecb16..e3644db 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -102,7 +102,7 @@
                         <exclude>**/TestInterceptor.java</exclude>
                         <exclude>**/AnnotatedTestBean.java</exclude>
                         <exclude>**/ContainerImplTest.java</exclude>
-                        <exclude>**/URLUtilTest.java</exclude>
+                        <exclude>**/DefaultFileManagerTest.java</exclude>
                     </excludes>
                 </configuration>
             </plugin>

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java b/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java
index 62daf15..6d56b25 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java
@@ -55,22 +55,6 @@ public class ActionSupport implements Action, Validateable, ValidationAware, Tex
         return validationAware.getActionMessages();
     }
 
-    /**
-     * @deprecated Use {@link #getActionErrors()}.
-     */
-    @Deprecated
-    public Collection<String> getErrorMessages() {
-        return getActionErrors();
-    }
-
-    /**
-     * @deprecated Use {@link #getFieldErrors()}.
-     */
-    @Deprecated
-    public Map<String, List<String>> getErrors() {
-        return getFieldErrors();
-    }
-
     public void setFieldErrors(Map<String, List<String>> errorMap) {
         validationAware.setFieldErrors(errorMap);
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/MockActionInvocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/MockActionInvocation.java b/core/src/main/java/com/opensymphony/xwork2/MockActionInvocation.java
deleted file mode 100644
index 3eea89b..0000000
--- a/core/src/main/java/com/opensymphony/xwork2/MockActionInvocation.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright 2002-2006,2009 The Apache Software Foundation.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.opensymphony.xwork2;
-
-/**
- * Mock for an {@link ActionInvocation}.
- *
- * @author plightbo
- * @deprecated Please use @see com.opensymphony.xwork2.mock.MockActionInvocation instead
- */
-@Deprecated public class MockActionInvocation extends com.opensymphony.xwork2.mock.MockActionInvocation {
-}

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java b/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java
index f1a6c7f..5b60a32 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java
@@ -98,13 +98,6 @@ public class ObjectFactory implements Serializable {
     }
 
     /**
-     * @deprecated Since 2.1
-     */
-    @Deprecated public static ObjectFactory getObjectFactory() {
-        return ActionContext.getContext().getContainer().getInstance(ObjectFactory.class);
-    }
-
-    /**
      * Allows for ObjectFactory implementations that support
      * Actions without no-arg constructors.
      *

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/XWorkException.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/XWorkException.java b/core/src/main/java/com/opensymphony/xwork2/XWorkException.java
index 8445a1c..ec3ad3e 100644
--- a/core/src/main/java/com/opensymphony/xwork2/XWorkException.java
+++ b/core/src/main/java/com/opensymphony/xwork2/XWorkException.java
@@ -105,18 +105,6 @@ public class XWorkException extends RuntimeException implements Locatable {
         }
     }
 
-
-    /**
-     * Gets the underlying cause
-     * 
-     * @return the underlying cause, <tt>null</tt> if no cause
-     * @deprecated Use {@link #getCause()} 
-     */
-    @Deprecated public Throwable getThrowable() {
-        return getCause();
-    }
-
-
     /**
      * Gets the location of the error, if available
      *
@@ -151,4 +139,4 @@ public class XWorkException extends RuntimeException implements Locatable {
             return msg;
         }
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/config/Configuration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/Configuration.java b/core/src/main/java/com/opensymphony/xwork2/config/Configuration.java
index be1359d..ab6b2ab 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/Configuration.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/Configuration.java
@@ -64,13 +64,6 @@ public interface Configuration extends Serializable {
     void destroy();
 
     /**
-     * @deprecated Since 2.1
-     * @param providers
-     * @throws ConfigurationException
-     */
-    @Deprecated void reload(List<ConfigurationProvider> providers) throws ConfigurationException;
-    
-    /**
      * @since 2.1
      * @param containerProviders
      * @throws ConfigurationException

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/config/entities/ResultTypeConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/entities/ResultTypeConfig.java b/core/src/main/java/com/opensymphony/xwork2/config/entities/ResultTypeConfig.java
index 96ff4ff..dcf69e5 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/entities/ResultTypeConfig.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/entities/ResultTypeConfig.java
@@ -62,13 +62,6 @@ public class ResultTypeConfig extends Located implements Serializable {
         return this.defaultResultParam;
     }
 
-    /**
-     * @deprecated Since 2.1, use {@link #getClassName()} instead
-     */
-    @Deprecated public String getClazz() {
-        return className;
-    }
-
     public String getClassName() {
         return className;
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java b/core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java
index e282c1a..2d0a3c5 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java
@@ -42,41 +42,6 @@ public class ActionConfigMatcher extends AbstractMatcher<ActionConfig> implement
      * <p> Finds and precompiles the wildcard patterns from the ActionConfig
      * "path" attributes. ActionConfig's will be evaluated in the order they
      * exist in the config file. Only paths that actually contain a
-     * wildcard will be compiled. Patterns will matched strictly.</p>
-     *
-     * @param configs An array of ActionConfig's to process
-     * @deprecated Since 2.1, use {@link #ActionConfigMatcher(PatternMatcher, Map, boolean)} instead
-     */
-    @Deprecated public ActionConfigMatcher(Map<String, ActionConfig> configs) {
-        this(configs, false);
-    }
-    
-    /**
-     * <p> Finds and precompiles the wildcard patterns from the ActionConfig
-     * "path" attributes. ActionConfig's will be evaluated in the order they
-     * exist in the config file. Only paths that actually contain a
-     * wildcard will be compiled. </p>
-     * 
-     * <p>Patterns can optionally be matched "loosely".  When
-     * the end of the pattern matches \*[^*]\*$ (wildcard, no wildcard,
-     * wildcard), if the pattern fails, it is also matched as if the 
-     * last two characters didn't exist.  The goal is to support the 
-     * legacy "*!*" syntax, where the "!*" is optional.</p> 
-     *
-     * @param configs An array of ActionConfig's to process
-     * @param looseMatch To loosely match wildcards or not
-     * @deprecated Since 2.1, use {@link #ActionConfigMatcher(PatternMatcher, Map, boolean)} instead
-     */
-    @Deprecated public ActionConfigMatcher(Map<String, ActionConfig> configs,
-            boolean looseMatch) {
-
-        this(new WildcardHelper(), configs, looseMatch);
-    }
-    
-    /**
-     * <p> Finds and precompiles the wildcard patterns from the ActionConfig
-     * "path" attributes. ActionConfig's will be evaluated in the order they
-     * exist in the config file. Only paths that actually contain a
      * wildcard will be compiled. </p>
      * 
      * <p>Patterns can optionally be matched "loosely".  When

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java b/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
index 7d5e5cc..2bc98ab 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
@@ -145,21 +145,6 @@ public class DefaultConfiguration implements Configuration {
      *
      * @throws ConfigurationException
      */
-    public synchronized void reload(List<ConfigurationProvider> providers) throws ConfigurationException {
-
-        // Silly copy necessary due to lack of ability to cast generic lists
-        List<ContainerProvider> contProviders = new ArrayList<>();
-        contProviders.addAll(providers);
-
-        reloadContainer(contProviders);
-    }
-
-    /**
-     * Calls the ConfigurationProviderFactory.getConfig() to tell it to reload the configuration and then calls
-     * buildRuntimeConfiguration().
-     *
-     * @throws ConfigurationException
-     */
     public synchronized List<PackageProvider> reloadContainer(List<ContainerProvider> providers) throws ConfigurationException {
         packageContexts.clear();
         loadedFileNames.clear();

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java b/core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java
index d5359fe..3148f05 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java
@@ -86,10 +86,6 @@ public class MockConfiguration implements Configuration {
         throw new UnsupportedOperationException();
     }
 
-    public void reload(List<ConfigurationProvider> providers) throws ConfigurationException {
-        throw new UnsupportedOperationException();
-    }
-
     public PackageConfig removePackageConfig(String name) {
         return packages.remove(name);
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverter.java b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverter.java
deleted file mode 100644
index 988e463..0000000
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverter.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2002-2006,2009 The Apache Software Foundation.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.opensymphony.xwork2.conversion.impl;
-
-/**
- * <!-- START SNIPPET: javadoc -->
- * <p/>
- * Type conversion is great for situations where you need to turn a String in to a more complex object. Because the web
- * is type-agnostic (everything is a string in HTTP), XWork's type conversion features are very useful. For instance,
- * if you were prompting a user to enter in coordinates in the form of a string (such as "3, 22"), you could have
- * XWork do the conversion both from String to Point and from Point to String.
- * <p/>
- * <p/> Using this "point" example, if your action (or another compound object in which you are setting properties on)
- * has a corresponding ClassName-conversion.properties file, XWork will use the configured type converters for
- * conversion to and from strings. So turning "3, 22" in to new Point(3, 22) is done by merely adding the following
- * entry to <b>ClassName-conversion.properties</b> (Note that the PointConverter should impl the TypeConverter
- * interface):
- * <p/>
- * <p/><b>point = com.acme.PointConverter</b>
- * <p/>
- * <p/> Your type converter should be sure to check what class type it is being requested to convert. Because it is used
- * for both to and from strings, you will need to split the conversion method in to two parts: one that turns Strings in
- * to Points, and one that turns Points in to Strings.
- * <p/>
- * <p/> After this is done, you can now reference your point (using &lt;ww:property value="post"/&gt; in JSP or ${point}
- * in FreeMarker) and it will be printed as "3, 22" again. As such, if you submit this back to an action, it will be
- * converted back to a Point once again.
- * <p/>
- * <p/> In some situations you may wish to apply a type converter globally. This can be done by editing the file
- * <b>xwork-conversion.properties</b> in the root of your class path (typically WEB-INF/classes) and providing a
- * property in the form of the class name of the object you wish to convert on the left hand side and the class name of
- * the type converter on the right hand side. For example, providing a type converter for all Point objects would mean
- * adding the following entry:
- * <p/>
- * <p/><b>com.acme.Point = com.acme.PointConverter</b>
- * <p/>
- * <!-- END SNIPPET: javadoc -->
- * <p/>
- * <p/>
- * <p/>
- * <!-- START SNIPPET: i18n-note -->
- * <p/>
- * Type conversion should not be used as a substitute for i18n. It is not recommended to use this feature to print out
- * properly formatted dates. Rather, you should use the i18n features of XWork (and consult the JavaDocs for JDK's
- * MessageFormat object) to see how a properly formatted date should be displayed.
- * <p/>
- * <!-- END SNIPPET: i18n-note -->
- * <p/>
- * <p/>
- * <p/>
- * <!-- START SNIPPET: error-reporting -->
- * <p/>
- * Any error that occurs during type conversion may or may not wish to be reported. For example, reporting that the
- * input "abc" could not be converted to a number might be important. On the other hand, reporting that an empty string,
- * "", cannot be converted to a number might not be important - especially in a web environment where it is hard to
- * distinguish between a user not entering a value vs. entering a blank value.
- * <p/>
- * <p/> By default, all conversion errors are reported using the generic i18n key <b>xwork.default.invalid.fieldvalue</b>,
- * which you can override (the default text is <i>Invalid field value for field "xxx"</i>, where xxx is the field name)
- * in your global i18n resource bundle.
- * <p/>
- * <p/>However, sometimes you may wish to override this message on a per-field basis. You can do this by adding an i18n
- * key associated with just your action (Action.properties) using the pattern <b>invalid.fieldvalue.xxx</b>, where xxx
- * is the field name.
- * <p/>
- * <p/>It is important to know that none of these errors are actually reported directly. Rather, they are added to a map
- * called <i>conversionErrors</i> in the ActionContext. There are several ways this map can then be accessed and the
- * errors can be reported accordingly.
- * <p/>
- * <!-- END SNIPPET: error-reporting -->
- *
- * @author <a href="mailto:plightbo@gmail.com">Pat Lightbody</a>
- * @author Rainer Hermanns
- * @see com.opensymphony.xwork2.conversion.impl.XWorkConverter
- * @deprecated Since XWork 2.0.4, the implementation of XWorkConverter handles the processing of annotations.
- */
-@Deprecated public class AnnotationXWorkConverter extends XWorkConverter {
-}

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/conversion/impl/EnumTypeConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/EnumTypeConverter.java b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/EnumTypeConverter.java
deleted file mode 100644
index 949eede..0000000
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/EnumTypeConverter.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2002-2006,2009 The Apache Software Foundation.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.opensymphony.xwork2.conversion.impl;
-
-import java.util.Map;
-
-
-/**
- * <code>EnumTypeConverter</code>
- *
- * <!-- START SNIPPET: description -->
- * This class converts java 5 enums to String and from String[] to enum.
- * <p/>
- * One of Java 5's improvements is providing enumeration facility.
- * Up to now, there existed no enumerations. The only way to simulate was the so-called int Enum pattern:
- * {code}
- * public static final int SEASON_WINTER = 0;
- * public static final int SEASON_SPRING = 1;
- * public static final int SEASON_SUMMER = 2;
- * public static final int SEASON_FALL   = 3;
- * {code}
- * <p/>
- * Java 5.0 now provides the following construct:
- * {code}
- * public static enum Season { WINTER, SPRING, SUMMER, FALL };
- * {code}
- * <!-- END SNIPPET: description -->
- *
- * <!-- START SNIPPET: example -->
- * h3. Implementing Java 5 Enumeration Type Conversion
- * <p/>
- * 1. myAction-conversion.properties*
- * <p/>
- * Place a myAction-conversion.properties-file in the path of your Action.
- * Add the following entry to the properties-file:
- * {code}
- * nameOfYourField=fullyClassifiedNameOfYourConverter
- * {code}
- * &nbsp;
- * <p/>
- * 2. myAction.java*
- * Your action contains the _enumeration_:
- * {code}
- * public enum Criticality {DEBUG, INFO, WARNING, ERROR, FATAL}
- * {code}
- * &nbsp;
- * * Your action contains the _private field_:
- * {code}
- * private myEnum myFieldForEnum;
- * {code}
- * &nbsp;
- * Your action contains _getters and setters_ for your field:
- * {code}
- * public myEnum getCriticality() {
- *         return myFieldForEnum;
- *     }
- *
- *     public void setCriticality(myEnum myFieldForEnum) {
- *         this.myFieldForEnum= myFieldForEnum;
- *     }
- * {code}
- * <p/>
- * 3. JSP*
- * <p/>
- * &nbsp;&nbsp;&nbsp; In your jsp you can access an enumeration value just normal by using the known <ww:property>-Tag:
- * {code}
- * <ww:property value="myField"/>
- * {code}
- * <!-- END SNIPPET: example -->
- *
- * @author Tamara Cattivelli
- * @author <a href="mailto:hermanns@aixcept.de">Rainer Hermanns</a>
- * @version $Id$
- * @deprecated Since Struts 2.1.0 as enum support is now built into XWork
- */
-@Deprecated public class EnumTypeConverter extends DefaultTypeConverter {
-
-    /**
-     * Converts the given object to a given type. How this is to be done is implemented in toClass. The OGNL context, o
-     * and toClass are given. This method should be able to handle conversion in general without any context or object
-     * specified.
-     *
-     * @param context - OGNL context under which the conversion is being done
-     * @param o       - the object to be converted
-     * @param toClass - the class that contains the code to convert to enumeration
-     * @return Converted value of type declared in toClass or TypeConverter.NoConversionPossible to indicate that the
-     *         conversion was not possible.
-     */
-    @Override
-    public Object convertValue(Map<String, Object> context, Object o, Class toClass) {
-        if (o instanceof String[]) {
-            return convertFromString(((String[]) o)[0], toClass);
-        } else if (o instanceof String) {
-            return convertFromString((String) o, toClass);
-        }
-
-        return super.convertValue(context, o, toClass);
-    }
-
-    /**
-     * Converts one or more String values to the specified class.
-     * @param value - the String values to be converted, such as those submitted from an HTML form
-     * @param toClass - the class to convert to
-     * @return the converted object
-     */
-    public java.lang.Enum convertFromString(String value, Class toClass) {
-        return Enum.valueOf(toClass, value);
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/conversion/impl/GenericsObjectTypeDeterminer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/GenericsObjectTypeDeterminer.java b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/GenericsObjectTypeDeterminer.java
deleted file mode 100644
index 69f1ced..0000000
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/GenericsObjectTypeDeterminer.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2002-2006,2009 The Apache Software Foundation.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.opensymphony.xwork2.conversion.impl;
-
-import com.opensymphony.xwork2.util.reflection.ReflectionProvider;
-
-
-/**
- * GenericsObjectTypeDeterminer
- *
- * @author Patrick Lightbody
- * @author Rainer Hermanns
- * @author <a href='mailto:the_mindstorm[at]evolva[dot]ro'>Alexandru Popescu</a>
- * 
- * @deprecated Use DefaultObjectTypeDeterminer instead. Since XWork 2.0.4 the DefaultObjectTypeDeterminer handles the
- *             annotation processing.
- */
-@Deprecated public class GenericsObjectTypeDeterminer extends DefaultObjectTypeDeterminer {
-
-    public GenericsObjectTypeDeterminer(XWorkConverter conv,
-            XWorkBasicConverter basicConv, ReflectionProvider prov) {
-        super(conv, prov);
-    }
-}

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/conversion/impl/InstantiatingNullHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/InstantiatingNullHandler.java b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/InstantiatingNullHandler.java
index 386d070..4f749ef 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/InstantiatingNullHandler.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/InstantiatingNullHandler.java
@@ -68,11 +68,8 @@ import java.util.*;
  */
 public class InstantiatingNullHandler implements NullHandler {
 
-    /**
-     * @deprecated Use {@link ReflectionContextState#CREATE_NULL_OBJECTS} instead
-     */
-    @Deprecated public static final String CREATE_NULL_OBJECTS = ReflectionContextState.CREATE_NULL_OBJECTS;
     private static final Logger LOG = LogManager.getLogger(InstantiatingNullHandler.class);
+
     private ReflectionProvider reflectionProvider;
     private ObjectFactory objectFactory;
     private ObjectTypeDeterminer objectTypeDeterminer;

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java
index d1a5319..f6efb2f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java
@@ -254,14 +254,6 @@ public class ExceptionMappingInterceptor extends AbstractInterceptor {
     }
 
     /**
-     * @deprecated since 2.3.15 please use #findMappingFromExceptions directly instead
-     */
-    protected String findResultFromExceptions(List<ExceptionMappingConfig> exceptionMappings, Throwable t) {
-    	ExceptionMappingConfig result = findMappingFromExceptions(exceptionMappings, t);
-        return result==null?null:result.getResult();
-    }
-
-    /**
      * Try to find appropriate {@link ExceptionMappingConfig} based on provided Throwable
      *
      * @param exceptionMappings list of defined exception mappings

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/ognl/accessor/XWorkMethodAccessor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/ognl/accessor/XWorkMethodAccessor.java b/core/src/main/java/com/opensymphony/xwork2/ognl/accessor/XWorkMethodAccessor.java
index 7a05bc5..74a3471 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ognl/accessor/XWorkMethodAccessor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ognl/accessor/XWorkMethodAccessor.java
@@ -37,16 +37,6 @@ public class XWorkMethodAccessor extends ObjectMethodAccessor {
 	
 	private static final Logger LOG = LogManager.getLogger(XWorkMethodAccessor.class);
 
-    /**
-     * @deprecated Use {@link ReflectionContextState#DENY_METHOD_EXECUTION} instead
-     */
-    @Deprecated public static final String DENY_METHOD_EXECUTION = ReflectionContextState.DENY_METHOD_EXECUTION;
-    /**
-     * @deprecated Use {@link ReflectionContextState#DENY_INDEXED_ACCESS_EXECUTION} instead
-     */
-    @Deprecated public static final String DENY_INDEXED_ACCESS_EXECUTION = ReflectionContextState.DENY_INDEXED_ACCESS_EXECUTION;
-
-
     @Override
     public Object callMethod(Map context, Object object, String string, Object[] objects) throws MethodFailedException {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java b/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java
index f1137d9..6475957 100644
--- a/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java
@@ -247,16 +247,6 @@ public class SpringObjectFactory extends ObjectFactory implements ApplicationCon
     }
 
     /**
-     * This method sets the ObjectFactory used by XWork to this object. It's best used as the "init-method" of a Spring
-     * bean definition in order to hook Spring and XWork together properly (as an alternative to the
-     * org.apache.struts2.spring.lifecycle.SpringObjectFactoryListener)
-     * @deprecated Since 2.1 as it isn't necessary
-     */
-    @Deprecated public void initObjectFactory() {
-        // not necessary anymore
-    }
-
-    /**
      * Allows for ObjectFactory implementations that support
      * Actions without no-arg constructors.
      *

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/util/ArrayUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/ArrayUtils.java b/core/src/main/java/com/opensymphony/xwork2/util/ArrayUtils.java
deleted file mode 100644
index 99f4ab6..0000000
--- a/core/src/main/java/com/opensymphony/xwork2/util/ArrayUtils.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2002-2006,2009 The Apache Software Foundation.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.opensymphony.xwork2.util;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * @author Dan Oxlade, dan d0t oxlade at gmail d0t c0m
- * @deprecated Can be replaced eith ArrayUtils from lang3 package --> org.apache.commons.lang3.ArrayUtils
- */
-@Deprecated
-public class ArrayUtils {
-
-    public static boolean isEmpty(Object[] array) {
-        return null == array || array.length == 0;
-    }
-
-    public static boolean isNotEmpty(Object[] array) {
-        return !isEmpty(array);
-    }
-
-    /**
-     * Return a collection from the comma delimited String.
-     *
-     * @param commaDelim the comma delimited String.
-     * @return A collection from the comma delimited String. Returns <tt>null</tt> if the string is empty.
-     */
-    public static Collection<String> asCollection(String commaDelim) {
-        if (commaDelim == null || commaDelim.trim().length() == 0) {
-            return null;
-        }
-        return TextParseUtil.commaDelimitedStringToSet(commaDelim);
-    }
-
-    public static <T> Set<T> asSet(T... element) {
-        HashSet<T> elements = new HashSet<T>(element.length);
-        Collections.addAll(elements, element);
-        return elements;
-    }
-}

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/util/DomHelper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/DomHelper.java b/core/src/main/java/com/opensymphony/xwork2/util/DomHelper.java
index 47d86e1..1b1ea2d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/DomHelper.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/DomHelper.java
@@ -15,6 +15,7 @@
  */
 package com.opensymphony.xwork2.util;
 
+import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.XWorkException;
 import com.opensymphony.xwork2.util.location.Location;
@@ -78,7 +79,8 @@ public class DomHelper {
         String parserProp = System.getProperty("xwork.saxParserFactory");
         if (parserProp != null) {
             try {
-                Class clazz = ObjectFactory.getObjectFactory().getClassInstance(parserProp);
+                ObjectFactory objectFactory = ActionContext.getContext().getContainer().getInstance(ObjectFactory.class);
+                Class clazz = objectFactory.getClassInstance(parserProp);
                 factory = (SAXParserFactory) clazz.newInstance();
             } catch (Exception e) {
                 LOG.error("Unable to load saxParserFactory set by system property 'xwork.saxParserFactory': {}", parserProp, e);
@@ -140,7 +142,8 @@ public class DomHelper {
             String parserProp = System.getProperty("xwork.saxTransformerFactory");
             if (parserProp != null) {
                 try {
-                    Class clazz = ObjectFactory.getObjectFactory().getClassInstance(parserProp);
+                    ObjectFactory objectFactory = ActionContext.getContext().getContainer().getInstance(ObjectFactory.class);
+                    Class clazz = objectFactory.getClassInstance(parserProp);
                     FACTORY = (SAXTransformerFactory) clazz.newInstance();
                 } catch (Exception e) {
                     LOG.error("Unable to load SAXTransformerFactory set by system property 'xwork.saxTransformerFactory': {}", parserProp, e);

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/util/URLUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/URLUtil.java b/core/src/main/java/com/opensymphony/xwork2/util/URLUtil.java
deleted file mode 100644
index 006fd5e..0000000
--- a/core/src/main/java/com/opensymphony/xwork2/util/URLUtil.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright 2002-2003,2009 The Apache Software Foundation.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.opensymphony.xwork2.util;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-
-/**
- * Helper class to extract file paths from different urls
- */
-public class URLUtil {
-
-    private static final Logger LOG = LogManager.getLogger(URLUtil.class);
-
-    /**
-     * Verify That the given String is in valid URL format.
-     * @param url The url string to verify.
-     * @return a boolean indicating whether the URL seems to be incorrect.
-     */
-    @Deprecated
-    public static boolean verifyUrl(String url) {
-        LOG.debug("Checking if url [{}] is valid", url);
-        if (url == null) {
-            return false;
-        }
-
-        if (url.startsWith("https://")) {
-            // URL doesn't understand the https protocol, hack it
-            url = "http://" + url.substring(8);
-        }
-
-        try {
-            URL u = new URL(url);
-            URI uri = u.toURI(); // perform a additional url syntax check
-            if (uri.getHost() == null) {
-                LOG.debug("Url [{}] does not contains a valid host: {}", url, uri);
-                return false;
-            }
-            return true;
-        } catch (MalformedURLException | URISyntaxException e) {
-            LOG.debug("Url [{}] is invalid: {}", url, e.getMessage(), e);
-            return false;
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java
index 767416d..f49d914 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/URLValidator.java
@@ -16,9 +16,10 @@
 package com.opensymphony.xwork2.validator.validators;
 
 import com.opensymphony.xwork2.validator.ValidationException;
-import com.opensymphony.xwork2.util.URLUtil;
 import org.apache.commons.lang3.StringUtils;
 
+import java.util.regex.Pattern;
+
 /**
  * URLValidator checks that a given field is a String and a valid URL
  *
@@ -54,9 +55,7 @@ public class URLValidator extends FieldValidatorSupport {
             return;
         }
 
-        // FIXME deprecated! the same regex below should be used instead
-        // replace logic with next major release
-        if (!(value.getClass().equals(String.class)) || !URLUtil.verifyUrl((String) value)) {
+        if (!(value.getClass().equals(String.class)) || !Pattern.compile(getUrlRegex()).matcher((String) value).matches()) {
             addFieldError(fieldName, object);
         }
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/StrutsConstants.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/StrutsConstants.java b/core/src/main/java/org/apache/struts2/StrutsConstants.java
index 4671eb1..bee144e 100644
--- a/core/src/main/java/org/apache/struts2/StrutsConstants.java
+++ b/core/src/main/java/org/apache/struts2/StrutsConstants.java
@@ -93,11 +93,7 @@ public final class StrutsConstants {
 
     /** The org.apache.struts2.views.freemarker.FreemarkerManager implementation class */
     public static final String STRUTS_FREEMARKER_MANAGER_CLASSNAME = "struts.freemarker.manager.classname";
-    
-    @Deprecated
-    /** Cache Freemarker templates, this cache is managed by struts2,instead of native freemarker cache,set STRUTS_FREEMARKER_MRU_MAX_STRONG_SIZE >0&&STRUTS_FREEMARKER_TEMPLATES_CACHE_UPDATE_DELAY>0*/
-    public static final String STRUTS_FREEMARKER_TEMPLATES_CACHE = "struts.freemarker.templatesCache";
-    
+
     /** Update freemarker templates cache in seconds*/
     public static final String STRUTS_FREEMARKER_TEMPLATES_CACHE_UPDATE_DELAY = "struts.freemarker.templatesCache.updateDelay";
     

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/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 bcd97a4..298829c 100644
--- a/core/src/main/java/org/apache/struts2/components/Include.java
+++ b/core/src/main/java/org/apache/struts2/components/Include.java
@@ -228,15 +228,6 @@ public class Include extends Component {
     }
 
     /**
-     * @deprecated use {@link #include(String, java.io.Writer, javax.servlet.ServletRequest,
-     *             javax.servlet.http.HttpServletResponse, String)} instead with correct encoding specified
-     */
-    public static void include( String relativePath, Writer writer, ServletRequest request,
-                                HttpServletResponse response ) throws ServletException, IOException {
-        include(relativePath, writer, request, response, null);
-    }
-
-    /**
      * Include a resource in a response.
      *
      * @param relativePath the relative path of the resource to include; resolves to {@link #getContextRelativePath(javax.servlet.ServletRequest,

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/components/Token.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Token.java b/core/src/main/java/org/apache/struts2/components/Token.java
index a52d5ec..dc9fa7b 100644
--- a/core/src/main/java/org/apache/struts2/components/Token.java
+++ b/core/src/main/java/org/apache/struts2/components/Token.java
@@ -98,14 +98,6 @@ public class Token extends UIBean {
         addParameter("tokenNameField", TokenHelper.TOKEN_NAME_FIELD);
     }
 
-    /**
-     * This will be removed in a future version of Struts.
-     * @deprecated Templates should use $parameters from now on, not $tag.
-     */
-    public String getTokenNameField() {
-        return TokenHelper.TOKEN_NAME_FIELD;
-    }
-
     private String buildToken(String name) {
         Map context = stack.getContext();
         Object myToken = context.get(name);

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/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 15cb16d..52b76ab 100644
--- a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
+++ b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
@@ -445,9 +445,6 @@ public class DefaultBeanSelectionProvider extends AbstractBeanSelectionProvider
             if (props.getProperty(StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD) == null) {
                 props.setProperty(StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, "true");
             }
-            if (props.getProperty(StrutsConstants.STRUTS_FREEMARKER_TEMPLATES_CACHE) == null) {
-                props.setProperty(StrutsConstants.STRUTS_FREEMARKER_TEMPLATES_CACHE, "false");
-            }
             if (props.getProperty(StrutsConstants.STRUTS_FREEMARKER_TEMPLATES_CACHE_UPDATE_DELAY) == null) {
                 props.setProperty(StrutsConstants.STRUTS_FREEMARKER_TEMPLATES_CACHE_UPDATE_DELAY, "0");
             }

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/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 f8d9d9e..af5817c 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -490,16 +490,6 @@ public class Dispatcher {
     }
 
     /**
-     * @deprecated use version without ServletContext param
-     */
-    @Deprecated
-    public void serviceAction(HttpServletRequest request, HttpServletResponse response, ServletContext context,
-                              ActionMapping mapping) throws ServletException {
-
-        serviceAction(request, response, mapping);
-    }
-
-    /**
      * Load Action class for mapping and invoke the appropriate Action method, or go directly to the Result.
      * <p/>
      * This method first creates the action context from the given parameters,
@@ -593,16 +583,6 @@ public class Dispatcher {
     }
 
     /**
-     * @deprecated use version without servletContext param
-     */
-    @Deprecated
-    public Map<String,Object> createContextMap(HttpServletRequest request, HttpServletResponse response,
-            ActionMapping mapping, ServletContext context) {
-
-        return createContextMap(request, response, mapping);
-    }
-
-    /**
      * Create a context map containing all the wrapped request objects
      *
      * @param request The servlet request
@@ -636,21 +616,6 @@ public class Dispatcher {
     }
 
     /**
-     * @deprecated use version without ServletContext param
-     */
-    @Deprecated
-    public HashMap<String,Object> createContextMap(Map requestMap,
-                                    Map parameterMap,
-                                    Map sessionMap,
-                                    Map applicationMap,
-                                    HttpServletRequest request,
-                                    HttpServletResponse response,
-                                    ServletContext servletContext) {
-
-        return createContextMap(requestMap, parameterMap, sessionMap, applicationMap, request, response);
-    }
-
-    /**
      * Merge all application and servlet attributes into a single <tt>HashMap</tt> to represent the entire
      * <tt>Action</tt> context.
      *
@@ -788,14 +753,6 @@ public class Dispatcher {
     }
 
     /**
-     * @deprecated use version without ServletContext param
-     */
-    @Deprecated
-    public HttpServletRequest wrapRequest(HttpServletRequest request, ServletContext servletContext) throws IOException {
-        return wrapRequest(request);
-    }
-
-    /**
      * Wrap and return the given request or return the original request object.
      * </p>
      * This method transparently handles multipart data as a wrapped class around the given request.
@@ -871,22 +828,6 @@ public class Dispatcher {
      * @param response the HttpServletResponse object.
      * @param code     the HttpServletResponse error code (see {@link javax.servlet.http.HttpServletResponse} for possible error codes).
      * @param e        the Exception that is reported.
-     * @param ctx      the ServletContext object.
-     *
-     * @deprecated remove in version 3.0 - use version without ServletContext parameter
-     */
-    @Deprecated
-    public void sendError(HttpServletRequest request, HttpServletResponse response, ServletContext ctx, int code, Exception e) {
-        sendError(request, response, code, e);
-    }
-
-    /**
-     * Send an HTTP error response code.
-     *
-     * @param request  the HttpServletRequest object.
-     * @param response the HttpServletResponse object.
-     * @param code     the HttpServletResponse error code (see {@link javax.servlet.http.HttpServletResponse} for possible error codes).
-     * @param e        the Exception that is reported.
      *
      * @since 2.3.17
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
index 5115b68..d5b9e4e 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
@@ -392,17 +392,6 @@ public class DefaultActionMapper implements ActionMapper {
     }
 
     /**
-     * Drops the extension from the action name
-     *
-     * @param name The action name
-     * @return The action name without its extension
-     * @deprecated Since 2.1, use {@link #dropExtension(java.lang.String, org.apache.struts2.dispatcher.mapper.ActionMapping)} instead
-     */
-    protected String dropExtension(String name) {
-        return dropExtension(name, new ActionMapping());
-    }
-
-    /**
      * Drops the extension from the action name, storing it in the mapping for later use
      *
      * @param name    The action name

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/dispatcher/ng/ExecuteOperations.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ng/ExecuteOperations.java b/core/src/main/java/org/apache/struts2/dispatcher/ng/ExecuteOperations.java
index 0c94249..1db7cef 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ng/ExecuteOperations.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ng/ExecuteOperations.java
@@ -38,11 +38,6 @@ public class ExecuteOperations {
 
     private Dispatcher dispatcher;
 
-    @Deprecated
-    public ExecuteOperations(ServletContext servletContext, Dispatcher dispatcher) {
-        this.dispatcher = dispatcher;
-    }
-
     public ExecuteOperations(Dispatcher dispatcher) {
         this.dispatcher = dispatcher;
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java b/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
index 6170a54..2861916 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
@@ -51,11 +51,6 @@ public class PrepareOperations {
     private static final String STRUTS_ACTION_MAPPING_KEY = "struts.actionMapping";
     public static final String CLEANUP_RECURSION_COUNTER = "__cleanup_recursion_counter";
 
-    @Deprecated
-    public PrepareOperations(ServletContext servletContext, Dispatcher dispatcher) {
-        this.dispatcher = dispatcher;
-    }
-
     public PrepareOperations(Dispatcher dispatcher) {
         this.dispatcher = dispatcher;
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/interceptor/PrincipalProxy.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/interceptor/PrincipalProxy.java b/core/src/main/java/org/apache/struts2/interceptor/PrincipalProxy.java
index b4bcff0..f42fe7c 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/PrincipalProxy.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/PrincipalProxy.java
@@ -60,12 +60,4 @@ public interface PrincipalProxy {
      */
     boolean isRequestSecure();
 
-    /**
-     * Gets the request.
-     *
-     * @return The request
-     * @deprecated To obtain the HttpServletRequest in your action, use
-     *             {@link org.apache.struts2.servlet.ServletRequestAware}, since this method will be dropped in future.
-     */
-    HttpServletRequest getRequest();
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/servlet/interceptor/ServletPrincipalProxy.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/servlet/interceptor/ServletPrincipalProxy.java b/core/src/main/java/org/apache/struts2/servlet/interceptor/ServletPrincipalProxy.java
index e264c6b..953ef5e 100644
--- a/core/src/main/java/org/apache/struts2/servlet/interceptor/ServletPrincipalProxy.java
+++ b/core/src/main/java/org/apache/struts2/servlet/interceptor/ServletPrincipalProxy.java
@@ -78,14 +78,4 @@ public class ServletPrincipalProxy implements PrincipalProxy {
         return request.isSecure();
     }
 
-    /**
-     * Gets the request.
-     *
-     * @return The request
-     * @deprecated To obtain the HttpServletRequest in your action, use
-     *             {@link org.apache.struts2.servlet.ServletRequestAware}, since this method will be dropped in future.
-     */
-    public HttpServletRequest getRequest() {
-        return request;
-    }
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/util/StrutsUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/util/StrutsUtil.java b/core/src/main/java/org/apache/struts2/util/StrutsUtil.java
index fad2c36..14265bb 100644
--- a/core/src/main/java/org/apache/struts2/util/StrutsUtil.java
+++ b/core/src/main/java/org/apache/struts2/util/StrutsUtil.java
@@ -91,23 +91,16 @@ public class StrutsUtil {
     }
 
     public String include(Object aName) throws Exception {
-        return include(aName, request, response);
-    }
-
-    /**
-     * @deprecated the request and response are stored in this util class, please use include(string)
-     */
-    public String include(Object aName, HttpServletRequest aRequest, HttpServletResponse aResponse) throws Exception {
         try {
-            RequestDispatcher dispatcher = aRequest.getRequestDispatcher(aName.toString());
+            RequestDispatcher dispatcher = request.getRequestDispatcher(aName.toString());
 
             if (dispatcher == null) {
                 throw new IllegalArgumentException("Cannot find included file " + aName);
             }
 
-            ResponseWrapper responseWrapper = new ResponseWrapper(aResponse);
+            ResponseWrapper responseWrapper = new ResponseWrapper(response);
 
-            dispatcher.include(aRequest, responseWrapper);
+            dispatcher.include(request, responseWrapper);
 
             return responseWrapper.getData();
         }

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java b/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java
index 4ed6bc3..2c48370 100644
--- a/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java
+++ b/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java
@@ -70,7 +70,7 @@ import com.opensymphony.xwork2.util.ValueStack;
 /**
  * The default Struts tag library
  */
-public class DefaultTagLibrary implements TagLibraryDirectiveProvider, TagLibraryModelProvider, TagLibrary {
+public class DefaultTagLibrary implements TagLibraryDirectiveProvider, TagLibraryModelProvider {
 
     public Object getModels(ValueStack stack, HttpServletRequest req,
                             HttpServletResponse res) {

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/views/TagLibrary.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/TagLibrary.java b/core/src/main/java/org/apache/struts2/views/TagLibrary.java
deleted file mode 100644
index b4c36d7..0000000
--- a/core/src/main/java/org/apache/struts2/views/TagLibrary.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.struts2.views;
-
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * Provides Velocity and Freemarker implementation classes for a tag library
- *
- * @deprecated use two other interfaces: {@link TagLibraryDirectiveProvider}, {@link TagLibraryModelProvider}
- */
-@Deprecated
-public interface TagLibrary {
-
-    /**
-     * Gets a Java object that contains getters for the tag library's Freemarker models.  
-     * Called once per Freemarker template processing.
-     *
-     * @param stack The current value stack
-     * @param req The HTTP request
-     * @param res The HTTP response
-     * @return The Java object containing the Freemarker model getter methods
-     */
-    public Object getFreemarkerModels(ValueStack stack, HttpServletRequest req, HttpServletResponse res);
-
-    /**
-     * Gets a list of Velocity directive classes for the tag library.  Called once on framework
-     * startup when initializing Velocity.
-     *
-     * @return A list of Velocity directive classes
-     */
-    public List<Class> getVelocityDirectiveClasses();
-}

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
index 375a726..1508cb7 100644
--- a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
@@ -39,7 +39,6 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.views.JspSupportServlet;
-import org.apache.struts2.views.TagLibrary;
 import org.apache.struts2.views.TagLibraryModelProvider;
 import org.apache.struts2.views.util.ContextUtil;
 
@@ -164,7 +163,6 @@ public class FreemarkerManager {
     protected int mruMaxStrongSize;
     protected String templateUpdateDelay;
     protected Map<String,TagLibraryModelProvider> tagLibraries;
-    protected Map<String, TagLibrary> oldTagLibraries;
 
     private FileManager fileManager;
     private FreemarkerThemeTemplateLoader themeTemplateLoader;
@@ -202,13 +200,6 @@ public class FreemarkerManager {
             map.put(prefix, container.getInstance(TagLibraryModelProvider.class, prefix));
         }
         this.tagLibraries = Collections.unmodifiableMap(map);
-
-        Map<String, TagLibrary> oldMap = new HashMap<>();
-        Set<String> oldPrefixes = container.getInstanceNames(TagLibrary.class);
-        for (String prefix : oldPrefixes) {
-            oldMap.put(prefix, container.getInstance(TagLibrary.class, prefix));
-        }
-        this.oldTagLibraries = Collections.unmodifiableMap(oldMap);
     }
 
     @Inject
@@ -504,12 +495,6 @@ public class FreemarkerManager {
             }
         }
 
-        if (oldTagLibraries != null) {
-            for (String prefix : oldTagLibraries.keySet()) {
-                model.put(prefix, oldTagLibraries.get(prefix).getFreemarkerModels(stack, request, response));
-            }
-        }
-
         //place the model in the request using the special parameter.  This can be retrieved for freemarker and velocity.
         request.setAttribute(ATTR_TEMPLATE_MODEL, model);
 

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/views/jsp/ui/TextFieldTag.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/TextFieldTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/TextFieldTag.java
index 03f56d6..0090461 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/TextFieldTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/TextFieldTag.java
@@ -54,13 +54,6 @@ public class TextFieldTag extends AbstractUITag {
         textField.setType(type);
     }
 
-    /**
-     * @deprecated please use {@link #setMaxlength} instead
-     */
-    public void setMaxLength(String maxlength) {
-        this.maxlength = maxlength;
-    }
-
     public void setMaxlength(String maxlength) {
         this.maxlength = maxlength;
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java b/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
index f60a10f..8f49856 100644
--- a/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
+++ b/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
@@ -32,7 +32,6 @@ import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.StrutsException;
 import org.apache.struts2.util.VelocityStrutsUtil;
-import org.apache.struts2.views.TagLibrary;
 import org.apache.struts2.views.TagLibraryDirectiveProvider;
 import org.apache.struts2.views.jsp.ui.OgnlTool;
 import org.apache.struts2.views.util.ContextUtil;
@@ -94,7 +93,6 @@ public class VelocityManager {
     private String customConfigFile;
 
     private List<TagLibraryDirectiveProvider> tagLibraries;
-    private List<TagLibrary> oldTagLibraries;
 
     @Inject
     public void setObjectFactory(ObjectFactory fac) {
@@ -109,13 +107,6 @@ public class VelocityManager {
             list.add(container.getInstance(TagLibraryDirectiveProvider.class, prefix));
         }
         this.tagLibraries = Collections.unmodifiableList(list);
-
-        List<TagLibrary> oldList = new ArrayList<>();
-        Set<String> oldPrefixes = container.getInstanceNames(TagLibrary.class);
-        for (String prefix : oldPrefixes) {
-            oldList.add(container.getInstance(TagLibrary.class, prefix));
-        }
-        this.oldTagLibraries = Collections.unmodifiableList(oldList);
     }
 
     /**
@@ -521,13 +512,6 @@ public class VelocityManager {
             }
         }
 
-        for (TagLibrary tagLibrary : oldTagLibraries) {
-            List<Class> directives = tagLibrary.getVelocityDirectiveClasses();
-            for (Class directive : directives) {
-                addDirective(sb, directive);
-            }
-        }
-
         String directives = sb.toString();
 
         String userdirective = p.getProperty("userdirective");

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java b/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
index faa222d..68b92ae 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
@@ -256,13 +256,6 @@ public class XSLTResult implements Result {
         this.noCache = BooleanUtils.toBoolean(xsltNoCache);
     }
 
-    /**
-     * @deprecated Use #setStylesheetLocation(String)
-     */
-    public void setLocation(String location) {
-        setStylesheetLocation(location);
-    }
-
     public void setStylesheetLocation(String location) {
         if (location == null)
             throw new IllegalArgumentException("Null location");
@@ -281,34 +274,6 @@ public class XSLTResult implements Result {
         this.exposedValue = exposedValue;
     }
 
-    /**
-     * @deprecated Since 2.1.1
-     */
-    public String getMatchingPattern() {
-        return matchingPattern;
-    }
-
-    /**
-     * @deprecated Since 2.1.1
-     */
-    public void setMatchingPattern(String matchingPattern) {
-        this.matchingPattern = matchingPattern;
-    }
-
-    /**
-     * @deprecated Since 2.1.1
-     */
-    public String getExcludingPattern() {
-        return excludingPattern;
-    }
-
-    /**
-     * @deprecated Since 2.1.1
-     */
-    public void setExcludingPattern(String excludingPattern) {
-        this.excludingPattern = excludingPattern;
-    }
-
     public String getStatus() {
         return String.valueOf(status);
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/test/java/com/opensymphony/xwork2/ActionSupportTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/ActionSupportTest.java b/core/src/test/java/com/opensymphony/xwork2/ActionSupportTest.java
index 98a5dac..2482ca0 100644
--- a/core/src/test/java/com/opensymphony/xwork2/ActionSupportTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/ActionSupportTest.java
@@ -138,14 +138,6 @@ public class ActionSupportTest extends XWorkTestCase {
         assertEquals(false, as.hasErrors());
     }
 
-    public void testDeprecated() throws Exception {
-        assertNotNull(as.getErrorMessages());
-        assertEquals(0, as.getErrorMessages().size());
-
-        assertNotNull(as.getErrors());
-        assertEquals(0, as.getErrors().size());
-    }
-
     public void testLocale() {
         Locale defLocale = Locale.getDefault();
         ActionContext.getContext().setLocale(null);

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/test/java/com/opensymphony/xwork2/XWorkExceptionTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/XWorkExceptionTest.java b/core/src/test/java/com/opensymphony/xwork2/XWorkExceptionTest.java
index 787d6e5..990b831 100644
--- a/core/src/test/java/com/opensymphony/xwork2/XWorkExceptionTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/XWorkExceptionTest.java
@@ -42,7 +42,6 @@ public class XWorkExceptionTest extends XWorkTestCase {
         XWorkException e = new XWorkException();
 
         assertNull(e.getCause());
-        assertNull(e.getThrowable());
         assertNull(e.getMessage());
         assertNull(e.getLocation());
 

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/test/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcherTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcherTest.java b/core/src/test/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcherTest.java
index e6de0b9..a425157 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcherTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcherTest.java
@@ -22,6 +22,7 @@ import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.config.entities.ExceptionMappingConfig;
 import com.opensymphony.xwork2.config.entities.InterceptorMapping;
 import com.opensymphony.xwork2.config.entities.ResultConfig;
+import com.opensymphony.xwork2.util.WildcardHelper;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -36,7 +37,7 @@ public class ActionConfigMatcherTest extends XWorkTestCase {
     @Override public void setUp() throws Exception {
         super.setUp();
         configMap = buildActionConfigMap();
-        matcher = new ActionConfigMatcher(configMap);
+        matcher = new ActionConfigMatcher(new WildcardHelper(), configMap, false);
     }
 
     @Override public void tearDown() throws Exception {
@@ -104,7 +105,7 @@ public class ActionConfigMatcherTest extends XWorkTestCase {
     
     public void testLooseMatch() {
         configMap.put("*!*", configMap.get("bar/*/**"));
-        ActionConfigMatcher matcher = new ActionConfigMatcher(configMap, true);
+        ActionConfigMatcher matcher = new ActionConfigMatcher(new WildcardHelper(), configMap, true);
         
         // exact match
         ActionConfig m = matcher.match("foo/class/method");

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorParamOverridingTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorParamOverridingTest.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorParamOverridingTest.java
index 250dd64..9004241 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorParamOverridingTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorParamOverridingTest.java
@@ -17,6 +17,7 @@ package com.opensymphony.xwork2.config.providers;
 
 import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
+import com.opensymphony.xwork2.config.ContainerProvider;
 import com.opensymphony.xwork2.config.RuntimeConfiguration;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.config.entities.InterceptorMapping;
@@ -40,7 +41,7 @@ public class XmlConfigurationProviderInterceptorParamOverridingTest extends XWor
         factory.setContainer(container);
         factory.setFileManager(new DefaultFileManager());
         p.setFileManagerFactory(factory);
-        conf.reload(new ArrayList<ConfigurationProvider>() {
+        conf.reloadContainer(new ArrayList<ContainerProvider>() {
             {
                 add(new XWorkConfigurationProvider());
                 add(p);

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorStackParamOverridingTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorStackParamOverridingTest.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorStackParamOverridingTest.java
index a028db4..733c3ee 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorStackParamOverridingTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorStackParamOverridingTest.java
@@ -2,6 +2,7 @@ package com.opensymphony.xwork2.config.providers;
 
 import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
+import com.opensymphony.xwork2.config.ContainerProvider;
 import com.opensymphony.xwork2.config.RuntimeConfiguration;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.config.entities.InterceptorMapping;
@@ -28,12 +29,12 @@ public class XmlConfigurationProviderInterceptorStackParamOverridingTest extends
         factory.setFileManager(new DefaultFileManager());
         p.setFileManagerFactory(factory);
     	configurationManager.addContainerProvider(p);
-        conf.reload(new ArrayList<ConfigurationProvider>(){
-            {
-                add(new XWorkConfigurationProvider());
-                add(p);
-            }
-        });
+        conf.reloadContainer(new ArrayList<ContainerProvider>() {
+			{
+				add(new XWorkConfigurationProvider());
+				add(p);
+			}
+		});
 
 
     	RuntimeConfiguration rtConf = conf.getRuntimeConfiguration();

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderResultTypesTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderResultTypesTest.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderResultTypesTest.java
index f5ef935..80cc093 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderResultTypesTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderResultTypesTest.java
@@ -50,9 +50,9 @@ public class XmlConfigurationProviderResultTypesTest extends ConfigurationTestBa
 		Map result2ParamsMap = result2ResultTypeConfig.getParams();
 		
 		assertEquals(result1ResultTypeConfig.getName(), "result1");
-		assertEquals(result1ResultTypeConfig.getClazz(), MockResult.class.getName());
+		assertEquals(result1ResultTypeConfig.getClassName(), MockResult.class.getName());
 		assertEquals(result2ResultTypeConfig.getName(), "result2");
-		assertEquals(result2ResultTypeConfig.getClazz(), MockResult.class.getName());
+		assertEquals(result2ResultTypeConfig.getClassName(), MockResult.class.getName());
 		assertEquals(result1ParamsMap.size(), 3);
 		assertEquals(result2ParamsMap.size(), 2);
 		assertTrue(result1ParamsMap.containsKey("param1"));

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/test/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptorTest.java b/core/src/test/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptorTest.java
index 1a5a81e..9413f75 100644
--- a/core/src/test/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptorTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/interceptor/ScopedModelDrivenInterceptorTest.java
@@ -42,8 +42,8 @@ public class ScopedModelDrivenInterceptorTest extends XWorkTestCase {
     public void testResolveModel() throws Exception {
         ActionContext ctx = ActionContext.getContext();
         ctx.setSession(new HashMap<String, Object>());
-        
-        ObjectFactory factory = ObjectFactory.getObjectFactory();
+
+        ObjectFactory factory = ActionContext.getContext().getContainer().getInstance(ObjectFactory.class);
         Object obj = inter.resolveModel(factory, ctx, "java.lang.String", "request", "foo");
         assertNotNull(obj);
         assertTrue(obj instanceof String);

http://git-wip-us.apache.org/repos/asf/struts/blob/c50605a9/core/src/test/java/com/opensymphony/xwork2/util/DefaultFileManagerTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/util/DefaultFileManagerTest.java b/core/src/test/java/com/opensymphony/xwork2/util/DefaultFileManagerTest.java
index 25f29d6..37d65e1 100644
--- a/core/src/test/java/com/opensymphony/xwork2/util/DefaultFileManagerTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/util/DefaultFileManagerTest.java
@@ -3,9 +3,16 @@ package com.opensymphony.xwork2.util;
 import com.opensymphony.xwork2.FileManager;
 import com.opensymphony.xwork2.FileManagerFactory;
 import com.opensymphony.xwork2.XWorkTestCase;
+import com.opensymphony.xwork2.util.fs.DefaultFileManager;
+import org.apache.struts2.util.fs.JBossFileManager;
 
+import java.io.IOException;
 import java.io.InputStream;
+import java.net.MalformedURLException;
 import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+import java.net.URLStreamHandlerFactory;
 
 /**
  * FileManager Tester.
@@ -17,7 +24,6 @@ import java.net.URL;
 public class DefaultFileManagerTest extends XWorkTestCase {
 
     private FileManager fileManager;
-    private long lastModified;
 
     @Override
     public void setUp() throws Exception {
@@ -25,7 +31,7 @@ public class DefaultFileManagerTest extends XWorkTestCase {
         fileManager = container.getInstance(FileManagerFactory.class).getFileManager();
     }
 
-    public void testGetFileInJar() throws Exception {
+    public void disabled_testGetFileInJar() throws Exception {
         testLoadFile("xwork-jar.xml");
         testLoadFile("xwork - jar.xml");
         testLoadFile("xwork-zip.xml");
@@ -59,4 +65,115 @@ public class DefaultFileManagerTest extends XWorkTestCase {
         assertTrue(fm.fileNeedsReloading(resourceName));
     }
 
+    public void testSimpleFile() throws MalformedURLException {
+        URL url = new URL("file:c:/somefile.txt");
+        URL outputURL = fileManager.normalizeToFileProtocol(url);
+
+        assertEquals(outputURL, url);
+    }
+
+    public void testJarFile() throws MalformedURLException {
+        URL url = new URL("jar:file:/c:/somefile.jar!/");
+        URL outputURL = fileManager.normalizeToFileProtocol(url);
+
+        assertNotNull(outputURL);
+        assertEquals("file:/c:/somefile.jar", outputURL.toExternalForm());
+
+        url = new URL("jar:file:/c:/somefile.jar!/somestuf/bla/bla");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:/c:/somefile.jar", outputURL.toExternalForm());
+
+        url = new URL("jar:file:c:/somefile.jar!/somestuf/bla/bla");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:c:/somefile.jar", outputURL.toExternalForm());
+    }
+
+    public void testJarFileWithJarWordInsidePath() throws MalformedURLException {
+        URL url = new URL("jar:file:/c:/workspace/projar/somefile.jar!/");
+        URL outputURL = fileManager.normalizeToFileProtocol(url);
+
+        assertNotNull(outputURL);
+        assertEquals("file:/c:/workspace/projar/somefile.jar", outputURL.toExternalForm());
+
+        url = new URL("jar:file:/c:/workspace/projar/somefile.jar!/somestuf/bla/bla");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:/c:/workspace/projar/somefile.jar", outputURL.toExternalForm());
+
+        url = new URL("jar:file:c:/workspace/projar/somefile.jar!/somestuf/bla/bla");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:c:/workspace/projar/somefile.jar", outputURL.toExternalForm());
+    }
+
+    public void testZipFile() throws MalformedURLException {
+        URL url = new URL("zip:/c:/somefile.zip!/");
+        URL outputURL = fileManager.normalizeToFileProtocol(url);
+
+        assertNotNull(outputURL);
+        assertEquals("file:/c:/somefile.zip", outputURL.toExternalForm());
+
+        url = new URL("zip:/c:/somefile.zip!/somestuf/bla/bla");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:/c:/somefile.zip", outputURL.toExternalForm());
+
+        url = new URL("zip:c:/somefile.zip!/somestuf/bla/bla");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:c:/somefile.zip", outputURL.toExternalForm());
+    }
+
+    public void testWSJarFile() throws MalformedURLException {
+        URL url = new URL("wsjar:file:/c:/somefile.jar!/");
+        URL outputURL = fileManager.normalizeToFileProtocol(url);
+
+        assertNotNull(outputURL);
+        assertEquals("file:/c:/somefile.jar", outputURL.toExternalForm());
+
+        url = new URL("wsjar:file:/c:/somefile.jar!/somestuf/bla/bla");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:/c:/somefile.jar", outputURL.toExternalForm());
+
+        url = new URL("wsjar:file:c:/somefile.jar!/somestuf/bla/bla");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:c:/somefile.jar", outputURL.toExternalForm());
+    }
+
+    public void disabled_testVsFile() throws MalformedURLException {
+        URL url = new URL("vfsfile:/c:/somefile.jar!/");
+        URL outputURL = fileManager.normalizeToFileProtocol(url);
+
+        assertNotNull(outputURL);
+        assertEquals("file:/c:/somefile.jar", outputURL.toExternalForm());
+
+        url = new URL("vfsfile:/c:/somefile.jar!/somestuf/bla/bla");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:/c:/somefile.jar", outputURL.toExternalForm());
+
+        url = new URL("vfsfile:c:/somefile.jar!/somestuf/bla/bla");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:c:/somefile.jar", outputURL.toExternalForm());
+
+        url = new URL("vfszip:/c:/somefile.war/somelibrary.jar");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:/c:/somefile.war/somelibrary.jar", outputURL.toExternalForm());
+    }
+
+    public void disabled_testJBossFile() throws MalformedURLException {
+        URL url = new URL("vfszip:/c:/somefile.jar!/");
+        URL outputURL = fileManager.normalizeToFileProtocol(url);
+
+        assertNotNull(outputURL);
+        assertEquals("file:/c:/somefile.jar", outputURL.toExternalForm());
+
+        url = new URL("vfszip:/c:/somefile.jar!/somestuf/bla/bla");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:/c:/somefile.jar", outputURL.toExternalForm());
+
+        url = new URL("vfsmemory:c:/somefile.jar!/somestuf/bla/bla");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:c:/somefile.jar", outputURL.toExternalForm());
+
+        url = new URL("vfsmemory:/c:/somefile.war/somelibrary.jar");
+        outputURL = fileManager.normalizeToFileProtocol(url);
+        assertEquals("file:/c:/somefile.war/somelibrary.jar", outputURL.toExternalForm());
+    }
+
 }