Test every packaged taglib binding through real JSP engines - #179
Merged
Merged
Conversation
This was referenced Sep 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #120. Batch 03 in #169, following the merged OSGi #174 and XML 1.1 #168 changes.
The descriptor/reflection tests did not execute a JSP compiler. Normal
mvn clean verifynow deploys the packaged core and each adapter into isolated Tomcat/Jasper 9.0.122 and 10.1.60 test JVMs, discovers the packaged basic/advanced TLD bindings, compiles JSPs, and compares complete HTTP response bytes with the String/Writer facade contracts. Every tag also must reject bodies and missing required attributes through Jasper translation diagnostics.The current surface has 72 bindings per adapter: 1,152 exact-byte checks and 144 translation rejections across both engines, covering JSON/XML 1.1, hostile markup/controls/Unicode, buffer boundaries, null/missing values, and EL coercion. Counts follow the packaged TLDs. Engine dependencies remain in the build plugin realm and forked JVM; published APIs, runtime dependencies, Java 8, existing unit/JPMS/OSGi/parity tests and required browser coverage remain intact. The fixture runs without Docker or install. Failure sources/work directories are retained in CI artifacts.
Tomcat support and September advisories were reviewed against Apache's current primary sources; both maintained versions include those fixes. The older API/runtime consumer fixtures remain separate. See
compatibility/jsp-engine/README.mdfor the boundaries and update policy.Validation: local JDK 17
clean verifypassed 2,178 unit tests, eight existing integration tests, both real engines, API/signature checks, and all 15 package guards. Version/parity checks, actionlint and diff checks passed. CI supplies the remaining Java 8/11/17/21/25 packaged runs and required Docker/browser checks.