Conversation
…edicates is also possible
…try_per_dataloader # Conflicts: # src/test/java/org/dataloader/fixtures/TestKit.java
|
|
||
| /** | ||
| * The lock that should be held. | ||
| * @return The lock that should be held. |
There was a problem hiding this comment.
stopped a javadoc warning
| Builder combinedBuilder = ScheduledDataLoaderRegistry.newScheduledRegistry() | ||
| .dispatchPredicate(this.dispatchPredicate); | ||
| combinedBuilder.registerAll(this); | ||
| combinedBuilder.registerAll(registry); |
There was a problem hiding this comment.
Maybe worth checking here, or inside registerAll if the other registry is also a ScheduledDataLoaderRegistry and if so picking up its dispatchPredicates too.
| */ | ||
| public DispatchPredicate getDispatchPredicate() { | ||
| return dispatchPredicate; | ||
| } |
There was a problem hiding this comment.
Now that a DispatchPredicate can be registered per DataLoader, this should ideally be called defaultDispatchPredicate. However, I understand that would involve renaming, and/or a deprecation and a property with the new name. In the very least, the Javadoc should be updated to indicate that it applies by default, if there isn't already a registration for that DataLoader.
Also, really minor but the field and getter for dispatchPredicate could be ordered after the map of predicates, like it is in the builder to reflect it comes after the other registrations.
There was a problem hiding this comment.
done. I didnt deprecate but I did redocument
…ain) (#17708) [](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.graphql-java:java-dataloader](https://togithub.com/graphql-java/java-dataloader) | `3.2.0` -> `3.3.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>graphql-java/java-dataloader (com.graphql-java:java-dataloader)</summary> ### [`v3.3.0`](https://togithub.com/graphql-java/java-dataloader/releases/tag/v3.3.0): 3.3.0 [Compare Source](https://togithub.com/graphql-java/java-dataloader/compare/v3.2.2...v3.3.0) #### What's Changed - Pre-size resulting lists by [@​dfa1](https://togithub.com/dfa1) in [https://github.com/graphql-java/java-dataloader/pull/142](https://togithub.com/graphql-java/java-dataloader/pull/142) - Minor javadoc fixes by [@​dfa1](https://togithub.com/dfa1) in [https://github.com/graphql-java/java-dataloader/pull/141](https://togithub.com/graphql-java/java-dataloader/pull/141) - Shuts down executor if its was auto added by our code by [@​bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/java-dataloader/pull/144](https://togithub.com/graphql-java/java-dataloader/pull/144) - If there is a specific predicate for a dataloader - its is the final say on whether to dispatch by [@​bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/java-dataloader/pull/145](https://togithub.com/graphql-java/java-dataloader/pull/145) **Full Changelog**: graphql-java/java-dataloader@v3.2.2...v3.3.0 ### [`v3.2.2`](https://togithub.com/graphql-java/java-dataloader/releases/tag/v3.2.2): 3.2.2 [Compare Source](https://togithub.com/graphql-java/java-dataloader/compare/v3.2.1...v3.2.2) #### What's Changed A series of small fixes to make the code more efficient - Lazily initialize Executor in ScheduledDataLoaderRegistry builder by [@​kilink](https://togithub.com/kilink) in [https://github.com/graphql-java/java-dataloader/pull/135](https://togithub.com/graphql-java/java-dataloader/pull/135) - Avoid allocations in DataLoaderHelper.dispatch when there's no work by [@​kilink](https://togithub.com/kilink) in [https://github.com/graphql-java/java-dataloader/pull/136](https://togithub.com/graphql-java/java-dataloader/pull/136) #### New Contributors - [@​kilink](https://togithub.com/kilink) made their first contribution in [https://github.com/graphql-java/java-dataloader/pull/135](https://togithub.com/graphql-java/java-dataloader/pull/135) **Full Changelog**: graphql-java/java-dataloader@v3.2.1...v3.2.2 ### [`v3.2.1`](https://togithub.com/graphql-java/java-dataloader/releases/tag/v3.2.1): 3.2.1 [Compare Source](https://togithub.com/graphql-java/java-dataloader/compare/v3.2.0...v3.2.1) ### New ticker mode There is a new mode in `ScheduledDataLoaderRegistry` called ticker mode that will continue to tick away and allow for chained data loader calls. See the readme for more details. ```java ScheduledDataLoaderRegistry registry = ScheduledDataLoaderRegistry.newScheduledRegistry() .register("a", dataLoaderA) .register("b", dataLoaderB) .scheduledExecutorService(executorService) .schedule(Duration.ofMillis(10)) .tickerMode(true) // ticker mode is on .build(); CompletableFuture<Object> chainedCalls = dataLoaderA.load("user1") .thenCompose(userAsKey -> dataLoaderB.load(userAsKey)); ``` ### Predicates per dataloader in ScheduledDataLoaderRegistry `ScheduledDataLoaderRegistry` now has the capability to have a predicate per data loader specified as well as an overall one. This allows you to have fine control on when dataloaders get dispatched. #### What's Changed - Try.getThrowable - fixed incorrect exception message by [@​rstata](https://togithub.com/rstata) in [https://github.com/graphql-java/java-dataloader/pull/122](https://togithub.com/graphql-java/java-dataloader/pull/122) - Prepend 0.0.0 to build version by [@​dondonz](https://togithub.com/dondonz) in [https://github.com/graphql-java/java-dataloader/pull/126](https://togithub.com/graphql-java/java-dataloader/pull/126) - Batch scheduler function support by [@​bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/java-dataloader/pull/128](https://togithub.com/graphql-java/java-dataloader/pull/128) - Adds a predicate to DataLoaderRegistry and a per dataloader map of pedicates is also possible by [@​bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/java-dataloader/pull/133](https://togithub.com/graphql-java/java-dataloader/pull/133) - Ticker mode on ScheduledDataLoaderRegistry by [@​bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/java-dataloader/pull/131](https://togithub.com/graphql-java/java-dataloader/pull/131) #### New Contributors - [@​rstata](https://togithub.com/rstata) made their first contribution in [https://github.com/graphql-java/java-dataloader/pull/122](https://togithub.com/graphql-java/java-dataloader/pull/122) - [@​dondonz](https://togithub.com/dondonz) made their first contribution in [https://github.com/graphql-java/java-dataloader/pull/126](https://togithub.com/graphql-java/java-dataloader/pull/126) **Full Changelog**: graphql-java/java-dataloader@v3.2.0...v3.2.1 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 10pm every weekday,before 6am every weekday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/camunda/zeebe). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJhdXRvbWVyZ2UiXX0=-->
This adds a map of per dataloader predicates to ScheduledDataLoaderRegistry so people can have more fine grain control on when a dataloader is dispatched.
if its not used then it goes back to the default behavior of one predicate for the ScheduledDataLoaderRegistry