(tick) These are the notes for the Struts version 7.0.0-M distribution.

(tick) For prior notes in this release series, see Version Notes 6.7.0

Maven users

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>7.0.0</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

  • Java 17 is used as minimal supported version
  • Migrated to JakartaEE
  • Stronger security options
  • All classes from package com.opensymphony.xwork (and subpackages) have been moved into org.apache.struts2 
  • Classes related to text  & locale  have been moved to org.apache.struts2.text  or org.apache.struts2.locale 

Please read all the previous milestones related versions notes as well:

Bug

  • [WW-5110] - java.lang.ClassCastException: org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter cannot be cast to jakarta.servlet.Filter
  • [WW-5390] - Fix missing assembly packages when preparing a new release
  • [WW-5396] - Javatemplates s:file shows server/file location
  • [WW-5423] - Query Parameters in Multipart Requests not working in v7 M6
  • [WW-5438] - Wrong scope on weld dependencies
  • [WW-5440] - Fix OGNL allowlist compatibility with Convention plugin
  • [WW-5450] - ServletDispatcherResult Forwarding GET Instead of FORWARD
  • [WW-5457] - Struts Home Page Linked to old version of Struts 7
  • [WW-5461] - Multiple uploaded files cannot be processed individually
  • [WW-5463] - SiteMesh 3.2.1 does not resolve jsp path after Struts Filter
  • [WW-5464] - Struts Wildcard actions are failing from v7.0.0-M7
  • [WW-5468] - ModelDriven is not compatible with @StrutsParameter
  • [WW-5473] - ActionFileUploadInterceptor doesn't support multiple HttpServletRequestWrapper
  • [WW-5486] - Parameters which are added via ServletDispatcherResult aren't availabe in #parameters

New Feature

  • [WW-5141] - Support for JEE 9+
  • [WW-5372] - JEE9 Support(Jakarta namespacing) for struts2 core
  • [WW-5481] - Move text related classes into org.apache.struts2.text
  • [WW-5482] - Move locale related classes into dedicated packages

Improvement

  • [WW-3499] - AnnotationParameterFilterIntereptor should support deep OGNL
  • [WW-4807] - Allow define custom Voters to be used with SecurityMemberAccess
  • [WW-5251] - Remove deprecated interfaces used with ServletConfigInterceptor
  • [WW-5306] - Remove the Portlet plugin
  • [WW-5335] - Adjusts Jenkins & Github build files to use JDK17
  • [WW-5353] - Implement stronger security defaults in Struts 7.0
  • [WW-5388] - Upgrade Commons Fileupload to FileUpload Jakarta Servlet 6
  • [WW-5405] - Renames master branch to main branch
  • [WW-5428] - Allowlist capability should resolve Hibernate proxies when disableProxyObjects is not set
  • [WW-5429] - Log parameter annotation issues at ERROR level when in DevMode
  • [WW-5433] - Remove deprecated constants in FreemarkerManager
  • [WW-5439] - Fix and clean up DevMode excluded class configuration
  • [WW-5449] - Make Velocity Tools dependency optional for Velocity plugin
  • [WW-5453] - Rename VelocityManager interface and default implementation
  • [WW-5454] - Log warnings on startup for disabled critical security features
  • [WW-5458] - Address e.printStackTrace
  • [WW-5459] - Move Action and ActionChainResult to proper packages
  • [WW-5465] - Rename tag's parameters into attributes
  • [WW-5472] - Remove deprecated Struts Sitemesh plugin
  • [WW-5485] - Remove deprecated plugins

Task

  • [WW-3714] - Rename org.opensymphony.xwork2 to org.apache.struts2.xwork2
  • [WW-5384] - Upgrade Log4j to version 2.22.1
  • [WW-5386] - Remove deprecated FileUploadInterceptor
  • [WW-5411] - Delete deprecated classes and members

Dependency

  • [WW-5209] - Upgrade to Jakarta Bean Validation 3.0
  • [WW-5393] - Update caffeine to 3.1.8
  • [WW-5427] - Enable incompatible_improvements in Freemaker

Other resources