Home > Guides > Migration Guide > Version Notes 2.5 |

Apache Struts 2 Documentation
Version Notes 2.5
Edit Page Browse Space Add Page Add News

These are the notes for the Struts 2.5 distribution.

For prior notes in this release series, see Version Notes 2.3.28.1

- If you are a Maven user, you might want to get started using the Maven Archetype.

Maven Dependency

    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-core</artifactId>
      <version>2.5</version>
    </dependency>

You can also use Struts Archetype Catalog like below

Struts Archetype Catalog

    mvn archetype:generate -DarchetypeCatalog=http://struts.apache.org/

Staging Repository

    <repositories>
      <repository>
        <id>apache.nexus</id>
        <name>ASF Nexus Staging</name>
        <url>https://repository.apache.org/content/groups/staging/</url>
      </repository>
    </repositories>

## Internal Changes

- All security patches from prior versions were merged into this version
- XWork source was merged into Struts Core source, it means that there be no more `xwork` artifact nor dedicated jar
- Spring dependency for tests and spring plugin was upgraded to version 4.1.6, see WW-4510.
- Struts2 internal logging api was marked as deprecated and was replaced with new Log4j2 api as logging layer, see WW-4504.
- Struts2 is now build with JDK7, see WW-4503.
- New plugin to support bean validation is now part of the distribution, see WW-4505.
- Deprecated plugins are now removed from the distribution and are not longer supported anymore.
  - Dojo Plugin
  - Codebehind Plugin
  - JSF Plugin
  - Struts1 Plugin
- New security option was added - Strict Method Invocation (also known as Strict DMI), see WW-4540
- Added support for latest stable AngularJS in Maven archetype, see WW-4522
- Dropped support for `id` and `name` - replaced with `var`, see WW-2069
- Dedicated archive with a minimal set of dependencies was introduced, see WW-4570
- It is possible to use multiple names when defining a result, see WW-4590
- Rest plugin honors Accept header, see WW-4588

- New result 'JSONActionRedirectResult' in json-plugin was defined, see WW-4591

- Tiles plugin was upgrade to the latest Tiles 3 and tiles3-plugin was dropped, see WW-4584
- JasperReports plugins was upgraded to JasperReport 6.0, see WW-4381
- OGNL was upgraded to version 3.1.4 and it breaks access to properties as it follows Java Bean Specification, see WW-4207 and WW-3909
- Annotations to configure Tiles, see WW-4594 and Tiles Plugin

### Package names have changed

Some classes were moved to different packages, see the list below for more details:

- New:
  `org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter`
  `org.apache.struts2.dispatcher.filter.StrutsExecuteFilter`
  `org.apache.struts2.dispatcher.filter.StrutsPrepareFilter`
  `org.apache.struts2.dispatcher.listener.StrutsListener`
  `org.apache.struts2.result.ServletRedirectResult
  com.opensymphony.xwork2.interceptor.ValidationAware`
- Old:
  `org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`
  `org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter`
  `org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter`
  `org.apache.struts2.dispatcher.ng.listener.StrutsListener`
  `org.apache.struts2.dispatcher.ServletRedirectResult
  com.opensymphony.xwork2.ValidationAware`

## Issue Detail

- JIRA Release Notes 2.5

## Issue List

- Struts 2.3.28 DONE
- Struts 2.5.x TODO

## Other resources

- Commit Logs
- Source Code Repository