Wow! That's a long list of improvements and major milestone! Thanks to
everyone who contributed to this release!

+1 binding

[ ] Leave at test build
[ ] Alpha
[ ] Beta
[X] General Availability (GA)

Best Regards

Johannes

Lukasz Lenart <lukaszlen...@apache.org> schrieb am Do., 2. Juni 2022, 10:05:

> The Apache Struts ver. 6.0.0 aka Apache Struts 2 ver. 2.6.0 test build
> is available. With this release the following areas were addressed:
>
> Version change:
> 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.
>
> Internal Changes:
> The framework requires Java 8 at runtime. Also Servlet API 3.1 capable
> container is required.
> OGNL expressions are limited to 256 characters by default. See WW-5179
> - Set 'struts.ognl.expressionMaxLength' to 256 by default RESOLVED 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:
> Run all your app tests, you shouldn't see any WARN log like below:
> Expression [so-and-so] isn't allowed by pattern [so-and-so]! See
> Accepted / Excluded patterns at https://struts.apache.org/security/
> See if following components are still functioning correctly regarding
> java-scripts:
> - forms with client side validations
> - doubleselect
> - combobox
> Check also StreamResults, AliasInterceptors and JasperReportResults if
> they are still working as expected.
> Support to access static methods via OGNL expressions has been
> removed, use action instance methods instead.
>
> Bug
> [WW-3534] - PrepareOperations.createActionContext does not detect
> existing context correctly
> [WW-3730] - action tag accepts only String arrays as parameters
> [WW-4723] - s:url incompatible with JDK 1.5
> [WW-4742] - Problem with escape when the key from getText has no value
> [WW-4865] - Struts s:checkbox conversion fails to List<Integer>
> [WW-4866] - ASM 5.2 and Java 9 leads to IllegalArgumentException
> [WW-4897] - KEYS, sigs and hashes should use https (SSL)
> [WW-4902] - Struts 2 fails to init Dispatcher - Tomcat Embedded
> [WW-4928] - Setting struts.devMode from system property not working as
> described
> [WW-4930] - SMI cannot be diasabled for action-packages found via the
> convention-plugin
> [WW-4941] - [jar_cache] Some jar_cache******.tmp files are generated
> into a temporary directory(/tmp) during web service start
> [WW-4943] - opensymphony.xwork2.util.LocalizedTextUtil can't get i18n
> resources
> [WW-4944] - Struts 2 REST Tiles integration issue
> [WW-4945] - TagUtils#buildNamespace should throw an exception when
> invocation is null
> [WW-4946] - Strtus 2 spring integrations is failing - fails to init
> Dispatcher - Tomcat Embedded
> [WW-4948] - Struts 2.5.16 is creating jar_cache files in temp folder
> [WW-4951] - MD5 and SHA1 should no longer be provided on download pages
> [WW-4954] - xml-validation fails since struts 2.5.17
> [WW-4957] - Update struts version from 2.5.10 to 2.5.17.
> LocalizedTextUtil class is removed and
> GlobalLocalizedTextProvider&StrutsLocalizedTextProvider cannot be used
> instead.
> [WW-4958] - File upload fails from certain clients
> [WW-4964] - Missing javascript in form-validate.ftl
> [WW-4968] - combining s:set and s:property where the property
> retrieved is null has unexpected results
> [WW-4971] - s:include tag fails with truncated content in certain
> circumstances
> [WW-4974] - NullPointerException in
> DefaultStaticContentLoader#findStaticResource
> [WW-4977] - Fixing flaky test in Jsr168DispatcherTest and
> Jsr286DispatcherTest
> [WW-4984] - Static files like css and js files in struts-core not
> properly served
> [WW-4986] - Race condition reloading config results in actions not found
> [WW-4987] - Setting Struts2 <s:select> options Css Class
> [WW-4991] - Not existing property in listValueKey throws exception
> [WW-4997] - <s:debug> can't be resolved
> [WW-4999] - Can't get OgnlValueStack log even if enable
> logMissingProperties
> [WW-5002] - Package Level Properties in Global Results
> [WW-5004] - No more calling of a static variable in Struts 2.8.20 available
> [WW-5006] - NullPointerException in ProxyUtil class when accessing static
> member
> [WW-5009] - EmptyStackException in JSON plugin due to concurrency
> [WW-5011] - Tiles bug when parsing file:// URLs including # as part of the
> URL
> [WW-5013] - Accessing static variable via OGNL returns nothing
> [WW-5022] - Struts 2.6 escaping behaviour change for s:a (anchor) tag
> [WW-5024] - HttpParameters.Builder can wrap objects in two layers of
> Parameters
> [WW-5025] - Binding Integer Array upon form submission
> [WW-5026] - Double-submit of TokenSessionStoreInterceptor broken since
> 2.5.16
> [WW-5027] - xerces tries to load resources from the internet
> [WW-5028] - Dispatcher prints stacktraces directly to the console
> [WW-5029] - The content allowed-methods tag of the XML configuration
> is sometimes truncated
> [WW-5030] - ClassNotFoundException - MockPortletResponse
> [WW-5031] - OGNL: An illegal reflective access operation has occurred
> [WW-5043] - trouble with Enum subclassing
> [WW-5054] - Debugging Interceptor debug=browser not working
> [WW-5058] - Invalid link in primer.html
> [WW-5059] - primer.html link to spring-security is broken
> [WW-5065] - AbstractMatcher adds values to the map passed into
> replaceParameters
> [WW-5072] - Minor bug in single file upload example of the Showcase
> application
> [WW-5074] - Multiple ASM jar conflict in 2.6 build
> [WW-5076] - struts2 redirecting to https to http
> [WW-5077] - Unable to set long pathname variables
> [WW-5079] - Could not find StrutsPrepareAndExecuteFilter sometime in WAS
> server
> [WW-5081] - Struts default textarea template fails w3c validation
> [WW-5082] - struts2 update from 2.1.6 to 2.3.37
> [WW-5086] - s:set with empty body
> [WW-5087] - AliasInterceptor doesn't properly handle Parameter.Empty
> [WW-5088] - Empty file upload gives wrong error message
> [WW-5091] - Switched hash and PGP links
> [WW-5093] - inconsistent scope for variables created with s:set and s:url
> [WW-5095] - Junit plugin does not push ACTION_MAPPING into the context
> resulting in NPE
> [WW-5096] - Struts2 StaticParametersInterceptor's
> addParametersToContext method is not working as expected.
> [WW-5100] - incorrect content-type behavior after upgrading to struts 2.5.*
> [WW-5102] - Download page issues
> [WW-5104] - Please delete old releases
> [WW-5106] - The call chains of ActionContext.getContext() in
> ServletActionContext are dangerious
> [WW-5107] - JQuery plugin does not handle dynamic component ids correctly
> [WW-5108] - No errors are reported locally. On linux environment,
> tomcat runs alone and reports
> java.lang.annotation.AnnotationTypeMismatchException
> [WW-5109] - Ognl issue after migrating from strut 2.3 to 2.5
> [WW-5116] - PostbackResult uses wrong regex range
> [WW-5117] - %{id} evaluates different for data-* and value attribute
> [WW-5119] - Blocking Threads in retrieving text from resource bundle
> [WW-5121] - Contention when injecting Scope.SINGLETON instances
> [WW-5123] - CheckboxTag value missing for labelposition
> [WW-5124] - Tag attribute values cached
> [WW-5125] - forbidden name attribute values (size, clone...?) in
> <s:textfield> using the default theme
> [WW-5129] - Dynamic Attributes are not working for doubleselect,
> optiontransferselect, inputtransferselect tags
> [WW-5130] - ID param not being set
> [WW-5140] - Cannot download struts from the main page
> [WW-5146] - Empty file upload ends in error
> [WW-5147] - OGNL valid expression is not cached and is parsed over
> again in some situations
> [WW-5160] - Template not found for name
> "Empty{name='templateDir'}/simple/hidden.ftl"
> [WW-5163] - Error executing FreeMarker template
> [WW-5169] - Key Technologies Primer: Broken link to ResourceBundles
>
> New Feature
> [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
>
> 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
>
> Task
> [WW-4845] - run, test, and validate Struts2 with Java9
> [WW-4981] - Add support for Java 11
> [WW-4982] - Remove the deprecated JsonLibHandler and outdated json-lib
> dependency
> [WW-4983] - Set private access modifier for HttpParameters.toMap
> [WW-4998] - I18nInterceptor's default storage should store locale
> [WW-5010] - Switch to Java 8
> [WW-5016] - Support Java 8 date time in the date tag
> [WW-5020] - delete deprecated sitegraph plugin
> [WW-5021] - Serve static resources from different path
> [WW-5118] - OGNL long conversion
>
> Dependency
> [WW-4887] - Upgrade to Tiles 3.0.8
> [WW-4926] - Upgrade commons-beanutils to version 1.9.3
> [WW-4931] - Upgrade to Apache FreeMarker 2.3.28 version
> [WW-4947] - server errors generated by
> secure-jakarta-multipart-parser-plugin
> [WW-4955] - Upgrade to OGNL 3.2.6
> [WW-4956] - Upgrade to Log4j2 2.11.1
> [WW-4965] - Upgrade to OGNL 3.2.7
> [WW-4967] - Upgrade to Jackson 2.9.6
> [WW-4973] - Upgrade to OGNL 3.2.8
> [WW-4975] - Upgraded commons-fileupload to version 1.4
> [WW-4976] - Upgrade ASM to version 7.0
> [WW-4979] - Update multiple Struts 2.6.x libraries to more recent versions
> [WW-4980] - Update maven-wrapper to 3.5.4 and add maven-wrapper.jar to
> .gitignore
> [WW-4985] - Update persistence-api from 1.0 to 1.0.2 for CDI Plugin
> [WW-4988] - Upgrade DWR from 1.x to 2.x (for DWR plugin)
> [WW-4989] - Use JacksonXML handler instead of XStream as a default
> handler for XML in the REST plugin
> [WW-4992] - Mark the Embedded JSP plugin as depracted
> [WW-4993] - Update OGNL versions for 2.6 and 2.5.x builds
> [WW-5007] - Upgrade Jackson library to the latest version
> [WW-5019] - Upgrade Log4j to version 2.13.3
> [WW-5032] - Struts 2 Junit Plugin is not working with Zulu JDK11
> [WW-5033] - Update a few Struts 2.5.x libraries to more recent versions
> [WW-5037] - Upgrade commons-beanutils to version 1.9.4
> [WW-5038] - Upgrade jackson-databind to version 2.9.9.3
> [WW-5042] - Upgrade jackson-databind to version 2.10.0
> [WW-5045] - Update jasperreports to 6.10.0
> [WW-5047] - Upgrade Velocity to 2.1 and Velocity Tools to 3.0
> [WW-5048] - Update various dependencies to newest version
> [WW-5050] - Upgrade to OGNL 3.2.12
> [WW-5061] - CVEs in the library dependencies
> [WW-5068] - Update multiple Struts 2.6.x libraries / Maven build plugin
> versions
> [WW-5075] - Upgrade OSGi to the latest version
> [WW-5092] - ASM dependency update to 8.*
> [WW-5094] - Upgrade Spring Framework to version 4.3.29.RELEASE
> [WW-5097] - Upgrade to OGNL 3.2.16
> [WW-5098] - Upgrade ASM to version 9.0
> [WW-5103] - Upgrade XStream to version 1.4.14
> [WW-5120] - Upgrade Velocity Engine & Velocity Tools
> [WW-5122] - Upgrade XStream to version 1.4.16
> [WW-5131] - Upgrade commons-io to version 2.9
> [WW-5134] - Upgrade JasperReports to version 6.17.0
> [WW-5135] - Upgrade XStream to version 1.4.17
> [WW-5142] - Upgrade XStream to version 1.4.18
> [WW-5143] - Upgrade Oval library to ver. 3.2.1
> [WW-5144] - Mark OVal plugin as deprecated
> [WW-5148] - Upgrade ASM to version 9.2
> [WW-5151] - Bump to 2.15.0 to fix log4j vulnerability
> [WW-5158] - Upgrade Log4j to version 2.16.0 to address security
> vulnerability
> [WW-5161] - Update spring to 4.3.30
> [WW-5162] - Upgrade Log4j to version 2.17.1 to address security
> vulnerability
> [WW-5165] - Update spring to 5.3.x b/c 4.3.x is EOL
> [WW-5166] - Update OGNL to 3.3.2
> [WW-5167] - Upgrade XStream to version 1.4.19
> [WW-5171] - Upgrade Apache Log4j 2.17.2
> [WW-5172] - Upgrade freemarker to 2.3.31
> [WW-5174] - Upgrade Jackson-Core to version 2.13.2 and
> Jackson-Databind to 2.13.2.1
>
> Github release:
> * https://github.com/apache/struts/releases/tag/STRUTS_6_0_0
>
> Release notes:
> * https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.0.0
>
> MIgration guide:
> *
> https://cwiki.apache.org/confluence/display/WW/Struts+2.5+to+6.0.0+migration
>
> Distribution:
> * https://dist.apache.org/repos/dist/dev/struts/6.0.0/
>
> Maven 2 staging repository:
> * https://repository.apache.org/content/repositories/staging/
>
> Once you have had a chance to review the test build, please respond
> with a vote on its quality:
>
> [ ] Leave at test build
> [ ] Alpha
> [ ] Beta
> [ ] General Availability (GA)
>
> Everyone who has tested the build is invited to vote. Votes by PMC
> members are considered binding. A vote passes if there are at least
> three binding +1s and more +1s than -1s.
>
> The vote will remain open for at least 72 hours, longer upon request.
> A vote can be amended at any time to upgrade or downgrade the quality
> of the release based on future experience. If an initial vote
> designates the build as "Beta", the release will be submitted for
> mirroring and announced to the user list. Once released as a public
> beta, subsequent quality votes on a build may be held on the user
> list.
>
> As always, the act of voting carries certain obligations. A binding
> vote not only states an opinion, but means that the voter is agreeing
> to help do the work.
>
>
> Kind regards
> --
> Ɓukasz
> + 48 606 323 122 http://www.lenart.org.pl/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
> For additional commands, e-mail: dev-h...@struts.apache.org
>
>

Reply via email to