tag:github.com,2008:https://github.com/graphql-java/java-dataloader/releasesRelease notes from java-dataloader2025-11-05T23:07:58Ztag:github.com,2008:Repository/97364654/v6.0.02025-11-05T23:34:03Z6.0.0<p>This is a breaking change release version of the Java DataLoader</p>
<p>The main breaking change is in <code>org.dataloader.CacheMap</code> and specifically the <code>org.dataloader.CacheMap#putIfAbsentAtomically</code> method.</p>
<p>Previous versions of dataloader used <code>synchronised</code> locks to guard the data structures during a <code>dispatch</code> call.</p>
<p>However to provide even higher performance the code has been changed to use a Compare And Swap (CAS) mechanism instead.</p>
<p>This means that there is a new contract on the <code>org.dataloader.CacheMap</code> implementations that they must be atomically thread safe in their writing and reading of cache entries.</p>
<p>The default implementation uses a <code>java.util.concurrent.ConcurrentHashMap</code> to provide this but if you have your own implementations then you need to update them to be atomically thread safe when putting cache entries.</p>
<p>If you don't use your own <code>org.dataloader.CacheMap</code> implementation then this will not be a breaking change version for you since there are no other breaking changes.</p>
<h2>What's Changed</h2>
<ul>
<li>Bump com.gradle.develocity from 4.1.1 to 4.2 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3440351428" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/233" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/233/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/233">#233</a></li>
<li>Bump org.jetbrains.kotlin.jvm from 2.2.10 to 2.2.20 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3417612415" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/230" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/230/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/230">#230</a></li>
<li>Bump com.uber.nullaway:nullaway from 0.12.9 to 0.12.10 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3440340955" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/231" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/231/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/231">#231</a></li>
<li>Bump com.github.ben-manes.versions from 0.52.0 to 0.53.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3465449812" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/234" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/234/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/234">#234</a></li>
<li>Bump gradle/actions from 4 to 5 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3486784059" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/236" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/236/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/236">#236</a></li>
<li>Bump com.gradle.develocity from 4.2 to 4.2.1 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3486735597" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/235" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/235/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/235">#235</a></li>
<li>Bump com.gradle.develocity from 4.2.1 to 4.2.2 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3509664297" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/237" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/237/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/237">#237</a></li>
<li>Updating the code to use reentrant locks by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3511963073" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/239" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/239/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/239">#239</a></li>
<li>remove any Reentrant locks in favor of a CAS linked list by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/andimarek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/andimarek">@andimarek</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3528123819" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/241" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/241/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/241">#241</a></li>
<li>fix master build by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/andimarek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/andimarek">@andimarek</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3542744448" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/242" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/242/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/242">#242</a></li>
<li>Added a loadImpl function to allow delegate overriding better by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3512142638" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/240" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/240/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/240">#240</a></li>
<li>Bump org.jetbrains.kotlin.jvm from 2.2.20 to 2.2.21 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3556381425" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/247" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/247/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/247">#247</a></li>
<li>Bump io.github.reyerizo.gradle.jcstress from 0.8.15 to 0.9.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3556316175" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/246" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/246/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/246">#246</a></li>
<li>Bump com.google.errorprone:error_prone_core from 2.42.0 to 2.43.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3556306063" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/245" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/245/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/245">#245</a></li>
<li>Updated the documentation of the CacheMap and also some refactoring by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3554528963" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/244" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/244/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/244">#244</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/graphql-java/java-dataloader/compare/v5.0.3...v6.0.0"><tt>v5.0.3...v6.0.0</tt></a></p>bbakermantag:github.com,2008:Repository/97364654/v5.0.32025-09-23T00:36:07Z5.0.3<p>This is a small bug fix release to remove Kotlin stdlib as a dependency of java-dataloader</p>
<p>Kotlin as added as a test dependency to help ensure the JSpecify annotations work as expected in Kotlin land.</p>
<p>However even thought we specified <code>testImplementation</code> in gradle, the Kotlin gradle plugin auto added Kotlin stdlib as a pom dependency on publish</p>
<p><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3406232917" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/229" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/229/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/229">#229</a> fixes this and this release is to publish a new version with the Kotlin stdlib in the pom</p>
<h2>What's Changed</h2>
<ul>
<li>Bump com.google.errorprone:error_prone_core from 2.40.0 to 2.41.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3270465680" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/218" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/218/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/218">#218</a></li>
<li>update workflows to use 21 and update toolchain plugin by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/andimarek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/andimarek">@andimarek</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3262056839" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/216" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/216/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/216">#216</a></li>
<li>Bump com.uber.nullaway:nullaway from 0.12.7 to 0.12.8 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3310658850" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/219" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/219/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/219">#219</a></li>
<li>Bump org.jetbrains.kotlin.jvm from 2.2.0 to 2.2.10 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3331370229" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/221" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/221/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/221">#221</a></li>
<li>Bump actions/checkout from 4 to 5 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3331265949" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/220" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/220/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/220">#220</a></li>
<li>Bump actions/setup-java from 4 to 5 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3352747072" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/224" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/224/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/224">#224</a></li>
<li>Bump com.uber.nullaway:nullaway from 0.12.8 to 0.12.9 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3352962650" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/225" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/225/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/225">#225</a></li>
<li>Bump com.gradle.develocity from 4.1 to 4.1.1 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3353025598" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/226" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/226/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/226">#226</a></li>
<li>Bump actions/stale from 9 to 10 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3393712709" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/228" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/228/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/228">#228</a></li>
<li>Kotlin stdlib should not be a pom dep by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3406232917" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/229" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/229/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/229">#229</a></li>
<li>Bump com.google.errorprone:error_prone_core from 2.41.0 to 2.42.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3440345700" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/232" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/232/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/232">#232</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/graphql-java/java-dataloader/compare/v5.0.2...v5.0.3"><tt>v5.0.2...v5.0.3</tt></a></p>bbakermantag:github.com,2008:Repository/97364654/v5.0.22025-07-27T08:20:31Z5.0.2<p>A small bugfix release that includes a nullability annotation fix for Value Cache</p>
<h2>What's Changed</h2>
<ul>
<li>Bump com.google.errorprone:error_prone_core from 2.37.0 to 2.39.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3208954738" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/213" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/213/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/213">#213</a></li>
<li>Bump net.ltgt.errorprone from 4.2.0 to 4.3.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3208953971" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/212" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/212/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/212">#212</a></li>
<li>Bump com.google.errorprone:error_prone_core from 2.39.0 to 2.40.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3228653493" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/214" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/214/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/214">#214</a></li>
<li>Bump com.gradle.develocity from 4.0.2 to 4.1 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3248335524" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/215" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/215/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/215">#215</a></li>
<li>Allow value nullability for ValueCache by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pdambrauskas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pdambrauskas">@pdambrauskas</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3262442680" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/217" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/217/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/217">#217</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pdambrauskas/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pdambrauskas">@pdambrauskas</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3262442680" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/217" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/217/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/217">#217</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/graphql-java/java-dataloader/compare/v5.0.1...v5.0.2"><tt>v5.0.1...v5.0.2</tt></a></p>dondonztag:github.com,2008:Repository/97364654/v5.0.12025-07-06T08:53:25Z5.0.1<p>This release updates the JSpecify nullable annotations on the <code>BatchLoader</code> method variants so that they work as expected with Kotlin 2 and its stronger enforcement of JSpecify annotations</p>
<p>eg they are now updated like this.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="public interface BatchLoader<K, V extends @Nullable Object>"><pre class="notranslate"><code>public interface BatchLoader<K, V extends @Nullable Object>
</code></pre></div>
<h2>What's Changed</h2>
<ul>
<li>Error Prone / NullAway support for JSpecify by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3116287374" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/196" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/196/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/196">#196</a></li>
<li>Move to new Sonatype URLs by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3155221735" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/198" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/198/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/198">#198</a></li>
<li>Update Gradle Github action by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dondonz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dondonz">@dondonz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3165511460" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/199" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/199/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/199">#199</a></li>
<li>Add dependabot by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dondonz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dondonz">@dondonz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3165530172" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/200" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/200/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/200">#200</a></li>
<li>Bump com.uber.nullaway:nullaway from 0.12.6 to 0.12.7 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3165531222" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/203" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/203/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/203">#203</a></li>
<li>Bump com.gradle.develocity from 3.19 to 4.0.2 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3165531192" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/201" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/201/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/201">#201</a></li>
<li>Bump org.jetbrains.kotlin.jvm from 2.1.21 to 2.2.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3188510443" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/209" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/209/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/209">#209</a></li>
<li>Bump com.github.ben-manes.versions from 0.51.0 to 0.52.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3165531211" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/202" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/202/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/202">#202</a></li>
<li>More explicit nullable annotations on BatchLoader interfaces by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3173585454" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/207" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/207/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/207">#207</a></li>
<li>Bump io.github.gradle-nexus.publish-plugin from 1.0.0 to 2.0.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3165531234" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/204" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/204/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/204">#204</a></li>
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3186673707" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/208" data-hovercard-type="issue" data-hovercard-url="/graphql-java/java-dataloader/issues/208/hovercard" href="https://github.com/graphql-java/java-dataloader/issues/208">#208</a> to ensure tests are in place by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3194782847" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/211" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/211/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/211">#211</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3165531222" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/203" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/203/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/203">#203</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/graphql-java/java-dataloader/compare/v5.0.0...v5.0.1"><tt>v5.0.0...v5.0.1</tt></a></p>bbakermantag:github.com,2008:Repository/97364654/v5.0.02025-05-13T02:00:21Z5.0.0<h1>Compile time breaking of DataLoaderOptions</h1>
<p>Back in version 4.0.0 we introduced immutability into the DataLoaderOptions class, which was a good thing.</p>
<p>However it left the old mutative <code>set</code> methods in place and made them immutable. This was a mistake. This leads to bugs at runtime</p>
<p>for example</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="DataLoaderOptions options = DataLoaderOptions.newOptions();
if (maxBatchSize != BatchLoader.UNSET_BATCH_SIZE) {
options.setMaxBatchSize(maxBatchSize);
}
return options.setCacheMap(cache);"><pre class="notranslate"><code>DataLoaderOptions options = DataLoaderOptions.newOptions();
if (maxBatchSize != BatchLoader.UNSET_BATCH_SIZE) {
options.setMaxBatchSize(maxBatchSize);
}
return options.setCacheMap(cache);
</code></pre></div>
<p>The above code would continue compile but the <code>setMaxBatchSize</code> would never take affected with the immutable support.</p>
<p>So to help address <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3032923101" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/190" data-hovercard-type="issue" data-hovercard-url="/graphql-java/java-dataloader/issues/190/hovercard" href="https://github.com/graphql-java/java-dataloader/issues/190">#190</a> version 5.0.0 has removed the <code>set</code> methods and require the <code>Builder</code> methods to be used to ensure that code that relied on the old mutative methods now break at compile time and not at runtime.</p>
<h1>DataLoaders now can have names</h1>
<p>A <code>DataLoader</code> can now have a name. Its nullable so that old code can still work but its preferred that <code>DataLoader</code>s are named. This will help in debugging and also in <code>instrumentation</code>.</p>
<p>If you register a <code>DataLoader</code> into a <code>DataLoaderRegistry</code> then the names must match otherwise it will be rejected at registration time.</p>
<p>A series of long standing deprecated <code>DataLoaderFactory</code> methods got removed here as well.</p>
<h2>What's Changed</h2>
<ul>
<li>Remove jcenter reference after sunset by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dondonz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dondonz">@dondonz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2978266490" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/184" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/184/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/184">#184</a></li>
<li>add jmh testing with one initial performance test by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/andimarek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/andimarek">@andimarek</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2994563421" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/187" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/187/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/187">#187</a></li>
<li>adds explicit jmh dependency for the idea jmh plugin by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/andimarek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/andimarek">@andimarek</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3033104137" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/192" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/192/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/192">#192</a></li>
<li>OSGI - Make org.jspecify.* imports optional by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/schulm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/schulm">@schulm</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3039330278" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/194" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/194/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/194">#194</a></li>
<li>Breaking change - adds a name to a DataLoader by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3035318498" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/193" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/193/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/193">#193</a></li>
<li>Breaking change: using LongAdder instead of AtomicLong by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dfa1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dfa1">@dfa1</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2993194077" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/186" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/186/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/186">#186</a></li>
<li>Breaking change - renaming old mutable setXX methods by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3033041619" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/191" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/191/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/191">#191</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/schulm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/schulm">@schulm</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3039330278" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/194" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/194/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/194">#194</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/graphql-java/java-dataloader/compare/v4.0.0...v5.0.0"><tt>v4.0.0...v5.0.0</tt></a></p>bbakermantag:github.com,2008:Repository/97364654/v4.0.02025-04-07T01:32:54Z4.0.0<h1>Instrumentation support of DataLoaders</h1>
<p>A new <code>org.dataloader.instrumentation.DataLoaderInstrumentation</code> has been added that is a callback to allow you to know when certain <code>DataLoader</code> actions start and when they finish.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" DataLoaderInstrumentation timingInstrumentation = new DataLoaderInstrumentation() {
@Override
public DataLoaderInstrumentationContext<DispatchResult<?>> beginDispatch(DataLoader<?, ?> dataLoader) {
long then = System.currentTimeMillis();
return DataLoaderInstrumentationHelper.whenCompleted((result, err) -> {
long ms = System.currentTimeMillis() - then;
System.out.println(format("dispatch time: %d ms", ms));
});
}
@Override
public DataLoaderInstrumentationContext<List<?>> beginBatchLoader(DataLoader<?, ?> dataLoader, List<?> keys, BatchLoaderEnvironment environment) {
long then = System.currentTimeMillis();
return DataLoaderInstrumentationHelper.whenCompleted((result, err) -> {
long ms = System.currentTimeMillis() - then;
System.out.println(format("batch loader time: %d ms", ms));
});
}
};
DataLoaderOptions options = DataLoaderOptions.newOptions().setInstrumentation(timingInstrumentation);
DataLoader<String, User> userDataLoader = DataLoaderFactory.newDataLoader(userBatchLoader, options);
"><pre class="notranslate"><code> DataLoaderInstrumentation timingInstrumentation = new DataLoaderInstrumentation() {
@Override
public DataLoaderInstrumentationContext<DispatchResult<?>> beginDispatch(DataLoader<?, ?> dataLoader) {
long then = System.currentTimeMillis();
return DataLoaderInstrumentationHelper.whenCompleted((result, err) -> {
long ms = System.currentTimeMillis() - then;
System.out.println(format("dispatch time: %d ms", ms));
});
}
@Override
public DataLoaderInstrumentationContext<List<?>> beginBatchLoader(DataLoader<?, ?> dataLoader, List<?> keys, BatchLoaderEnvironment environment) {
long then = System.currentTimeMillis();
return DataLoaderInstrumentationHelper.whenCompleted((result, err) -> {
long ms = System.currentTimeMillis() - then;
System.out.println(format("batch loader time: %d ms", ms));
});
}
};
DataLoaderOptions options = DataLoaderOptions.newOptions().setInstrumentation(timingInstrumentation);
DataLoader<String, User> userDataLoader = DataLoaderFactory.newDataLoader(userBatchLoader, options);
</code></pre></div>
<h1>Immutable classes</h1>
<p>Some of the key classes like <code>org.dataloader.DataLoaderOptions</code> have been made immutable so as to provide more surety in how they get used and transformed. This is technically a breaking change if you code relied on the old mutability, however on balance we think this is a better code position to be in.</p>
<h2>What's Changed</h2>
<ul>
<li>Update version to 3.4.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dondonz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dondonz">@dondonz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2743637978" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/168" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/168/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/168">#168</a></li>
<li>Add stale bot by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dondonz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dondonz">@dondonz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2764816391" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/169" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/169/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/169">#169</a></li>
<li>Removing unused slf4j references by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dondonz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dondonz">@dondonz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2764824067" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/170" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/170/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/170">#170</a></li>
<li>Parameterise more tests across DataLoader implementations by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlexandreCarlton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlexandreCarlton">@AlexandreCarlton</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2765260886" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/171" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/171/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/171">#171</a></li>
<li>Allow ValueCache to work with Publisher DataLoader by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlexandreCarlton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlexandreCarlton">@AlexandreCarlton</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2765295876" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/172" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/172/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/172">#172</a></li>
<li>Transform support for DataLoaders by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2798055410" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/174" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/174/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/174">#174</a></li>
<li>Making DataLoaderOptions immutable by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2819987385" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/176" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/176/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/176">#176</a></li>
<li>Instrumentation support for dataloader by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2800395704" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/175" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/175/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/175">#175</a></li>
<li>add jspecify by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/andimarek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/andimarek">@andimarek</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2944884944" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/180" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/180/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/180">#180</a></li>
<li>Fixed a bug that the Spring team found by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2962505367" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/181" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/181/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/181">#181</a></li>
<li>Added a instrumentation of load calls by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2908828487" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/178" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/178/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/178">#178</a></li>
<li>Added support for a delegating data loader by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2962859597" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/182" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/182/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/182">#182</a></li>
<li>Update documentation for new release by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dondonz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dondonz">@dondonz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2973949920" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/183" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/183/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/183">#183</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/andimarek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/andimarek">@andimarek</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2944884944" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/180" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/180/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/180">#180</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/graphql-java/java-dataloader/compare/v3.4.0...v4.0.0"><tt>v3.4.0...v4.0.0</tt></a></p>bbakermantag:github.com,2008:Repository/97364654/v3.4.02024-12-23T02:25:17Zv3.4.0<p>Thanks to everybody who contributed to this release of Dataloader!</p>
<p>With this release, this library changed from using Java 8 to Java 11.</p>
<h2>What's Changed</h2>
<ul>
<li>Remove CacheMap#containsKey before #get by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlexandreCarlton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlexandreCarlton">@AlexandreCarlton</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2268659198" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/146" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/146/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/146">#146</a></li>
<li>Verify a throwing CacheMap#get does not break DataLoader by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlexandreCarlton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlexandreCarlton">@AlexandreCarlton</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2271131621" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/147" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/147/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/147">#147</a></li>
<li>Bump to Java 11 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlexandreCarlton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlexandreCarlton">@AlexandreCarlton</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2300181677" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/150" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/150/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/150">#150</a></li>
<li>Bump JUnit 4.x to JUnit Jupiter 5 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlexandreCarlton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlexandreCarlton">@AlexandreCarlton</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2304140547" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/152" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/152/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/152">#152</a></li>
<li>Add a proof-of-concept for "Observer-like" batch loading by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlexandreCarlton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlexandreCarlton">@AlexandreCarlton</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2291228951" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/148" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/148/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/148">#148</a></li>
<li>Parameterise DataLoaderTest on DataLoader by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlexandreCarlton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlexandreCarlton">@AlexandreCarlton</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2304429440" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/153" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/153/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/153">#153</a></li>
<li>Migrate publisher tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlexandreCarlton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlexandreCarlton">@AlexandreCarlton</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2308121642" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/155" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/155/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/155">#155</a></li>
<li>Making the Subscribers use a common base class by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2307031062" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/154" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/154/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/154">#154</a></li>
<li>Make builds run on other branches by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2311708580" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/157" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/157/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/157">#157</a></li>
<li>More tests for Publishers on reactive branch by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2311716424" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/158" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/158/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/158">#158</a></li>
<li>Reactive streams branch move reactive classes out of dataloader helper by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2314121361" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/159" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/159/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/159">#159</a></li>
<li>Have MappedBatchPublisher take in a Set keys (and add README sections) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlexandreCarlton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlexandreCarlton">@AlexandreCarlton</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2317702154" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/160" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/160/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/160">#160</a></li>
<li>A PR for reactive streams support by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2302454770" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/151" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/151/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/151">#151</a></li>
<li>Tweaked readme by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2318735265" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/161" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/161/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/161">#161</a></li>
<li>Update version in readme by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dondonz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dondonz">@dondonz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2734748213" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/165" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/165/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/165">#165</a></li>
<li>Add support for batch loading of a Map of key-value pairs. by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Hc747/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Hc747">@Hc747</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2734767362" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/166" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/166/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/166">#166</a></li>
<li>Modernise/update Gradle configuration and misc. polishing. by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Hc747/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Hc747">@Hc747</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2737446644" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/167" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/167/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/167">#167</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Hc747/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Hc747">@Hc747</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2734767362" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/166" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/166/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/166">#166</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/graphql-java/java-dataloader/compare/v3.3.0...v3.4.0"><tt>v3.3.0...v3.4.0</tt></a></p>dondonztag:github.com,2008:Repository/97364654/v3.3.02024-04-14T22:31:43Z3.3.0<h2>What's Changed</h2>
<ul>
<li>Pre-size resulting lists by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dfa1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dfa1">@dfa1</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2190754667" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/142" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/142/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/142">#142</a></li>
<li>Minor javadoc fixes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dfa1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dfa1">@dfa1</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2177803950" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/141" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/141/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/141">#141</a></li>
<li>Shuts down executor if its was auto added by our code by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2241235546" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/144" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/144/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/144">#144</a></li>
<li>If there is a specific predicate for a dataloader - its is the final say on whether to dispatch by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2241400494" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/145" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/145/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/145">#145</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/graphql-java/java-dataloader/compare/v3.2.2...v3.3.0"><tt>v3.2.2...v3.3.0</tt></a></p>bbakermantag:github.com,2008:Repository/97364654/v3.2.22023-11-14T04:47:04Z3.2.2<h2>What's Changed</h2>
<p>A series of small fixes to make the code more efficient</p>
<ul>
<li>Lazily initialize Executor in ScheduledDataLoaderRegistry builder by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kilink/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kilink">@kilink</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1988293327" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/135" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/135/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/135">#135</a></li>
<li>Avoid allocations in DataLoaderHelper.dispatch when there's no work by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kilink/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kilink">@kilink</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1988322590" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/136" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/136/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/136">#136</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kilink/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kilink">@kilink</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1988293327" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/135" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/135/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/135">#135</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/graphql-java/java-dataloader/compare/v3.2.1...v3.2.2"><tt>v3.2.1...v3.2.2</tt></a></p>bbakermantag:github.com,2008:Repository/97364654/v3.2.12023-10-17T04:44:03Z3.2.1<h1>New ticker mode</h1>
<p>There is a new mode in <code>ScheduledDataLoaderRegistry</code> called ticker mode that will continue to tick away and allow for chained data loader calls. See the readme for more details.</p>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" 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));"><pre> <span class="pl-smi">ScheduledDataLoaderRegistry</span> <span class="pl-s1">registry</span> = <span class="pl-smi">ScheduledDataLoaderRegistry</span>.<span class="pl-en">newScheduledRegistry</span>()
.<span class="pl-en">register</span>(<span class="pl-s">"a"</span>, <span class="pl-s1">dataLoaderA</span>)
.<span class="pl-en">register</span>(<span class="pl-s">"b"</span>, <span class="pl-s1">dataLoaderB</span>)
.<span class="pl-en">scheduledExecutorService</span>(<span class="pl-s1">executorService</span>)
.<span class="pl-en">schedule</span>(<span class="pl-smi">Duration</span>.<span class="pl-en">ofMillis</span>(<span class="pl-c1">10</span>))
.<span class="pl-en">tickerMode</span>(<span class="pl-c1">true</span>) <span class="pl-c">// ticker mode is on</span>
.<span class="pl-en">build</span>();
<span class="pl-smi">CompletableFuture</span><<span class="pl-smi">Object</span>> <span class="pl-s1">chainedCalls</span> = <span class="pl-s1">dataLoaderA</span>.<span class="pl-en">load</span>(<span class="pl-s">"user1"</span>)
.<span class="pl-en">thenCompose</span>(<span class="pl-s1">userAsKey</span> -> <span class="pl-s1">dataLoaderB</span>.<span class="pl-en">load</span>(<span class="pl-s1">userAsKey</span>));</pre></div>
<h1>Predicates per dataloader in ScheduledDataLoaderRegistry</h1>
<p><code>ScheduledDataLoaderRegistry</code> 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.</p>
<h2>What's Changed</h2>
<ul>
<li>Try.getThrowable - fixed incorrect exception message by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rstata/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rstata">@rstata</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1368985368" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/122" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/122/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/122">#122</a></li>
<li>Prepend 0.0.0 to build version by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dondonz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dondonz">@dondonz</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1612821195" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/126" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/126/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/126">#126</a></li>
<li>Batch scheduler function support by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1699439135" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/128" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/128/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/128">#128</a></li>
<li>Adds a predicate to DataLoaderRegistry and a per dataloader map of pedicates is also possible by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1919058397" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/133" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/133/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/133">#133</a></li>
<li>Ticker mode on ScheduledDataLoaderRegistry by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bbakerman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bbakerman">@bbakerman</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1910736699" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/131" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/131/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/131">#131</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rstata/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/rstata">@rstata</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1368985368" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/122" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/122/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/122">#122</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dondonz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dondonz">@dondonz</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1612821195" data-permission-text="Title is private" data-url="https://github.com/graphql-java/java-dataloader/issues/126" data-hovercard-type="pull_request" data-hovercard-url="/graphql-java/java-dataloader/pull/126/hovercard" href="https://github.com/graphql-java/java-dataloader/pull/126">#126</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/graphql-java/java-dataloader/compare/v3.2.0...v3.2.1"><tt>v3.2.0...v3.2.1</tt></a></p>bbakerman