Skip to content

Enable parsing of JSP 3.0 (Jakarta) based sources#8976

Merged
matthiasblaesing merged 4 commits intoapache:masterfrom
matthiasblaesing:jsp_update2
Nov 12, 2025
Merged

Enable parsing of JSP 3.0 (Jakarta) based sources#8976
matthiasblaesing merged 4 commits intoapache:masterfrom
matthiasblaesing:jsp_update2

Conversation

@matthiasblaesing
Copy link
Contributor

JSP 2.X and 3.X could both be parsed by a 3.X compatible Parser. However Jasper (the JSP implementation of Apache Tomcat) has ties to the API and the parser thus has to match the target runtime environment.

To solve this problem both a JSP 2.X (javax-Namespace) and a 3.X parser are built and switch based on the declared specification of the project.

The servletjspapi module was enhanced to carry both the javax. and the jakarta. based API classes. These don't clash - just many (all?) implementations decided to not support deployment on the same classpath.

Closes: #8543

@matthiasblaesing matthiasblaesing added this to the NB29 milestone Nov 1, 2025
@matthiasblaesing matthiasblaesing added Java EE/Jakarta EE [ci] enable enterprise job enterprise [ci] enable enterprise job ci:dev-build [ci] produce a dev-build zip artifact (7 days expiration, see link on workflow summary page) labels Nov 1, 2025
@matthiasblaesing matthiasblaesing force-pushed the jsp_update2 branch 2 times, most recently from 69810c7 to fc6d9d9 Compare November 2, 2025 13:18
Copy link
Member

@mbien mbien left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

left a few comments/questions while looking through it, nothing important though

@matthiasblaesing
Copy link
Contributor Author

@mbien thanks for commenting. I pushed an update which address most of the comments. I did not change the implementation of the tag library info holders. The problem is, that the structure is circular (TagInfo -> TagLibraryInfo -> TagInfo and TagInfo -> TagLibraryInfo -> TagFileInfo -> TagInfo), that you be changed, but this "API" is friend-only and I have the intention to break it again ;-)

Copy link
Member

@mbien mbien left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good as far as I can tell. Seems to work as intended, although I did only basic testing.

JSP 2.X and 3.X could both be parsed by a 3.X compatible Parser. However
Jasper (the JSP implementation of Apache Tomcat) has ties to the API and
the parser thus has to match the target runtime environment.

To solve this problem both a JSP 2.X (javax-Namespace) and a 3.X parser
are built and switch based on the declared specification of the
project.

The servletjspapi module was enhanced to carry both the javax. and the
jakarta. based API classes. These don't clash - just many (all?)
implementations decided to not support deployment on the same classpath.

Closes: apache#8543
@matthiasblaesing
Copy link
Contributor Author

@mbien thanks for having a look, @johny65 thanks for testing. Lets get this in.

@matthiasblaesing matthiasblaesing merged commit 9950295 into apache:master Nov 12, 2025
30 checks passed
@matthiasblaesing matthiasblaesing deleted the jsp_update2 branch November 27, 2025 18:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:dev-build [ci] produce a dev-build zip artifact (7 days expiration, see link on workflow summary page) enterprise [ci] enable enterprise job Java EE/Jakarta EE [ci] enable enterprise job

Projects

Development

Successfully merging this pull request may close these issues.

Support Jakarta Standard Tag Library 3.0 URIs in JSPs

2 participants