You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Andrea Del Bene <ad...@apache.org> on 2020/07/15 18:24:29 UTC

[ANNOUNCE] Apache Wicket 9.0.0 released

The Apache Wicket project announces the 9th major release of the open 
source Java web framework servicing websites and applications across the 
globe since 2004.

Built on top of Java 11, this version of Wicket brings web development 
into the modern Java world, offering a fundamental tool to keep you code 
up to date with Java evolution.

Bring the web into the modern Java era
----------------------------------------------------

The release of Java 9 has been a turning point in Java history which 
laid the foundation for the modern Java era. However, the magnitude of 
this change has discouraged many developers from leaving the safe harbor 
represented by Java 8. With Wicket 9 we finally have a fundamental tool 
to move on and bring our web applications into the new Java world.

With this version Wicket has been completely revisited and improved to 
embrace new technologies such as Java modularization and new libraries 
like JUnit 5.

Stay up to date with Java release cycle
---------------------------------------------------

With Java releasing at a faster pace it's important to keep a library up 
to date with the lastest changes introduced in the platform and ensure 
it works with the latest Java release. Wicket does all of this by taking 
part to the OpenJDK Quality Outreach, an initiative aimed to test 
popular Open Source projects with both the latest OpenJDK release and 
the Early Access release.

Be ready for the next Java Enterprise
-------------------------------------------------

Shortly after Java 9 was released, Oracle submitted Java EE to the 
Eclipse Foundation. As side effect of this owner change, the package 
name 'javax' had to be migrated to 'jakarta'. Wicket historically 
promoted decoupling of Java EE APIs and application code, making the 
transition to future Java Enterprise versions much easier.

Protect your web apps with Content Security Policy (CSP)
----------------------------------------------------------------------------

As the number of security threats grows, it's crucial for web 
applications to adopt the latest security standards and countermeasures. 
CSP is a modern standard that allows applications to declare approved 
origins of content (such as JavaScript, CSS, images, etc...) for the 
browser to load. Constructing a safe and at the same time complete CSP 
can be challenging. You either risk leaving holes in the defense of your 
application or you break certain functionality. Protecting against 
unwanted inline scripts is the most important target to attain. In CSP 
this is called 'unsafe-inline' and it's the most common cause of 
cross-site scripting vulnerabilities.

Wicket 9 comes with full support for CSP and does not need any unsafe 
directives. Wicket will automatically add a nonce to every header 
contribution and whitelist this nonce. This allows for flexible loading 
of resources without the need for a complex CSP. Of course it is 
possible to modify and customize the CSP, add additional directives or 
disable it entirely. Lookup our documentation for more information.

Migrating to Wicket 9
----------------------------

When you migrate from a previous Wicket version to Wicket 9, a full list 
of changes and migrations is available at the following page:

https://s.apache.org/wicket9migrate

Please consult this migration guide when you are moving towards Wicket 9.

Support
----------

You can find out about our support channels through the following page 
on our website: https://wicket.apache.org/help/

Using this release
-----------------------

With Apache Maven update your dependency to (and don't forget to
update any other dependencies on Wicket projects to the same version):

<dependency>
     <groupId>org.apache.wicket</groupId>
     <artifactId>wicket-core</artifactId>
     <version>9.0.0</version>
</dependency>

Or download and build the distribution yourself, or use our
convenience binary package you can find here:

  * Download: http://wicket.apache.org/start/wicket-9.x.html#manually

Upgrading from earlier versions
-------------------------------

If you upgrade from 9.y.z this release is a drop in replacement. If
you come from a version prior to 9.0.0, please read our Wicket 9
migration guide found at

  * http://s.apache.org/wicket9migrate

Have fun!

— The Wicket team


========================================================================

     The signatures for the source release artefacts:


Signature for apache-wicket-9.0.0.zip:

     -----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEE0a6YZHC1pJw+aieyh48B+qjTVuEFAl8FnLsACgkQh48B+qjT
VuGvaBAAsY5f4r/snjzemc3w70Vcu2LkrZFIb0Eu04tpvppvwjuuK5+w51gyBusq
9AluWISTY1DyguhA1rVGXNqlWs0EhMGOmHa6fAFe7c9cmZnZeaEumk/VSLXg5+/k
fhXWCzxamWK0kZTRHAshzBGKft5LIkoSYgawu75AJlT2ZbQvllV8ju7xf5/XOpAx
+UxxxZ0OrNqw2rwrnnMcxOsVPW69jyxby8vrYN8BdEeDKd/WSB2oXN5cBiDOXH2t
I798u2VT83aIcTOqDbb3pL86RXugYtmek2WbJHiejP/1EVsIohMyS0Ti1c8hLUlg
D7htOLWqUpbxcJ6EThEj4E7StDYBR+L4On4PooOZc6/sorDVATZY8rciqHlfIAK4
rTh0S1UAe8QGwtFxYZ03BCaIIqh4BLVF4O3xtdo9YtPUAmXlfE9OIAWASpZ7nTLT
oZZAwdSklHZSsHglRdIeAr0whOstG02NrKRnZ9+RD4Gn/rDyTHCQCBkREFW7qlsT
8CqCja3rU22YA/BsyesoUlE8U+JD8coIDhFhPEsy6EWKwmos//USI0NVCO3FRysd
TtF/NaG0YK1q+dhN4PZv63MQ78DiTh3dw1gfR6lmKal+Cu2qGpj+oZZE9hVK5uh5
+gV4bvFANwltrW9b0G0KnNl5YDJHbEYmK0G0WoLHuGnLmP7Itpc=
=TQeK
-----END PGP SIGNATURE-----

Signature for apache-wicket-9.0.0.tar.gz:

     -----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEE0a6YZHC1pJw+aieyh48B+qjTVuEFAl8FnLsACgkQh48B+qjT
VuHGiw//cp5/72mWU7I/OJ/v5xz6Tc+rwJUSKEYUigIgyVIwxpjaBKlq+KjM2Fvv
9PdYh3utP1lVBDWPt8bSAsLDXKgiMR8tVvOluZ0BHPM5HIX4lk1iw1qpsCY/Xhpp
L5Z6oS80vHvhE2AdSsJK0PxMA+VmzIqSGnQoed/0EKHvNCNgFhdh2n4k1Of+C75o
Y9d5HFQYQtzmyzz6uRlgOX6WGGn7A2r5rVxa6SrNyDcBf+8WilHTh+ocI199nQ6T
LZYaXDhCY7QQ1YSGxHYB5frMgR1HxDMD8hNEjDU4ejbB276XEWnuWZkzvTsQ6Hrl
y3DxFwyUXx9tNOaYXzqGQH/F/X89kCnbupwGnHFsg5wIGox3EEaiuqRi/2dC60t7
3Jg5Tj+4/dA+Qe6mI8bFy656rO5hVefSJ1CTC+LzbRqSqk59M4DWMeyMXoS3e/lW
TZV0/3rP0nAixDzlgsB/j77KNmIa/hX+SKdJbMzbII/hP4qJAgqtwO4qntMgTuD6
WqW3Qq7Fm+2TH/bLGbKDx1qu6TVUkBGimkwFc+EzeCpMOlCYXibqKyGYQtEVijGU
o0MeybEDpzvScL6fBJiHHMiVUN2JsXTqI/wti/FTzqnxCj3SW/WHjFluJlsE5B2M
XJgr6QE3aZ6Xz4erfJ6oJRq7joxPkKaaxefJmki4jYwP0XWiNVs=
=sMh2
-----END PGP SIGNATURE-----

========================================================================

     CHANGELOG for 9.0.0:


** Bug

     * [WICKET-6742] - Stacktrace in Fragment example
     * [WICKET-6764] - RedirectToUrlException change the second question 
mark in URL from "?" to "%3F"
     * [WICKET-6768] - TagTester#createTagsByAttribute() cannot find 
hidden elements
     * [WICKET-6771] - Performance issues accessing component metadata 
while iterating
     * [WICKET-6782] - WebSocket onError/onAbort is not being called
     * [WICKET-6784] - StockQuote example does not work because the web 
service is no more available
     * [WICKET-6791] - Offload WebSocket push when initiated in Wicket 
request cycle
     * [WICKET-6793] - OOM in AsynchronousPageStore

** Improvement

     * [WICKET-5406] - Better Content Security Policy Support
     * [WICKET-6763] - SelectOptions unnecessary complicated markup
     * [WICKET-6766] - Keep page ids in tests like they where in Wicket 8
     * [WICKET-6767] - Do not log error for broken pipes in websocket 
connections
     * [WICKET-6769] - InMemoryPageStore customizable map implementation
     * [WICKET-6772] - Use StandardCharset for URL encoding and decoding
     * [WICKET-6773] - Improve performance of getting behaviors for 
components
     * [WICKET-6777] - Minor performance improvement for AjaxChannel
     * [WICKET-6778] - Clearing MarkupContainer.REMOVALS_KEY is expensive
     * [WICKET-6788] - Improve performance of markup escaping
     * [WICKET-6789] - 'base-uri' need to be added to CSPDirective enum
     * [WICKET-6792] - Packages#absolutePath keeps unnecessary current 
dir dot "."
     * [WICKET-6794] - Improve performance of UrlEncoder and UrlDecoder
     * [WICKET-6795] - Avoid needlessly splitting and joining strings in 
AjaxEventBehavior
     * [WICKET-6796] - Report the component path when failing to set a 
new object to a read only model
     * [WICKET-6797] - Use space character as a separator for event 
names in AjaxEventBehavior
     * [WICKET-6800] - Use LinkedHashSet instead of LinkedList for 
AjaxRequestHandler#listeners

** Task

     * [WICKET-6779] - Upgrade JQuery 3 to 3.5.1
     * [WICKET-6783] - Utility classes available in JDK should be 
deprecated/removed


** Bug

     * [WICKET-6715] - FileUpload class should not  implement IClusterable
     * [WICKET-6745] - CSP: inline JS in server and client time response 
filters
     * [WICKET-6746] - HttpsMapper cannot deal with resources over 
websockets
     * [WICKET-6752] - Some dependencies contain CVEs
     * [WICKET-6753] - res/modal.js using aria-labelledby where it 
should be using aria-label
     * [WICKET-6754] - Iteration stops with nested containers
     * [WICKET-6755] - MockServletContext does not decode real path
     * [WICKET-6756] - Avoid URL.getFile() when actually expecting paths.
     * [WICKET-6757] - Avoid URL.getFile during mime type detection.
     * [WICKET-6758] - NPE in AbstractWebSocketProcessor after session 
times out

** New Feature

     * [WICKET-6727] - Configurable CSP
     * [WICKET-6729] - allow adding IHeaderResponseDecorator without 
replacing all others
     * [WICKET-6730] - Global access to secure random data

** Improvement

     * [WICKET-6724] - CSP: Inline Javascript in AjaxLink
     * [WICKET-6725] - CSP: display:none in Component.renderPlaceholderTag
     * [WICKET-6726] - CSP: inline styling and js in Form submitbutton 
handling
     * [WICKET-6731] - CSP: inline JS in SubmitLink
     * [WICKET-6732] - CSP: inline JS in Link and ExternalLink
     * [WICKET-6733] - CSP: enable by default
     * [WICKET-6735] - CSP: inline styling in 
FormComponentFeedbackBorder/Indicator
     * [WICKET-6736] - CSP: Inline styling in BrowserInfoForm
     * [WICKET-6737] - CSP: violations in examples
     * [WICKET-6738] - CSP: inline styling in UploadProgressBar
     * [WICKET-6739] - CSP: inline JS in Palette
     * [WICKET-6740] - CSP: inline JS in Button
     * [WICKET-6741] - CSP: inline JS in FormComponentUpdatingBehavior
     * [WICKET-6749] - CSP: Inline styling in ExceptionErrorPage.html
     * [WICKET-6759] - Support disabling error notification for websockets
     * [WICKET-6760] - Nested Form placeholder should preserve tag name
     * [WICKET-6761] - Support multiple connections to the same 
websocket resource from a single session
     * [WICKET-6762] - Support manual initialization of websocket 
connections

** Task

     * [WICKET-6687] - Cleanup the code from attribute inline styles and 
attribute inline scripts
     * [WICKET-6747] - Document CSP in user guide and migration guide
     * [WICKET-6751] - Support creating custom page access 
synchronization strategies


** Bug

     * [WICKET-6531] - Crash in Unsafe.getObject when running on the J9 VM
     * [WICKET-6704] - JavaSerializer.serialize causes the JVM crash !
     * [WICKET-6706] - Websocket Endpoint logs exception when user 
leaves page
     * [WICKET-6707] - Property setter parameter type is assumed to be 
equal to getter return type
     * [WICKET-6708] - FormComponent should read only the GET/POST 
parameters of the request, not both
     * [WICKET-6713] - BaseWicketTester does not reset componentInPage field
     * [WICKET-6717] - Automatic-Module-Name should be valid Java identifier

** New Feature

     * [WICKET-6666] - Rewrite ModalWindow

** Improvement

     * [WICKET-3404] - Improve ModalWindow form handling
     * [WICKET-6321] - Support Integrity and Crossorigin attributes for 
JavaScriptUrlReferenceHeaderItem
     * [WICKET-6682] - Improve JavaScriptContentHeaderItem and 
JavaScriptUtils to support nonce
     * [WICKET-6701] - DownloadLink make content disposition configurable
     * [WICKET-6703] - Eliminate window.eval from wicket-ajax-jquery
     * [WICKET-6709] - Cache the value of WebRequest#isAjax()
     * [WICKET-6712] - Timezone can be determined on client side
     * [WICKET-6714] - Please add better getResource-Support for 
MockServletContext
     * [WICKET-6718] - AjaxFormChoiceComponentUpdatingBehavior uses 
"click" instead of "change"
     * [WICKET-6720] - ConcatBundleResource#getResourceStream should not 
eagerly fetch resources


** Bug

     * [WICKET-6613] - Wicket 8.1 ModalWindow autosizing problem
     * [WICKET-6676] - Quickstart application won't deploy to GlassFish
     * [WICKET-6678] - Instant : Unsupported field: YearOfEra when 
cookieUtils.cookieToDebugString() is called
     * [WICKET-6680] - JavaScriptStripper chokes on template literals 
that contain two forward slashes
     * [WICKET-6689] - ClientProperties.getTimeZone() has some issue 
when DST and UTC offsets are different
     * [WICKET-6690] - NullPointerException in 
KeyInSessionSunJceCryptFactory.<init>
     * [WICKET-6692] - Page deserialization on websocket close - 
possible performance issue
     * [WICKET-6697] - Wicket.DOM.toggleClass JS method is missing

** New Feature

     * [WICKET-6559] - Encrypted page store

** Improvement

     * [WICKET-6558] - Prevent package locks after commitRequest
     * [WICKET-6672] - Restore constructors with Wicket Duration in 9.x 
branch for easier migration
     * [WICKET-6673] - PriorityHeaderItem ordering is wrong for siblings
     * [WICKET-6675] - log4j-slf4j-impl requires version 1.7.25 of 
slf4j-api while Wicket 8.5 requires version 1.7.26
     * [WICKET-6682] - Improve JavaScriptContentHeaderItem and 
JavaScriptUtils to support nonce
     * [WICKET-6683] - triggered events should bubble
     * [WICKET-6684] - Make autolabel functionality more flexible by 
introducing a locator interface that allows to specify the component the 
wicket:for refers to
     * [WICKET-6693] - Mark FormComponent#setModelValue(String[]) as not 
being part of the public API
     * [WICKET-6695] - Add AjaxEditable*Label#shouldTrimInput()
     * [WICKET-6696] - Unify AjaxEditable*#getConverter()

** Task

     * [WICKET-6698] - Non-security critical dependency updates


** Bug

     * [WICKET-6611] - Missing check for 
IScopeAwareTextResourceProcessor when concatenating resources
     * [WICKET-6669] - CSS Resource Bundling throws exception when used 
with CssUrlReplacer
     * [WICKET-6671] - IAjaxLink should be serializable

** Improvement

     * [WICKET-6618] - Stateless pages and access to unconfigured components
     * [WICKET-6656] - JSR 303 - @NotNull validation problems
     * [WICKET-6657] - change replaceAll() to replace() when a regex is 
not used
     * [WICKET-6658] - Allow nested forms on non-<form> tag
     * [WICKET-6659] - commons-io:commons-io is used in multiple 
versions at same time
     * [WICKET-6662] - Remove legacy package org.apache.wicket.util.time 
from wicket-util
     * [WICKET-6667] - Ajax JavaScript clean-up
     * [WICKET-6668] - Sign out the existing session if a sign in 
attempt has failed

** Task

     * [WICKET-6653] - Upgrade Velocity to 2.x
     * [WICKET-6654] - Upgrade JQuery to 3.4.0
     * [WICKET-6661] - Upgrade jquery to 3.4.x
     * [WICKET-6665] - Upgrade various dependencies


** Bug

     * [WICKET-5552] - Events to close pop-up on Modal Window are not 
propagated
     * [WICKET-6568] - Wicket fails / does not encode request header 
values in AjaxCalls
     * [WICKET-6570] - Unable to read cookies containing '.' characters 
in names when using CookieUtils
     * [WICKET-6574] - JQueryResourceReference#get() (still) return V1
     * [WICKET-6584] - Import Junit Package as optional
     * [WICKET-6586] - Broken JavaScript due to fix charsetName in 
JavaScriptPackageResource
     * [WICKET-6588] - Under Tomcat (ver. >= 8.5) BaseWebSocketBehavior 
can't find session id cookie
     * [WICKET-6599] - ResponseIOException should never escape from 
WicketFilter
     * [WICKET-6602] - AuthenticatedWebApplication login Workflow broken 
with replaceSession
     * [WICKET-6603] - WicketTester.destroy sometimes hangs
     * [WICKET-6606] - data-wicket-placeholder is invalid XHTML
     * [WICKET-6607] - NoSuchMethodError when using Spring-Beans with 
constructor injection in an AjaxLink#onClick
     * [WICKET-6610] - Incorrect Javadoc: Refering to specific page in 
Application properties file is not possible
     * [WICKET-6614] - AbstractRangeValidator looks up string with the 
wrong key if locale is Turkish
     * [WICKET-6617] - Header contribution ignore <wicket:header-items/>
     * [WICKET-6623] - Consecutive Temporary Behaviors are not properly 
removed
     * [WICKET-6629] - OOM (and disk) in AsynchronousPageStore
     * [WICKET-6630] - FileUpload.writeToTempFile() fails with 
commons-fileupload 1.4
     * [WICKET-6631] - AnnotProxyFieldValueFactory does not cache beanNames
     * [WICKET-6637] - Handling exception Wicket 8
     * [WICKET-6639] - PageStoreManager$SessionEntry.clear produces 
NullPointerException
     * [WICKET-6642] - Form.findSubmittingComponent returns null instead 
of SubmitLink
     * [WICKET-6645] - Concurrent web socket response message processing 
on the client
     * [WICKET-6650] - Url decode the name of the file after 
AjaxDownload with Location == Blob
     * [WICKET-6651] - Redirecting with ResetResponseException does not 
work anymore

** New Feature

     * [WICKET-6577] - Introduce class GenericWebMarkupContainer
     * [WICKET-6578] - StatelessResourceLink
     * [WICKET-6626] - Introduce application-wide 
Component#onComponentTag listeners
     * [WICKET-6641] - Extract an interface for classes allowing to 
register feedback messages

** Improvement

     * [WICKET-6435] - WicketTester should provide assertExists and 
assertNotExists methods
     * [WICKET-6550] - Unify all metadata capable objects.
     * [WICKET-6555] - AbstractChoice subclasses code duplication
     * [WICKET-6556] - Change DataTable's HTML order
     * [WICKET-6557] - Allow meta tags to be contributed during AJAX request
     * [WICKET-6560] - Improve serialization warnings in ChainingModel
     * [WICKET-6562] - Remove from wicket-core all the deprecated classes
     * [WICKET-6563] - Rework page and data storage
     * [WICKET-6565] - ResponseIOException logged as an error in 
DefaultExceptionMapper
     * [WICKET-6575] - Ajax requests are still firing even when 
placeholder tag is written only
     * [WICKET-6576] - Support multiple dateFormats for LocalDateTextfield
     * [WICKET-6579] - Upgrade Spring to 5.x version
     * [WICKET-6580] - org.apache.wicket.util.lang.Bytes - toString()
     * [WICKET-6581] - Upgrade wicket-cdi to cdi version 2
     * [WICKET-6587] - CheckBoxSelector should accept more CheckBoxes to 
be added later
     * [WICKET-6595] - Upgrade JUnit to v5.x
     * [WICKET-6600] - Error logging in AjaxRequestHandler is too strict
     * [WICKET-6601] - Events to close pop-up on Modal Window are not 
propagated from caption bar
     * [WICKET-6605] - Allow AjaxFallbackButton to be stateless
     * [WICKET-6618] - Stateless pages and access to unconfigured components
     * [WICKET-6621] - Exceeding exception retries should return control 
back to server
     * [WICKET-6634] - Save the closeCode and message in WebSocket's 
ClosedMessage
     * [WICKET-6635] - Move 
AbstractPropertyModel#getInnermostModelOrObject() to ChainingModel
     * [WICKET-6638] - RedirectRequestHandler does not support Ajax
     * [WICKET-6640] - Add settings for customizing the ModalWindow's 
spacing, header height and overflow
     * [WICKET-6644] - AbstractPageableView can only be serialized with 
Java built-in serialization
     * [WICKET-6648] - It is impossible to initiate AjaxDownloadBehavior 
with IPartialPageRequestHandler

** Wish

     * [WICKET-6539] - Scope fix for DataTable toolbars
     * [WICKET-6569] - LambdaModel.of overload is ambiguous
     * [WICKET-6646] - Upgrade jquery to 3.3.x

** Task

     * [WICKET-6583] - Upgrade Tests to Junit5
     * [WICKET-6594] - JavaDoc of redirectToInterceptPage in Component 
urges to use redirectTo method when in a constructor
     * [WICKET-6596] - Use JQuery 3.x as default
     * [WICKET-6598] - Upgrade Objenesis to 3.x for better support of 
Java 11
     * [WICKET-6609] - Update Guice from 4.1.0 to 4.2.2
     * [WICKET-6620] - @Deprecated classes/methods need to be removed
     * [WICKET-6624] - Upgrade to commons-filupload 1.4
     * [WICKET-6647] - Upgrade asm to 7.1


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org