Upgrade 3rd Party Libraries
Upgrade to Apache Wicket 7
Bloomreach Experience Manager version 13 uses Apache Wicket version 7.10. All Bloomreach Experience Manager developers of plugins, add-ons, and extensions using Wicket must check and most likely update their code. For the changes in Wicket 7, please check the release notes: https://cwiki.apache.org/confluence/display/WICKET/Migration+to+Wicket+7.0.
No functional changes have been made in the Bloomreach Experience Manager code. Usage of deprecated code that has been removed in Wicket 7.10.0 has been handled. There is one exception: the code for the document and node trees in the CMS and Console. The deprecated code has been moved to an org.wicketstuff project which is added as an extra dependency.
Notable changes in Wicket
In Wicket 7, the HTML markup for disabled links changed. Instead of rendering a <span> and <em> tag, now an <a> tag without href attribute is rendered. Check the styling of these elements.
Also, the markup of RadioChoice and CheckBoxMultipleChoice has changed: the previously added <br> tag is not there anymore. This, too, may affect your styling.
A feature that developers can benefit from is the concept of component queuing. This is the decoupling of HTML markup hierarchy from the hierarchy in Java. For an example, see how the class org.hippoecm.frontend.plugins.cms.admin.users.SetPasswordPanel was changed. The following lines:
have been replaced by:
Any later changes in the hierarchy, for example wrapping a component in an extra markup container, only require queueing the new container in the Java code. No need to match the hierarchy change in the markup anymore. Reference guide: https://ci.apache.org/projects/wicket/guide/7.x/single.html#_component_queueing.
Notable changes in Bloomreach Experience Manager
Many classes and methods that were already deprecated in previous Bloomreach Experience Manager versions have been removed.
For example: if you used the already deprecated org.hippoecm.frontend.editor.plugins.field.TransparentFragment you have to find a replacement. See the changes we made to the org.hippoecm.frontend.editor.plugins.field.NodeFieldPlugin in the CMS and org.onehippo.forge.contentblocks.ContentBlocksFieldPlugin in the Content Blocks plugin as an example.
Upgrade to Spring 5
Bloomreach Experience Manager version 13 uses Spring 5.1. If you make use of Spring in your project code, you may need to upgrade that code accordingly. There is upgrade documentation for Spring 5, which hopefully puts you on the right foot for doing so.
Upgrade to Guava 27
Bloomreach Experience Manager version 13 uses version 27.0 of Google's Guava library. If you make use of Guava in your project code, you may need to upgrade that code accordingly. Guava provides a change log per release, which can help you adjusting your project code.