Skip to content

Tags: graphql-java-generator/graphql-gradle-plugin-project

Tags

graphql-gradle-plugin-2.9

Toggle graphql-gradle-plugin-2.9's commit message
All modes (client and server):

* Issue #218: Default target folder was based on "target" (on both the
Maven and Gradle plugins)
* Issue #228: The plugin would throw an error, if an object contains
more than one field of ID type

Pojo in server mode
* Issue #227: the generated code would not compile with the
`generatePojo` goal/task in server mode when
`generateJacksonAnnotations` is set to `true`

Custom templates:
* Breaking change due to the #227 issue correction, the custom templates
`client_query_mutation_type.vm.java`,
`client_subscription_type.vm.java`, `interface_type.vm.java` and
`object_type.vm.java` changed. The import for
`com.fasterxml.jackson.annotation.JsonProperty` and
`com.fasterxml.jackson.databind.annotation.JsonDeserialize` has been
added
* Each template states its name in a comment in the first line:
```java
/** Generated by the '${templateName}' default template from
graphql-java-generator */
```
    * You can use the `templateName` place holder to change the header
to something like 'Generated by the ${templateName} custom template'

graphql-gradle-plugin-2.8

Toggle graphql-gradle-plugin-2.8's commit message
Server mode:

* The new `generateBatchMappingDataFetchers` plugin parameters is in
__beta version__ in this release. It allows to generate data fetchers
with the <code>@BatchMapping</code> annotation (instead of the
`@SchemaMapping` one). This allows to manage the N+1 select problem: so
this allows much better performances, by highly diminishing the number
of executed requests
    * The new `batchMappingDataFetcherReturnType` allows to control the
return type of these data fetchers
    * Please note that the behaviour for this parameter may change a
little for GraphQL schema that use field parameters.
    * For GraphQL schemas that don't use field parameters, its behaviour
can be considered as stable
* Issues #214 and #215: the new `ignoredSpringMappings` plugin parameter
allows to ignore a list of type and field mappings (or all mappings,
when this parameter is set to the star character, "*").
    * An ignored type mapping prevent the generation of its
`DataFetcherDelegate`, and its entity Spring Controller. The [Spring
Controller](https://docs.spring.io/spring-graphql/reference/controllers.html)
must be 'manually' implemented.
    * An ignored field mapping prevent the generation of the method for
this field in the `DataFetcherDelegate`, and its entity Spring
Controller. A [Spring
Controller](https://docs.spring.io/spring-graphql/reference/controllers.html)
must be 'manually' implemented for this field.
* Issue #217: compilation error when a field first letter is in
uppercase.

Internal API:
* The `DataFetcher.completableFuture` has been renamed to
`DataFetcher.withDataLoader`. This impacts these templates:
`object_content.vm.java`, `server_EntityController.vm.java` and
`server_GraphQLDataFetchersDelegate.vm.java`

graphql-gradle-plugin-2.7

Toggle graphql-gradle-plugin-2.7's commit message
Client mode:

* Issue #213: The GraphQL custom scalars are wired according to
spring-graphql needs. This fixes bean error at startup, in some specific
cases

All modes (client and server):
* Issue #213: The GraphQL custom scalars which names in the provided
schema is different that the GraphQL type name in the provided GraphQL
scalar implementation would throw an error at execution.

Internal:
* The `server_GraphQLWiring.vm.java` custom template has been renamed to
`GraphQLWiring.vm.java`, as this template is now used for both the
client and the server mode.

graphql-gradle-plugin-2.6

Toggle graphql-gradle-plugin-2.6's commit message
Gradle:

* issue #21: dependencies for spring framework6 are enforced for
graphql-gradle-plugin3

All modes (client and server):
* Issue #113: base the code generation on a json schema (from an
introspection query), instead of regular graphqls GraphQL schema files.
This is done with the help of this new plugin parameter:
`jsonGraphqlSchemaFilename`
* Issue #208: the plugin is now marked as thread safe (no more warning
when using maven parallel builds)

graphql-gradle-plugin-2.5

Toggle graphql-gradle-plugin-2.5's commit message
Gradle:

* Upgrade of gradle wrapper to 8.6
* Issue #14: The plugin is now compatible with Gradle configuration
cache
    * __Possible breaking change:__ The path given to the task
properties must now all be relatives to the root of their project
(without a leading slash), eg : "build/generated/mytarget" (not
"/build/generated/mytarget" or "$builDir/generated/mytarget"))
    * (Pojo goals) No more need to add the generated source folder to
the sourceSets.main.java.srcDirs. It is automatically added to the java
source folders.

All modes:
* Remove a bad java import, which could cause compilation error when
just generating POJO

Server mode:
* Add of the `generateDataFetcherForEveryFieldsWithArguments` plugin
param. This parameter allows to generate data fetchers for every field
that has input argument, and add them in the generated POJOs. This
allows a better compatibility with spring-graphql, and an easy access to
the field's parameters.
* Issue #209: error with subscription that returns enum, when the
implementation returns a Publisher that is not a Flux

graphql-gradle-plugin-2.4

Toggle graphql-gradle-plugin-2.4's commit message
Dependencies upgrade:

* Spring boot to 2.7.18 and 3.2.1
* Upgrade of plexus-utils to the 3.0.24 (to get rid of CVE
vulnerabilities)

Client and server modes:
* Issues #205 and #207: The JSON and Object custom scalars are now
properly managed

Client mode:
* When executing full requests, the `query` keyword was mandatory,
whereas it is optional in the GraphQL specs.

graphql-gradle-plugin-2.3.2

Toggle graphql-gradle-plugin-2.3.2's commit message
Client and server modes:

* Correction of issue #202: the generated code would not compile, if a
GraphQL interface or type has a `class` attribute (due to the final
`getClass` method). The generated method is `get_Class()`

graphql-gradle-plugin-2.3.1

Toggle graphql-gradle-plugin-2.3.1's commit message
Client mode:

* Issue 199: the generated code would not compile if the GraphQL schema
is too big
* Issue #195: the _data_ part is now parsed even when there are errors.
If an error occurs during the request execution (for instance the
GraphQL server returns errors in its response), then the plugin tries to
parse the _data _ part of the response. The parsed _data_ is attached to
the thrown `GraphQLRequestExecutionException` or
`GraphQLRequestExecutionUncheckedException`, along with the full
response. They can be retrieved with the `getData()` and `getResponse()`
methods.
* Issue #200:
    * A missing break would prevent Custom Scalars of type Boolean to be
deserialized (could not read the server response)
    * Alias on fields that are a Custom scalars could not be
deserialized when using the deprecated ResponseType

graphql-gradle-plugin-1.18.12

Toggle graphql-gradle-plugin-1.18.12's commit message
Client and server modes:

* Correction of issues #184 and #198: error with custom scalars, when
the custom scalar's class is not in the plugin's classpath

Client mode:
* Issue 199: the generated code would not compile if the GraphQL schema
is too big

graphql-gradle-plugin-2.3

Toggle graphql-gradle-plugin-2.3's commit message
Client and server modes:

* Correction of issues #184 and #198: error with custom scalar, when the
custom scalar's class is not in the plugin's classpath

Client mode:
* Add of the reactive executors and GraphQL repositories:
    * Queries and mutations return Mono
    * Subscriptions return Flux

Gradle plugin:
* Correction of the issues #13 and #18: The plugin is running all tasks
instead of running only the configured tasks