Investigate forking Spring Web Flow for IdP 5

Description

For a V5 based on a Java 17 + Jakarta EE 9 platform, we'd need an updated version of Spring Web Flow that assumes, for example, Servlet 5.

Scott has a SWF ticket asking if this will be forthcoming: https://jira.spring.io/browse/SWF-1750

If not (and given the level of activity there, it's hard to have any confidence that there will be a new version) then we will need to build a compatible fork.

Environment

None

Activity

Show:

Ian YoungJuly 14, 2022 at 1:49 PM

Our initial pull request for Spring Web Flow has now been merged. We expect to see an initial milestone of SWF (3.0.0-M1) later this month (the initial target for that was 2022-07-20).

There may be more to do in terms of maintaining our fork for a while and potentially submitting other PRs through that mechanism, but I think it’s reasonable to close this specific issue, now.

Ian YoungMay 10, 2022 at 1:25 PM

Mail sent to Rossen Stoyanchev, CC: Scott and Juergen Hoeller.

Scott CantorMay 10, 2022 at 12:12 PM

Pending a more thorough review, my impression is that deployers probably don’t have a lot of exposure to the SWF package names, but the XML schema for flow definitions would be somewhat disruptive to change. Still might be warranted.

Ian YoungMay 10, 2022 at 9:04 AM

The fork is now fully functional, with the exception of the spring-faces module which I have removed. I have integrated the resulting artifacts with the v5 branch of the IdP and again things seem to be compiling and running tests. More work needed to verify that, and that may require additional work here. In addition, if we’re going to adopt this fork in some way, I need to review what I’ve done in a bit more depth to see if it’s comprehensible.

The next thing to do, though, is to write to the Spring folks to get a definitive yes/no as to whether Spring Web Flow is officially going to be EOL. If they are prepared to keep the product maintained we can offer to work with them to pull in the changes required, which would probably be preferable to ending up maintaining something of our own (with reduced functionality and probably with a Shibboleth-specific groupId if not package namespace).

Ian YoungMay 5, 2022 at 2:26 PM

My fork of spring-webflow now uses the latest version of Gradle and uses the new publication system. Everything compiles and builds under Java 17, and I’ve fixed the terminal deprecations that showed up (new Integer(2) becoming Integer.valueOf(2)).

I’m moving on to adopting the new dependencies, starting with the current Spring Framework 6 milestone.

An immediate problem is that Spring Web Flow includes some classes that support Tiles 3 views via the Spring Framework integration for that technology. Tiles is now defunct, so the Spring Framework classes seem to have been pulled with no prior deprecation:

https://github.com/spring-projects/spring-framework/issues/27423

I don’t think they had any choice in this, as Tiles isn’t going to get an upgrade for the new EE namespace. I’m also pretty sure we don’t use this stuff so my plan is just to rip it out and see what happens.

Done

Details

Assignee

Reporter

Components

Fix versions

Created December 23, 2021 at 1:40 PM
Updated September 13, 2023 at 2:02 PM
Resolved July 14, 2022 at 1:52 PM

Flag notifications