As the title of this post implies, we’re sunsetting our use of JSF for building Web UIs. The aging content management back-office tool has been deprecated in our recently-released LTS 2019. In fact, most of the new projects we initiated in 2018 were already based on Web UI (our new configurable content management application), so this is more to make it “officially official”.
We decided to replace JSF with a Web Components/Polymer-based application for initiating Web UI development cycles for different reasons:
- Underlying JSF frameworks are no longer maintained. It will become harder and harder to make JSF work with more modern browsers.
- We wanted to lower the entry cost from a skills perspective. Bare HTML/JS development is more accessible than the specificities of the J2EE standard.
- We wanted to go client side for a better user experience.
We’re comfortable with the deprecation of the JSF app because we’ve finished porting the essential features to Web UI (Content capture and export, content management workflows, Search, Renditions, Publishing, Discussions, Annotations, Preview) as well as many of the small details that have made the JSF app beneficial to us. We invested more than 10 years of development into the JSF app, and we fully intend to keep many of its “secret configuration tricks” for a while still, but on the other hand, we’ve been adding many new features exclusively on top of Web UI during the past few years while the JSF app’s feature scope remained frozen.
What does deprecated exactly mean?
Deprecated means that we do not recommend you to begin the development of any feature or project on top of this application since we will stop supporting it in some future versions. You should start new projects with Web UI.
When will it stop being released?
When we deprecate something, we do so with the intention that we will stop releasing it at some point in the future. In the case of the JSF application (and the related add-ons), we’ve decided we’ll keep releasing it until there is a technical problem or a major internal refactoring of the Core API/blocker for doing it - and within a reasonably transparent cost frame. There are two drivers for this:
- For our customers with a project in LTS 2016 JSF, we want them to upgrade to LTS 2019 (or 2020 in the future) - even if they keep using the JSF app. Doing so will provide numerous performance improvements, new APIs, and more.
- The JSF app supports IE 11, but it may have some troubles supporting upcoming browsers versions.
Is JSF still supported?
Nuxeo will keep supporting the JSF application, but with some limitations:
- There will be no more functional changes. Current JSF limitations will remain until the app is completely phased out.
- Only blocker bugs and security-endangering flaws will be fixed. On evergreen browsers, Nuxeo will apply a policy of “best effort”. This means that we won’t be able to find a solution to some problems because it would require leveraging inner JSF libraries that are not maintained anymore.
Each year, we’ll re-evaluate whether or not to maintain JSF support. That’s why we recommend that you should move your project to Web UI as soon as possible if you don’t have the IE 11 constraint!
From JSF to Web UI
To know more about Web UI, you can of course download it and test it, and you can also browse user documentation, watch some Nuxeo University “quick introduction” videos, or have a look at the “from JSF to Web UI” user friendly comparison page.
We have released in beta a migration tool in Nuxeo Studio that will help migrate Nuxeo Studio configured projects to Web UI, as well as aid in the translation of document forms and workflow screens to required HTML - which can save you lots of time. We will make it all public once more mature, but if you are interested, you can already ask the Nuxeo support for enabling it on your project.