Aklakan opened a new pull request, #3706: URL: https://github.com/apache/jena/pull/3706
GitHub issue resolved (TDB) This is a long standing revision of the service enhancer module. It can go into a dot release after jena 6. There are a couple of places that seem odd to me and which I want to give another look. Pull request Description: * Migrated to Junit 5 / Jupiter * Migrated to Caffeine Cache (instead of Guava Cache - The Guava dependency is still needed for RangeMap though) Bug Fixes: * Fixed a bug when using this plugin colons at the end of URLS would be removed (`SERVICE <https://.../foo:>` became `SERVICE <http://.../foo>`) * Fixed a bug where result sets were cut off due to concurrent cache eviction. Typically this bug occurred when using `SELECT ... LIMIT X` where X was slightly larger than the maximum cache size. * Introduced context constants (that match that of the assembler) to configure cache sizes. As a side effect, Service Enhancer Cache initialization is now lazy in order to have a chance to read the config from the context. Once created, the settings are fixed. * Added `scoped` option for loop (`SERVICE <loop+scoped:>`) to mimic the behavior of LATERAL - when `scoped` is set, then only in-scope variables become substituted instead of all variables with the same base name. * Iterators that cache data should now honor the abort signal. * Refactored the core cache execution class `RequestExecutor` to support read-transaction-aware concurrent execution. New Feature: * Added experimental concurrent feature. There is an example in the class `ServiceConcurrentExample`. Essentially, it allows one to do `SERVICE <loop+scoped:concurrent+2-10:bulk+10:cache:https://example.org/sparql>`: Use 2 additional threads with 10 bindings each, to build bulk requests of 10 bindings, caching the responses to query the specified sparql endpoint. Concurrent requests try to preserve the order of bindings. Of course, this should not be used on public endpoints but rather on your own controlled endpoints. ---- - [x] Tests are included. - [ ] Documentation change and updates are provided for the [Apache Jena website](https://github.com/apache/jena-site/) - [ ] Commits have been squashed to remove intermediate development commit messages. - [ ] Key commit messages start with the issue number (GH-xxxx) By submitting this pull request, I acknowledge that I am making a contribution to the Apache Software Foundation under the terms and conditions of the [Contributor's Agreement](https://www.apache.org/licenses/contributor-agreements.html). ---- See the [Apache Jena "Contributing" guide](https://github.com/apache/jena/blob/main/CONTRIBUTING.md). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
