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

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

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

Improvement

  • WW-5411 Delete deprecated classes and members
  • WW-5448 Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.15.0
  • WW-5411 General code clean up using modern language features
  • WW-5411 WW-5386 Delete final deprecated code
  • WW-5449 Make Velocity Tools dependency optional for Velocity plugin
  • WW-5451 Fixes NPE when iterator starts with null
  • WW-5454 Log warnings on startup for disabled critical security features
  • WW-5453 Rename VelocityManager interface and default implementation
  • WW-4062 Cache OgnlException thrown on compilation
  • WW-4062 Further optimisation of OgnlException caching
  • WW-5450 Uses existing Jakarta constants instead of free hand strings
  • WW-5461 Extends UploadedFile with inputName field
  • WW-5458 Replaces e.printStackTrace() with proper logger
  • WW-5297 Fixes checking nonce of invalidated session
  • WW-5470 Bump log4j2.version from 2.23.1 to 2.24.1
  • WW-5469 Bump jackson.version from 2.17.2 to 2.18.0
  • WW-5468 Exempt ModelDriven Actions from @StrutsParameter requirement
  • WW-5471 Marks Sitemesh plugin as deprecated
  • WW-5473 Fixes examining multiple HttpServletWrappers to find MultiPartRequestWrapper
  • WW-5465 Renames tag parameters to attributes
  • WW-5466 Boundary condition NPE possible with JakartaMultiPartRequest
  • WW-5472 Removes Struts Sitemesh plugin
  • WW-5209 Upgrade to Jakarta Bean Validation 3.1.0
  • WW-5427 Upgrades Freemarker incompatible_improvements to version 2.3.33
  • WW-3714 Deprecate and repackage common APIs part 1
  • WW-3714 Deprecate and repackage common APIs part 2
  • WW-3714 Deprecate and repackage common APIs part 2.5
  • WW-3714 Deprecate and repackage common APIs part 3
  • WW-3714 Deprecate and repackage common APIs part 4
  • WW-3714 Deprecate and repackage common APIs part 5
  • WW-3714 Deprecate and repackage common APIs part 6
  • WW-5476 Deprecates tag's parameters as replaced with attributes
  • WW-5468 Backport @StrutsParameter fix for ModelDriven Actions
  • WW-3714 Moves all classes from com.opensymphony.xwork2 into org.apache.struts2
  • WW-5478 Deprecate DefaultResultFactory
  • WW-5480 Warn against potential templating bug
  • WW-5479 Delete deprecated DefaultResultFactory
  • WW-3714 Move new Result class into result package
  • WW-5459 Moves Action & ActionChainResult into proper packages
  • WW-5459 Move new Action class into action package
  • WW-5459 Deprecate and repackage ActionChainResult
  • WW-3714 Ensure correct delegation of deprecated API methods
  • WW-5481 Extract text related classes into org.apache.struts2.text
  • WW-5482 Extract locale related classes into org.apache.struts2.locale

Other resources