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]

Reply via email to