|
From: Dannes W. <no...@gi...> - 2026-07-16 12:30:45
|
Branch: refs/heads/develop Home: https://github.com/eXist-db/exist Commit: 0635f5984869c86c554b3da729289ca52d3b0bf6 https://github.com/eXist-db/exist/commit/0635f5984869c86c554b3da729289ca52d3b0bf6 Author: Juri Leino <gi...@li...> Date: 2026-07-05 (Sun, 05 Jul 2026) Changed paths: M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Convert.java M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Delivery.java M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Options.java M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Transform.java A exist-core/src/test/xquery/xquery3/transform/fnTransform5052.xqm A exist-core/src/test/xquery/xquery3/transform/fnTransform6065.xqm Log Message: ----------- [bugfix] Forward port PR #6544: fix XSLT imports and document builder isolation Fixes #5052 and #6065 by porting key changes from develop-6.x.x: 1. Document builder isolation (Delivery.java): - Always use fresh MemTreeBuilder for transform results - Prevents corruption when multiple fn:transform calls occur in same context - Fixes issue #6065 where concurrent transforms corrupted each other's output 2. Persistent node handling (Convert.java): - Handle persistent NodeProxy nodes by dereferencing to underlying DOM - Enables passing database-stored nodes as stylesheet parameters - Checks Document interface instead of specific implementation 3. Enhanced stylesheet location resolution (Options.java): - Return Tuple2<String, Source> to track actual resolved location - Sets SystemId on DOMSource for proper relative URI resolution - Fallback resolution for relative URIs using RFC 3986 + database resolution 4. Runtime URI resolution (Transform.java): - Install runtime URI resolver on XSLT controller - Enables fn:document() calls within stylesheets to resolve against database - Integrates with existing URIResolution.CompileTimeURIResolver - Adds helper methods: newFnTransformURIResolver(), databaseBaseURI(), isDatabaseURI() - Supports xsl:include/xsl:import resolution for stylesheets stored in database 5. Build configuration: - Downgrade IzPack to 5.2.3 (5.2.4+ requires Java 9+) Test coverage: - fnTransform5052.xqm: Tests relative xsl:include/import and stylesheet-location resolution - fnTransform6065.xqm: Tests persistent nodes as stylesheet parameters Co-Authored-By: Claude Haiku 4.5 <no...@an...> Commit: 9ff0e6e04cc302a7a250fe20ee280f03dec5239e https://github.com/eXist-db/exist/commit/9ff0e6e04cc302a7a250fe20ee280f03dec5239e Author: Juri Leino <gi...@li...> Date: 2026-07-05 (Sun, 05 Jul 2026) Changed paths: M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Options.java Log Message: ----------- Fix: Don't over-resolve database URIs in stylesheet base URI handling Database URIs (paths starting with /, xmldb:, or exist://) should not be resolved against the query context base URI, as they are already absolute database paths. This was preventing the compile-time resolver from correctly using the base URI to resolve relative xsl:include/xsl:import hrefs in stylesheets stored in the database. Fixes test failures in fnTransform5052.xqm where relative stylesheet locations were not being resolved correctly. Co-Authored-By: Claude Haiku 4.5 <no...@an...> Commit: 9312dc4cd4bd9af15a2232d3c301ef3f746c3c40 https://github.com/eXist-db/exist/commit/9312dc4cd4bd9af15a2232d3c301ef3f746c3c40 Author: Juri Leino <gi...@li...> Date: 2026-07-05 (Sun, 05 Jul 2026) Changed paths: M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Options.java Log Message: ----------- Fix: Handle null document URI in stylesheet location resolution When the owner document's URI is null, use the location parameter as the fallback for the actual location. This ensures the SystemId is always set correctly for the compile-time resolver to use when resolving relative xsl:include/xsl:import hrefs. Fixes remaining test failures where relative stylesheet paths were not being resolved. Co-Authored-By: Claude Haiku 4.5 <no...@an...> Commit: b791e72e5d41020a3675b59abbbdc1729fa5a311 https://github.com/eXist-db/exist/commit/b791e72e5d41020a3675b59abbbdc1729fa5a311 Author: Juri Leino <gi...@li...> Date: 2026-07-05 (Sun, 05 Jul 2026) Changed paths: M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Options.java M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/URIResolution.java Log Message: ----------- [bugfix] Fix XSLT stylesheet resolution for relative xsl:include/xsl:import paths Fixes issues #5052 and #6065 by ensuring correct base URI handling for stylesheet resolution: 1. URIResolution.resolveURI: Treat database paths (starting with "/" or "xmldb:") as absolute URIs for relative URI resolution. Previously, paths without a scheme were incorrectly treated as relative, preventing proper resolution of xsl:include/xsl:import hrefs. 2. URIResolution.resolveDocument: Set SystemId on all returned DOMSource objects so that nested includes/imports are resolved with the correct base URI. This ensures xsl:include statements in included stylesheets can correctly resolve their own relative paths. 3. Options.resolvePossibleStylesheetLocation: Simplified to use the resolved location parameter directly as the SystemId, ensuring consistent base URI setup for Saxon's compile-time URI resolver. All fnTransform5052 and fnTransform6065 tests now pass. Co-Authored-By: Claude Haiku 4.5 <no...@an...> Commit: 0b9170fe4cf37c2136c62fd548c4b7a88b3ed81b https://github.com/eXist-db/exist/commit/0b9170fe4cf37c2136c62fd548c4b7a88b3ed81b Author: Juri Leino <gi...@li...> Date: 2026-07-12 (Sun, 12 Jul 2026) Changed paths: M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Options.java Log Message: ----------- [refactor] Use instanceof pattern matching in stylesheet location resolution Co-Authored-By: Claude Opus 4.8 (1M context) <no...@an...> Commit: f200c0e06a2168fb9d63d990dcc520144e4aac63 https://github.com/eXist-db/exist/commit/f200c0e06a2168fb9d63d990dcc520144e4aac63 Author: Juri Leino <gi...@li...> Date: 2026-07-12 (Sun, 12 Jul 2026) Changed paths: M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/URIResolution.java M exist-core/src/test/java/org/exist/xquery/functions/fn/transform/FunTransformTest.java Log Message: ----------- [bugfix] Do not double the xmldb: prefix when resolving against an xmldb: base XmldbURI#getURI strips the xmldb: prefix for xmldb:exist:// URIs but keeps it for the short xmldb:/db/... form, so unconditionally prepending it yielded xmldb:xmldb:/db/... A resolved stylesheet is now its own system id, so this was reached by any relative xsl:import within an imported stylesheet. Co-Authored-By: Claude Opus 4.8 (1M context) <no...@an...> Commit: 0ddf7a6e6e303174777f25a31054c21287a06e4b https://github.com/eXist-db/exist/commit/0ddf7a6e6e303174777f25a31054c21287a06e4b Author: Juri Leino <gi...@li...> Date: 2026-07-12 (Sun, 12 Jul 2026) Changed paths: M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/URIResolution.java M exist-core/src/test/java/org/exist/xquery/functions/fn/transform/FunTransformTest.java Log Message: ----------- [bugfix] Treat an extensionless base as a collection when resolving a stylesheet RFC 3986 discards the last segment of the base, which is correct for a document but not for a collection: resolving style.xsl against the collection /db/apps/app yielded /db/apps/style.xsl. A collection and a document are not distinguishable by path alone, so the absence of an extension in the last segment is taken to mean a collection. Outside the database RFC 3986 still applies unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <no...@an...> Commit: 089bd02b0866e0dec73987408515f36fe62e8dd9 https://github.com/eXist-db/exist/commit/089bd02b0866e0dec73987408515f36fe62e8dd9 Author: Dannes Wessels <di...@us...> Date: 2026-07-16 (Thu, 16 Jul 2026) Changed paths: M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Convert.java M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Delivery.java M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Options.java M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Transform.java M exist-core/src/main/java/org/exist/xquery/functions/fn/transform/URIResolution.java M exist-core/src/test/java/org/exist/xquery/functions/fn/transform/FunTransformTest.java A exist-core/src/test/xquery/xquery3/transform/fnTransform5052.xqm A exist-core/src/test/xquery/xquery3/transform/fnTransform6065.xqm Log Message: ----------- Merge pull request #6546 from line-o/port/develop-6544 Compare: https://github.com/eXist-db/exist/compare/a4bdba0db9f6...089bd02b0866 To unsubscribe from these emails, change your notification settings at https://github.com/eXist-db/exist/settings/notifications |