| I"CD<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.0.0-M1!</p> |
| |
| <p>Apache Wicket is an open source Java component oriented web application |
| framework that powers thousands of web applications and web sites for |
| governments, stores, universities, cities, banks, email providers, and |
| more. You can find more about Apache Wicket at https://wicket.apache.org</p> |
| |
| <p>This release marks the first milestone of the major release of Wicket 8. We |
| use semantic versioning for the development of Wicket, and as such no |
| API breaks are present breaks are present in this release compared to |
| 8.0.0.</p> |
| |
| <h2 id="new-and-noteworthy">New and noteworthy</h2> |
| |
| <p><strong>Beside a lot of changes which were implemented in Apache Wicket 7, the new |
| milestone of the major version of Apache Wicket 8 provides some |
| great features.</strong></p> |
| |
| <ul> |
| <li> |
| <p>Lambda support for Models and Components (See “Lambda Expressions” chapter in the user guide)</p> |
| </li> |
| <li> |
| <p>NestedStringResourceLoader to replace nested keys within property files</p> |
| </li> |
| <li> |
| <p>A lot of bugfixes and improvements</p> |
| </li> |
| </ul> |
| |
| <p><strong>Features which were almost ready and will be available with 8.0.0-M2</strong></p> |
| |
| <ul> |
| <li>PushBuilder API integration [WICKET-6194] |
| (See “Wicket HTTP/2 Support (Experimental)” chapter in the user guide)</li> |
| </ul> |
| |
| <p><strong>Features which were set to “won’t fix”</strong></p> |
| |
| <ul> |
| <li>Microservices support (decoupled component usage) [WICKET-6112]</li> |
| </ul> |
| |
| <h2 id="using-this-release">Using this release</h2> |
| |
| <p>With Apache Maven update your dependency to (and don’t forget to |
| update any other dependencies on Wicket projects to the same version):</p> |
| |
| <figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt"><dependency></span> |
| <span class="nt"><groupId></span>org.apache.wicket<span class="nt"></groupId></span> |
| <span class="nt"><artifactId></span>wicket-core<span class="nt"></artifactId></span> |
| <span class="nt"><version></span>8.0.0-M1<span class="nt"></version></span> |
| <span class="nt"></dependency></span></code></pre></figure> |
| |
| <p>Or download and build the distribution yourself, or use our |
| convenience binary package</p> |
| |
| <ul> |
| <li>Source: <a href="http://www.apache.org/dyn/closer.cgi/wicket/8.0.0-M1">8.0.0-M1 source download</a></li> |
| <li>Binary: <a href="http://www.apache.org/dyn/closer.cgi/wicket/8.0.0-M1/binaries">8.0.0-M1 binary download</a></li> |
| </ul> |
| |
| <h2 id="upgrading-from-earlier-versions">Upgrading from earlier versions</h2> |
| |
| <p>If you upgrade from 8.y.z this release is a drop in replacement. If |
| you come from a version prior to 8.0.0, please read our Wicket 7 |
| migration guide found at</p> |
| |
| <ul> |
| <li><a href="http://s.apache.org/wicket8migration">http://s.apache.org/wicket8migration</a></li> |
| </ul> |
| |
| <p>Have fun!</p> |
| |
| <p>— The Wicket team</p> |
| |
| <p>================================</p> |
| |
| <p>The signatures for the source release artefacts:</p> |
| |
| <p>Signature for apache-wicket-8.0.0-M1.zip:</p> |
| |
| <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-----BEGIN PGP SIGNATURE----- |
| Comment: GPGTools - https://gpgtools.org |
| |
| iEYEABECAAYFAld5Gc8ACgkQJBX8W/xy/UV/wwCfa+/9cOB0KEOHB6vT41/ISIP/ |
| udAAoNM46vtM+T2RYU5uSV08fWjzUjiV |
| =4pKN |
| -----END PGP SIGNATURE----- |
| </code></pre></div></div> |
| |
| <p>Signature for apache-wicket-8.0.0-M1.tar.gz:</p> |
| |
| <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-----BEGIN PGP SIGNATURE----- |
| Comment: GPGTools - https://gpgtools.org |
| |
| iEYEABECAAYFAld5Gc8ACgkQJBX8W/xy/UX5ngCgvckuOYDq+x6yVgTdDrhGskEz |
| cTwAn0jMYcafuw0aHDATKwbTv8U3uZX1 |
| =9v6u |
| -----END PGP SIGNATURE----- |
| </code></pre></div></div> |
| |
| <p>================================</p> |
| |
| <h3 id="this-release">This Release</h3> |
| |
| <h4 id="changelog-for-800-m1">CHANGELOG for 8.0.0-M1:</h4> |
| |
| <h5 id="bug">Bug</h5> |
| |
| <ul> |
| <li>[WICKET-5836] - Update the version of clirr-maven-plugin (current 2.6.1)</li> |
| <li>[WICKET-5993] - AjaxButton - image is not shown even though type=”image” is in html-template</li> |
| <li>[WICKET-5994] - Mounted TemplateResourceReference throws org.apache.wicket.WicketRuntimeException when https is used</li> |
| <li>[WICKET-5995] - “Range” header parsing is broken</li> |
| <li>[WICKET-5996] - Mounted packages throw IllegalArgumentException when visiting base package url.</li> |
| <li>[WICKET-5997] - Compatibility problem with Websphere liberty profile</li> |
| <li>[WICKET-5999] - AjaxFormValidatingBehavior not updates initially hidden feedback component</li> |
| <li>[WICKET-6001] - Exception raised while refreshing a page with queued components missing in the markup</li> |
| <li>[WICKET-6002] - FileUploadField makes form-component models become null on submit</li> |
| <li>[WICKET-6005] - WicketRuntimeException from AjaxPagingNavigator#onAjaxEvent</li> |
| <li>[WICKET-6006] - ModalWindow.closeCurrent() causes 414 status error</li> |
| <li>[WICKET-6007] - PageableListView constructor argument and set/getItemsPerPage are inconsistent</li> |
| <li>[WICKET-6010] - Downloading filenames containing ‘,’ or ‘;’ gives problems</li> |
| <li>[WICKET-6011] - NPE in case DebugBar is added to AjaxRequestTarget</li> |
| <li>[WICKET-6013] - CLONE AjaxFallbackOrderByBorder wicketOrder[Up,Down,None] class missing in 7.1.0</li> |
| <li>[WICKET-6014] - TransparentWebMarkupContainer breaks OnChangeAjaxBehavior for Select2</li> |
| <li>[WICKET-6017] - Tests fail when executed with not expected locale</li> |
| <li>[WICKET-6018] - TransparentWebMarkupContainer is not really “transparent”</li> |
| <li>[WICKET-6020] - GuiceFieldValueFactory returns the NULL_SENTINEL from the cache</li> |
| <li>[WICKET-6021] - ConcurrentModificationException in MarkupContainer#iterator#next</li> |
| <li>[WICKET-6024] - Possible issue with Border and LoadableDetachableModel in 7.1.0</li> |
| <li>[WICKET-6026] - Problem in detecting child id on nested <wicket:enclosure></wicket:enclosure></li> |
| <li>[WICKET-6027] - Nested TransparentWebMarkupContainer, markup of inner component not found</li> |
| <li>[WICKET-6028] - Detach called on enclosure component while it had a non-empty queue</li> |
| <li>[WICKET-6031] - NPE in PackageResourceReference#getResource() when there is no request</li> |
| <li>[WICKET-6032] - Wicket.Ajax.done() called twice on redirect</li> |
| <li>[WICKET-6036] - Failure to process markup with nested tags inside a Label</li> |
| <li>[WICKET-6037] - ModalWindow vulnerable to Javascript injection through title model</li> |
| <li>[WICKET-6041] - Nested forms / parent FormComponents do not reflect updated model when nested form submitted</li> |
| <li>[WICKET-6043] - Cannot set wicket:enclosure on queued component in ListView</li> |
| <li>[WICKET-6044] - AjaxFormChoiceComponentUpdatingBehavior: Duplicate input values according to WICKET-5948</li> |
| <li>[WICKET-6045] - ListView NullPointerException when viewSize is set explicitly</li> |
| <li>[WICKET-6048] - German Translation for EqualInputValidator wrong</li> |
| <li>[WICKET-6050] - Wicket Ajax (Wicket.From.serializeElement) causes 400 bad request</li> |
| <li>[WICKET-6052] - CSS header contribution overlap</li> |
| <li>[WICKET-6058] - Error in calculation of byte ranges</li> |
| <li>[WICKET-6059] - TransparentWebMarkupContainer can not resolve autocomponents in its parent</li> |
| <li>[WICKET-6062] - MockHttpSession should renew its id after invalidation</li> |
| <li>[WICKET-6063] - Add support for WebSocketRequest#getUrl() and other properties which are available in the handshake request</li> |
| <li>[WICKET-6064] - WebSocketResponse.sendRedirect could be supported with <ajax-response><redirect>...</></></redirect></ajax-response></li> |
| <li>[WICKET-6065] - Calling http://examples7x.wicket.apache.org/resourceaggregation/ generate Internal error</li> |
| <li>[WICKET-6068] - The key RangeValidator.exact is not mapped in Application_de.properties</li> |
| <li>[WICKET-6069] - OnChangeAjaxBehavior does not work if the url contains a request parameter with same name as wicket id</li> |
| <li>[WICKET-6076] - Problem with queued components and enclosure</li> |
| <li>[WICKET-6078] - Problem with queued components and auto linking</li> |
| <li>[WICKET-6079] - Problem with queued components and label</li> |
| <li>[WICKET-6080] - Encapsulation of 3 enclosures leads to WicketRuntimeException</li> |
| <li>[WICKET-6084] - ajax request failure handler receives incorrect arguments</li> |
| <li>[WICKET-6085] - AjaxTimerBehavior with failure handler cause memory leak in browser</li> |
| <li>[WICKET-6087] - Invalid AbstractRequestWrapperFactory.needsWrapper method scope: package - cannot create a custom implementation</li> |
| <li>[WICKET-6088] - Problem with queued components and setting the model</li> |
| <li>[WICKET-6091] - NPE in RequestLoggerRequestCycleListener when using native-websockets</li> |
| <li>[WICKET-6094] - Find adequate ResourceReference with mount parameters</li> |
| <li>[WICKET-6097] - JsonRequestLogger –> JsonMappingException –> StackOverflowError Infinite recursion</li> |
| <li>[WICKET-6102] - StackoverflowError related to enclosures</li> |
| <li>[WICKET-6108] - Closing a ModalWindow with jQuery 2.2.0 produces javascript errors</li> |
| <li>[WICKET-6109] - Enclosure - “IllegalArgumentException: Argument ‘markup’ may not be null” after app restart</li> |
| <li>[WICKET-6111] - Empty redirect on redirect to home page if home page already shown</li> |
| <li>[WICKET-6116] - Exception ‘A child already exists’ when backing to a page with some markups in a Border</li> |
| <li>[WICKET-6129] - IRequestCycleListener not notified of all executed handlers</li> |
| <li>[WICKET-6131] - IndexOutOfBoundsException in org.apache.wicket.core. request.mapper.CryptoMapper.decryptEntireUrl</li> |
| <li>[WICKET-6133] - Failing test SpringBeanWithGenericsTest in 7.3.0.0 SNAPSHOT</li> |
| <li>[WICKET-6134] - NPE when using ListView with missing markup</li> |
| <li>[WICKET-6135] - There is no good way to get POST body content</li> |
| <li>[WICKET-6139] - AjaxButton forces rendering type=”button”</li> |
| <li>[WICKET-6141] - Runtime Exception rendering ComponentTag with RelativePathPrefixHandler</li> |
| <li>[WICKET-6151] - DebugBar/PageSizeDebugPanel throws NullPointerException (need wrapper exception with more detail)</li> |
| <li>[WICKET-6154] - Performance bottleneck when using KeyInSessionSunJceCryptFactory</li> |
| <li>[WICKET-6155] - Newline in ModalWindow title</li> |
| <li>[WICKET-6157] - WicketTester and application servers are destroying app differently</li> |
| <li>[WICKET-6160] - Missing type for MediaComponent causing iOS devices not to be able to play videos</li> |
| <li>[WICKET-6161] - SecuritySettings.setEnforceMounts() should be applicable for all kind of pages</li> |
| <li>[WICKET-6162] - Reload leads to unexpected RuntimeException ‘Unable to find component with id’</li> |
| <li>[WICKET-6169] - NullPointerException accessing AbstractRequestLogger.getLiveSessions</li> |
| <li>[WICKET-6170] - Wrong requestmapper used for cache decorated resources</li> |
| <li>[WICKET-6171] - Problem with nested dialog with multipart form</li> |
| <li>[WICKET-6172] - Inconsistent results from getTag[s]ByWicketId</li> |
| <li>[WICKET-6173] - WICKET-6172 makes TagTester.createTagsByAttribute stop working</li> |
| <li>[WICKET-6174] - Browser/Client info navigatorJavaEnabled property returns undefined</li> |
| <li>[WICKET-6175] - Aautocomplete suggestion window is not closing in IE11</li> |
| <li>[WICKET-6180] - JMX Initializer’s usage of CGLIB makes it impossible to upgrade to CGLIB 3.2.3</li> |
| <li>[WICKET-6185] - Border body not reachable for visitors</li> |
| <li>[WICKET-6187] - Enclosures rendered twice in derived component</li> |
| <li>[WICKET-6191] - AjaxTimerBehavior will stop after ajax update of component it is attached to</li> |
| </ul> |
| |
| <h5 id="improvement">Improvement</h5> |
| |
| <ul> |
| <li>[WICKET-5866] - Reconsider generics of IConverterLocator#getConverter()</li> |
| <li>[WICKET-5920] - roll a version of ListDataProvider implementing ISortableDetachable model</li> |
| <li>[WICKET-5950] - Model and GenericBaseModel could both implement IObjectClassAwareModel</li> |
| <li>[WICKET-5969] - Please give us access to PageTable.index pageId queue</li> |
| <li>[WICKET-5986] - NumberTextField<N> should use Models for minimum, maximum and step</N></li> |
| <li>[WICKET-6015] - AjaxFallbackOrderByBorder/Link should support updateAjaxAttributes() idiom</li> |
| <li>[WICKET-6019] - Remove ‘final’ modifier for Localizer#getStringIgnoreSettings() methods</li> |
| <li>[WICKET-6023] - small tweak for component queuing for the AbstractRepeater</li> |
| <li>[WICKET-6029] - Make Border’s methods consistent with commit f14e03f</li> |
| <li>[WICKET-6046] - Wicket Quickstart Example Application shows deployment memory leak in Tomcat</li> |
| <li>[WICKET-6051] - Improve performance of CssUrlReplacer</li> |
| <li>[WICKET-6053] - Allow to reuse the same application instance in several tests</li> |
| <li>[WICKET-6054] - Provide a factory method for the WebSocketResponse & WebSocketRequest</li> |
| <li>[WICKET-6060] - Deprecate org.apache.wicket.util.IProvider</li> |
| <li>[WICKET-6061] - Improved PackageResource#getCacheKey</li> |
| <li>[WICKET-6070] - Provide factory methods for WizardButtonBar buttons</li> |
| <li>[WICKET-6072] - Improve the quickstart to make it easier to use JSR-356 web sockets</li> |
| <li>[WICKET-6081] - Add “assertNotRequired” to the WicketTester</li> |
| <li>[WICKET-6098] - Add logging to HttpSessionDataStore</li> |
| <li>[WICKET-6100] - Upgrade jQuery to 1.12.3/2.2.3</li> |
| <li>[WICKET-6103] - Synchronization on JSR 356 connection</li> |
| <li>[WICKET-6104] - Rework AjaxFallback** components to use java.util.Optional for their #onEvent methods</li> |
| <li>[WICKET-6106] - Propagate JSR 356 WebSocket connection error to a page</li> |
| <li>[WICKET-6107] - Broadcast onClose event regardless of the JSR 356 WebSocket connection closed state</li> |
| <li>[WICKET-6110] - Add a message to StalePageException for better debugging</li> |
| <li>[WICKET-6113] - Improve ResourceStreamResource API by passing Attributes to #getResourceStream()</li> |
| <li>[WICKET-6114] - FormComponentPanel#clearInput() should delegate to its FormComponent children</li> |
| <li>[WICKET-6115] - Provide default implementation of IDetachable#detach() in IModel</li> |
| <li>[WICKET-6117] - Make IGenericComponent a mixin/trait so it could be easily reused in custom components</li> |
| <li>[WICKET-6118] - Deprecate org.apache.wicket.util.IContextProvider</li> |
| <li>[WICKET-6122] - Add .map to the list of allowed file extensions in SecurePackageResourceGuard</li> |
| <li>[WICKET-6123] - Remove ‘abstract’ from ChainingModel</li> |
| <li>[WICKET-6127] - Add metrics for request duration</li> |
| <li>[WICKET-6128] - Add metrics for currently active sessions</li> |
| <li>[WICKET-6130] - Make it easier to override parts of SystemMapper</li> |
| <li>[WICKET-6132] - AbstractChoice#getChoices() should be final</li> |
| <li>[WICKET-6137] - ListenerInterfaceRequestHandler simplification</li> |
| <li>[WICKET-6140] - Ajax should prevent updating components which are not on page</li> |
| <li>[WICKET-6144] - Wicket-ajax parameter / header may be used to bypass proper exception handling</li> |
| <li>[WICKET-6145] - Enable DeltaManager to replicate PageTable in Sessions</li> |
| <li>[WICKET-6146] - Provide default implementation of IRequestHandler#detach()</li> |
| <li>[WICKET-6152] - Allow to add more than one WebSocketBehavior in the component tree</li> |
| <li>[WICKET-6153] - WicketTester’s MockHttpServletRequest doesn’t expose setLocale(aLocale) method</li> |
| <li>[WICKET-6178] - MetaDataHeaderItem # generateString() should return specials characters escaped like StringEscapeUtils.escapeHtml(s) does</li> |
| <li>[WICKET-6182] - Remove recreateBookmarkablePagesAfterExpiry check in Component#createRequestHandler</li> |
| <li>[WICKET-6183] - Improve stateless support for AJAX</li> |
| <li>[WICKET-6184] - Remove form argument from AjaxButton and AjaxLink callbacks</li> |
| <li>[WICKET-6188] - Use DynamicJQueryResourceReference by default</li> |
| <li>[WICKET-6189] - Return Optional<T> from RequestCycle.find(Class<T>)</T></T></li> |
| </ul> |
| |
| <h5 id="new-feature">New Feature</h5> |
| |
| <ul> |
| <li>[WICKET-5991] - Introduce models which use Java 8 supplier/consumer</li> |
| <li>[WICKET-6025] - Read resource files with Java’s NIO API</li> |
| <li>[WICKET-6042] - Implementation of ExternalImage component</li> |
| <li>[WICKET-6120] - Wicket Metrics</li> |
| <li>[WICKET-6121] - use lambdas for columns</li> |
| <li>[WICKET-6193] - NestedStringResourceLoader - replaces nested keys within property files</li> |
| </ul> |
| |
| <h5 id="tasks">Tasks</h5> |
| |
| <ul> |
| <li>[WICKET-5990] - Upgrade Jetty usage in Wicket tests/quickstart to Jetty 9.3.x</li> |
| <li>[WICKET-6004] - Wicket 8 cleanup - TODOs and deprecated methods</li> |
| <li>[WICKET-6057] - Upgrade commons-collections to 4.1</li> |
| <li>[WICKET-6071] - Upgrade jQuery to 1.12 / 2.2.0</li> |
| <li>[WICKET-6119] - Deprecate HtmlDocumentValidator</li> |
| <li>[WICKET-6147] - Remove the support for the deprecated /wicket.properties and /META-INF/wicket/**.properties</li> |
| <li>[WICKET-6150] - Deprecate org.apache.wicket.util.crypt.Base64 and use java.util.Base64</li> |
| </ul> |
| |
| <h5 id="wish">Wish</h5> |
| |
| <ul> |
| <li>[WICKET-6067] - Provide an Ajax Behavior that prevents form submit on ENTER</li> |
| <li>[WICKET-6095] - Multiline headers in DataTable</li> |
| </ul> |
| :ET |