From fd73c8e4afc3c2702de3b370453102a943263b32 Mon Sep 17 00:00:00 2001 From: Oryan Date: Fri, 23 Oct 2026 18:10:05 -0400 Subject: [PATCH 1/2] Document the tools changes in 14.5.0 --- content/tools/getting-started/index.md | 4 ++-- content/tools/schema-parser-options/index.md | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/content/tools/getting-started/index.md b/content/tools/getting-started/index.md index f80bba2..e360bbc 100644 --- a/content/tools/getting-started/index.md +++ b/content/tools/getting-started/index.md @@ -34,7 +34,7 @@ Add the `graphql-java-tools` dependency: ```gradle dependencies { - implementation 'io.github.graphql-java-kickstart:graphql-java-tools:14.4.0' + implementation 'io.github.graphql-java-kickstart:graphql-java-tools:14.5.0' } ``` @@ -46,7 +46,7 @@ Add the `graphql-java-tools` dependency: io.github.graphql-java-kickstart graphql-java-tools - 14.4.0 + 14.5.0 ``` diff --git a/content/tools/schema-parser-options/index.md b/content/tools/schema-parser-options/index.md index 00f42e2..d88af54 100644 --- a/content/tools/schema-parser-options/index.md +++ b/content/tools/schema-parser-options/index.md @@ -57,7 +57,16 @@ Options: * Guice * Spring AOP * Weld -* `introspectionEnabled`: Defaults to `true`. When set to `false` this option will disable schema introspection via `NO_INTROSPECTION_FIELD_VISIBILITY`. See [Field Visibility](https://www.graphql-java.com/documentation/field-visibility). +* `introspectionEnabled`: Deprecated, and will be removed in 15.0.0. Defaults to `true`. When set to `false`, every field of the introspection types is hidden, so an introspection query fails validation. + Turn introspection off with graphql-java instead, for the whole JVM or for one request: + ```java + Introspection.enabledJvmWide(false); + + var executionInput = ExecutionInput.newExecutionInput() + .query(query) + .graphQLContext(Map.of(Introspection.INTROSPECTION_DISABLED, true)); + ``` + An introspection query then fails with an "introspection disabled" error when it runs. * `fieldVisibility`: Provide a graphql field visibility implementation. This option overrides `introspectionEnabled` when used. See [Field Visibility](https://www.graphql-java.com/documentation/field-visibility). * `coroutineContext` / `coroutineContextProvider`: Provide a kotlin coroutine context to be used with suspend functions of resolvers. A suspend function runs on the calling thread until it first suspends, and continues on this context after that, so wrap blocking calls in `withContext(Dispatchers.IO)`. From 8d3fb0fbf3fc4d5a490b6ebcadf0e1f1282006a5 Mon Sep 17 00:00:00 2001 From: Oryan Date: Sat, 24 Oct 2026 12:51:25 -0400 Subject: [PATCH 2/2] Document scalar directives and link the release notes --- content/tools/getting-started/index.md | 2 ++ content/tools/schema-definition/index.md | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/content/tools/getting-started/index.md b/content/tools/getting-started/index.md index e360bbc..f451a4f 100644 --- a/content/tools/getting-started/index.md +++ b/content/tools/getting-started/index.md @@ -50,6 +50,8 @@ Add the `graphql-java-tools` dependency: ``` +The [release notes](https://github.com/graphql-java-kickstart/graphql-java-tools/releases) list what changed in each version, including behaviour changes and breaking changes. + ## Using the latest development build Snapshot versions of the current `master` branch are available on the Maven Central snapshot repository. Check the next snapshot version on diff --git a/content/tools/schema-definition/index.md b/content/tools/schema-definition/index.md index bd10454..3164827 100644 --- a/content/tools/schema-definition/index.md +++ b/content/tools/schema-definition/index.md @@ -230,6 +230,15 @@ SchemaParser.newParser() .scalars(myUuidScalar) ``` +The scalar's definition in the schema, and its `extend scalar` extensions, can add a description and directives: +```graphql +"A calendar date" +scalar Date @specifiedBy(url: "https://tools.ietf.org/html/rfc3339") +``` + +A description or `@specifiedBy` URL in the schema replaces the one of the scalar instance. Without one, the scalar keeps its own. +The scalar gets only the directives that the schema applies, not those of the scalar instance, and their [directive wirings]({{< relref "/tools/directives/index.md" >}}) run `onScalar`. + ## Type Dictionary Sometimes GraphQL Java Tools can't find classes when it scans your objects, usually because of limitations with interface and union types. Sometimes your Java classes don't line up perfectly with your GraphQL schema, either. GraphQL Java Tools allows you to provide additional classes manually and "rename" them if desired: