Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Table of Contents

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

Code Block
xml
xml
titleMaven Dependency
<dependency>
  <groupId>org.apache.struts</groupId>
  <artifactId>struts2-core</artifactId>
  <version>6.0.0-RC4<0</version>
</dependency>

You can also use Struts Archetype Catalog like below

...

You can be surprised by the version change, previously we have been using Struts 2.5.x versioning schema, but this was a bit misleading. Struts 2 is a different framework than Struts 1 and its versioning is supposed to start with 1.0.0, yet that never happened. With each breaking changes release (like Struts 2.5), we had been only upgrading the MINOR part of the versioning schema. To fix that problem as from Struts 2 ver. 6.0.0  (aka Struts 2.6) we adopt a proper SemVer to avoid such confusion.

...

OGNL expressions are limited to 256 characters by default. See

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyWW-5179
and docs for more details.

Yasser's PR has been merged which contains a fix to double evaluation security vulnerability - it should solve any future attack vectors, yet it can impact your application if you have been depending on double evaluation. How to test:

...

  • [WW-4598] - async Actions
  • [WW-4760] - Switch to Servlet API 2.5
  • [WW-4874] - Asynchronous action method
  • [WW-5005] - Struts2 convention plugin lacks Java 11 support
  • [WW-5049] - Move Velocity support into a dedicated plugin
  • [WW-5083] - Fetch Metadata support
  • [WW-5084] - Content Security Policy support
  • [WW-5085] - Add Cross-Origin Opener Policy and Cross-Origin Embedder Policy Support
  • [WW-5101] - AbstractLocalizedTextProvider illegal reflective access operation has occurred[WW-5177] - Support testing with JUnit 5

Improvement

  • [WW-685] - Generic error message - Type Conversion Error Handling
  • [WW-2040] - Struts 1 vs. Struts 2 benchmarking application
  • [WW-2411] - Add a maxlength attribute to the textarea tag
  • [WW-2537] - Fix generics in all codebase
  • [WW-3788] - Convert ServletActionContext to be more as ActionContext
  • [WW-3877] - Remove altSyntax option
  • [WW-4043] - Duplicated class TestUtils
  • [WW-4069] - Upgrade DWR plugin to use the latest available version
  • [WW-4348] - Remove access to static methods
  • [WW-4713] - Drop "searchValueStack" attribute from tag <s:text/>
  • [WW-4763] - Drop deprecated logging layer
  • [WW-4779] - Remove profiling layer
  • [WW-4789] - ActionContext should be immutable
  • [WW-4792] - Removes deprecated XWork constants
  • [WW-4796] - Rename Spring related flags to use the same pattern
  • [WW-4799] - make DateConverter configurable
  • [WW-4875] - Java configuration
  • [WW-4889] - Implement REST content handlers using Apache Juneau
  • [WW-4910] - Align OptGroup with Select
  • [WW-4915] - Replace deprecated commons-lang3 classes
  • [WW-4927] - Use immutable version of OGNL without access to #context
  • [WW-4929] - Fallback i18n Locale
  • [WW-4932] - Conversion fails when generic type is an interface
  • [WW-4937] - Add SortedSet field support to JSON plugin
  • [WW-4938] - ObjectFactory should use Container to instantiate actions and inject dependencies
  • [WW-4952] - Upgrade to apache-master version 21
  • [WW-4963] - Implement new Aware interfaces that are using withXxxx pattern instead of setters
  • [WW-4972] - Switch to latest freemarker version when defining incompatible_improvements
  • [WW-4995] - Enhancement for s:set tag to improve tag body whitespace control.
  • [WW-4996] - Refactor DefaultTypeConverterCreator to use ObjectFactory#buildConverter
  • [WW-5000] - Replace string literals with proper constants in @Inject
  • [WW-5001] - Allow to define converters in "struts-conversion.properties" file
  • [WW-5003] - Use StrutsException instead of XWorkException
  • [WW-5012] - Make a public state check the first acceptance check in SecurityMemberAccess
  • [WW-5017] - Drop @Validation annotation as not needed
  • [WW-5018] - Add maven enforce plugin to control certain environmental constraints
  • [WW-5023] - Upgrade SLF4J to latest 1.7.x version
  • [WW-5034] - Minor enhancement/fix to AbstractLocalizedTextProvider
  • [WW-5035] - Provide mechanism to clear OgnlUtil caches
  • [WW-5036] - update JFreeChart plugin for compatibility with JFreeChart 1.5
  • [WW-5052] - Use TypeConversionException instead of StrutsException
  • [WW-5056] - Standard Accepted Patterns in DefaultAcceptedPatternsChecker
  • [WW-5057] - Cleanup and/or improvements to Showcase Applications
  • [WW-5062] - Use downloads.a.o instead of archive
  • [WW-5063] - Use null check of passed in invocation in all the results
  • [WW-5064] - Move XWork Spring support into struts2-spring-plugin
  • [WW-5069] - Improve build behaviour on JDK9+
  • [WW-5070] - JSONResult default root object should be set explicitly, rather than from result of ValueStack.peek()
  • [WW-5073] - Use TextParser in AbstractMatcher
  • [WW-5078] - Remove support for <xwork> DTD
  • [WW-5080] - Allow write directly to a response - define a new result
  • [WW-5099] - Upgrade JFreeChart plugin to use version 1.5.1 of JFreeChart
  • [WW-5112] - Add ability (control flag) for TextProviders to prioritize reads from the default resource bundlest.
  • [WW-5113] - Drop deprecated constant "struts.xworkTextProvider"
  • [WW-5114] - Drop deprecated constant "struts.localeProvider"
  • [WW-5115] - Reduce logging for DMI excluded parameters
  • [WW-5126] - inconsistancy between Model Driven and Model Driven Interceptor documentations
  • [WW-5136] - Make class attribute deprecated
  • [WW-5152] - Make OVal plugin deprecated
  • [WW-5153] - Make Portlet, Portlet Mocks and Portlet Tiles plugins deprecated
  • [WW-5154] - Make GXP plugin deprecated
  • [WW-5155] - Make OSGi plugin deprecated
  • [WW-5156] - Make Plexus plugin deprecated
  • [WW-5157] - Make Sitemesh plugin deprecated
  • [WW-5164] - Remove deprecated ConversionDescription class
  • [WW-5168] - Fix missing submitUnchecked and broken disabled attributes in Javatemplates checkbox tag
  • [WW-5175] - Add basic LocalDateTime support
  • [WW-5179] - Set 'struts.ognl.expressionMaxLength' to 256 by default
  • [WW-5181] - Stop supporting accessing static methods via OGNL expressions
  • [WW-5182] - Upgrade to Servlet API 3.1

...