From 2ed7266af0f2fa29dd0c6d68fcaf203ac2c96c06 Mon Sep 17 00:00:00 2001 From: "konrad.lys@eu.equinix.com" Date: Thu, 15 Jan 2026 10:31:06 +0100 Subject: [PATCH 1/3] Migrate to jackson 3 --- build.gradle | 4 +- docs/codegen-options.md | 10 +-- docs/migration-to-3.0.0.md | 30 ++++----- plugins/gradle/README.md | 4 +- .../gradle/example-client-kotlin/build.gradle | 16 ++--- .../io/github/dreamylost/QueryResolverImpl.kt | 10 +-- plugins/gradle/example-client/build.gradle | 4 +- .../product/ProductServiceGraphQLClient.java | 2 +- .../starwars/CharacterTypeResolver.java | 8 +-- .../build.gradle | 2 +- plugins/maven/README.md | 2 +- plugins/maven/example-client/pom.xml | 6 +- .../product/ProductServiceGraphQLClient.java | 2 +- .../starwars/CharacterTypeResolver.java | 8 +-- .../graphql-java-codegen-maven-plugin/pom.xml | 4 +- plugins/sbt/README.md | 12 ++-- .../graphql-java-codegen-sbt-plugin/build.sbt | 2 +- .../example-client-scala/build.sbt | 12 ++-- .../scala/io/github/dreamylost/Jackson.scala | 6 +- .../example-client/build.sbt | 12 ++-- .../scala/io/github/dreamylost/Jackson.scala | 6 +- .../scala/io/github/dreamylost/OkHttp.scala | 2 +- .../service/QueryResolverImpl.scala | 2 +- .../service/QueryResolverImpl2.scala | 2 +- .../codegen/java/JavaAnnotationsMapper.java | 2 +- .../kotlin/KotlinAnnotationsMapper.java | 2 +- .../codegen/mapper/AnnotationsMapper.java | 4 +- .../codegen/mapper/UnknownFieldsSupport.java | 4 +- .../model/GraphQLCodegenConfiguration.java | 10 +-- .../graphql/GraphQLOperationRequest.java | 4 +- .../graphql/GraphQLRequestSerializer.java | 14 ++-- .../codegen/parser/GraphQLDocumentParser.java | 4 +- .../codegen/scala/ScalaAnnotationsMapper.java | 4 +- .../MergeableMappingConfigSupplier.java | 6 +- .../graphql/codegen/utils/Utils.java | 4 +- .../java-lang/jackson_type_id_resolver.ftl | 8 +-- .../kotlin-lang/jackson_type_id_resolver.ftl | 8 +-- .../resources/templates/scala-lang/enum.ftl | 2 +- .../scala-lang/jackson_type_id_resolver.ftl | 8 +-- .../GraphQLCodegenAnnotationsTest.java | 64 +++++++++---------- .../GraphQLCodegenFieldsResolversTest.java | 2 +- .../kotlin/GraphQLCodegenAnnotationsTest.java | 20 +++--- .../graphql/GraphQLRequestSerializerTest.java | 12 ++-- .../graphql/data/ZonedDateTimeSerializer.java | 29 +++++---- .../scala/GraphQLCodegenAnnotationsTest.java | 40 ++++++------ .../GraphqlJacksonTypeIdResolver.java.txt | 8 +-- .../ResultObject.java.txt | 4 +- .../UnionToResolve.java.txt | 4 +- .../GraphqlJacksonTypeIdResolver.java.txt | 8 +-- .../MyResultObjectSuffix.java.txt | 4 +- .../MyUnionToResolveSuffix.java.txt | 4 +- .../GraphqlJacksonTypeIdResolver.kt.txt | 8 +-- .../ResultObject.kt.txt | 4 +- .../UnionToResolve.kt.txt | 4 +- .../GraphqlJacksonTypeIdResolver.kt.txt | 8 +-- .../MyResultObjectSuffix.kt.txt | 4 +- .../MyUnionToResolveSuffix.kt.txt | 4 +- .../resolvers/CommitResolver.java.txt | 2 +- .../scala/Comment_sealed_interfaces.scala.txt | 2 +- .../expected-classes/scala/Commit.scala.txt | 2 +- .../scala/Commit_Var_Field.scala.txt | 2 +- .../Commit_noValidationAnnotation.scala.txt | 2 +- .../scala/Commit_no_final_class.scala.txt | 2 +- .../Commit_normal_class_var_fields.scala.txt | 2 +- .../scala/Commit_withPrimitives.scala.txt | 2 +- .../scala/Commit_withoutPrimitives.scala.txt | 2 +- .../scala/GithubCommitTO.scala.txt | 2 +- .../scala/deprecated/Event.scala.txt | 2 +- .../scala/deprecated/Status.scala.txt | 2 +- .../scala/empty/Status.scala.txt | 2 +- .../scala/extend/Asset.scala.txt | 2 +- .../scala/extend/Event.scala.txt | 2 +- .../scala/extend/Status.scala.txt | 2 +- .../GraphqlJacksonTypeIdResolver.scala.txt | 8 +-- .../ResultObject.scala.txt | 4 +- .../UnionToResolve.scala.txt | 4 +- .../GraphqlJacksonTypeIdResolver.scala.txt | 8 +-- .../MyResultObjectSuffix.scala.txt | 4 +- .../MyUnionToResolveSuffix.scala.txt | 4 +- .../scala/tostring/Synchronized.scala.txt | 2 +- .../tostring/TOSTRING_Synchronized.scala.txt | 2 +- .../unknown-fields/InputWithDefaults.java.txt | 4 +- .../unknown-fields/SomeObject.java.txt | 4 +- src/test/resources/json/mappingconfig6.conf | 4 +- 84 files changed, 281 insertions(+), 282 deletions(-) diff --git a/build.gradle b/build.gradle index 0d6c49d25..43f802747 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,6 @@ plugins { id "java-library" id "signing" id "maven-publish" - id "org.sonarqube" version "4.0.0.2929" } def graphqlCodegenVersion = '5.10.1-SNAPSHOT' // This variable used in the automatic release process @@ -19,9 +18,10 @@ repositories { } dependencies { + implementation platform("tools.jackson:jackson-bom:3.0.3") compileOnly "org.freemarker:freemarker:2.3.32" compileOnly "com.graphql-java:graphql-java:20.2" - compileOnly "com.fasterxml.jackson.core:jackson-databind:2.15.3" + compileOnly "tools.jackson.core:jackson-databind" compileOnly "com.typesafe:config:1.4.3" testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.2" diff --git a/docs/codegen-options.md b/docs/codegen-options.md index c64ad322c..29fa48e2f 100644 --- a/docs/codegen-options.md +++ b/docs/codegen-options.md @@ -67,7 +67,7 @@ | `generateSealedInterfaces` | Boolean | False | This applies to generated interfaces on unions and interfaces. If true, generate sealed interfaces, else generate normal ones. It is only supported in Kotlin and Scala. | | `typesAsInterfaces` | Set(String) | Empty | Types that must generated as interfaces should be defined here in format: `TypeName` or `@directive`. E.g.: `User`, `@asInterface`. | | `fieldsWithDataFetcherResult` | Set(String) | Empty | Types that must have DataFetchResult should be defined here in format: `TypeName`, or `TypeName.fieldName` or `@directive`. E.g.: `Item`, `Item.items` or `@dataFetcherResult`. | -| `useObjectMapperForRequestSerialization` | Set(String) | Empty | Fields that require serialization using `com.fasterxml.jackson.databind.ObjectMapper#writeValueAsString(Object)`. Values should be defined here in the following format: `GraphqlObjectName.fieldName` or `GraphqlTypeName`. If just type is specified, then all fields of this type will be serialized using ObjectMapper. E.g.: `["Person.createdDateTime", ZonedDateTime"]` | +| `useObjectMapperForRequestSerialization` | Set(String) | Empty | Fields that require serialization using `tools.jackson.databind.ObjectMapper#writeValueAsString(Object)`. Values should be defined here in the following format: `GraphqlObjectName.fieldName` or `GraphqlTypeName`. If just type is specified, then all fields of this type will be serialized using ObjectMapper. E.g.: `["Person.createdDateTime", ZonedDateTime"]` | | `supportUnknownFields` | Boolean | False | Specifies whether api classes should support unknown fields during serialization or deserialization. If `true`, classes will include a property of type [`java.util.Map`](https://docs.oracle.com/javase/8/docs/api/index.html?java/util/Map.html) that will store unknown fields. | | `unknownFieldsPropertyName` | String | userDefinedFields | Specifies the name of the property to be included in api classes to support unknown fields during serialization or deserialization | | `skip` | Boolean | False | If true, then code generation will not happen | @@ -161,9 +161,9 @@ Can be used to supply custom annotations (serializers) for scalars. Supports following formats: * Map of (GraphQLObjectName.fieldName) to (JavaAnnotation). - E.g.: `Event.dateTime = @com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.example.DateDeserializer.class)` + E.g.: `Event.dateTime = @tools.jackson.databind.annotation.JsonDeserialize(using = com.example.DateDeserializer.class)` * Map of (GraphQLType) to (JavaAnnotation). - E.g.: `EpochMillis = @com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.example.EpochMillisDeserializer.class)` + E.g.: `EpochMillis = @tools.jackson.databind.annotation.JsonDeserialize(using = com.example.EpochMillisDeserializer.class)` ### Option `directiveAnnotationsMapping` @@ -239,7 +239,7 @@ customTypesMapping={ Object="org.json.JSONObject" } customAnnotationsMapping={ - "QuestionNode.metaData"=["com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.github.dreamylost.JsonObjectDeserializer::class)"] - "QuestionNode.envInfo"=["com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.github.dreamylost.JsonObjectDeserializer::class)"] + "QuestionNode.metaData"=["tools.jackson.databind.annotation.JsonDeserialize(using = com.github.dreamylost.JsonObjectDeserializer::class)"] + "QuestionNode.envInfo"=["tools.jackson.databind.annotation.JsonDeserialize(using = com.github.dreamylost.JsonObjectDeserializer::class)"] } ``` diff --git a/docs/migration-to-3.0.0.md b/docs/migration-to-3.0.0.md index 0e0141b6c..a8ba2cb18 100644 --- a/docs/migration-to-3.0.0.md +++ b/docs/migration-to-3.0.0.md @@ -72,8 +72,8 @@ by providing an array of annotations in the following format: - com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") - com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class) + tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") + tools.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class) @@ -84,8 +84,8 @@ by providing an array of annotations in the following format: - com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") - com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class) + tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") + tools.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class) @@ -102,9 +102,9 @@ by providing an array of annotations in the following format: ```groovy // OLD APPROACH customAnnotationsMapping = [ - "Character": "com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")" + "Character": "tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")" + System.lineSeparator() - + "com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)" + + "tools.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)" ] directiveAnnotationsMapping = [ "auth": "org.springframework.security.access.annotation.Secured({{roles}})" @@ -114,8 +114,8 @@ directiveAnnotationsMapping = [ // NEW APPROACH customAnnotationsMapping = [ "Character": [ - "com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", - "com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)" + "tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", + "tools.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)" ] ] directiveAnnotationsMapping = [ @@ -134,9 +134,9 @@ customAnnotationsMapping := { //property is __typename and you must use with __typename while invoke, like new CharacterResponseProjection().id().name().typename() //and in @JsonSubTypes.Type, name is __typename's value mapping.put("Character", - s"""@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = "__typename")${System.lineSeparator()}@com.fasterxml.jackson.annotation.JsonSubTypes(value = { - | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), - | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")}) + s"""@tools.jackson.annotation.JsonTypeInfo(use=tools.jackson.annotation.JsonTypeInfo.Id.NAME, include=tools.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = "__typename")${System.lineSeparator()}@tools.jackson.annotation.JsonSubTypes(value = { + | @tools.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), + | @tools.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")}) |""".stripMargin) mapping } @@ -146,10 +146,10 @@ customAnnotationsMapping := { customAnnotationsMapping := { val mapping = new util.HashMap[String, util.List[String]] val annotations = new util.ArrayList[String]() - annotations.add("@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") - annotations.add("""@com.fasterxml.jackson.annotation.JsonSubTypes(value = { - | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), - | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")})""".stripMargin) + annotations.add("@tools.jackson.annotation.JsonTypeInfo(use=tools.jackson.annotation.JsonTypeInfo.Id.NAME, include=tools.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") + annotations.add("""@tools.jackson.annotation.JsonSubTypes(value = { + | @tools.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), + | @tools.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")})""".stripMargin) //must add this annotation //property is __typename and you must use with __typename while invoke, like new CharacterResponseProjection().id().name().typename() //and in @JsonSubTypes.Type, name is __typename's value diff --git a/plugins/gradle/README.md b/plugins/gradle/README.md index d52fab055..b1ce5603c 100644 --- a/plugins/gradle/README.md +++ b/plugins/gradle/README.md @@ -58,7 +58,7 @@ graphqlCodegen { Price.amount: "java.math.BigDecimal" ] customAnnotationsMapping = [ - DateTime: ["@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.example.json.EpochMillisScalarDeserializer.class)"] + DateTime: ["@tools.jackson.databind.annotation.JsonDeserialize(using = com.example.json.EpochMillisScalarDeserializer.class)"] ] modelNameSuffix = "TO" } @@ -83,7 +83,7 @@ tasks.named("graphqlCodegen") { outputDir = File("$buildDir/generated") packageName = "com.example.graphql.model" customTypesMapping = mutableMapOf(Pair("EpochMillis", "java.time.LocalDateTime")) - customAnnotationsMapping = mutableMapOf(Pair("EpochMillis", listOf("@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.example.json.EpochMillisScalarDeserializer.class)"))) + customAnnotationsMapping = mutableMapOf(Pair("EpochMillis", listOf("@tools.jackson.databind.annotation.JsonDeserialize(using = com.example.json.EpochMillisScalarDeserializer.class)"))) } // Automatically generate GraphQL code on project build: diff --git a/plugins/gradle/example-client-kotlin/build.gradle b/plugins/gradle/example-client-kotlin/build.gradle index 1dba7082e..d85c22d25 100644 --- a/plugins/gradle/example-client-kotlin/build.gradle +++ b/plugins/gradle/example-client-kotlin/build.gradle @@ -32,10 +32,10 @@ dependencies { implementation "javax.validation:validation-api:2.0.1.Final" implementation "com.squareup.okhttp3:okhttp:4.11.0" - implementation "com.fasterxml.jackson.core:jackson-core:2.15.3" - implementation "com.fasterxml.jackson.core:jackson-databind:2.15.3" - implementation "com.fasterxml.jackson.module:jackson-module-kotlin:2.15.2" - implementation "com.fasterxml.jackson.core:jackson-annotations:2.15.3" + implementation "tools.jackson.core:jackson-core:2.15.3" + implementation "tools.jackson.core:jackson-databind:2.15.3" + implementation "tools.jackson.module:jackson-module-kotlin:2.15.2" + implementation "tools.jackson.core:jackson-annotations:2.15.3" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.2" @@ -60,10 +60,10 @@ task graphqlCodegenKotlinService(type: GraphQLCodegenGradleTask) { generateModelOpenClasses = true generateSealedInterfaces = true customAnnotationsMapping = [ - "Character": ["@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")", - "@com.fasterxml.jackson.annotation.JsonSubTypes(value = arrayOf(" + System.lineSeparator() + - " com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = HumanTO::class, name = \"Human\"), " + System.lineSeparator() + - " com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = DroidTO::class, name = \"Droid\")))"], + "Character": ["@tools.jackson.annotation.JsonTypeInfo(use=tools.jackson.annotation.JsonTypeInfo.Id.NAME, include=tools.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")", + "@tools.jackson.annotation.JsonSubTypes(value = arrayOf(" + System.lineSeparator() + + " tools.jackson.annotation.JsonSubTypes.Type(value = HumanTO::class, name = \"Human\"), " + System.lineSeparator() + + " tools.jackson.annotation.JsonSubTypes.Type(value = DroidTO::class, name = \"Droid\")))"], ] modelNameSuffix = "TO" supportUnknownFields = true diff --git a/plugins/gradle/example-client-kotlin/src/main/kotlin/io/github/dreamylost/QueryResolverImpl.kt b/plugins/gradle/example-client-kotlin/src/main/kotlin/io/github/dreamylost/QueryResolverImpl.kt index 8326a48ec..76edb010b 100644 --- a/plugins/gradle/example-client-kotlin/src/main/kotlin/io/github/dreamylost/QueryResolverImpl.kt +++ b/plugins/gradle/example-client-kotlin/src/main/kotlin/io/github/dreamylost/QueryResolverImpl.kt @@ -1,10 +1,10 @@ package io.github.dreamylost -import com.fasterxml.jackson.annotation.JsonInclude -import com.fasterxml.jackson.databind.DeserializationFeature -import com.fasterxml.jackson.module.kotlin.jsonMapper -import com.fasterxml.jackson.module.kotlin.kotlinModule -import com.fasterxml.jackson.module.kotlin.readValue +import tools.jackson.annotation.JsonInclude +import tools.jackson.databind.DeserializationFeature +import tools.jackson.module.kotlin.jsonMapper +import tools.jackson.module.kotlin.kotlinModule +import tools.jackson.module.kotlin.readValue import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest import io.github.dreamylost.api.QueryResolver import io.github.dreamylost.model.* diff --git a/plugins/gradle/example-client/build.gradle b/plugins/gradle/example-client/build.gradle index e3393ce3d..4d99a97bd 100644 --- a/plugins/gradle/example-client/build.gradle +++ b/plugins/gradle/example-client/build.gradle @@ -85,8 +85,8 @@ task graphqlCodegenStarwarsService(type: GraphQLCodegenGradleTask) { packageName = "io.github.kobylynskyi.starwars.graphql" customAnnotationsMapping = [ "Character": [ - "@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", - "@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)" + "@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", + "@tools.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)" ] ] generateClient = true diff --git a/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java b/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java index 9c1ab112d..b7bb01a2d 100644 --- a/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java +++ b/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java @@ -1,6 +1,6 @@ package io.github.kobylynskyi.order.external.product; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest; import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequests; import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLResponse; diff --git a/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java b/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java index 4b2a7b5f7..d08031ed9 100644 --- a/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java +++ b/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java @@ -1,9 +1,9 @@ package io.github.kobylynskyi.order.external.starwars; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.DatabindContext; -import com.fasterxml.jackson.databind.JavaType; -import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase; +import tools.jackson.annotation.JsonTypeInfo; +import tools.jackson.databind.DatabindContext; +import tools.jackson.databind.JavaType; +import tools.jackson.databind.jsontype.impl.TypeIdResolverBase; import io.github.kobylynskyi.starwars.graphql.Droid; import io.github.kobylynskyi.starwars.graphql.Human; diff --git a/plugins/gradle/graphql-java-codegen-gradle-plugin/build.gradle b/plugins/gradle/graphql-java-codegen-gradle-plugin/build.gradle index 98c4ea0cd..97e18c5ca 100644 --- a/plugins/gradle/graphql-java-codegen-gradle-plugin/build.gradle +++ b/plugins/gradle/graphql-java-codegen-gradle-plugin/build.gradle @@ -28,7 +28,7 @@ dependencies { implementation "org.freemarker:freemarker:2.3.32" implementation "com.graphql-java:graphql-java:20.2" - implementation "com.fasterxml.jackson.core:jackson-databind:2.15.3" + implementation "tools.jackson.core:jackson-databind" implementation "com.typesafe:config:1.4.3" testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2' diff --git a/plugins/maven/README.md b/plugins/maven/README.md index 34d315f28..4b37dcb9e 100644 --- a/plugins/maven/README.md +++ b/plugins/maven/README.md @@ -41,7 +41,7 @@ - com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.example.json.EpochMillisScalarDeserializer.class) + tools.jackson.databind.annotation.JsonDeserialize(using = com.example.json.EpochMillisScalarDeserializer.class) TO diff --git a/plugins/maven/example-client/pom.xml b/plugins/maven/example-client/pom.xml index 90006b698..475bf9508 100644 --- a/plugins/maven/example-client/pom.xml +++ b/plugins/maven/example-client/pom.xml @@ -74,11 +74,11 @@ io.github.kobylynskyi.starwars.graphql - @com.fasterxml.jackson.annotation.JsonTypeInfo(use = - com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") + @tools.jackson.annotation.JsonTypeInfo(use = + tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") - @com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class) + @tools.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class) diff --git a/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java b/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java index 9c1ab112d..b7bb01a2d 100644 --- a/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java +++ b/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java @@ -1,6 +1,6 @@ package io.github.kobylynskyi.order.external.product; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest; import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequests; import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLResponse; diff --git a/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java b/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java index 38ac4cc59..6b6d6beb2 100644 --- a/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java +++ b/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java @@ -1,9 +1,9 @@ package io.github.kobylynskyi.order.external.starwars; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.DatabindContext; -import com.fasterxml.jackson.databind.JavaType; -import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase; +import tools.jackson.annotation.JsonTypeInfo; +import tools.jackson.databind.DatabindContext; +import tools.jackson.databind.JavaType; +import tools.jackson.databind.jsontype.impl.TypeIdResolverBase; import io.github.kobylynskyi.starwars.graphql.Droid; import io.github.kobylynskyi.starwars.graphql.Human; diff --git a/plugins/maven/graphql-java-codegen-maven-plugin/pom.xml b/plugins/maven/graphql-java-codegen-maven-plugin/pom.xml index 4d19a3f3b..2f7899ca2 100644 --- a/plugins/maven/graphql-java-codegen-maven-plugin/pom.xml +++ b/plugins/maven/graphql-java-codegen-maven-plugin/pom.xml @@ -124,9 +124,9 @@ 20.2 - com.fasterxml.jackson.core + tools.jackson.core jackson-databind - 2.15.3 + 3.0.3 com.typesafe diff --git a/plugins/sbt/README.md b/plugins/sbt/README.md index 8b67c56f5..45d88e39f 100644 --- a/plugins/sbt/README.md +++ b/plugins/sbt/README.md @@ -39,17 +39,17 @@ customAnnotationsMapping := { // in the future, maybe wrap it by scala coolection val mapping = new util.HashMap[String, util.List[String]] val annotations = new util.ArrayList[String]() - annotations.add("@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") + annotations.add("@tools.jackson.annotation.JsonTypeInfo(use=tools.jackson.annotation.JsonTypeInfo.Id.NAME, include=tools.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") annotations.add( - """@com.fasterxml.jackson.annotation.JsonSubTypes(value = Array( - | new com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = classOf[HumanDO], name = "Human"), - | new com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = classOf[DroidDO], name = "Droid")))""".stripMargin) + """@tools.jackson.annotation.JsonSubTypes(value = Array( + | new tools.jackson.annotation.JsonSubTypes.Type(value = classOf[HumanDO], name = "Human"), + | new tools.jackson.annotation.JsonSubTypes.Type(value = classOf[DroidDO], name = "Droid")))""".stripMargin) mapping.put("Character", annotations) // Note: only for Scala, please pay attention here, codegen have not generated `EpisodeDOTypeRefer.scala` class, so you should create it. // Since, 4.1.3, support to generate it. // Since, 5.1.0, It will be done automatically, no need to add this. - mapping.put("Droid.appearsIn", util.Arrays.asList("@com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[io.github.dreamylost.model.EpisodeDOTypeRefer])")) - mapping.put("Human.appearsIn", util.Arrays.asList("@com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[io.github.dreamylost.model.EpisodeDOTypeRefer])")) + mapping.put("Droid.appearsIn", util.Arrays.asList("@tools.jackson.module.scala.JsonScalaEnumeration(classOf[io.github.dreamylost.model.EpisodeDOTypeRefer])")) + mapping.put("Human.appearsIn", util.Arrays.asList("@tools.jackson.module.scala.JsonScalaEnumeration(classOf[io.github.dreamylost.model.EpisodeDOTypeRefer])")) mapping } generateCodegenTargetPath in GraphQLCodegenConfig := crossTarget.value / "src_managed_graphql_scala" diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/build.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/build.sbt index dd56e4b25..ef7822e9e 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/build.sbt +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/build.sbt @@ -18,7 +18,7 @@ lazy val `graphql-codegen-sbt-plugin` = Project(id = "graphql-codegen-sbt-plugin "io.github.kobylynskyi" % "graphql-java-codegen" % (ThisBuild / version).value, "org.freemarker" % "freemarker" % "2.3.31", "com.graphql-java" % "graphql-java" % "20.2", - "com.fasterxml.jackson.core" % "jackson-databind" % "2.12.1", + "tools.jackson.core" % "jackson-databind" % "3.0.0", "com.typesafe" % "config" % "1.4.2" ), buildInfoKeys := Seq[BuildInfoKey](name, version, sbtVersion, javaValidationVersion), diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/build.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/build.sbt index adf7f2554..8dd7835d7 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/build.sbt +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/build.sbt @@ -10,8 +10,8 @@ libraryDependencies ++= Seq( "org.apache.logging.log4j" % "log4j-core" % "2.8.2", "org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.8.2", "com.squareup.okhttp3" % "okhttp" % "4.7.2", - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.11.3", - "com.fasterxml.jackson.core" % "jackson-databind" % "2.11.3", + "tools.jackson.module" %% "jackson-module-scala" % "3.0.0", + "tools.jackson.core" % "jackson-databind" % "3.0.0", "org.json" % "json" % "20190722") enablePlugins(GraphQLCodegenPlugin) @@ -28,11 +28,11 @@ modelNameSuffix := Some("DO") customAnnotationsMapping := { val mapping = new util.HashMap[String, util.List[String]] val annotations = new util.ArrayList[String]() - annotations.add("@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") + annotations.add("@tools.jackson.annotation.JsonTypeInfo(use=tools.jackson.annotation.JsonTypeInfo.Id.NAME, include=tools.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") annotations.add( - """@com.fasterxml.jackson.annotation.JsonSubTypes(value = Array( - | new com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = classOf[HumanDO], name = "Human"), - | new com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = classOf[DroidDO], name = "Droid")))""".stripMargin) + """@tools.jackson.annotation.JsonSubTypes(value = Array( + | new tools.jackson.annotation.JsonSubTypes.Type(value = classOf[HumanDO], name = "Human"), + | new tools.jackson.annotation.JsonSubTypes.Type(value = classOf[DroidDO], name = "Droid")))""".stripMargin) mapping.put("Character", annotations) mapping } diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/Jackson.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/Jackson.scala index 8cc8d3c88..7fe7998f8 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/Jackson.scala +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/Jackson.scala @@ -1,8 +1,8 @@ package io.github.dreamylost -import com.fasterxml.jackson.annotation.JsonInclude.Include -import com.fasterxml.jackson.databind.{ DeserializationFeature, ObjectMapper } -import com.fasterxml.jackson.module.scala.{ DefaultScalaModule, ScalaObjectMapper } +import tools.jackson.annotation.JsonInclude.Include +import tools.jackson.databind.{ DeserializationFeature, ObjectMapper } +import tools.jackson.module.scala.{ DefaultScalaModule, ScalaObjectMapper } object Jackson { diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/build.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/build.sbt index 07f8abaac..0eb63179b 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/build.sbt +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/build.sbt @@ -10,8 +10,8 @@ libraryDependencies ++= Seq( "org.apache.logging.log4j" % "log4j-core" % "2.8.2", "org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.8.2", "com.squareup.okhttp3" % "okhttp" % "4.7.2", - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.11.1", - "com.fasterxml.jackson.core" % "jackson-databind" % "2.11.1", + "tools.jackson.module" %% "jackson-module-scala" % "3.0.0", + "tools.jackson.core" % "jackson-databind" % "3.0.0", "org.json" % "json" % "20190722", "com.graphql-java" % "graphql-java" % "16.2") @@ -43,10 +43,10 @@ modelNameSuffix := Some("DO") customAnnotationsMapping := { val mapping = new util.HashMap[String, util.List[String]] val annotations = new util.ArrayList[String]() - annotations.add("@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") - annotations.add("""@com.fasterxml.jackson.annotation.JsonSubTypes(value = { - | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), - | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")})""".stripMargin) + annotations.add("@tools.jackson.annotation.JsonTypeInfo(use=tools.jackson.annotation.JsonTypeInfo.Id.NAME, include=tools.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") + annotations.add("""@tools.jackson.annotation.JsonSubTypes(value = { + | @tools.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), + | @tools.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")})""".stripMargin) //must add this annotation //property is __typename and you must with __typename while invoke, like new CharacterResponseProjection().id().name().typename() //and in @JsonSubTypes.Type, name is __typename's value diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/Jackson.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/Jackson.scala index 8cc8d3c88..7fe7998f8 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/Jackson.scala +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/Jackson.scala @@ -1,8 +1,8 @@ package io.github.dreamylost -import com.fasterxml.jackson.annotation.JsonInclude.Include -import com.fasterxml.jackson.databind.{ DeserializationFeature, ObjectMapper } -import com.fasterxml.jackson.module.scala.{ DefaultScalaModule, ScalaObjectMapper } +import tools.jackson.annotation.JsonInclude.Include +import tools.jackson.databind.{ DeserializationFeature, ObjectMapper } +import tools.jackson.module.scala.{ DefaultScalaModule, ScalaObjectMapper } object Jackson { diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/OkHttp.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/OkHttp.scala index e21a70500..be239e8f8 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/OkHttp.scala +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/OkHttp.scala @@ -4,7 +4,7 @@ import java.io.IOException import java.util import java.util.concurrent.TimeUnit -import com.fasterxml.jackson.core.`type`.TypeReference +import tools.jackson.core.`type`.TypeReference import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest import okhttp3._ import org.json.JSONObject diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala index 97cc88b26..e7384246b 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala @@ -2,7 +2,7 @@ package io.github.dreamylost.service import java.util -import com.fasterxml.jackson.core.`type`.TypeReference +import tools.jackson.core.`type`.TypeReference import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest import io.github.dreamylost.api.QueryResolver import io.github.dreamylost.OkHttp diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl2.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl2.scala index 46c3aa84e..6adce2895 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl2.scala +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl2.scala @@ -2,7 +2,7 @@ package io.github.dreamylost.service import java.util -import com.fasterxml.jackson.core.`type`.TypeReference +import tools.jackson.core.`type`.TypeReference import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest import io.github.dreamylost.api.QueryResolver import io.github.dreamylost.model._ diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/java/JavaAnnotationsMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/java/JavaAnnotationsMapper.java index 8fa0238bc..80f888adc 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/java/JavaAnnotationsMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/java/JavaAnnotationsMapper.java @@ -30,7 +30,7 @@ public ValueMapper getValueMapper() { @Override public String getJacksonResolverTypeIdAnnotation(String modelPackageName) { - return "com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(" + modelPackageName + + return "tools.jackson.databind.annotation.JsonTypeIdResolver(" + modelPackageName + "GraphqlJacksonTypeIdResolver.class)"; } diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/kotlin/KotlinAnnotationsMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/kotlin/KotlinAnnotationsMapper.java index 349581eaa..4a622ff5f 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/kotlin/KotlinAnnotationsMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/kotlin/KotlinAnnotationsMapper.java @@ -28,7 +28,7 @@ public boolean addModelValidationAnnotationForType(String possiblyPrimitiveType) @Override public String getJacksonResolverTypeIdAnnotation(String modelPackageName) { - return "com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(" + modelPackageName + + return "tools.jackson.databind.annotation.JsonTypeIdResolver(" + modelPackageName + "GraphqlJacksonTypeIdResolver::class)"; } diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/AnnotationsMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/AnnotationsMapper.java index 0ec2c7136..2c791efe4 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/AnnotationsMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/AnnotationsMapper.java @@ -210,8 +210,8 @@ public List getJacksonTypeIdAnnotations(MappingContext mappingContext, N List defaults = new ArrayList<>(); if (Boolean.TRUE.equals(mappingContext.getGenerateJacksonTypeIdResolver()) && (def instanceof UnionTypeDefinition || def instanceof InterfaceTypeDefinition)) { - defaults.add("com.fasterxml.jackson.annotation.JsonTypeInfo(use = " + - "com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")"); + defaults.add("tools.jackson.annotation.JsonTypeInfo(use = " + + "tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")"); String modelPackageName = DataModelMapper.getModelPackageName(mappingContext); if (modelPackageName == null) { modelPackageName = ""; diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/UnknownFieldsSupport.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/UnknownFieldsSupport.java index 3930f1d34..dd7867eb9 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/UnknownFieldsSupport.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/UnknownFieldsSupport.java @@ -33,8 +33,8 @@ default Optional createUnknownFields(MappingContext mapping unknownFields.setVisibility(Utils.getFieldVisibility(mappingContext)); unknownFields.setType("java.util.Map"); unknownFields.setAnnotations(Arrays.asList( - "com.fasterxml.jackson.annotation.JsonAnyGetter", - "com.fasterxml.jackson.annotation.JsonAnySetter" + "tools.jackson.annotation.JsonAnyGetter", + "tools.jackson.annotation.JsonAnySetter" )); return Optional.of(unknownFields); } diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/model/GraphQLCodegenConfiguration.java b/src/main/java/com/kobylynskyi/graphql/codegen/model/GraphQLCodegenConfiguration.java index 8510667d0..6d287ca2d 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/model/GraphQLCodegenConfiguration.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/model/GraphQLCodegenConfiguration.java @@ -53,7 +53,7 @@ public interface GraphQLCodegenConfiguration { * * *

E.g.: - * {@code EpochMillis --- @com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.example.json + * {@code EpochMillis --- @tools.jackson.databind.annotation.JsonDeserialize(using = com.example.json * .EpochMillisScalarDeserializer.class)} * * @return mappings from GraphqlType to JavaAnnotation @@ -459,7 +459,7 @@ public interface GraphQLCodegenConfiguration { /** * Fields that require serialization using - * {@link com.fasterxml.jackson.databind.ObjectMapper#writeValueAsString(Object)} + * {@link tools.jackson.databind.json.JsonMapper#writeValueAsString(Object)} * *

Values should be defined here in format: GraphqlObjectName.fieldName or GraphqlTypeName * @@ -472,7 +472,7 @@ public interface GraphQLCodegenConfiguration { * * * @return Set of types and fields that should be serialized using - * {@link com.fasterxml.jackson.databind.ObjectMapper#writeValueAsString(Object)} + * {@link tools.jackson.databind.json.JsonMapper#writeValueAsString(Object)} */ Set getUseObjectMapperForRequestSerialization(); @@ -548,8 +548,8 @@ public interface GraphQLCodegenConfiguration { * Specifies whether api classes should support unknown fields during serialization or deserialization. * * @return true classes will include a property of type {@link java.util.Map} that will store unknown fields. - * @see com.fasterxml.jackson.annotation.JsonAnyGetter - * @see com.fasterxml.jackson.annotation.JsonAnySetter + * @see tools.jackson.annotation.JsonAnyGetter + * @see tools.jackson.annotation.JsonAnySetter */ Boolean isSupportUnknownFields(); diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/model/graphql/GraphQLOperationRequest.java b/src/main/java/com/kobylynskyi/graphql/codegen/model/graphql/GraphQLOperationRequest.java index 4a2a72830..224fe437c 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/model/graphql/GraphQLOperationRequest.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/model/graphql/GraphQLOperationRequest.java @@ -42,7 +42,7 @@ public interface GraphQLOperationRequest { /** * Fields that require serialization using - * {@link com.fasterxml.jackson.databind.ObjectMapper#writeValueAsString(Object)} + * {@link tools.jackson.databind.json.JsonMapper#writeValueAsString(Object)} * *

Values should be defined here in format: GraphqlObjectName.fieldName or GraphqlTypeName * @@ -55,7 +55,7 @@ public interface GraphQLOperationRequest { * * * @return Set of types and fields that should be serialized using - * {@link com.fasterxml.jackson.databind.ObjectMapper#writeValueAsString(Object)} + * {@link tools.jackson.databind.json.JsonMapper#writeValueAsString(Object)} */ default Set getUseObjectMapperForInputSerialization() { return Collections.emptySet(); diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/model/graphql/GraphQLRequestSerializer.java b/src/main/java/com/kobylynskyi/graphql/codegen/model/graphql/GraphQLRequestSerializer.java index 7eed10332..668a3cd04 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/model/graphql/GraphQLRequestSerializer.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/model/graphql/GraphQLRequestSerializer.java @@ -1,8 +1,8 @@ package com.kobylynskyi.graphql.codegen.model.graphql; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.json.JsonMapper; +import tools.jackson.databind.node.ObjectNode; import com.kobylynskyi.graphql.codegen.utils.Utils; import java.util.Collection; @@ -18,7 +18,7 @@ */ public class GraphQLRequestSerializer { - public static final ObjectMapper OBJECT_MAPPER = Utils.OBJECT_MAPPER; + public static JsonMapper JSON_MAPPER = Utils.JSON_MAPPER; private GraphQLRequestSerializer() { } @@ -137,7 +137,7 @@ private static boolean requestHasInput(Map input) { } private static String jsonQuery(String queryString) { - ObjectNode objectNode = Utils.OBJECT_MAPPER.createObjectNode(); + ObjectNode objectNode = Utils.JSON_MAPPER.createObjectNode(); objectNode.put("query", queryString); return objectMapperWriteValueAsString(objectNode); } @@ -250,8 +250,8 @@ public static String escapeJsonString(String stringValue) { public static String objectMapperWriteValueAsString(Object input) { try { - return OBJECT_MAPPER.writeValueAsString(input); - } catch (JsonProcessingException e) { + return JSON_MAPPER.writeValueAsString(input); + } catch (JacksonException e) { throw new UnableToBuildJsonQueryException(e); } } diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/parser/GraphQLDocumentParser.java b/src/main/java/com/kobylynskyi/graphql/codegen/parser/GraphQLDocumentParser.java index 0044d7c1d..0cd34f20d 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/parser/GraphQLDocumentParser.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/parser/GraphQLDocumentParser.java @@ -1,6 +1,6 @@ package com.kobylynskyi.graphql.codegen.parser; -import com.fasterxml.jackson.core.type.TypeReference; +import tools.jackson.core.type.TypeReference; import com.kobylynskyi.graphql.codegen.model.MappingConfig; import com.kobylynskyi.graphql.codegen.model.definitions.ExtendedDefinition; import com.kobylynskyi.graphql.codegen.model.definitions.ExtendedDocument; @@ -75,7 +75,7 @@ public static ExtendedDocument getDocumentFromSchemas(MappingConfig mappingConfi public static ExtendedDocument getDocumentFromIntrospectionResult(MappingConfig mappingConfig, String introspectionResult) throws IOException { String introspectionResultContent = Utils.getFileContent(introspectionResult); - Map introspectionResultMap = Utils.OBJECT_MAPPER.readValue(introspectionResultContent, + Map introspectionResultMap = Utils.JSON_MAPPER.readValue(introspectionResultContent, new TypeReference>() { }); diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/scala/ScalaAnnotationsMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/scala/ScalaAnnotationsMapper.java index 411860222..7455f3169 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/scala/ScalaAnnotationsMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/scala/ScalaAnnotationsMapper.java @@ -28,7 +28,7 @@ public boolean addModelValidationAnnotationForType(String possiblyPrimitiveType) @Override public String getJacksonResolverTypeIdAnnotation(String modelPackageName) { - return "com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(classOf[" + modelPackageName + + return "tools.jackson.databind.annotation.JsonTypeIdResolver(classOf[" + modelPackageName + "GraphqlJacksonTypeIdResolver])"; } @@ -53,7 +53,7 @@ public List getAdditionalAnnotations(MappingContext mappingContext, Stri typeNameWithPrefixAndSuffixBuilder.insert(0, modelPackageName + "."); } String annotation = String.format( - "com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[%sTypeRefer])", + "tools.jackson.module.scala.JsonScalaEnumeration(classOf[%sTypeRefer])", typeNameWithPrefixAndSuffixBuilder); return Collections.singletonList(annotation); } diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/supplier/MergeableMappingConfigSupplier.java b/src/main/java/com/kobylynskyi/graphql/codegen/supplier/MergeableMappingConfigSupplier.java index 0d12e4f43..eeb8d633f 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/supplier/MergeableMappingConfigSupplier.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/supplier/MergeableMappingConfigSupplier.java @@ -1,6 +1,5 @@ package com.kobylynskyi.graphql.codegen.supplier; -import com.fasterxml.jackson.core.JsonProcessingException; import com.kobylynskyi.graphql.codegen.model.MappingConfig; import com.kobylynskyi.graphql.codegen.utils.Utils; import com.typesafe.config.Config; @@ -10,6 +9,7 @@ import java.io.File; import java.util.List; +import tools.jackson.core.JacksonException; /** * Retrieve a MappingConfig from JSON or HOCON configuration file. @@ -57,8 +57,8 @@ private static String parseConfigAndMerged(List confFiles) { public MappingConfig get() { if (jsonConfig != null && !jsonConfig.isEmpty()) { try { - return Utils.OBJECT_MAPPER.readValue(jsonConfig, MappingConfig.class); - } catch (ConfigException | JsonProcessingException e) { + return Utils.JSON_MAPPER.readValue(jsonConfig, MappingConfig.class); + } catch (ConfigException | JacksonException e) { throw new IllegalArgumentException(e); } } diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/utils/Utils.java b/src/main/java/com/kobylynskyi/graphql/codegen/utils/Utils.java index 8315f9686..d4f013a83 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/utils/Utils.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/utils/Utils.java @@ -1,6 +1,5 @@ package com.kobylynskyi.graphql.codegen.utils; -import com.fasterxml.jackson.databind.ObjectMapper; import com.kobylynskyi.graphql.codegen.model.MappingContext; import com.kobylynskyi.graphql.codegen.model.exception.UnableToCreateDirectoryException; import com.kobylynskyi.graphql.codegen.model.exception.UnableToDeleteDirectoryException; @@ -12,6 +11,7 @@ import java.nio.file.Paths; import java.util.Collection; import java.util.Objects; +import tools.jackson.databind.json.JsonMapper; /** * Various utilities @@ -20,7 +20,7 @@ */ public final class Utils { - public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + public static final JsonMapper JSON_MAPPER = new JsonMapper(); private Utils() { } diff --git a/src/main/resources/templates/java-lang/jackson_type_id_resolver.ftl b/src/main/resources/templates/java-lang/jackson_type_id_resolver.ftl index 53fb6a01c..64e47d112 100644 --- a/src/main/resources/templates/java-lang/jackson_type_id_resolver.ftl +++ b/src/main/resources/templates/java-lang/jackson_type_id_resolver.ftl @@ -2,10 +2,10 @@ package ${package}; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.DatabindContext; -import com.fasterxml.jackson.databind.JavaType; -import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase; +import tools.jackson.annotation.JsonTypeInfo; +import tools.jackson.databind.DatabindContext; +import tools.jackson.databind.JavaType; +import tools.jackson.databind.jsontype.impl.TypeIdResolverBase; <#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( diff --git a/src/main/resources/templates/kotlin-lang/jackson_type_id_resolver.ftl b/src/main/resources/templates/kotlin-lang/jackson_type_id_resolver.ftl index b04f3343e..1cc74fa36 100644 --- a/src/main/resources/templates/kotlin-lang/jackson_type_id_resolver.ftl +++ b/src/main/resources/templates/kotlin-lang/jackson_type_id_resolver.ftl @@ -2,10 +2,10 @@ package ${package} -import com.fasterxml.jackson.annotation.JsonTypeInfo -import com.fasterxml.jackson.databind.DatabindContext -import com.fasterxml.jackson.databind.JavaType -import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase +import tools.jackson.annotation.JsonTypeInfo +import tools.jackson.databind.DatabindContext +import tools.jackson.databind.JavaType +import tools.jackson.databind.jsontype.impl.TypeIdResolverBase <#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( diff --git a/src/main/resources/templates/scala-lang/enum.ftl b/src/main/resources/templates/scala-lang/enum.ftl index e00c30423..b4c3380ba 100644 --- a/src/main/resources/templates/scala-lang/enum.ftl +++ b/src/main/resources/templates/scala-lang/enum.ftl @@ -3,7 +3,7 @@ package ${package} <#if serializationLibrary == 'JACKSON'> -import com.fasterxml.jackson.core.`type`.TypeReference +import tools.jackson.core.`type`.TypeReference <#if javaDoc?has_content> diff --git a/src/main/resources/templates/scala-lang/jackson_type_id_resolver.ftl b/src/main/resources/templates/scala-lang/jackson_type_id_resolver.ftl index 99eca095e..c636afd7c 100644 --- a/src/main/resources/templates/scala-lang/jackson_type_id_resolver.ftl +++ b/src/main/resources/templates/scala-lang/jackson_type_id_resolver.ftl @@ -2,10 +2,10 @@ package ${package} -import com.fasterxml.jackson.annotation.JsonTypeInfo -import com.fasterxml.jackson.databind.DatabindContext -import com.fasterxml.jackson.databind.JavaType -import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase +import tools.jackson.annotation.JsonTypeInfo +import tools.jackson.databind.DatabindContext +import tools.jackson.databind.JavaType +import tools.jackson.databind.jsontype.impl.TypeIdResolverBase <#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( diff --git a/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenAnnotationsTest.java b/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenAnnotationsTest.java index 5c2b6329e..af3fb1130 100644 --- a/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenAnnotationsTest.java +++ b/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenAnnotationsTest.java @@ -48,14 +48,14 @@ void cleanup() { void generate_CustomAnnotationMappings() throws Exception { mappingConfig.setCustomTypesMapping(singletonMap("Event.createdDateTime", "org.joda.time.DateTime")); mappingConfig.setCustomAnnotationsMapping(singletonMap("Event.createdDateTime", - singletonList("@com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("@tools.jackson.databind.annotation.JsonDeserialize(" + "using = com.example.json.DateTimeScalarDeserializer.class)"))); generate("src/test/resources/schemas/test.graphqls"); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "Event.java", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@tools.jackson.databind.annotation.JsonDeserialize(", "using = com.example.json.DateTimeScalarDeserializer.class)", " private org.joda.time.DateTime createdDateTime;"); } @@ -64,14 +64,14 @@ void generate_CustomAnnotationMappings() throws Exception { void generate_CustomAnnotationMappings_Type() throws Exception { mappingConfig.setCustomTypesMapping(singletonMap("DateTime", "org.joda.time.DateTime")); mappingConfig.setCustomAnnotationsMapping(singletonMap("DateTime", - singletonList("com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("tools.jackson.databind.annotation.JsonDeserialize(" + "using = com.example.json.DateTimeScalarDeserializer.class)"))); generate("src/test/resources/schemas/test.graphqls"); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "Event.java", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@tools.jackson.databind.annotation.JsonDeserialize(", "using = com.example.json.DateTimeScalarDeserializer.class)", " private org.joda.time.DateTime createdDateTime;"); } @@ -79,13 +79,13 @@ void generate_CustomAnnotationMappings_Type() throws Exception { @Test void generate_CustomAnnotationMappings_Input() throws Exception { mappingConfig.setCustomAnnotationsMapping(new HashMap<>(singletonMap("ReproInput.reproField", - singletonList("@com.fasterxml.jackson.annotation.JsonProperty(\"reproField\")")))); + singletonList("@tools.jackson.annotation.JsonProperty(\"reproField\")")))); generate("src/test/resources/schemas/input.graphqls"); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "ReproInput.java", - " @com.fasterxml.jackson.annotation.JsonProperty(\"reproField\")" + lineSeparator() + + " @tools.jackson.annotation.JsonProperty(\"reproField\")" + lineSeparator() + " private java.util.List reproField;"); } @@ -93,14 +93,14 @@ void generate_CustomAnnotationMappings_Input() throws Exception { void generate_CustomAnnotationMappings_Regexp() throws Exception { mappingConfig.setCustomTypesMapping(singletonMap("DateTime", "org.joda.time.DateTime")); mappingConfig.setCustomAnnotationsMapping(singletonMap("Date.*", - singletonList("com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("tools.jackson.databind.annotation.JsonDeserialize(" + "using = com.example.json.DateTimeScalarDeserializer.class)"))); generate("src/test/resources/schemas/test.graphqls"); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "Event.java", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@tools.jackson.databind.annotation.JsonDeserialize(", "using = com.example.json.DateTimeScalarDeserializer.class)", " private org.joda.time.DateTime createdDateTime;"); } @@ -109,14 +109,14 @@ void generate_CustomAnnotationMappings_Regexp() throws Exception { void generate_CustomAnnotationMappings_FieldType() throws Exception { mappingConfig.setCustomTypesMapping(singletonMap("DateTime", "org.joda.time.DateTime")); mappingConfig.setCustomAnnotationsMapping(singletonMap("Event.createdDateTime", - singletonList("@com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("@tools.jackson.databind.annotation.JsonDeserialize(" + "using = com.example.json.DateTimeScalarDeserializer.class)"))); generate("src/test/resources/schemas/test.graphqls"); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "Event.java", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@tools.jackson.databind.annotation.JsonDeserialize(", "using = com.example.json.DateTimeScalarDeserializer.class)", " private org.joda.time.DateTime createdDateTime;"); } @@ -125,14 +125,14 @@ void generate_CustomAnnotationMappings_FieldType() throws Exception { void generate_CustomAnnotationMappings_FieldType_Regexp() throws Exception { mappingConfig.setCustomTypesMapping(singletonMap("DateTime", "org.joda.time.DateTime")); mappingConfig.setCustomAnnotationsMapping(singletonMap("Event..*Date.*", - singletonList("@com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("@tools.jackson.databind.annotation.JsonDeserialize(" + "using = com.example.json.DateTimeScalarDeserializer.class)"))); generate("src/test/resources/schemas/test.graphqls"); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "Event.java", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@tools.jackson.databind.annotation.JsonDeserialize(", "using = com.example.json.DateTimeScalarDeserializer.class)", " private org.joda.time.DateTime createdDateTime;"); } @@ -142,23 +142,23 @@ void generate_CustomAnnotationMappings_Class() throws Exception { Map> customAnnotationsMapping = new HashMap<>(); // input customAnnotationsMapping.put("AcceptTopicSuggestionInput", - singletonList("@com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("@tools.jackson.databind.annotation.JsonDeserialize(" + "using = AcceptTopicSuggestionInputDeserializer.class)")); // type customAnnotationsMapping.put("AcceptTopicSuggestionPayload", - singletonList("com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("tools.jackson.databind.annotation.JsonDeserialize(" + "using = AcceptTopicSuggestionPayloadDeserializer.class)")); // interface customAnnotationsMapping.put("Actor", - singletonList("@com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("@tools.jackson.databind.annotation.JsonDeserialize(" + "using = ActorDeserializer.class)")); // union customAnnotationsMapping.put("Assignee", - singletonList("com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("tools.jackson.databind.annotation.JsonDeserialize(" + "using = AssigneeDeserializer.class)")); // enum customAnnotationsMapping.put("DeploymentOrderField", - singletonList("@com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("@tools.jackson.databind.annotation.JsonDeserialize(" + "using = DeploymentOrderFieldDeserializer.class)")); mappingConfig.setCustomAnnotationsMapping(customAnnotationsMapping); @@ -166,23 +166,23 @@ void generate_CustomAnnotationMappings_Class() throws Exception { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "AcceptTopicSuggestionInput.java", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@tools.jackson.databind.annotation.JsonDeserialize(", "using = AcceptTopicSuggestionInputDeserializer.class)", "public class AcceptTopicSuggestionInput "); assertFileContainsElements(files, "AcceptTopicSuggestionPayload.java", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@tools.jackson.databind.annotation.JsonDeserialize(", "using = AcceptTopicSuggestionPayloadDeserializer.class)", "public class AcceptTopicSuggestionPayload "); assertFileContainsElements(files, "Actor.java", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@tools.jackson.databind.annotation.JsonDeserialize(", "using = ActorDeserializer.class)", "public interface Actor "); assertFileContainsElements(files, "Assignee.java", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@tools.jackson.databind.annotation.JsonDeserialize(", "using = AssigneeDeserializer.class)", "public interface Assignee "); assertFileContainsElements(files, "DeploymentOrderField.java", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@tools.jackson.databind.annotation.JsonDeserialize(", "using = DeploymentOrderFieldDeserializer.class)", "public enum DeploymentOrderField "); } @@ -192,9 +192,9 @@ void generate_CustomAnnotationMappings_Multiple() throws Exception { Map> customAnnotationsMapping = new HashMap<>(); // type customAnnotationsMapping.put("AcceptTopicSuggestionPayload", Arrays.asList( - "@com.fasterxml.jackson.annotation.JsonTypeInfo(use = " + - "com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", - "@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(" + + "@tools.jackson.annotation.JsonTypeInfo(use = " + + "tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", + "@tools.jackson.databind.annotation.JsonTypeIdResolver(" + "io.github.kobylynskyi.order.external.starwars." + "AcceptTopicSuggestionPayloadTypeResolver.class)")); mappingConfig.setCustomAnnotationsMapping(customAnnotationsMapping); @@ -203,9 +203,9 @@ void generate_CustomAnnotationMappings_Multiple() throws Exception { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "AcceptTopicSuggestionPayload.java", - "@com.fasterxml.jackson.annotation.JsonTypeInfo(", - "use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", - "@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(", + "@tools.jackson.annotation.JsonTypeInfo(", + "use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", + "@tools.jackson.databind.annotation.JsonTypeIdResolver(", "io.github.kobylynskyi.order.external.starwars.AcceptTopicSuggestionPayloadTypeResolver.class)", "public class AcceptTopicSuggestionPayload "); } @@ -251,11 +251,11 @@ void generate_CustomAnnotationMappings_RequestResponseClasses() throws Exception Map> customAnnotationsMapping = new HashMap<>(); // request customAnnotationsMapping.put("CodeOfConductQueryRequest", - singletonList("@com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("@tools.jackson.databind.annotation.JsonDeserialize(" + "using = CodeOfConductQueryRequestDeserializer.class)")); // response customAnnotationsMapping.put("CodeOfConductQueryResponse", - singletonList("com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("tools.jackson.databind.annotation.JsonDeserialize(" + "using = CodeOfConductQueryResponseDeserializer.class)")); mappingConfig.setCustomAnnotationsMapping(customAnnotationsMapping); mappingConfig.setGenerateClient(true); @@ -264,11 +264,11 @@ void generate_CustomAnnotationMappings_RequestResponseClasses() throws Exception File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "CodeOfConductQueryRequest.java", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@tools.jackson.databind.annotation.JsonDeserialize(", "using = CodeOfConductQueryRequestDeserializer.class)", "public class CodeOfConductQueryRequest implements GraphQLOperationRequest {"); assertFileContainsElements(files, "CodeOfConductQueryResponse.java", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@tools.jackson.databind.annotation.JsonDeserialize(", "using = CodeOfConductQueryResponseDeserializer.class)", "public class CodeOfConductQueryResponse extends GraphQLResult> {"); } diff --git a/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenFieldsResolversTest.java b/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenFieldsResolversTest.java index cb897cd6f..2d7ca1d26 100644 --- a/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenFieldsResolversTest.java +++ b/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenFieldsResolversTest.java @@ -43,7 +43,7 @@ void generate_ParametrizedFields() throws Exception { mappingConfig.setGenerateParameterizedFieldsResolvers(true); mappingConfig.setGenerateDataFetchingEnvironmentArgumentInApis(true); mappingConfig.setCustomAnnotationsMapping(new HashMap<>(singletonMap("Commit.blame", - singletonList("com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("tools.jackson.databind.annotation.JsonDeserialize(" + "using = com.example.json.DateTimeScalarDeserializer.class)")))); generate("src/test/resources/schemas/github.graphqls"); diff --git a/src/test/java/com/kobylynskyi/graphql/codegen/kotlin/GraphQLCodegenAnnotationsTest.java b/src/test/java/com/kobylynskyi/graphql/codegen/kotlin/GraphQLCodegenAnnotationsTest.java index 6b47f9e34..fe3c0c186 100644 --- a/src/test/java/com/kobylynskyi/graphql/codegen/kotlin/GraphQLCodegenAnnotationsTest.java +++ b/src/test/java/com/kobylynskyi/graphql/codegen/kotlin/GraphQLCodegenAnnotationsTest.java @@ -44,14 +44,14 @@ void cleanup() { void generate_CustomAnnotationMappings() throws Exception { mappingConfig.setCustomTypesMapping(singletonMap("Event.createdDateTime", "org.joda.time.DateTime")); mappingConfig.setCustomAnnotationsMapping(singletonMap("Event.createdDateTime", - singletonList("@com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("@tools.jackson.databind.annotation.JsonDeserialize(" + "using = com.example.json.DateTimeScalarDeserializer.class)"))); generate("src/test/resources/schemas/test.graphqls"); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "Event.kt", - "@field:com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@field:tools.jackson.databind.annotation.JsonDeserialize(", "using = com.example.json.DateTimeScalarDeserializer.class)", " val createdDateTime: org.joda.time.DateTime?"); } @@ -60,14 +60,14 @@ void generate_CustomAnnotationMappings() throws Exception { void generate_CustomAnnotationMappings_Type() throws Exception { mappingConfig.setCustomTypesMapping(singletonMap("DateTime", "org.joda.time.DateTime")); mappingConfig.setCustomAnnotationsMapping(singletonMap("DateTime", - singletonList("com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("tools.jackson.databind.annotation.JsonDeserialize(" + "using = com.example.json.DateTimeScalarDeserializer.class)"))); generate("src/test/resources/schemas/test.graphqls"); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "Event.kt", - "@field:com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@field:tools.jackson.databind.annotation.JsonDeserialize(", "using = com.example.json.DateTimeScalarDeserializer.class)", " val createdDateTime: org.joda.time.DateTime?"); } @@ -75,13 +75,13 @@ void generate_CustomAnnotationMappings_Type() throws Exception { @Test void generate_CustomAnnotationMappings_Input() throws Exception { mappingConfig.setCustomAnnotationsMapping(singletonMap("ReproInput.reproField", - singletonList("@com.fasterxml.jackson.annotation.JsonProperty(\"reproField\")"))); + singletonList("@tools.jackson.annotation.JsonProperty(\"reproField\")"))); generate("src/test/resources/schemas/input.graphqls"); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "ReproInput.kt", - " @field:com.fasterxml.jackson.annotation.JsonProperty(\"reproField\")" + lineSeparator() + + " @field:tools.jackson.annotation.JsonProperty(\"reproField\")" + lineSeparator() + " val reproField: List"); } @@ -89,14 +89,14 @@ void generate_CustomAnnotationMappings_Input() throws Exception { void generate_CustomAnnotationMappings_Regexp() throws Exception { mappingConfig.setCustomTypesMapping(singletonMap("DateTime", "org.joda.time.DateTime")); mappingConfig.setCustomAnnotationsMapping(singletonMap("Date.*", - singletonList("com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("tools.jackson.databind.annotation.JsonDeserialize(" + "using = com.example.json.DateTimeScalarDeserializer.class)"))); generate("src/test/resources/schemas/test.graphqls"); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "Event.kt", - "@field:com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@field:tools.jackson.databind.annotation.JsonDeserialize(", "using = com.example.json.DateTimeScalarDeserializer.class)", " val createdDateTime: org.joda.time.DateTime?"); } @@ -105,14 +105,14 @@ void generate_CustomAnnotationMappings_Regexp() throws Exception { void generate_CustomAnnotationMappings_FieldType() throws Exception { mappingConfig.setCustomTypesMapping(singletonMap("DateTime", "org.joda.time.DateTime")); mappingConfig.setCustomAnnotationsMapping(singletonMap("Event.createdDateTime", - singletonList("@com.fasterxml.jackson.databind.annotation.JsonDeserialize(" + + singletonList("@tools.jackson.databind.annotation.JsonDeserialize(" + "using = com.example.json.DateTimeScalarDeserializer.class)"))); generate("src/test/resources/schemas/test.graphqls"); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "Event.kt", - "@field:com.fasterxml.jackson.databind.annotation.JsonDeserialize(", + "@field:tools.jackson.databind.annotation.JsonDeserialize(", "using = com.example.json.DateTimeScalarDeserializer.class)", " val createdDateTime: org.joda.time.DateTime?"); } diff --git a/src/test/java/com/kobylynskyi/graphql/codegen/model/graphql/GraphQLRequestSerializerTest.java b/src/test/java/com/kobylynskyi/graphql/codegen/model/graphql/GraphQLRequestSerializerTest.java index 25bc0bad2..451f8304c 100644 --- a/src/test/java/com/kobylynskyi/graphql/codegen/model/graphql/GraphQLRequestSerializerTest.java +++ b/src/test/java/com/kobylynskyi/graphql/codegen/model/graphql/GraphQLRequestSerializerTest.java @@ -1,6 +1,6 @@ package com.kobylynskyi.graphql.codegen.model.graphql; -import com.fasterxml.jackson.databind.module.SimpleModule; +import tools.jackson.databind.module.SimpleModule; import com.kobylynskyi.graphql.codegen.model.graphql.data.DateInput; import com.kobylynskyi.graphql.codegen.model.graphql.data.EventPropertyChildParametrizedInput; import com.kobylynskyi.graphql.codegen.model.graphql.data.EventPropertyParentParametrizedInput; @@ -302,8 +302,7 @@ void serialize_complexRequestWithDefaultData(String name, Function serializer, Function expectedQueryDecorator) { - GraphQLRequestSerializer.OBJECT_MAPPER.registerModule( - new SimpleModule().addSerializer(new ZonedDateTimeSerializer())); + GraphQLRequestSerializer.JSON_MAPPER = GraphQLRequestSerializer.JSON_MAPPER.rebuild().addModule(new SimpleModule().addSerializer(new ZonedDateTimeSerializer())).build(); UpdateDateMutationRequest updateDateMutationRequest = new UpdateDateMutationRequest(); DateInput input = new DateInput(); @@ -321,8 +320,8 @@ void serialize_UseObjectMapperForSomeFields(String name, Function serializer, Function expectedQueryDecorator) { - GraphQLRequestSerializer.OBJECT_MAPPER.registerModule( - new SimpleModule().addSerializer(new ZonedDateTimeSerializer())); + GraphQLRequestSerializer.JSON_MAPPER = GraphQLRequestSerializer.JSON_MAPPER.rebuild().addModule(new SimpleModule().addSerializer(new ZonedDateTimeSerializer())).build(); + UpdateDate2MutationRequest updateDateMutationRequest = new UpdateDate2MutationRequest(); updateDateMutationRequest.setInput(ZonedDateTime.parse("2020-07-30T22:17:17.884-05:00[America/Chicago]")); @@ -337,8 +336,7 @@ void serialize_UseObjectMapperForQueryParameter(String name, Function serializer, Function expectedQueryDecorator) { - GraphQLRequestSerializer.OBJECT_MAPPER.registerModule( - new SimpleModule().addSerializer(new ZonedDateTimeSerializer())); + GraphQLRequestSerializer.JSON_MAPPER = GraphQLRequestSerializer.JSON_MAPPER.rebuild().addModule(new SimpleModule().addSerializer(new ZonedDateTimeSerializer())).build(); EventsByCategoryAndStatusQueryRequest request = new EventsByCategoryAndStatusQueryRequest.Builder() .setCategoryId("categoryIdValue1") diff --git a/src/test/java/com/kobylynskyi/graphql/codegen/model/graphql/data/ZonedDateTimeSerializer.java b/src/test/java/com/kobylynskyi/graphql/codegen/model/graphql/data/ZonedDateTimeSerializer.java index 3854cf27f..0edf2535f 100644 --- a/src/test/java/com/kobylynskyi/graphql/codegen/model/graphql/data/ZonedDateTimeSerializer.java +++ b/src/test/java/com/kobylynskyi/graphql/codegen/model/graphql/data/ZonedDateTimeSerializer.java @@ -1,24 +1,25 @@ package com.kobylynskyi.graphql.codegen.model.graphql.data; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - import java.io.IOException; import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import tools.jackson.core.JacksonException; +import tools.jackson.core.JsonGenerator; +import tools.jackson.databind.SerializationContext; +import tools.jackson.databind.ValueSerializer; -public class ZonedDateTimeSerializer extends JsonSerializer { +public class ZonedDateTimeSerializer extends ValueSerializer { - @Override - public void serialize(ZonedDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { - ZonedDateTime utcDateTime = value.withZoneSameInstant(ZoneId.of("UTC")); - gen.writeString(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(utcDateTime)); - } + @Override + public void serialize(ZonedDateTime value, JsonGenerator gen, SerializationContext ctxt) + throws JacksonException { + ZonedDateTime utcDateTime = value.withZoneSameInstant(ZoneId.of("UTC")); + gen.writeString(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(utcDateTime)); + } - @Override - public Class handledType() { - return ZonedDateTime.class; - } + @Override + public Class handledType() { + return ZonedDateTime.class; + } } \ No newline at end of file diff --git a/src/test/java/com/kobylynskyi/graphql/codegen/scala/GraphQLCodegenAnnotationsTest.java b/src/test/java/com/kobylynskyi/graphql/codegen/scala/GraphQLCodegenAnnotationsTest.java index c8c1e1d11..639ef078c 100644 --- a/src/test/java/com/kobylynskyi/graphql/codegen/scala/GraphQLCodegenAnnotationsTest.java +++ b/src/test/java/com/kobylynskyi/graphql/codegen/scala/GraphQLCodegenAnnotationsTest.java @@ -50,7 +50,7 @@ void generate_CustomAnnotationMappings() throws Exception { mappingConfig.setCustomTypesMapping(singletonMap("Event.createdDateTime", "org.joda.time.DateTime")); mappingConfig.setCustomAnnotationsMapping(singletonMap("Event.createdDateTime", singletonList( - "@com.fasterxml.jackson.databind" + + "@tools.jackson.databind" + ".annotation.JsonDeserialize(using =" + " classOf[com.example.json" + ".DateTimeScalarDeserializer])"))); @@ -59,7 +59,7 @@ void generate_CustomAnnotationMappings() throws Exception { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "Event.scala", - " @com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = ", + " @tools.jackson.databind.annotation.JsonDeserialize(using = ", "classOf[com.example.json.DateTimeScalarDeserializer])", " createdDateTime: org.joda.time.DateTime,"); } @@ -69,21 +69,21 @@ void generate_CustomAnnotationMappings_Class() throws Exception { Map> customAnnotationsMapping = new HashMap<>(); // input customAnnotationsMapping.put("AcceptTopicSuggestionInput", singletonList( - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = " + + "@tools.jackson.databind.annotation.JsonDeserialize(using = " + "classOf[AcceptTopicSuggestionInputDeserializer])")); // type customAnnotationsMapping.put("AcceptTopicSuggestionPayload", singletonList( - "com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = " + + "tools.jackson.databind.annotation.JsonDeserialize(using = " + "classOf[AcceptTopicSuggestionPayloadDeserializer])")); // interface customAnnotationsMapping.put("Actor", singletonList( - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = classOf[ActorDeserializer])")); + "@tools.jackson.databind.annotation.JsonDeserialize(using = classOf[ActorDeserializer])")); // union customAnnotationsMapping.put("Assignee", singletonList( - "com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = classOf[AssigneeDeserializer])")); + "tools.jackson.databind.annotation.JsonDeserialize(using = classOf[AssigneeDeserializer])")); // enum customAnnotationsMapping.put("DeploymentOrderField", singletonList( - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = " + + "@tools.jackson.databind.annotation.JsonDeserialize(using = " + "classOf[DeploymentOrderFieldDeserializer])")); mappingConfig.setCustomAnnotationsMapping(customAnnotationsMapping); @@ -91,23 +91,23 @@ void generate_CustomAnnotationMappings_Class() throws Exception { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "AcceptTopicSuggestionInput.scala", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = ", + "@tools.jackson.databind.annotation.JsonDeserialize(using = ", "classOf[AcceptTopicSuggestionInputDeserializer])", "case class AcceptTopicSuggestionInput"); assertFileContainsElements(files, "AcceptTopicSuggestionPayload.scala", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = ", + "@tools.jackson.databind.annotation.JsonDeserialize(using = ", "classOf[AcceptTopicSuggestionPayloadDeserializer])", "case class AcceptTopicSuggestionPayload"); assertFileContainsElements(files, "Actor.scala", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = ", + "@tools.jackson.databind.annotation.JsonDeserialize(using = ", "classOf[ActorDeserializer])", "trait Actor"); assertFileContainsElements(files, "Assignee.scala", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = ", + "@tools.jackson.databind.annotation.JsonDeserialize(using = ", "classOf[AssigneeDeserializer])", "trait Assignee"); assertFileContainsElements(files, "DeploymentOrderField.scala", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = ", + "@tools.jackson.databind.annotation.JsonDeserialize(using = ", "classOf[DeploymentOrderFieldDeserializer])", "object DeploymentOrderField extends Enumeration"); } @@ -117,9 +117,9 @@ void generate_CustomAnnotationMappings_Multiple() throws Exception { Map> customAnnotationsMapping = new HashMap<>(); // type customAnnotationsMapping.put("AcceptTopicSuggestionPayload", Arrays.asList( - "@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id" + "@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id" + ".NAME, property = \"__typename\")", - "@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(classOf[io.github.kobylynskyi.order" + "@tools.jackson.databind.annotation.JsonTypeIdResolver(classOf[io.github.kobylynskyi.order" + ".external.starwars.AcceptTopicSuggestionPayloadTypeResolver])")); mappingConfig.setCustomAnnotationsMapping(customAnnotationsMapping); @@ -127,9 +127,9 @@ void generate_CustomAnnotationMappings_Multiple() throws Exception { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "AcceptTopicSuggestionPayload.scala", - "@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson", + "@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson", ".annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", - "@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(classOf[io.github", + "@tools.jackson.databind.annotation.JsonTypeIdResolver(classOf[io.github", ".kobylynskyi.order.external.starwars.AcceptTopicSuggestionPayloadTypeResolver])", "case class AcceptTopicSuggestionPayload"); } @@ -139,11 +139,11 @@ void generate_CustomAnnotationMappings_RequestResponseClasses() throws Exception Map> customAnnotationsMapping = new HashMap<>(); // request customAnnotationsMapping.put("CodeOfConductQueryRequest", singletonList( - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = " + + "@tools.jackson.databind.annotation.JsonDeserialize(using = " + "classOf[CodeOfConductQueryRequestDeserializer])")); // response customAnnotationsMapping.put("CodeOfConductQueryResponse", singletonList( - "com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = " + + "tools.jackson.databind.annotation.JsonDeserialize(using = " + "classOf[CodeOfConductQueryResponseDeserializer])")); mappingConfig.setCustomAnnotationsMapping(customAnnotationsMapping); mappingConfig.setGenerateClient(true); @@ -152,11 +152,11 @@ void generate_CustomAnnotationMappings_RequestResponseClasses() throws Exception File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertFileContainsElements(files, "CodeOfConductQueryRequest.scala", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = ", + "@tools.jackson.databind.annotation.JsonDeserialize(using = ", "classOf[CodeOfConductQueryRequestDeserializer])", "class CodeOfConductQueryRequest"); assertFileContainsElements(files, "CodeOfConductQueryResponse.scala", - "@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = ", + "@tools.jackson.databind.annotation.JsonDeserialize(using = ", "classOf[CodeOfConductQueryResponseDeserializer])", "class CodeOfConductQueryResponse extends GraphQLResult[JMap[String, CodeOfConduct]]"); } diff --git a/src/test/resources/expected-classes/jackson-resolver-union/GraphqlJacksonTypeIdResolver.java.txt b/src/test/resources/expected-classes/jackson-resolver-union/GraphqlJacksonTypeIdResolver.java.txt index 0524091e4..994592dff 100644 --- a/src/test/resources/expected-classes/jackson-resolver-union/GraphqlJacksonTypeIdResolver.java.txt +++ b/src/test/resources/expected-classes/jackson-resolver-union/GraphqlJacksonTypeIdResolver.java.txt @@ -1,9 +1,9 @@ package com.kobylynskyi.graphql.unionresolver; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.DatabindContext; -import com.fasterxml.jackson.databind.JavaType; -import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase; +import tools.jackson.annotation.JsonTypeInfo; +import tools.jackson.databind.DatabindContext; +import tools.jackson.databind.JavaType; +import tools.jackson.databind.jsontype.impl.TypeIdResolverBase; @javax.annotation.Generated( value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", diff --git a/src/test/resources/expected-classes/jackson-resolver-union/ResultObject.java.txt b/src/test/resources/expected-classes/jackson-resolver-union/ResultObject.java.txt index ccaceef42..643298476 100644 --- a/src/test/resources/expected-classes/jackson-resolver-union/ResultObject.java.txt +++ b/src/test/resources/expected-classes/jackson-resolver-union/ResultObject.java.txt @@ -5,8 +5,8 @@ package com.kobylynskyi.graphql.unionresolver; value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "2020-12-31T23:59:59-0500" ) -@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") -@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(com.kobylynskyi.graphql.unionresolver.GraphqlJacksonTypeIdResolver.class) +@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") +@tools.jackson.databind.annotation.JsonTypeIdResolver(com.kobylynskyi.graphql.unionresolver.GraphqlJacksonTypeIdResolver.class) public interface ResultObject { java.util.List getList(); diff --git a/src/test/resources/expected-classes/jackson-resolver-union/UnionToResolve.java.txt b/src/test/resources/expected-classes/jackson-resolver-union/UnionToResolve.java.txt index dc8a22b34..fdd0eef0f 100644 --- a/src/test/resources/expected-classes/jackson-resolver-union/UnionToResolve.java.txt +++ b/src/test/resources/expected-classes/jackson-resolver-union/UnionToResolve.java.txt @@ -5,8 +5,8 @@ package com.kobylynskyi.graphql.unionresolver; value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "2020-12-31T23:59:59-0500" ) -@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") -@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(com.kobylynskyi.graphql.unionresolver.GraphqlJacksonTypeIdResolver.class) +@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") +@tools.jackson.databind.annotation.JsonTypeIdResolver(com.kobylynskyi.graphql.unionresolver.GraphqlJacksonTypeIdResolver.class) public interface UnionToResolve { } diff --git a/src/test/resources/expected-classes/jackson-resolver-union/without-model-package/GraphqlJacksonTypeIdResolver.java.txt b/src/test/resources/expected-classes/jackson-resolver-union/without-model-package/GraphqlJacksonTypeIdResolver.java.txt index 58bb492d2..27105fdaf 100644 --- a/src/test/resources/expected-classes/jackson-resolver-union/without-model-package/GraphqlJacksonTypeIdResolver.java.txt +++ b/src/test/resources/expected-classes/jackson-resolver-union/without-model-package/GraphqlJacksonTypeIdResolver.java.txt @@ -1,7 +1,7 @@ -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.DatabindContext; -import com.fasterxml.jackson.databind.JavaType; -import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase; +import tools.jackson.annotation.JsonTypeInfo; +import tools.jackson.databind.DatabindContext; +import tools.jackson.databind.JavaType; +import tools.jackson.databind.jsontype.impl.TypeIdResolverBase; @javax.annotation.Generated( value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", diff --git a/src/test/resources/expected-classes/jackson-resolver-union/without-model-package/MyResultObjectSuffix.java.txt b/src/test/resources/expected-classes/jackson-resolver-union/without-model-package/MyResultObjectSuffix.java.txt index 4acd42053..35707c043 100644 --- a/src/test/resources/expected-classes/jackson-resolver-union/without-model-package/MyResultObjectSuffix.java.txt +++ b/src/test/resources/expected-classes/jackson-resolver-union/without-model-package/MyResultObjectSuffix.java.txt @@ -2,8 +2,8 @@ value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "2020-12-31T23:59:59-0500" ) -@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") -@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(GraphqlJacksonTypeIdResolver.class) +@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") +@tools.jackson.databind.annotation.JsonTypeIdResolver(GraphqlJacksonTypeIdResolver.class) public interface MyResultObjectSuffix { java.util.List getList(); diff --git a/src/test/resources/expected-classes/jackson-resolver-union/without-model-package/MyUnionToResolveSuffix.java.txt b/src/test/resources/expected-classes/jackson-resolver-union/without-model-package/MyUnionToResolveSuffix.java.txt index 8623d12c1..f84a9333a 100644 --- a/src/test/resources/expected-classes/jackson-resolver-union/without-model-package/MyUnionToResolveSuffix.java.txt +++ b/src/test/resources/expected-classes/jackson-resolver-union/without-model-package/MyUnionToResolveSuffix.java.txt @@ -2,8 +2,8 @@ value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "2020-12-31T23:59:59-0500" ) -@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") -@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(GraphqlJacksonTypeIdResolver.class) +@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") +@tools.jackson.databind.annotation.JsonTypeIdResolver(GraphqlJacksonTypeIdResolver.class) public interface MyUnionToResolveSuffix { } diff --git a/src/test/resources/expected-classes/kt/jackson-resolver-union/GraphqlJacksonTypeIdResolver.kt.txt b/src/test/resources/expected-classes/kt/jackson-resolver-union/GraphqlJacksonTypeIdResolver.kt.txt index 67701868e..0b4e73f81 100644 --- a/src/test/resources/expected-classes/kt/jackson-resolver-union/GraphqlJacksonTypeIdResolver.kt.txt +++ b/src/test/resources/expected-classes/kt/jackson-resolver-union/GraphqlJacksonTypeIdResolver.kt.txt @@ -1,9 +1,9 @@ package com.kobylynskyi.graphql.unionresolver -import com.fasterxml.jackson.annotation.JsonTypeInfo -import com.fasterxml.jackson.databind.DatabindContext -import com.fasterxml.jackson.databind.JavaType -import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase +import tools.jackson.annotation.JsonTypeInfo +import tools.jackson.databind.DatabindContext +import tools.jackson.databind.JavaType +import tools.jackson.databind.jsontype.impl.TypeIdResolverBase @javax.annotation.Generated( value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], diff --git a/src/test/resources/expected-classes/kt/jackson-resolver-union/ResultObject.kt.txt b/src/test/resources/expected-classes/kt/jackson-resolver-union/ResultObject.kt.txt index ce3847886..55837997e 100644 --- a/src/test/resources/expected-classes/kt/jackson-resolver-union/ResultObject.kt.txt +++ b/src/test/resources/expected-classes/kt/jackson-resolver-union/ResultObject.kt.txt @@ -5,8 +5,8 @@ package com.kobylynskyi.graphql.unionresolver value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "2020-12-31T23:59:59-0500" ) -@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") -@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(com.kobylynskyi.graphql.unionresolver.GraphqlJacksonTypeIdResolver::class) +@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") +@tools.jackson.databind.annotation.JsonTypeIdResolver(com.kobylynskyi.graphql.unionresolver.GraphqlJacksonTypeIdResolver::class) interface ResultObject { val list: List? diff --git a/src/test/resources/expected-classes/kt/jackson-resolver-union/UnionToResolve.kt.txt b/src/test/resources/expected-classes/kt/jackson-resolver-union/UnionToResolve.kt.txt index d0950eaf6..19dc80e05 100644 --- a/src/test/resources/expected-classes/kt/jackson-resolver-union/UnionToResolve.kt.txt +++ b/src/test/resources/expected-classes/kt/jackson-resolver-union/UnionToResolve.kt.txt @@ -5,8 +5,8 @@ package com.kobylynskyi.graphql.unionresolver value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "2020-12-31T23:59:59-0500" ) -@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") -@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(com.kobylynskyi.graphql.unionresolver.GraphqlJacksonTypeIdResolver::class) +@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") +@tools.jackson.databind.annotation.JsonTypeIdResolver(com.kobylynskyi.graphql.unionresolver.GraphqlJacksonTypeIdResolver::class) interface UnionToResolve { } \ No newline at end of file diff --git a/src/test/resources/expected-classes/kt/jackson-resolver-union/without-model-package/GraphqlJacksonTypeIdResolver.kt.txt b/src/test/resources/expected-classes/kt/jackson-resolver-union/without-model-package/GraphqlJacksonTypeIdResolver.kt.txt index 464945021..4545b4f9c 100644 --- a/src/test/resources/expected-classes/kt/jackson-resolver-union/without-model-package/GraphqlJacksonTypeIdResolver.kt.txt +++ b/src/test/resources/expected-classes/kt/jackson-resolver-union/without-model-package/GraphqlJacksonTypeIdResolver.kt.txt @@ -1,7 +1,7 @@ -import com.fasterxml.jackson.annotation.JsonTypeInfo -import com.fasterxml.jackson.databind.DatabindContext -import com.fasterxml.jackson.databind.JavaType -import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase +import tools.jackson.annotation.JsonTypeInfo +import tools.jackson.databind.DatabindContext +import tools.jackson.databind.JavaType +import tools.jackson.databind.jsontype.impl.TypeIdResolverBase @javax.annotation.Generated( value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], diff --git a/src/test/resources/expected-classes/kt/jackson-resolver-union/without-model-package/MyResultObjectSuffix.kt.txt b/src/test/resources/expected-classes/kt/jackson-resolver-union/without-model-package/MyResultObjectSuffix.kt.txt index a4a619cca..345734362 100644 --- a/src/test/resources/expected-classes/kt/jackson-resolver-union/without-model-package/MyResultObjectSuffix.kt.txt +++ b/src/test/resources/expected-classes/kt/jackson-resolver-union/without-model-package/MyResultObjectSuffix.kt.txt @@ -2,8 +2,8 @@ value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "2020-12-31T23:59:59-0500" ) -@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") -@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(GraphqlJacksonTypeIdResolver::class) +@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") +@tools.jackson.databind.annotation.JsonTypeIdResolver(GraphqlJacksonTypeIdResolver::class) interface MyResultObjectSuffix { val list: List? diff --git a/src/test/resources/expected-classes/kt/jackson-resolver-union/without-model-package/MyUnionToResolveSuffix.kt.txt b/src/test/resources/expected-classes/kt/jackson-resolver-union/without-model-package/MyUnionToResolveSuffix.kt.txt index 8c9c832bb..aebbd984c 100644 --- a/src/test/resources/expected-classes/kt/jackson-resolver-union/without-model-package/MyUnionToResolveSuffix.kt.txt +++ b/src/test/resources/expected-classes/kt/jackson-resolver-union/without-model-package/MyUnionToResolveSuffix.kt.txt @@ -2,8 +2,8 @@ value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "2020-12-31T23:59:59-0500" ) -@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") -@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(GraphqlJacksonTypeIdResolver::class) +@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") +@tools.jackson.databind.annotation.JsonTypeIdResolver(GraphqlJacksonTypeIdResolver::class) interface MyUnionToResolveSuffix { } \ No newline at end of file diff --git a/src/test/resources/expected-classes/resolvers/CommitResolver.java.txt b/src/test/resources/expected-classes/resolvers/CommitResolver.java.txt index 175457624..3c2aed0a1 100644 --- a/src/test/resources/expected-classes/resolvers/CommitResolver.java.txt +++ b/src/test/resources/expected-classes/resolvers/CommitResolver.java.txt @@ -13,7 +13,7 @@ public interface CommitResolver { PullRequestConnection associatedPullRequests(Commit commit, String after, String before, Integer first, Integer last, PullRequestOrder orderBy, graphql.schema.DataFetchingEnvironment env) throws Exception; @javax.validation.constraints.NotNull - @com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.example.json.DateTimeScalarDeserializer.class) + @tools.jackson.databind.annotation.JsonDeserialize(using = com.example.json.DateTimeScalarDeserializer.class) Blame blame(Commit commit, @javax.validation.constraints.NotNull String path, graphql.schema.DataFetchingEnvironment env) throws Exception; @javax.validation.constraints.NotNull diff --git a/src/test/resources/expected-classes/scala/Comment_sealed_interfaces.scala.txt b/src/test/resources/expected-classes/scala/Comment_sealed_interfaces.scala.txt index 4e2d51a34..0f0d311c0 100644 --- a/src/test/resources/expected-classes/scala/Comment_sealed_interfaces.scala.txt +++ b/src/test/resources/expected-classes/scala/Comment_sealed_interfaces.scala.txt @@ -11,7 +11,7 @@ sealed trait Comment { val author: Actor @javax.validation.constraints.NotNull - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.CommentAuthorAssociationTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.CommentAuthorAssociationTypeRefer]) val authorAssociation: CommentAuthorAssociation @javax.validation.constraints.NotNull diff --git a/src/test/resources/expected-classes/scala/Commit.scala.txt b/src/test/resources/expected-classes/scala/Commit.scala.txt index 2595aa34f..5ed065cb4 100644 --- a/src/test/resources/expected-classes/scala/Commit.scala.txt +++ b/src/test/resources/expected-classes/scala/Commit.scala.txt @@ -68,7 +68,7 @@ case class Commit( @javax.validation.constraints.NotNull override val url: String, override val viewerCanSubscribe: Boolean, - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) override val viewerSubscription: SubscriptionState, @javax.validation.constraints.NotNull zipballUrl: String diff --git a/src/test/resources/expected-classes/scala/Commit_Var_Field.scala.txt b/src/test/resources/expected-classes/scala/Commit_Var_Field.scala.txt index 2fba5775c..8e5af615f 100644 --- a/src/test/resources/expected-classes/scala/Commit_Var_Field.scala.txt +++ b/src/test/resources/expected-classes/scala/Commit_Var_Field.scala.txt @@ -68,7 +68,7 @@ case class Commit( @javax.validation.constraints.NotNull override var url: String, override var viewerCanSubscribe: Boolean, - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) override var viewerSubscription: SubscriptionState, @javax.validation.constraints.NotNull var zipballUrl: String diff --git a/src/test/resources/expected-classes/scala/Commit_noValidationAnnotation.scala.txt b/src/test/resources/expected-classes/scala/Commit_noValidationAnnotation.scala.txt index 831be78f0..3ccf4528d 100644 --- a/src/test/resources/expected-classes/scala/Commit_noValidationAnnotation.scala.txt +++ b/src/test/resources/expected-classes/scala/Commit_noValidationAnnotation.scala.txt @@ -45,7 +45,7 @@ case class Commit( treeUrl: String, override val url: String, override val viewerCanSubscribe: Boolean, - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) override val viewerSubscription: SubscriptionState, zipballUrl: String ) extends Closer with IssueTimelineItem with PullRequestTimelineItem with Subscribable with Node with GitObject with UniformResourceLocatable { diff --git a/src/test/resources/expected-classes/scala/Commit_no_final_class.scala.txt b/src/test/resources/expected-classes/scala/Commit_no_final_class.scala.txt index ff216623c..89e908368 100644 --- a/src/test/resources/expected-classes/scala/Commit_no_final_class.scala.txt +++ b/src/test/resources/expected-classes/scala/Commit_no_final_class.scala.txt @@ -69,7 +69,7 @@ class Commit( @javax.validation.constraints.NotNull override val url: String, override val viewerCanSubscribe: Boolean, - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) override val viewerSubscription: SubscriptionState, @javax.validation.constraints.NotNull val zipballUrl: String diff --git a/src/test/resources/expected-classes/scala/Commit_normal_class_var_fields.scala.txt b/src/test/resources/expected-classes/scala/Commit_normal_class_var_fields.scala.txt index f4b560c7c..ea75e7c81 100644 --- a/src/test/resources/expected-classes/scala/Commit_normal_class_var_fields.scala.txt +++ b/src/test/resources/expected-classes/scala/Commit_normal_class_var_fields.scala.txt @@ -69,7 +69,7 @@ class Commit( @javax.validation.constraints.NotNull override var url: String, override var viewerCanSubscribe: Boolean, - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) override var viewerSubscription: SubscriptionState, @javax.validation.constraints.NotNull var zipballUrl: String diff --git a/src/test/resources/expected-classes/scala/Commit_withPrimitives.scala.txt b/src/test/resources/expected-classes/scala/Commit_withPrimitives.scala.txt index 2595aa34f..5ed065cb4 100644 --- a/src/test/resources/expected-classes/scala/Commit_withPrimitives.scala.txt +++ b/src/test/resources/expected-classes/scala/Commit_withPrimitives.scala.txt @@ -68,7 +68,7 @@ case class Commit( @javax.validation.constraints.NotNull override val url: String, override val viewerCanSubscribe: Boolean, - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) override val viewerSubscription: SubscriptionState, @javax.validation.constraints.NotNull zipballUrl: String diff --git a/src/test/resources/expected-classes/scala/Commit_withoutPrimitives.scala.txt b/src/test/resources/expected-classes/scala/Commit_withoutPrimitives.scala.txt index 3900ffc57..c6d7c1cd1 100644 --- a/src/test/resources/expected-classes/scala/Commit_withoutPrimitives.scala.txt +++ b/src/test/resources/expected-classes/scala/Commit_withoutPrimitives.scala.txt @@ -74,7 +74,7 @@ case class Commit( override val url: String, @javax.validation.constraints.NotNull override val viewerCanSubscribe: java.lang.Boolean, - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.SubscriptionStateTypeRefer]) override val viewerSubscription: SubscriptionState, @javax.validation.constraints.NotNull zipballUrl: String diff --git a/src/test/resources/expected-classes/scala/GithubCommitTO.scala.txt b/src/test/resources/expected-classes/scala/GithubCommitTO.scala.txt index a2aeaa058..33a722910 100644 --- a/src/test/resources/expected-classes/scala/GithubCommitTO.scala.txt +++ b/src/test/resources/expected-classes/scala/GithubCommitTO.scala.txt @@ -68,7 +68,7 @@ case class GithubCommitTO( @javax.validation.constraints.NotNull override val url: String, override val viewerCanSubscribe: Boolean, - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.GithubSubscriptionStateTOTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.GithubSubscriptionStateTOTypeRefer]) override val viewerSubscription: GithubSubscriptionStateTO, @javax.validation.constraints.NotNull zipballUrl: String diff --git a/src/test/resources/expected-classes/scala/deprecated/Event.scala.txt b/src/test/resources/expected-classes/scala/deprecated/Event.scala.txt index a0421ee9c..1f1a49276 100644 --- a/src/test/resources/expected-classes/scala/deprecated/Event.scala.txt +++ b/src/test/resources/expected-classes/scala/deprecated/Event.scala.txt @@ -10,7 +10,7 @@ import Status._ case class Event( @deprecated(message = "test deprecated with msg") @javax.validation.constraints.NotNull - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.StatusTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[com.github.graphql.StatusTypeRefer]) status: Status, @deprecated(message = "test deprecated with msg") @javax.validation.constraints.NotNull diff --git a/src/test/resources/expected-classes/scala/deprecated/Status.scala.txt b/src/test/resources/expected-classes/scala/deprecated/Status.scala.txt index f5102e3a2..7e0b14a13 100644 --- a/src/test/resources/expected-classes/scala/deprecated/Status.scala.txt +++ b/src/test/resources/expected-classes/scala/deprecated/Status.scala.txt @@ -1,6 +1,6 @@ package com.github.graphql -import com.fasterxml.jackson.core.`type`.TypeReference +import tools.jackson.core.`type`.TypeReference @javax.annotation.Generated( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), diff --git a/src/test/resources/expected-classes/scala/empty/Status.scala.txt b/src/test/resources/expected-classes/scala/empty/Status.scala.txt index b719b046b..31f9dea5b 100644 --- a/src/test/resources/expected-classes/scala/empty/Status.scala.txt +++ b/src/test/resources/expected-classes/scala/empty/Status.scala.txt @@ -1,4 +1,4 @@ -import com.fasterxml.jackson.core.`type`.TypeReference +import tools.jackson.core.`type`.TypeReference @javax.annotation.Generated( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), diff --git a/src/test/resources/expected-classes/scala/extend/Asset.scala.txt b/src/test/resources/expected-classes/scala/extend/Asset.scala.txt index 6ea300f07..38046b985 100644 --- a/src/test/resources/expected-classes/scala/extend/Asset.scala.txt +++ b/src/test/resources/expected-classes/scala/extend/Asset.scala.txt @@ -9,7 +9,7 @@ case class Asset( @javax.validation.constraints.NotNull name: String, @javax.validation.constraints.NotNull - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[StatusTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[StatusTypeRefer]) status: Status, @javax.validation.constraints.NotNull override val id: String, diff --git a/src/test/resources/expected-classes/scala/extend/Event.scala.txt b/src/test/resources/expected-classes/scala/extend/Event.scala.txt index 65a460330..d4121eb3b 100644 --- a/src/test/resources/expected-classes/scala/extend/Event.scala.txt +++ b/src/test/resources/expected-classes/scala/extend/Event.scala.txt @@ -7,7 +7,7 @@ import Status._ ) case class Event( @javax.validation.constraints.NotNull - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[StatusTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[StatusTypeRefer]) status: Status, @javax.validation.constraints.NotNull createdDateTime: String, diff --git a/src/test/resources/expected-classes/scala/extend/Status.scala.txt b/src/test/resources/expected-classes/scala/extend/Status.scala.txt index 84eeb20b3..6803ba036 100644 --- a/src/test/resources/expected-classes/scala/extend/Status.scala.txt +++ b/src/test/resources/expected-classes/scala/extend/Status.scala.txt @@ -1,4 +1,4 @@ -import com.fasterxml.jackson.core.`type`.TypeReference +import tools.jackson.core.`type`.TypeReference @javax.annotation.Generated( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), diff --git a/src/test/resources/expected-classes/scala/jackson-resolver-union/GraphqlJacksonTypeIdResolver.scala.txt b/src/test/resources/expected-classes/scala/jackson-resolver-union/GraphqlJacksonTypeIdResolver.scala.txt index bf5acb8c3..b861ccf42 100644 --- a/src/test/resources/expected-classes/scala/jackson-resolver-union/GraphqlJacksonTypeIdResolver.scala.txt +++ b/src/test/resources/expected-classes/scala/jackson-resolver-union/GraphqlJacksonTypeIdResolver.scala.txt @@ -1,9 +1,9 @@ package com.kobylynskyi.graphql.unionresolver -import com.fasterxml.jackson.annotation.JsonTypeInfo -import com.fasterxml.jackson.databind.DatabindContext -import com.fasterxml.jackson.databind.JavaType -import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase +import tools.jackson.annotation.JsonTypeInfo +import tools.jackson.databind.DatabindContext +import tools.jackson.databind.JavaType +import tools.jackson.databind.jsontype.impl.TypeIdResolverBase @javax.annotation.Generated( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), diff --git a/src/test/resources/expected-classes/scala/jackson-resolver-union/ResultObject.scala.txt b/src/test/resources/expected-classes/scala/jackson-resolver-union/ResultObject.scala.txt index 7cc67ab11..bf34d59cd 100644 --- a/src/test/resources/expected-classes/scala/jackson-resolver-union/ResultObject.scala.txt +++ b/src/test/resources/expected-classes/scala/jackson-resolver-union/ResultObject.scala.txt @@ -5,8 +5,8 @@ package com.kobylynskyi.graphql.unionresolver value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "2020-12-31T23:59:59-0500" ) -@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") -@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(classOf[com.kobylynskyi.graphql.unionresolver.GraphqlJacksonTypeIdResolver]) +@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") +@tools.jackson.databind.annotation.JsonTypeIdResolver(classOf[com.kobylynskyi.graphql.unionresolver.GraphqlJacksonTypeIdResolver]) trait ResultObject { val list: scala.Seq[_ <: UnionToResolve] diff --git a/src/test/resources/expected-classes/scala/jackson-resolver-union/UnionToResolve.scala.txt b/src/test/resources/expected-classes/scala/jackson-resolver-union/UnionToResolve.scala.txt index 7a90bd383..624a3de4b 100644 --- a/src/test/resources/expected-classes/scala/jackson-resolver-union/UnionToResolve.scala.txt +++ b/src/test/resources/expected-classes/scala/jackson-resolver-union/UnionToResolve.scala.txt @@ -5,8 +5,8 @@ package com.kobylynskyi.graphql.unionresolver value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "2020-12-31T23:59:59-0500" ) -@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") -@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(classOf[com.kobylynskyi.graphql.unionresolver.GraphqlJacksonTypeIdResolver]) +@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") +@tools.jackson.databind.annotation.JsonTypeIdResolver(classOf[com.kobylynskyi.graphql.unionresolver.GraphqlJacksonTypeIdResolver]) trait UnionToResolve { } \ No newline at end of file diff --git a/src/test/resources/expected-classes/scala/jackson-resolver-union/without-model-package/GraphqlJacksonTypeIdResolver.scala.txt b/src/test/resources/expected-classes/scala/jackson-resolver-union/without-model-package/GraphqlJacksonTypeIdResolver.scala.txt index 3ec995553..4dab0edd8 100644 --- a/src/test/resources/expected-classes/scala/jackson-resolver-union/without-model-package/GraphqlJacksonTypeIdResolver.scala.txt +++ b/src/test/resources/expected-classes/scala/jackson-resolver-union/without-model-package/GraphqlJacksonTypeIdResolver.scala.txt @@ -1,7 +1,7 @@ -import com.fasterxml.jackson.annotation.JsonTypeInfo -import com.fasterxml.jackson.databind.DatabindContext -import com.fasterxml.jackson.databind.JavaType -import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase +import tools.jackson.annotation.JsonTypeInfo +import tools.jackson.databind.DatabindContext +import tools.jackson.databind.JavaType +import tools.jackson.databind.jsontype.impl.TypeIdResolverBase @javax.annotation.Generated( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), diff --git a/src/test/resources/expected-classes/scala/jackson-resolver-union/without-model-package/MyResultObjectSuffix.scala.txt b/src/test/resources/expected-classes/scala/jackson-resolver-union/without-model-package/MyResultObjectSuffix.scala.txt index b921de8d0..d618888ab 100644 --- a/src/test/resources/expected-classes/scala/jackson-resolver-union/without-model-package/MyResultObjectSuffix.scala.txt +++ b/src/test/resources/expected-classes/scala/jackson-resolver-union/without-model-package/MyResultObjectSuffix.scala.txt @@ -2,8 +2,8 @@ value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "2020-12-31T23:59:59-0500" ) -@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") -@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(classOf[GraphqlJacksonTypeIdResolver]) +@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") +@tools.jackson.databind.annotation.JsonTypeIdResolver(classOf[GraphqlJacksonTypeIdResolver]) trait MyResultObjectSuffix { val list: scala.Seq[_ <: MyUnionToResolveSuffix] diff --git a/src/test/resources/expected-classes/scala/jackson-resolver-union/without-model-package/MyUnionToResolveSuffix.scala.txt b/src/test/resources/expected-classes/scala/jackson-resolver-union/without-model-package/MyUnionToResolveSuffix.scala.txt index 36671a4b3..04bd08372 100644 --- a/src/test/resources/expected-classes/scala/jackson-resolver-union/without-model-package/MyUnionToResolveSuffix.scala.txt +++ b/src/test/resources/expected-classes/scala/jackson-resolver-union/without-model-package/MyUnionToResolveSuffix.scala.txt @@ -2,8 +2,8 @@ value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "2020-12-31T23:59:59-0500" ) -@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") -@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(classOf[GraphqlJacksonTypeIdResolver]) +@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") +@tools.jackson.databind.annotation.JsonTypeIdResolver(classOf[GraphqlJacksonTypeIdResolver]) trait MyUnionToResolveSuffix { } \ No newline at end of file diff --git a/src/test/resources/expected-classes/scala/tostring/Synchronized.scala.txt b/src/test/resources/expected-classes/scala/tostring/Synchronized.scala.txt index 54e3076b1..e02210846 100644 --- a/src/test/resources/expected-classes/scala/tostring/Synchronized.scala.txt +++ b/src/test/resources/expected-classes/scala/tostring/Synchronized.scala.txt @@ -16,7 +16,7 @@ case class Synchronized( `private`: Char, native: Char, that: Char, - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[com.kobylynskyi.graphql.codegen.prot.TestEnumTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[com.kobylynskyi.graphql.codegen.prot.TestEnumTypeRefer]) enum: TestEnum, Synchronized: Synchronized, date: java.time.ZonedDateTime diff --git a/src/test/resources/expected-classes/scala/tostring/TOSTRING_Synchronized.scala.txt b/src/test/resources/expected-classes/scala/tostring/TOSTRING_Synchronized.scala.txt index 00bdfd6bb..346376f23 100644 --- a/src/test/resources/expected-classes/scala/tostring/TOSTRING_Synchronized.scala.txt +++ b/src/test/resources/expected-classes/scala/tostring/TOSTRING_Synchronized.scala.txt @@ -15,7 +15,7 @@ case class Synchronized( `private`: Char, native: Char, that: Char, - @com.fasterxml.jackson.module.scala.JsonScalaEnumeration(classOf[com.kobylynskyi.graphql.codegen.prot.TestEnumTypeRefer]) + @tools.jackson.module.scala.JsonScalaEnumeration(classOf[com.kobylynskyi.graphql.codegen.prot.TestEnumTypeRefer]) enum: TestEnum, Synchronized: Synchronized, date: java.time.ZonedDateTime diff --git a/src/test/resources/expected-classes/unknown-fields/InputWithDefaults.java.txt b/src/test/resources/expected-classes/unknown-fields/InputWithDefaults.java.txt index 3eff10fe5..7f040048e 100644 --- a/src/test/resources/expected-classes/unknown-fields/InputWithDefaults.java.txt +++ b/src/test/resources/expected-classes/unknown-fields/InputWithDefaults.java.txt @@ -25,8 +25,8 @@ public class InputWithDefaults implements java.io.Serializable { private java.util.List intListEmptyDefault = java.util.Collections.emptyList(); @javax.validation.constraints.NotNull private java.util.List objectListEmptyDefault = java.util.Collections.emptyList(); - @com.fasterxml.jackson.annotation.JsonAnyGetter - @com.fasterxml.jackson.annotation.JsonAnySetter + @tools.jackson.annotation.JsonAnyGetter + @tools.jackson.annotation.JsonAnySetter private java.util.Map userDefinedFields; public InputWithDefaults() { diff --git a/src/test/resources/expected-classes/unknown-fields/SomeObject.java.txt b/src/test/resources/expected-classes/unknown-fields/SomeObject.java.txt index ec7867b0c..31ebc0590 100644 --- a/src/test/resources/expected-classes/unknown-fields/SomeObject.java.txt +++ b/src/test/resources/expected-classes/unknown-fields/SomeObject.java.txt @@ -11,8 +11,8 @@ public class SomeObject implements java.io.Serializable { @javax.validation.constraints.NotNull private String name; - @com.fasterxml.jackson.annotation.JsonAnyGetter - @com.fasterxml.jackson.annotation.JsonAnySetter + @tools.jackson.annotation.JsonAnyGetter + @tools.jackson.annotation.JsonAnySetter private java.util.Map userDefinedFields; public SomeObject() { diff --git a/src/test/resources/json/mappingconfig6.conf b/src/test/resources/json/mappingconfig6.conf index f59918d46..9d49d0f40 100644 --- a/src/test/resources/json/mappingconfig6.conf +++ b/src/test/resources/json/mappingconfig6.conf @@ -18,6 +18,6 @@ customTypesMapping = { Object = "org.json.JSONObject" } customAnnotationsMapping = { - "QuestionNode.metaData" = ["com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.github.dreamylost.JsonObjectDeserializer::class)"] - "QuestionNode.envInfo" = ["com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.github.dreamylost.JsonObjectDeserializer::class)"] + "QuestionNode.metaData" = ["tools.jackson.databind.annotation.JsonDeserialize(using = com.github.dreamylost.JsonObjectDeserializer::class)"] + "QuestionNode.envInfo" = ["tools.jackson.databind.annotation.JsonDeserialize(using = com.github.dreamylost.JsonObjectDeserializer::class)"] } \ No newline at end of file From 1b11d80f86d5390369af70033204c36711c721bd Mon Sep 17 00:00:00 2001 From: "konrad.lys@eu.equinix.com" Date: Thu, 15 Jan 2026 10:32:53 +0100 Subject: [PATCH 2/3] Migrate to jackson 3 --- docs/codegen-options.md | 10 +++---- docs/migration-to-3.0.0.md | 30 +++++++++---------- .../gradle/example-client-kotlin/build.gradle | 16 +++++----- .../io/github/dreamylost/QueryResolverImpl.kt | 10 +++---- plugins/gradle/example-client/build.gradle | 4 +-- .../product/ProductServiceGraphQLClient.java | 2 +- .../starwars/CharacterTypeResolver.java | 8 ++--- plugins/maven/example-client/pom.xml | 6 ++-- .../product/ProductServiceGraphQLClient.java | 2 +- .../starwars/CharacterTypeResolver.java | 8 ++--- .../graphql-java-codegen-sbt-plugin/build.sbt | 2 +- .../example-client-scala/build.sbt | 12 ++++---- .../scala/io/github/dreamylost/Jackson.scala | 6 ++-- .../example-client/build.sbt | 12 ++++---- .../scala/io/github/dreamylost/Jackson.scala | 6 ++-- .../scala/io/github/dreamylost/OkHttp.scala | 2 +- .../service/QueryResolverImpl.scala | 2 +- .../service/QueryResolverImpl2.scala | 2 +- 18 files changed, 70 insertions(+), 70 deletions(-) diff --git a/docs/codegen-options.md b/docs/codegen-options.md index 29fa48e2f..c64ad322c 100644 --- a/docs/codegen-options.md +++ b/docs/codegen-options.md @@ -67,7 +67,7 @@ | `generateSealedInterfaces` | Boolean | False | This applies to generated interfaces on unions and interfaces. If true, generate sealed interfaces, else generate normal ones. It is only supported in Kotlin and Scala. | | `typesAsInterfaces` | Set(String) | Empty | Types that must generated as interfaces should be defined here in format: `TypeName` or `@directive`. E.g.: `User`, `@asInterface`. | | `fieldsWithDataFetcherResult` | Set(String) | Empty | Types that must have DataFetchResult should be defined here in format: `TypeName`, or `TypeName.fieldName` or `@directive`. E.g.: `Item`, `Item.items` or `@dataFetcherResult`. | -| `useObjectMapperForRequestSerialization` | Set(String) | Empty | Fields that require serialization using `tools.jackson.databind.ObjectMapper#writeValueAsString(Object)`. Values should be defined here in the following format: `GraphqlObjectName.fieldName` or `GraphqlTypeName`. If just type is specified, then all fields of this type will be serialized using ObjectMapper. E.g.: `["Person.createdDateTime", ZonedDateTime"]` | +| `useObjectMapperForRequestSerialization` | Set(String) | Empty | Fields that require serialization using `com.fasterxml.jackson.databind.ObjectMapper#writeValueAsString(Object)`. Values should be defined here in the following format: `GraphqlObjectName.fieldName` or `GraphqlTypeName`. If just type is specified, then all fields of this type will be serialized using ObjectMapper. E.g.: `["Person.createdDateTime", ZonedDateTime"]` | | `supportUnknownFields` | Boolean | False | Specifies whether api classes should support unknown fields during serialization or deserialization. If `true`, classes will include a property of type [`java.util.Map`](https://docs.oracle.com/javase/8/docs/api/index.html?java/util/Map.html) that will store unknown fields. | | `unknownFieldsPropertyName` | String | userDefinedFields | Specifies the name of the property to be included in api classes to support unknown fields during serialization or deserialization | | `skip` | Boolean | False | If true, then code generation will not happen | @@ -161,9 +161,9 @@ Can be used to supply custom annotations (serializers) for scalars. Supports following formats: * Map of (GraphQLObjectName.fieldName) to (JavaAnnotation). - E.g.: `Event.dateTime = @tools.jackson.databind.annotation.JsonDeserialize(using = com.example.DateDeserializer.class)` + E.g.: `Event.dateTime = @com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.example.DateDeserializer.class)` * Map of (GraphQLType) to (JavaAnnotation). - E.g.: `EpochMillis = @tools.jackson.databind.annotation.JsonDeserialize(using = com.example.EpochMillisDeserializer.class)` + E.g.: `EpochMillis = @com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.example.EpochMillisDeserializer.class)` ### Option `directiveAnnotationsMapping` @@ -239,7 +239,7 @@ customTypesMapping={ Object="org.json.JSONObject" } customAnnotationsMapping={ - "QuestionNode.metaData"=["tools.jackson.databind.annotation.JsonDeserialize(using = com.github.dreamylost.JsonObjectDeserializer::class)"] - "QuestionNode.envInfo"=["tools.jackson.databind.annotation.JsonDeserialize(using = com.github.dreamylost.JsonObjectDeserializer::class)"] + "QuestionNode.metaData"=["com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.github.dreamylost.JsonObjectDeserializer::class)"] + "QuestionNode.envInfo"=["com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = com.github.dreamylost.JsonObjectDeserializer::class)"] } ``` diff --git a/docs/migration-to-3.0.0.md b/docs/migration-to-3.0.0.md index a8ba2cb18..0e0141b6c 100644 --- a/docs/migration-to-3.0.0.md +++ b/docs/migration-to-3.0.0.md @@ -72,8 +72,8 @@ by providing an array of annotations in the following format: - tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") - tools.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class) + com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") + com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class) @@ -84,8 +84,8 @@ by providing an array of annotations in the following format: - tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") - tools.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class) + com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") + com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class) @@ -102,9 +102,9 @@ by providing an array of annotations in the following format: ```groovy // OLD APPROACH customAnnotationsMapping = [ - "Character": "tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")" + "Character": "com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")" + System.lineSeparator() - + "tools.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)" + + "com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)" ] directiveAnnotationsMapping = [ "auth": "org.springframework.security.access.annotation.Secured({{roles}})" @@ -114,8 +114,8 @@ directiveAnnotationsMapping = [ // NEW APPROACH customAnnotationsMapping = [ "Character": [ - "tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", - "tools.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)" + "com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", + "com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)" ] ] directiveAnnotationsMapping = [ @@ -134,9 +134,9 @@ customAnnotationsMapping := { //property is __typename and you must use with __typename while invoke, like new CharacterResponseProjection().id().name().typename() //and in @JsonSubTypes.Type, name is __typename's value mapping.put("Character", - s"""@tools.jackson.annotation.JsonTypeInfo(use=tools.jackson.annotation.JsonTypeInfo.Id.NAME, include=tools.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = "__typename")${System.lineSeparator()}@tools.jackson.annotation.JsonSubTypes(value = { - | @tools.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), - | @tools.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")}) + s"""@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = "__typename")${System.lineSeparator()}@com.fasterxml.jackson.annotation.JsonSubTypes(value = { + | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), + | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")}) |""".stripMargin) mapping } @@ -146,10 +146,10 @@ customAnnotationsMapping := { customAnnotationsMapping := { val mapping = new util.HashMap[String, util.List[String]] val annotations = new util.ArrayList[String]() - annotations.add("@tools.jackson.annotation.JsonTypeInfo(use=tools.jackson.annotation.JsonTypeInfo.Id.NAME, include=tools.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") - annotations.add("""@tools.jackson.annotation.JsonSubTypes(value = { - | @tools.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), - | @tools.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")})""".stripMargin) + annotations.add("@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") + annotations.add("""@com.fasterxml.jackson.annotation.JsonSubTypes(value = { + | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), + | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")})""".stripMargin) //must add this annotation //property is __typename and you must use with __typename while invoke, like new CharacterResponseProjection().id().name().typename() //and in @JsonSubTypes.Type, name is __typename's value diff --git a/plugins/gradle/example-client-kotlin/build.gradle b/plugins/gradle/example-client-kotlin/build.gradle index d85c22d25..1dba7082e 100644 --- a/plugins/gradle/example-client-kotlin/build.gradle +++ b/plugins/gradle/example-client-kotlin/build.gradle @@ -32,10 +32,10 @@ dependencies { implementation "javax.validation:validation-api:2.0.1.Final" implementation "com.squareup.okhttp3:okhttp:4.11.0" - implementation "tools.jackson.core:jackson-core:2.15.3" - implementation "tools.jackson.core:jackson-databind:2.15.3" - implementation "tools.jackson.module:jackson-module-kotlin:2.15.2" - implementation "tools.jackson.core:jackson-annotations:2.15.3" + implementation "com.fasterxml.jackson.core:jackson-core:2.15.3" + implementation "com.fasterxml.jackson.core:jackson-databind:2.15.3" + implementation "com.fasterxml.jackson.module:jackson-module-kotlin:2.15.2" + implementation "com.fasterxml.jackson.core:jackson-annotations:2.15.3" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.2" @@ -60,10 +60,10 @@ task graphqlCodegenKotlinService(type: GraphQLCodegenGradleTask) { generateModelOpenClasses = true generateSealedInterfaces = true customAnnotationsMapping = [ - "Character": ["@tools.jackson.annotation.JsonTypeInfo(use=tools.jackson.annotation.JsonTypeInfo.Id.NAME, include=tools.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")", - "@tools.jackson.annotation.JsonSubTypes(value = arrayOf(" + System.lineSeparator() + - " tools.jackson.annotation.JsonSubTypes.Type(value = HumanTO::class, name = \"Human\"), " + System.lineSeparator() + - " tools.jackson.annotation.JsonSubTypes.Type(value = DroidTO::class, name = \"Droid\")))"], + "Character": ["@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")", + "@com.fasterxml.jackson.annotation.JsonSubTypes(value = arrayOf(" + System.lineSeparator() + + " com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = HumanTO::class, name = \"Human\"), " + System.lineSeparator() + + " com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = DroidTO::class, name = \"Droid\")))"], ] modelNameSuffix = "TO" supportUnknownFields = true diff --git a/plugins/gradle/example-client-kotlin/src/main/kotlin/io/github/dreamylost/QueryResolverImpl.kt b/plugins/gradle/example-client-kotlin/src/main/kotlin/io/github/dreamylost/QueryResolverImpl.kt index 76edb010b..8326a48ec 100644 --- a/plugins/gradle/example-client-kotlin/src/main/kotlin/io/github/dreamylost/QueryResolverImpl.kt +++ b/plugins/gradle/example-client-kotlin/src/main/kotlin/io/github/dreamylost/QueryResolverImpl.kt @@ -1,10 +1,10 @@ package io.github.dreamylost -import tools.jackson.annotation.JsonInclude -import tools.jackson.databind.DeserializationFeature -import tools.jackson.module.kotlin.jsonMapper -import tools.jackson.module.kotlin.kotlinModule -import tools.jackson.module.kotlin.readValue +import com.fasterxml.jackson.annotation.JsonInclude +import com.fasterxml.jackson.databind.DeserializationFeature +import com.fasterxml.jackson.module.kotlin.jsonMapper +import com.fasterxml.jackson.module.kotlin.kotlinModule +import com.fasterxml.jackson.module.kotlin.readValue import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest import io.github.dreamylost.api.QueryResolver import io.github.dreamylost.model.* diff --git a/plugins/gradle/example-client/build.gradle b/plugins/gradle/example-client/build.gradle index 4d99a97bd..e3393ce3d 100644 --- a/plugins/gradle/example-client/build.gradle +++ b/plugins/gradle/example-client/build.gradle @@ -85,8 +85,8 @@ task graphqlCodegenStarwarsService(type: GraphQLCodegenGradleTask) { packageName = "io.github.kobylynskyi.starwars.graphql" customAnnotationsMapping = [ "Character": [ - "@tools.jackson.annotation.JsonTypeInfo(use = tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", - "@tools.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)" + "@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = \"__typename\")", + "@com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class)" ] ] generateClient = true diff --git a/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java b/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java index b7bb01a2d..9c1ab112d 100644 --- a/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java +++ b/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java @@ -1,6 +1,6 @@ package io.github.kobylynskyi.order.external.product; -import tools.jackson.databind.json.JsonMapper; +import com.fasterxml.jackson.databind.ObjectMapper; import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest; import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequests; import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLResponse; diff --git a/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java b/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java index d08031ed9..4b2a7b5f7 100644 --- a/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java +++ b/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java @@ -1,9 +1,9 @@ package io.github.kobylynskyi.order.external.starwars; -import tools.jackson.annotation.JsonTypeInfo; -import tools.jackson.databind.DatabindContext; -import tools.jackson.databind.JavaType; -import tools.jackson.databind.jsontype.impl.TypeIdResolverBase; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.databind.DatabindContext; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase; import io.github.kobylynskyi.starwars.graphql.Droid; import io.github.kobylynskyi.starwars.graphql.Human; diff --git a/plugins/maven/example-client/pom.xml b/plugins/maven/example-client/pom.xml index 475bf9508..90006b698 100644 --- a/plugins/maven/example-client/pom.xml +++ b/plugins/maven/example-client/pom.xml @@ -74,11 +74,11 @@ io.github.kobylynskyi.starwars.graphql - @tools.jackson.annotation.JsonTypeInfo(use = - tools.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") + @com.fasterxml.jackson.annotation.JsonTypeInfo(use = + com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, property = "__typename") - @tools.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class) + @com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver(io.github.kobylynskyi.order.external.starwars.CharacterTypeResolver.class) diff --git a/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java b/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java index b7bb01a2d..9c1ab112d 100644 --- a/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java +++ b/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/product/ProductServiceGraphQLClient.java @@ -1,6 +1,6 @@ package io.github.kobylynskyi.order.external.product; -import tools.jackson.databind.json.JsonMapper; +import com.fasterxml.jackson.databind.ObjectMapper; import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest; import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequests; import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLResponse; diff --git a/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java b/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java index 6b6d6beb2..38ac4cc59 100644 --- a/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java +++ b/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/external/starwars/CharacterTypeResolver.java @@ -1,9 +1,9 @@ package io.github.kobylynskyi.order.external.starwars; -import tools.jackson.annotation.JsonTypeInfo; -import tools.jackson.databind.DatabindContext; -import tools.jackson.databind.JavaType; -import tools.jackson.databind.jsontype.impl.TypeIdResolverBase; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.databind.DatabindContext; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.jsontype.impl.TypeIdResolverBase; import io.github.kobylynskyi.starwars.graphql.Droid; import io.github.kobylynskyi.starwars.graphql.Human; diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/build.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/build.sbt index ef7822e9e..dd56e4b25 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/build.sbt +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/build.sbt @@ -18,7 +18,7 @@ lazy val `graphql-codegen-sbt-plugin` = Project(id = "graphql-codegen-sbt-plugin "io.github.kobylynskyi" % "graphql-java-codegen" % (ThisBuild / version).value, "org.freemarker" % "freemarker" % "2.3.31", "com.graphql-java" % "graphql-java" % "20.2", - "tools.jackson.core" % "jackson-databind" % "3.0.0", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.12.1", "com.typesafe" % "config" % "1.4.2" ), buildInfoKeys := Seq[BuildInfoKey](name, version, sbtVersion, javaValidationVersion), diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/build.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/build.sbt index 8dd7835d7..adf7f2554 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/build.sbt +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/build.sbt @@ -10,8 +10,8 @@ libraryDependencies ++= Seq( "org.apache.logging.log4j" % "log4j-core" % "2.8.2", "org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.8.2", "com.squareup.okhttp3" % "okhttp" % "4.7.2", - "tools.jackson.module" %% "jackson-module-scala" % "3.0.0", - "tools.jackson.core" % "jackson-databind" % "3.0.0", + "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.11.3", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.11.3", "org.json" % "json" % "20190722") enablePlugins(GraphQLCodegenPlugin) @@ -28,11 +28,11 @@ modelNameSuffix := Some("DO") customAnnotationsMapping := { val mapping = new util.HashMap[String, util.List[String]] val annotations = new util.ArrayList[String]() - annotations.add("@tools.jackson.annotation.JsonTypeInfo(use=tools.jackson.annotation.JsonTypeInfo.Id.NAME, include=tools.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") + annotations.add("@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") annotations.add( - """@tools.jackson.annotation.JsonSubTypes(value = Array( - | new tools.jackson.annotation.JsonSubTypes.Type(value = classOf[HumanDO], name = "Human"), - | new tools.jackson.annotation.JsonSubTypes.Type(value = classOf[DroidDO], name = "Droid")))""".stripMargin) + """@com.fasterxml.jackson.annotation.JsonSubTypes(value = Array( + | new com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = classOf[HumanDO], name = "Human"), + | new com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = classOf[DroidDO], name = "Droid")))""".stripMargin) mapping.put("Character", annotations) mapping } diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/Jackson.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/Jackson.scala index 7fe7998f8..8cc8d3c88 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/Jackson.scala +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/Jackson.scala @@ -1,8 +1,8 @@ package io.github.dreamylost -import tools.jackson.annotation.JsonInclude.Include -import tools.jackson.databind.{ DeserializationFeature, ObjectMapper } -import tools.jackson.module.scala.{ DefaultScalaModule, ScalaObjectMapper } +import com.fasterxml.jackson.annotation.JsonInclude.Include +import com.fasterxml.jackson.databind.{ DeserializationFeature, ObjectMapper } +import com.fasterxml.jackson.module.scala.{ DefaultScalaModule, ScalaObjectMapper } object Jackson { diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/build.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/build.sbt index 0eb63179b..07f8abaac 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/build.sbt +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/build.sbt @@ -10,8 +10,8 @@ libraryDependencies ++= Seq( "org.apache.logging.log4j" % "log4j-core" % "2.8.2", "org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.8.2", "com.squareup.okhttp3" % "okhttp" % "4.7.2", - "tools.jackson.module" %% "jackson-module-scala" % "3.0.0", - "tools.jackson.core" % "jackson-databind" % "3.0.0", + "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.11.1", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.11.1", "org.json" % "json" % "20190722", "com.graphql-java" % "graphql-java" % "16.2") @@ -43,10 +43,10 @@ modelNameSuffix := Some("DO") customAnnotationsMapping := { val mapping = new util.HashMap[String, util.List[String]] val annotations = new util.ArrayList[String]() - annotations.add("@tools.jackson.annotation.JsonTypeInfo(use=tools.jackson.annotation.JsonTypeInfo.Id.NAME, include=tools.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") - annotations.add("""@tools.jackson.annotation.JsonSubTypes(value = { - | @tools.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), - | @tools.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")})""".stripMargin) + annotations.add("@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") + annotations.add("""@com.fasterxml.jackson.annotation.JsonSubTypes(value = { + | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), + | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")})""".stripMargin) //must add this annotation //property is __typename and you must with __typename while invoke, like new CharacterResponseProjection().id().name().typename() //and in @JsonSubTypes.Type, name is __typename's value diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/Jackson.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/Jackson.scala index 7fe7998f8..8cc8d3c88 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/Jackson.scala +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/Jackson.scala @@ -1,8 +1,8 @@ package io.github.dreamylost -import tools.jackson.annotation.JsonInclude.Include -import tools.jackson.databind.{ DeserializationFeature, ObjectMapper } -import tools.jackson.module.scala.{ DefaultScalaModule, ScalaObjectMapper } +import com.fasterxml.jackson.annotation.JsonInclude.Include +import com.fasterxml.jackson.databind.{ DeserializationFeature, ObjectMapper } +import com.fasterxml.jackson.module.scala.{ DefaultScalaModule, ScalaObjectMapper } object Jackson { diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/OkHttp.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/OkHttp.scala index be239e8f8..e21a70500 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/OkHttp.scala +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/OkHttp.scala @@ -4,7 +4,7 @@ import java.io.IOException import java.util import java.util.concurrent.TimeUnit -import tools.jackson.core.`type`.TypeReference +import com.fasterxml.jackson.core.`type`.TypeReference import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest import okhttp3._ import org.json.JSONObject diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala index e7384246b..97cc88b26 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala @@ -2,7 +2,7 @@ package io.github.dreamylost.service import java.util -import tools.jackson.core.`type`.TypeReference +import com.fasterxml.jackson.core.`type`.TypeReference import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest import io.github.dreamylost.api.QueryResolver import io.github.dreamylost.OkHttp diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl2.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl2.scala index 6adce2895..46c3aa84e 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl2.scala +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl2.scala @@ -2,7 +2,7 @@ package io.github.dreamylost.service import java.util -import tools.jackson.core.`type`.TypeReference +import com.fasterxml.jackson.core.`type`.TypeReference import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest import io.github.dreamylost.api.QueryResolver import io.github.dreamylost.model._ From 9c3de64e7fe66a7e7bb5db546805609baea186da Mon Sep 17 00:00:00 2001 From: "konrad.lys@eu.equinix.com" Date: Thu, 15 Jan 2026 11:14:57 +0100 Subject: [PATCH 3/3] Migrate to jackson 3 --- .github/workflows/check-code-style.yml | 36 -- .github/workflows/github.yml | 43 +-- build.gradle | 2 +- plugins/sbt/README.md | 80 ---- .../.scalafmt.conf | 23 -- .../graphql-java-codegen-sbt-plugin/build.sbt | 45 --- .../project/Commands.scala | 20 - .../project/build.properties | 1 - .../project/plugins.sbt | 3 - .../dreamylost/graphql/codegen/Compat.scala | 30 -- .../graphql/codegen/GraphQLCodegenKeys.scala | 185 --------- .../codegen/GraphQLCodegenPlugin.scala | 360 ------------------ .../codegen/ParentInterfacesConfig.scala | 12 - .../graphql/codegen/SchemaFinderConfig.scala | 14 - .../example-client-scala/build.sbt | 42 -- .../project/build.properties | 1 - .../example-client-scala/project/plugins.sbt | 1 - .../src/main/resources/log4j2.xml | 16 - .../src/main/resources/schema.graphqls | 46 --- .../scala/io/github/dreamylost/Jackson.scala | 18 - .../scala/io/github/dreamylost/OkHttp.scala | 65 ---- .../service/QueryResolverImpl.scala | 63 --- .../service/QueryResolverImplMain.scala | 69 ---- .../example-client-scala/test | 6 - .../example-client-scala/version.sbt | 1 - .../example-client/build.sbt | 63 --- .../example-client/project/build.properties | 1 - .../example-client/project/plugins.sbt | 1 - .../src/main/resources/log4j2.xml | 16 - .../src/main/resources/schema.graphqls | 44 --- .../scala/io/github/dreamylost/Jackson.scala | 18 - .../scala/io/github/dreamylost/OkHttp.scala | 68 ---- .../github/dreamylost/scalar/EmailScalar.java | 71 ---- .../service/QueryResolverImpl.scala | 71 ---- .../service/QueryResolverImpl2.scala | 74 ---- .../service/QueryResolverImplMain.scala | 71 ---- .../example-client/test | 6 - .../example-client/version.sbt | 1 - .../simple/build.sbt | 14 - .../simple/project/build.properties | 1 - .../simple/project/plugins.sbt | 5 - .../simple/src/main/resources/schema.graphql | 37 -- .../api/impl/GetUserQueryResolverImpl.scala | 19 - .../graphql-codegen-sbt-plugin/simple/test | 6 - .../simple/version.sbt | 1 - .../src/test/scala/test/Test.scala | 13 - .../version.sbt | 1 - 47 files changed, 2 insertions(+), 1782 deletions(-) delete mode 100644 .github/workflows/check-code-style.yml delete mode 100644 plugins/sbt/README.md delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/.scalafmt.conf delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/build.sbt delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/project/Commands.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/project/build.properties delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/project/plugins.sbt delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/Compat.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenKeys.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenPlugin.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/ParentInterfacesConfig.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/SchemaFinderConfig.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/build.sbt delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/project/build.properties delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/project/plugins.sbt delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/resources/log4j2.xml delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/resources/schema.graphqls delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/Jackson.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/OkHttp.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/service/QueryResolverImplMain.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/test delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/version.sbt delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/build.sbt delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/project/build.properties delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/project/plugins.sbt delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/resources/log4j2.xml delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/resources/schema.graphqls delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/Jackson.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/OkHttp.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/scalar/EmailScalar.java delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl2.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImplMain.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/test delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/version.sbt delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/build.sbt delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/project/build.properties delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/project/plugins.sbt delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/src/main/resources/schema.graphql delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/src/main/scala/io/github/kobylynskyi/graphql/test/api/impl/GetUserQueryResolverImpl.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/test delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/version.sbt delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/src/test/scala/test/Test.scala delete mode 100644 plugins/sbt/graphql-java-codegen-sbt-plugin/version.sbt diff --git a/.github/workflows/check-code-style.yml b/.github/workflows/check-code-style.yml deleted file mode 100644 index f85cfae1f..000000000 --- a/.github/workflows/check-code-style.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Check Code Style - -on: - push: - branches: - - main - pull_request: - branches: - - main - -jobs: - check-code-style: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - # brew install sbt; cd graphql-java-codegen-sbt-plugin; sbt fmt or sbt check - - name: Check Scala Code Style - working-directory: plugins/sbt/graphql-java-codegen-sbt-plugin - run: sbt check - - - name: Check Code Style - env: - WORKDIR: ./ - REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CHECKSTYLE_CONFIG: config/checkstyle/graphql-codegen-check-style.xml - REVIEWDOG_VERSION: v0.11.0 - run: | - wget -O - -q https://github.com/checkstyle/checkstyle/releases/download/checkstyle-8.41/checkstyle-8.41-all.jar > /opt/checkstyle.jar - wget -O - -q https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s -- -b /opt ${REVIEWDOG_VERSION} - java -jar /opt/checkstyle.jar "${WORKDIR}" -c "${CHECKSTYLE_CONFIG}" -f xml \ - | /opt/reviewdog -f=checkstyle \ - -reporter="${INPUT_REPORTER:-github-pr-check}" \ - -filter-mode="${INPUT_FILTER_MODE:-added}" \ - -fail-on-error="${INPUT_FAIL_ON_ERROR:-false}" diff --git a/.github/workflows/github.yml b/.github/workflows/github.yml index f37aa3bd4..07d0b0121 100644 --- a/.github/workflows/github.yml +++ b/.github/workflows/github.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - jdk-version: [ 8, 11, 17 ] + jdk-version: [ 21 ] steps: - uses: actions/checkout@v4 @@ -79,44 +79,3 @@ jobs: run: sbt scripted - sonar: - needs: build - if: github.event_name != 'pull_request' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Setup Java - uses: actions/setup-java@v4 - with: - java-version: 17 - distribution: 'adopt' - - - name: Gradle cache - uses: actions/cache@v4 - with: - path: ~/.gradle - key: gradle - - - name: Maven cache - uses: actions/cache@v4 - with: - path: ~/.m2 - key: m2 - - - name: Loading ivy cache - uses: actions/cache@v4 - with: - path: ~/.ivy2/cache - key: ${{ runner.os }}-ivy-${{ hashFiles('**/*.sbt') }} - restore-keys: | - ${{ runner.os }}-ivy- - - - name: Generate code coverage report - run: ./gradlew codeCoverageReport --stacktrace - - - name: Generate and publish Sonar report - run: ./gradlew sonarqube -Dsonar.projectKey=kobylynskyi_graphql-java-codegen -Dsonar.organization=kobylynskyi -Dsonar.host.url=https://sonarcloud.io -Dsonar.token=${{ secrets.SONAR_TOKEN }} --stacktrace - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/build.gradle b/build.gradle index 43f802747..06389efe8 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { id "maven-publish" } -def graphqlCodegenVersion = '5.10.1-SNAPSHOT' // This variable used in the automatic release process +def graphqlCodegenVersion = '6.0.0-SNAPSHOT' // This variable used in the automatic release process group = "io.github.kobylynskyi" version = graphqlCodegenVersion diff --git a/plugins/sbt/README.md b/plugins/sbt/README.md deleted file mode 100644 index 45d88e39f..000000000 --- a/plugins/sbt/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# GraphQL Codegen SBT plugin # - -This is a sbt plugin for https://github.com/kobylynskyi/graphql-java-codegen - -Server example at https://github.com/jxnu-liguobin/springboot-examples/tree/master/graphql-complete (do not use plugin, -only a normal graphql server ) - -![Build](https://github.com/kobylynskyi/graphql-java-codegen/workflows/Build/badge.svg) -[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.jxnu-liguobin/graphql-codegen-sbt-plugin/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.github.jxnu-liguobin/graphql-codegen-sbt-plugin) -[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) - -### Plugin Setup - -```scala -// plugins.sbt -addSbtPlugin("io.github.jxnu-liguobin" % "graphql-codegen-sbt-plugin" % "") // since graphql-java-codegen V2.2.1 -``` - -> Java code will be generated by default, via set `generatedLanguage =: GeneratedLanguage.SCALA` to generate Scala code (since 4.0.0). By the way, Scala code is currently ugly. - -### Config for generating scala code - -Options example in ```build.sbt``` - -```scala -enablePlugins(GraphQLCodegenPlugin) -GraphQLCodegenPluginDependencies -graphqlSchemaPaths := List("src/main/resources/schema.graphqls") -modelPackageName := Some("io.github.dreamylost.model") -apiPackageName := Some("io.github.dreamylost.api") -generateClient := true -generateApis := true -// Default value is com.kobylynskyi.graphql.codegen.model.GeneratedLanguage.JAVA to generate java codes -// Use Java code if your Scala code encounters errors. Configuration is the same. QAQ -generatedLanguage := com.kobylynskyi.graphql.codegen.model.GeneratedLanguage.SCALA -generateImmutableModels := true -modelNameSuffix := Some("DO") -customAnnotationsMapping := { - // in the future, maybe wrap it by scala coolection - val mapping = new util.HashMap[String, util.List[String]] - val annotations = new util.ArrayList[String]() - annotations.add("@tools.jackson.annotation.JsonTypeInfo(use=tools.jackson.annotation.JsonTypeInfo.Id.NAME, include=tools.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") - annotations.add( - """@tools.jackson.annotation.JsonSubTypes(value = Array( - | new tools.jackson.annotation.JsonSubTypes.Type(value = classOf[HumanDO], name = "Human"), - | new tools.jackson.annotation.JsonSubTypes.Type(value = classOf[DroidDO], name = "Droid")))""".stripMargin) - mapping.put("Character", annotations) - // Note: only for Scala, please pay attention here, codegen have not generated `EpisodeDOTypeRefer.scala` class, so you should create it. - // Since, 4.1.3, support to generate it. - // Since, 5.1.0, It will be done automatically, no need to add this. - mapping.put("Droid.appearsIn", util.Arrays.asList("@tools.jackson.module.scala.JsonScalaEnumeration(classOf[io.github.dreamylost.model.EpisodeDOTypeRefer])")) - mapping.put("Human.appearsIn", util.Arrays.asList("@tools.jackson.module.scala.JsonScalaEnumeration(classOf[io.github.dreamylost.model.EpisodeDOTypeRefer])")) - mapping -} -generateCodegenTargetPath in GraphQLCodegenConfig := crossTarget.value / "src_managed_graphql_scala" -generateEqualsAndHashCode := true -generateToString := true -``` - -### Codegen Options - -SBT task - -1. graphqlSchemaValidate - - use validate at terminal by user, can get args from terminal, such - as `graphqlSchemaValidate src/main/resources/schema.graphqls`, args split with space -2. graphqlCodegen - - generate java code from graphql schema -3. graphqlCodegenValidate - - use validate schemas that config in build.sbt key: `graphqlSchemaPaths` - -### Plugin Options - -Please refer to [Codegen Options](../../docs/codegen-options.md) - -> in sbt plugin option - -- `packageName` was rename to `generatePackageName` -- `generateCodegenTargetPath` Where to store generated files and add the generated code to the classpath, so that they - can be referenced. since 3.0.0 . \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/.scalafmt.conf b/plugins/sbt/graphql-java-codegen-sbt-plugin/.scalafmt.conf deleted file mode 100644 index cfbfc7fa6..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/.scalafmt.conf +++ /dev/null @@ -1,23 +0,0 @@ -version = "3.6.1" -runner.dialect = scala213 -maxColumn = 120 -align.preset = more -lineEndings = preserve -align.stripMargin = false -docstrings.style = AsteriskSpace -docstrings.oneline = keep -continuationIndent.defnSite = 2 -danglingParentheses.preset = true -spaces { - inImportCurlyBraces = true -} -indentOperator.exemptScope = aloneArgOrBody -includeCurlyBraceInSelectChains = false -align.openParenDefnSite = false -optIn.annotationNewlines = true -rewrite.rules = [SortImports, RedundantBraces] -rewriteTokens = { - "⇒": "=>" - "→": "->" - "←": "<-" -} \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/build.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/build.sbt deleted file mode 100644 index dd56e4b25..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/build.sbt +++ /dev/null @@ -1,45 +0,0 @@ -import sbt.url - -val javaValidationVersion = settingKey[String]("default Java Validation API") - .withRank(KeyRanks.Invisible) -javaValidationVersion := "2.0.1.Final" - -// keep version is equals with parent project `graphql-java-codegen`. -// Plugin don't need to care about the scala version, just the SBT version. -lazy val `graphql-codegen-sbt-plugin` = Project(id = "graphql-codegen-sbt-plugin", base = file(".")) - .enablePlugins(SbtPlugin, BuildInfoPlugin) - .settings( - sbtPlugin := true, - scriptedBufferLog := false, - commands ++= Commands.value, - scriptedLaunchOpts += s"-Dplugin.version=${version.value}", - scalacOptions += "-target:jvm-1.8", - libraryDependencies ++= Seq( - "io.github.kobylynskyi" % "graphql-java-codegen" % (ThisBuild / version).value, - "org.freemarker" % "freemarker" % "2.3.31", - "com.graphql-java" % "graphql-java" % "20.2", - "com.fasterxml.jackson.core" % "jackson-databind" % "2.12.1", - "com.typesafe" % "config" % "1.4.2" - ), - buildInfoKeys := Seq[BuildInfoKey](name, version, sbtVersion, javaValidationVersion), - buildInfoPackage := "io.github.dreamylost.graphql.codegen" - ) - -inThisBuild( - List( - name := "graphql-codegen-sbt-plugin", - organization := "io.github.jxnu-liguobin", - sonatypeCredentialHost := "oss.sonatype.org", - sonatypeRepository := "https://oss.sonatype.org/service/local", - homepage := Some(url("https://github.com/kobylynskyi/graphql-java-codegen")), - licenses := Seq("MIT" -> url("https://opensource.org/licenses/MIT")), - developers := List( - Developer( - id = "jxnu-liguobin", - name = "梦境迷离", - email = "dreamylost@outlook.com", - url = url("https://github/jxnu-liguobin") - ) - ) - ) -) diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/project/Commands.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/project/Commands.scala deleted file mode 100644 index cf483e938..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/project/Commands.scala +++ /dev/null @@ -1,20 +0,0 @@ -import sbt.Command - -/** @author - * 梦境迷离 - * @since 2022/1/15 - * @version 1.0 - */ -object Commands { - - val FmtSbtCommand = Command.command("fmt")(state => "scalafmtSbt" :: "scalafmtAll" :: state) - - val FmtSbtCheckCommand = - Command.command("check")(state => "scalafmtSbtCheck" :: "scalafmtCheckAll" :: state) - - val value = Seq( - FmtSbtCommand, - FmtSbtCheckCommand - ) - -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/project/build.properties b/plugins/sbt/graphql-java-codegen-sbt-plugin/project/build.properties deleted file mode 100644 index fd5b15768..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.9.0 \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/project/plugins.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/project/plugins.sbt deleted file mode 100644 index c5ce247bc..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/project/plugins.sbt +++ /dev/null @@ -1,3 +0,0 @@ -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.0") -addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0") -addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.12") diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/Compat.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/Compat.scala deleted file mode 100644 index 91650d755..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/Compat.scala +++ /dev/null @@ -1,30 +0,0 @@ -package io.github.dreamylost.graphql.codegen - -import sbt.Keys.{ sourceDirectory, watchSources } -import sbt.Watched.WatchSource -import sbt.internal.io.Source -import sbt.io.{ AllPassFilter, SuffixFilter } -import sbt.{ Def, Task } -import sbt.Configuration - -/** @author - * 梦境迷离 - * @since 2020-07-18 - * @version v1.0 - */ -trait Compat { - self: GraphQLCodegenPlugin => - - import self.GlobalImport._ - - val watchSourcesSetting: Def.Setting[Task[Seq[WatchSource]]] = - watchSources += new Source( - (graphqlCodegen / sourceDirectory).value, - new SuffixFilter(".graphql") | new SuffixFilter(".graphqls"), - AllPassFilter - ) - - protected[this] lazy val GraphQLCodegenConfig = - Configuration.of("GraphQLCodegen", "graphqlCodegen" + configurationPostfix) - -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenKeys.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenKeys.scala deleted file mode 100644 index 33a5b080a..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenKeys.scala +++ /dev/null @@ -1,185 +0,0 @@ -package io.github.dreamylost.graphql.codegen - -import java.util - -import com.kobylynskyi.graphql.codegen.model._ -import sbt._ - -/** @author - * 梦境迷离 - * @version 1.0,2020/7/15 - */ -trait GraphQLCodegenKeys { - - // Conflict with SBT key - val generatePackageName = settingKey[Option[String]]("generatePackageName") - - // Scala collection and asJava cannot be used. The latter one uses the put method, which is not supported by Scala collection - val customTypesMapping = settingKey[util.Map[String, String]]("customTypesMapping") - - val apiNamePrefix = settingKey[Option[String]]("apiNamePrefix") - - val apiNameSuffix = settingKey[String]("apiNameSuffix") - - val apiRootInterfaceStrategy = settingKey[ApiRootInterfaceStrategy]("apiRootInterfaceStrategy") - - val apiNamePrefixStrategy = settingKey[ApiNamePrefixStrategy]("apiNamePrefixStrategy") - - val modelNamePrefix = settingKey[Option[String]]("Prefix to append to the model class names.") - - val modelNameSuffix = settingKey[Option[String]]("Suffix to append to the model class names.") - - val apiPackageName = settingKey[Option[String]]("Java package to use when generating the API classes.") - - val modelPackageName = settingKey[Option[String]]("Java package to use when generating the model classes.") - - val generateBuilder = settingKey[Boolean]("Specifies whether generated model classes should have builder.") - - val generateApis = settingKey[Boolean]("Specifies whether api classes should be generated as well as model classes.") - - val typeResolverPrefix = settingKey[Option[String]]("typeResolverPrefix") - - val typeResolverSuffix = settingKey[String]("typeResolverSuffix") - - val customAnnotationsMapping = settingKey[util.Map[String, util.List[String]]]("customAnnotationsMapping") - - val customTemplatesRoot = settingKey[File]("customTemplatesRoot") - - val customTemplates = settingKey[util.Map[String, String]]("customTemplates") - - val generateEqualsAndHashCode = - settingKey[Boolean]("Specifies whether generated model classes should have equals and hashCode methods defined.") - - val generateImmutableModels = settingKey[Boolean]("generateImmutableModels") - - val generateToString = - settingKey[Boolean]("Specifies whether generated model classes should have toString method defined.") - - val subscriptionReturnType = settingKey[Option[String]]("subscriptionReturnType") - - val modelValidationAnnotation = settingKey[String]("Annotation for mandatory (NonNull) fields. Can be None/empty.") - - val generateParameterizedFieldsResolvers = settingKey[Boolean]( - "If true, then generate separate Resolver interface for parametrized fields. If false, then add field to the type definition and ignore field parameters." - ) - - val generateExtensionFieldsResolvers = settingKey[Boolean]( - "Specifies whether all fields in extensions (extend type and extend interface) should be present in Resolver interface instead of the type class itself." - ) - - val addGeneratedAnnotation = - settingKey[Boolean]("Specifies whether generated classes should be annotated with @Generated") - - val generatedAnnotation = settingKey[Option[String]]( - "Qualified class name (with package) of the @Generated annotation that will be added on top of every generated class (if addGeneratedAnnotation is true)" - ) - - val generateDataFetchingEnvironmentArgumentInApis = settingKey[Boolean]( - "If true, then graphql.schema.DataFetchingEnvironment env will be added as a last argument to all methods of root type resolvers and field resolvers." - ) - - val generateModelsForRootTypes = settingKey[Boolean]("generateModelsForRootTypes") - - val fieldsWithResolvers = settingKey[util.Set[String]]("fieldsWithResolvers") - - val fieldsWithoutResolvers = settingKey[util.Set[String]]("fieldsWithoutResolvers") - - val fieldsToExcludeFromGeneration = settingKey[util.Set[String]]("fieldsToExcludeFromGeneration") - - val typesAsInterfaces = settingKey[util.Set[String]]("typesAsInterfaces") - - val generateClient = settingKey[Boolean]("generateClient") - - val requestSuffix = settingKey[String]( - "Specifies whether client-side classes should be generated for each query, mutation and subscription. This includes: Request class (contains input data) and ResponseProjection class (contains response fields)." - ) - - val responseSuffix = settingKey[String]("responseSuffix") - - val responseProjectionSuffix = settingKey[String]( - "Specifies whether client-side classes should be generated for each query, mutation and subscription. This includes: Request class (contains input data) and ResponseProjection class (contains response fields)." - ) - - val parametrizedInputSuffix = settingKey[String]("parametrizedInputSuffix") - - val useObjectMapperForRequestSerialization = settingKey[util.Set[String]]("useObjectMapperForRequestSerialization") - - val configurationFiles = settingKey[Seq[String]]( - "configurationFiles, either JSON or HOCON. The same key is used in order, so the default configuration should be placed at the end." - ) - - val parentInterfaces = settingKey[ParentInterfacesConfig]("parentInterfaces") - - val graphqlSchemas = settingKey[SchemaFinderConfig]("graphqlSchemas") - - val outputDir = settingKey[File]("Where to store generated files") - - val graphqlSchemaPaths = settingKey[Seq[String]]("Locations of GraphQL schemas.") - - // use different paths - val graphqlSchemaValidate = inputKey[Seq[String]]("graphqlSchemaValidatePaths") - - val graphqlCodegen = taskKey[Seq[File]]("Generate code") - - val graphqlCodegenValidate = taskKey[Unit]("Validate graphql schema") - - val apiReturnType = settingKey[Option[String]]("apiReturnType") - - val apiReturnListType = settingKey[Option[String]]("apiReturnListType") - - val directiveAnnotationsMapping = settingKey[util.Map[String, util.List[String]]]("directiveAnnotationsMapping") - - val apiInterfaceStrategy = settingKey[ApiInterfaceStrategy]("apiInterfaceStrategy") - - val useOptionalForNullableReturnTypes = settingKey[Boolean]("useOptionalForNullableReturnTypes") - - val useWrapperForNullableInputTypes = settingKey[Boolean]("useWrapperForNullableInputTypes") - - val generateApisWithThrowsException = settingKey[Boolean]("generateApisWithThrowsException") - - val graphqlQueryIntrospectionResultPath = settingKey[Option[String]]("graphqlQueryIntrospectionResultPath") - - val generateAllMethodInProjection = settingKey[Boolean]("generateAllMethodInProjection") - - val responseProjectionMaxDepth = settingKey[Int]("limit depth when the projection is constructed automatically") - - val relayConfig = settingKey[RelayConfig]("Can be used to supply a custom configuration for Relay support.") - - val generatedLanguage = settingKey[GeneratedLanguage]("Generate code with language, like java/scala.") - - val generateModelOpenClasses = settingKey[Boolean]( - "The class type of the generated model. If true, generate normal classes, else generate case class." - ) - - val generateSealedInterfaces = settingKey[Boolean]( - "If true, generate sealed interfaces for GraphQL unions and interfaces, else generate normal interfaces." - ) - - val generateJacksonTypeIdResolver = settingKey[Boolean]( - "Specifies whether generated union interfaces should be annotated with a custom Jackson type id resolver generated in model package." - ) - - // not supported in scala - val generateNoArgsConstructorOnly = settingKey[Boolean]( - "Specifies whether model classes should only have a no-args constructor. All-args constructor will not be generated in case value is .true." - ) - - // not supported in scala - val generateModelsWithPublicFields = settingKey[Boolean]( - "Specifies whether model classes should have public fields and NO getters/setters. By default, fields are private and there are getters/setters for each field." - ) - - // for version - val javaxValidationApiVersion = settingKey[Option[String]]("javax-validation-api version") - val graphqlJavaCodegenVersion = settingKey[Option[String]]("graphql-java-codegen version") - - // some others for sbt - val generateCodegenTargetPath = settingKey[File]( - "Where to store generated files and add the generated code to the classpath, so that they can be referenced." - ) - - val supportUnknownFields = settingKey[Boolean]("supportUnknownFields") - val unknownFieldsPropertyName = settingKey[String]("unknownFieldsPropertyName") - val skipSchemaSizeLimit = settingKey[Boolean]("Skip schema size limit checks.") - -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenPlugin.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenPlugin.scala deleted file mode 100644 index f66429db7..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenPlugin.scala +++ /dev/null @@ -1,360 +0,0 @@ -package io.github.dreamylost.graphql.codegen - -import graphql.parser.ParserOptions -import com.kobylynskyi.graphql.codegen.GraphQLCodegenValidate -import com.kobylynskyi.graphql.codegen.java.JavaGraphQLCodegen -import com.kobylynskyi.graphql.codegen.model._ -import com.kobylynskyi.graphql.codegen.model.exception.LanguageNotSupportedException -import com.kobylynskyi.graphql.codegen.model.GeneratedLanguage._ -import com.kobylynskyi.graphql.codegen.scala.ScalaGraphQLCodegen -import com.kobylynskyi.graphql.codegen.supplier._ -import sbt.{ AutoPlugin, PluginTrigger, _ } -import sbt.Keys.{ sLog, sourceManaged, _ } -import sbt.internal.util.complete.DefaultParsers.spaceDelimited - -import java.nio.file.{ Path, Paths } -import java.util.{ HashMap => JHashMap, HashSet => JHashSet, List => JList } -import scala.collection.JavaConverters._ -import sbt.Def - -/** @author - * 梦境迷离 - * @version 1.0,2020/7/15 - */ -object GraphQLCodegenPlugin extends GraphQLCodegenPlugin(Compile, configurationPostfix = "-main") { - // for auto import - val autoImport = GlobalImport -} - -class GraphQLCodegenPlugin(configuration: Configuration, private[codegen] val configurationPostfix: String = "") - extends AutoPlugin - with Compat { - self => - - private val javaValidation = BuildInfo.javaValidationVersion - private val codegen = BuildInfo.version - - object GlobalImport extends GraphQLCodegenKeys { - - lazy val GraphQLCodegenPluginDependencies: Def.Setting[Seq[ModuleID]] = libraryDependencies ++= Seq( - "javax.validation" % "validation-api" % javaxValidationApiVersion.value.getOrElse(javaValidation), - "io.github.kobylynskyi" % "graphql-java-codegen" % graphqlJavaCodegenVersion.value.getOrElse(codegen) - ) - - lazy val schemaFinderConfig: SchemaFinderConfig = SchemaFinderConfig(null) - lazy val parentInterfacesConfig: ParentInterfacesConfig = ParentInterfacesConfig() - lazy val defaultRelayConfig = new RelayConfig() // for auto import which can change it by `set` methods. - lazy val GraphQLCodegenConfig = self.GraphQLCodegenConfig - - } - - override def trigger: PluginTrigger = noTrigger - - override def requires = sbt.plugins.JvmPlugin - - override def projectConfigurations: Seq[Configuration] = GraphQLCodegenConfig :: Nil - - import GlobalImport._ - - // With the implementation of some other plugins, initialization is not necessary, - // but maybe should be related to the dependency of key. For convenience, this is a conservative operation. - override lazy val globalSettings: Seq[Def.Setting[_]] = Seq( - graphqlQueryIntrospectionResultPath := None, - graphqlSchemas := schemaFinderConfig, - configurationFiles := Seq.empty[String], - graphqlSchemaPaths := Seq.empty, - graphqlSchemaValidate := Seq.empty, - generateJacksonTypeIdResolver := MappingConfigConstants.DEFAULT_GENERATE_JACKSON_TYPE_ID_RESOLVER, - customTypesMapping := new JHashMap[String, String](), // TODO use scala Map, convert to java Map - customAnnotationsMapping := new JHashMap[String, JList[String]](), - customTemplatesRoot := file("."), - customTemplates := new JHashMap[String, String](), - directiveAnnotationsMapping := new JHashMap[String, JList[String]](), - javaxValidationApiVersion := None, - graphqlJavaCodegenVersion := None, - // suffix/prefix/strategies: - generateModelOpenClasses := MappingConfigConstants.DEFAULT_GENERATE_MODEL_OPEN_CLASSES, - generateSealedInterfaces := MappingConfigConstants.DEFAULT_GENERATE_SEALED_INTERFACES, - generatedLanguage := MappingConfigConstants.DEFAULT_GENERATED_LANGUAGE, - apiNamePrefix := None, - apiNameSuffix := MappingConfigConstants.DEFAULT_RESOLVER_SUFFIX, - apiRootInterfaceStrategy := ApiRootInterfaceStrategy.valueOf( - MappingConfigConstants.DEFAULT_API_ROOT_INTERFACE_STRATEGY_STRING - ), - apiNamePrefixStrategy := ApiNamePrefixStrategy.valueOf( - MappingConfigConstants.DEFAULT_API_NAME_PREFIX_STRATEGY_STRING - ), - modelNamePrefix := None, - modelNameSuffix := None, - requestSuffix := MappingConfigConstants.DEFAULT_REQUEST_SUFFIX, - responseSuffix := MappingConfigConstants.DEFAULT_RESPONSE_SUFFIX, - responseProjectionSuffix := MappingConfigConstants.DEFAULT_RESPONSE_PROJECTION_SUFFIX, - parametrizedInputSuffix := MappingConfigConstants.DEFAULT_PARAMETRIZED_INPUT_SUFFIX, - useObjectMapperForRequestSerialization := new JHashSet[String](), - typeResolverPrefix := None, - typeResolverSuffix := MappingConfigConstants.DEFAULT_RESOLVER_SUFFIX, - subscriptionReturnType := None, - modelValidationAnnotation := MappingConfigConstants.DEFAULT_VALIDATION_ANNOTATION, - apiReturnType := None, - apiReturnListType := None, - apiInterfaceStrategy := MappingConfigConstants.DEFAULT_API_INTERFACE_STRATEGY, - useOptionalForNullableReturnTypes := MappingConfigConstants.DEFAULT_USE_OPTIONAL_FOR_NULLABLE_RETURN_TYPES, - useWrapperForNullableInputTypes := MappingConfigConstants.DEFAULT_USE_WRAPPER_FOR_NULLABLE_INPUT_TYPES, - generateApisWithThrowsException := MappingConfigConstants.DEFAULT_GENERATE_APIS_WITH_THROWS_EXCEPTION, - addGeneratedAnnotation := MappingConfigConstants.DEFAULT_ADD_GENERATED_ANNOTATION, - generatedAnnotation := None, - typesAsInterfaces := new JHashSet[String](), - relayConfig := defaultRelayConfig, - // package name configs: - apiPackageName := None, - modelPackageName := None, - // field resolvers configs: - fieldsWithResolvers := new JHashSet[String](), - fieldsWithoutResolvers := new JHashSet[String](), - fieldsToExcludeFromGeneration := new JHashSet[String](), - // various toggles: - generateClient := MappingConfigConstants.DEFAULT_GENERATE_CLIENT, - generateParameterizedFieldsResolvers := MappingConfigConstants.DEFAULT_GENERATE_PARAMETERIZED_FIELDS_RESOLVERS, - generateExtensionFieldsResolvers := MappingConfigConstants.DEFAULT_GENERATE_EXTENSION_FIELDS_RESOLVERS, - generateDataFetchingEnvironmentArgumentInApis := MappingConfigConstants.DEFAULT_GENERATE_DATA_FETCHING_ENV, - generateModelsForRootTypes := MappingConfigConstants.DEFAULT_GENERATE_MODELS_FOR_ROOT_TYPES, - generatePackageName := None, - generateBuilder := MappingConfigConstants.DEFAULT_BUILDER, - generateApis := MappingConfigConstants.DEFAULT_GENERATE_APIS, - generateEqualsAndHashCode := MappingConfigConstants.DEFAULT_EQUALS_AND_HASHCODE, - generateImmutableModels := MappingConfigConstants.DEFAULT_GENERATE_IMMUTABLE_MODELS, // TODO change default value - generateToString := MappingConfigConstants.DEFAULT_TO_STRING, - // parent interfaces configs: - parentInterfaces := parentInterfacesConfig, - generateAllMethodInProjection := MappingConfigConstants.DEFAULT_GENERATE_ALL_METHOD, - responseProjectionMaxDepth := MappingConfigConstants.DEFAULT_RESPONSE_PROJECTION_MAX_DEPTH, - supportUnknownFields := MappingConfigConstants.DEFAULT_SUPPORT_UNKNOWN_FIELDS, - unknownFieldsPropertyName := MappingConfigConstants.DEFAULT_UNKNOWN_FIELDS_PROPERTY_NAME, - generateNoArgsConstructorOnly := MappingConfigConstants.DEFAULT_GENERATE_NOARGS_CONSTRUCTOR_ONLY, - generateModelsWithPublicFields := MappingConfigConstants.DEFAULT_GENERATE_MODELS_WITH_PUBLIC_FIELDS, - skip := false, - skipSchemaSizeLimit := MappingConfigConstants.DEFAULT_SKIP_SCHEMA_SIZE_LIMIT - ) - - private def getMappingConfig(): Def.Initialize[MappingConfig] = Def.setting { - val mappingConfig = new MappingConfig - mappingConfig.setPackageName((GraphQLCodegenConfig / generatePackageName).value.orNull) - mappingConfig.setCustomTypesMapping((GraphQLCodegenConfig / customTypesMapping).value) - mappingConfig.setApiNameSuffix((GraphQLCodegenConfig / apiNameSuffix).value) - mappingConfig.setApiNamePrefix((GraphQLCodegenConfig / apiNamePrefix).value.orNull) - mappingConfig.setApiRootInterfaceStrategy((GraphQLCodegenConfig / apiRootInterfaceStrategy).value) - mappingConfig.setApiNamePrefixStrategy((GraphQLCodegenConfig / apiNamePrefixStrategy).value) - mappingConfig.setModelNamePrefix((GraphQLCodegenConfig / modelNamePrefix).value.orNull) - mappingConfig.setModelNameSuffix((GraphQLCodegenConfig / modelNameSuffix).value.orNull) - mappingConfig.setApiPackageName((GraphQLCodegenConfig / apiPackageName).value.orNull) - mappingConfig.setModelPackageName((GraphQLCodegenConfig / modelPackageName).value.orNull) - mappingConfig.setGenerateBuilder((GraphQLCodegenConfig / generateBuilder).value) - mappingConfig.setGenerateApis((GraphQLCodegenConfig / generateApis).value) - mappingConfig.setTypeResolverSuffix((GraphQLCodegenConfig / typeResolverSuffix).value) - mappingConfig.setTypeResolverPrefix((GraphQLCodegenConfig / typeResolverPrefix).value.orNull) - mappingConfig.setModelValidationAnnotation((GraphQLCodegenConfig / modelValidationAnnotation).value) - mappingConfig.setCustomAnnotationsMapping((GraphQLCodegenConfig / customAnnotationsMapping).value) - mappingConfig.setCustomTemplatesRoot((GraphQLCodegenConfig / customTemplatesRoot).value) - mappingConfig.setCustomTemplates((GraphQLCodegenConfig / customTemplates).value) - mappingConfig.setGenerateEqualsAndHashCode((GraphQLCodegenConfig / generateEqualsAndHashCode).value) - mappingConfig.setGenerateImmutableModels((GraphQLCodegenConfig / generateImmutableModels).value) - mappingConfig.setGenerateToString((GraphQLCodegenConfig / generateToString).value) - mappingConfig.setSubscriptionReturnType((GraphQLCodegenConfig / subscriptionReturnType).value.orNull) - mappingConfig.setGenerateParameterizedFieldsResolvers( - (GraphQLCodegenConfig / generateParameterizedFieldsResolvers).value - ) - mappingConfig.setGenerateDataFetchingEnvironmentArgumentInApis( - (GraphQLCodegenConfig / generateDataFetchingEnvironmentArgumentInApis).value - ) - mappingConfig.setGenerateExtensionFieldsResolvers((GraphQLCodegenConfig / generateExtensionFieldsResolvers).value) - mappingConfig.setGenerateModelsForRootTypes((GraphQLCodegenConfig / generateModelsForRootTypes).value) - mappingConfig.setFieldsWithResolvers((GraphQLCodegenConfig / fieldsWithResolvers).value) - mappingConfig.setFieldsWithoutResolvers((GraphQLCodegenConfig / fieldsWithoutResolvers).value) - mappingConfig.setFieldsToExcludeFromGeneration((GraphQLCodegenConfig / fieldsToExcludeFromGeneration).value) - mappingConfig.setTypesAsInterfaces((GraphQLCodegenConfig / typesAsInterfaces).value) - mappingConfig.setGenerateClient((GraphQLCodegenConfig / generateClient).value) - mappingConfig.setRequestSuffix((GraphQLCodegenConfig / requestSuffix).value) - mappingConfig.setResponseSuffix((GraphQLCodegenConfig / responseSuffix).value) - mappingConfig.setResponseProjectionSuffix((GraphQLCodegenConfig / responseProjectionSuffix).value) - mappingConfig.setParametrizedInputSuffix((GraphQLCodegenConfig / parametrizedInputSuffix).value) - mappingConfig.setUseObjectMapperForRequestSerialization( - (GraphQLCodegenConfig / useObjectMapperForRequestSerialization).value - ) - mappingConfig.setResolverParentInterface((GraphQLCodegenConfig / parentInterfaces).value.resolver) - mappingConfig.setQueryResolverParentInterface((GraphQLCodegenConfig / parentInterfaces).value.queryResolver) - mappingConfig.setMutationResolverParentInterface((GraphQLCodegenConfig / parentInterfaces).value.mutationResolver) - mappingConfig.setSubscriptionResolverParentInterface( - (GraphQLCodegenConfig / parentInterfaces).value.subscriptionResolver - ) - mappingConfig.setApiReturnType((GraphQLCodegenConfig / apiReturnType).value.orNull) - mappingConfig.setApiReturnListType((GraphQLCodegenConfig / apiReturnListType).value.orNull) - mappingConfig.setDirectiveAnnotationsMapping((GraphQLCodegenConfig / directiveAnnotationsMapping).value) - mappingConfig.setApiInterfaceStrategy((GraphQLCodegenConfig / apiInterfaceStrategy).value) - mappingConfig.setUseOptionalForNullableReturnTypes((GraphQLCodegenConfig / useOptionalForNullableReturnTypes).value) - mappingConfig.setUseWrapperForNullableInputTypes((GraphQLCodegenConfig / useWrapperForNullableInputTypes).value) - mappingConfig.setGenerateApisWithThrowsException((GraphQLCodegenConfig / generateApisWithThrowsException).value) - mappingConfig.setAddGeneratedAnnotation((GraphQLCodegenConfig / addGeneratedAnnotation).value) - mappingConfig.setGeneratedAnnotation((GraphQLCodegenConfig / generatedAnnotation).value.orNull) - mappingConfig.setGenerateAllMethodInProjection((GraphQLCodegenConfig / generateAllMethodInProjection).value) - mappingConfig.setResponseProjectionMaxDepth((GraphQLCodegenConfig / responseProjectionMaxDepth).value) - mappingConfig.setRelayConfig((GraphQLCodegenConfig / relayConfig).value) - mappingConfig.setGeneratedLanguage((GraphQLCodegenConfig / generatedLanguage).value) - mappingConfig.setGenerateModelOpenClasses((GraphQLCodegenConfig / generateModelOpenClasses).value) - mappingConfig.setGenerateJacksonTypeIdResolver((GraphQLCodegenConfig / generateJacksonTypeIdResolver).value); - mappingConfig.setGenerateNoArgsConstructorOnly((GraphQLCodegenConfig / generateNoArgsConstructorOnly).value); - mappingConfig.setGenerateModelsWithPublicFields((GraphQLCodegenConfig / generateModelsWithPublicFields).value); - - mappingConfig.setSupportUnknownFields((GraphQLCodegenConfig / supportUnknownFields).value) - mappingConfig.setUnknownFieldsPropertyName((GraphQLCodegenConfig / unknownFieldsPropertyName).value) - - mappingConfig - } - - override lazy val projectSettings: Seq[Def.Setting[_]] = inConfig(GraphQLCodegenConfig) { - Seq( - // `generateCodegenTargetPath` not support playframework, https://github.com/kobylynskyi/graphql-java-codegen/issues/551 - // There may be some problems that have not been found at present :) - generateCodegenTargetPath := crossTarget.value / "src_managed_graphql", - sourceManaged := generateCodegenTargetPath.value, - configuration / javaSource := (GraphQLCodegenConfig / sourceManaged).value, - configuration / managedSourceDirectories ++= Seq((GraphQLCodegenConfig / sourceManaged).value), - managedClasspath := { - Classpaths.managedJars( - GraphQLCodegenConfig, - (GraphQLCodegenConfig / classpathTypes).value, - (GraphQLCodegenConfig / update).value - ) - }, - outputDir := { - val file = (configuration / javaSource).value - if (!file.exists()) { - file.mkdirs() - } - sLog.value.info(s"current outputDir: ${file.getAbsolutePath}") - file - }, - graphqlCodegenValidate := { - val schemas = if (graphqlSchemaPaths.value.isEmpty) { - Seq(((configuration / resourceDirectory).value / "schema.graphql").getCanonicalPath).asJava - } else { - graphqlSchemaPaths.value.asJava - } - new GraphQLCodegenValidate(schemas).validate() - }, - graphqlSchemaValidate := { - val args: Seq[String] = spaceDelimited("").parsed - new GraphQLCodegenValidate(args.asJava).validate() - args.foreach(a => sLog.value.info(s"obtain args: $a")) - args - }, - graphqlCodegen := { - sLog.value.info(s"Generating files: ${BuildInfo.toString}") - val mappingConfigSupplier = buildJsonSupplier(configurationFiles.value) - - if (skipSchemaSizeLimit.value) { - val parserOptionBuilder = ParserOptions - .newParserOptions() - .maxTokens(Integer.MAX_VALUE) - .maxCharacters(Integer.MAX_VALUE) - .maxWhitespaceTokens(Integer.MAX_VALUE) - .maxRuleDepth(Integer.MAX_VALUE); - ParserOptions.setDefaultParserOptions(parserOptionBuilder.build()); - } - val language = mappingConfigSupplier.map(_.get()).map(_.getGeneratedLanguage).getOrElse(generatedLanguage.value) - var result = Seq.empty[File] - try { - val _outputDir = outputDir.value - val _introspectionResult = graphqlQueryIntrospectionResultPath.value.orNull - lazy val instantiateCodegen = (mappingConfig: MappingConfig) => - language match { - case JAVA => - new JavaGraphQLCodegen( - getSchemas(), - _introspectionResult, - _outputDir, - mappingConfig, - mappingConfigSupplier.orNull - ) - case SCALA => - new ScalaGraphQLCodegen( - getSchemas(), - _introspectionResult, - _outputDir, - mappingConfig, - mappingConfigSupplier.orNull - ) - case _ => - throw new LanguageNotSupportedException(language) - } - if (skip.value) { - sLog.value.info("Skipping code generation") - } else { - result = instantiateCodegen(getMappingConfig().value: @sbtUnchecked).generate.asScala - for (file <- result) - sLog.value.info(s"${file.getName}") - sLog.value.success(s"Total files: ${result.length}") - } - } catch { - case e: Exception => - (configuration / logLevel).?.value.orElse(state.value.get(logLevel.key)) match { - case Some(Level.Debug) => e.printStackTrace() - case _ => throw new Exception(s"${e.getLocalizedMessage}") - } - } - - def getSchemas(): JList[String] = - if ( - graphqlSchemaPaths.value != null && - graphqlSchemaPaths.value.nonEmpty - ) { - graphqlSchemaPaths.value.asJava - } else if ( - graphqlQueryIntrospectionResultPath.value != null && - graphqlQueryIntrospectionResultPath.value.isDefined - ) { - Seq.empty[String].asJava - } else { - val schemasRootDir = getSchemasRootDir - val finder = new SchemaFinder(schemasRootDir) - finder.setRecursive(graphqlSchemas.value.recursive) - finder.setIncludePattern(graphqlSchemas.value.includePattern) - finder.setExcludedFiles(graphqlSchemas.value.excludedFiles.asJava) - finder.findSchemas - } - - def getSchemasRootDir: Path = { - val rootDir = graphqlSchemas.value.rootDir - if (rootDir == null) { - val default = getDefaultResourcesDirectory() - if (default == null) - throw new IllegalStateException( - "Default resource folder not found, please provide in " - ) - else default - } else { - Paths.get(rootDir) - } - } - - def getDefaultResourcesDirectory(): Path = { - val file = (configuration / resourceDirectory).value - if (!file.exists()) { - file.mkdirs() - } - val path = Paths.get(file.getPath) - sLog.value.info(s"default resources path: $path") - path - } - - result - } - // watch graphql schema source, I'm not sure if this will be mutually exclusive with the deletion of codegen. - ) ++ watchSourcesSetting ++ Seq(cleanFiles += generateCodegenTargetPath.value) - } - - protected def buildJsonSupplier(configurationFiles: Seq[String]): Option[MergeableMappingConfigSupplier] = - if (configurationFiles != null && configurationFiles.nonEmpty) - Some(new MergeableMappingConfigSupplier(configurationFiles.asJava)) - else None - -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/ParentInterfacesConfig.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/ParentInterfacesConfig.scala deleted file mode 100644 index 27b65f1dd..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/ParentInterfacesConfig.scala +++ /dev/null @@ -1,12 +0,0 @@ -package io.github.dreamylost.graphql.codegen - -/** @author - * 梦境迷离 - * @version 1.0,2020/7/15 - */ -final case class ParentInterfacesConfig( - queryResolver: String = null, - mutationResolver: String = null, - subscriptionResolver: String = null, - resolver: String = null -) diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/SchemaFinderConfig.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/SchemaFinderConfig.scala deleted file mode 100644 index 06b90deea..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/SchemaFinderConfig.scala +++ /dev/null @@ -1,14 +0,0 @@ -package io.github.dreamylost.graphql.codegen - -import com.kobylynskyi.graphql.codegen.supplier.SchemaFinder - -/** @author - * 梦境迷离 - * @version 1.0,2020/7/15 - */ -final case class SchemaFinderConfig( - rootDir: String, - recursive: Boolean = SchemaFinder.DEFAULT_RECURSIVE, - includePattern: String = SchemaFinder.DEFAULT_INCLUDE_PATTERN, - excludedFiles: Set[String] = Set.empty -) diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/build.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/build.sbt deleted file mode 100644 index adf7f2554..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/build.sbt +++ /dev/null @@ -1,42 +0,0 @@ -import java.util - -name := "example-client-scala" - -organization := "io.github.jxnu-liguobin" - -libraryDependencies ++= Seq( - "org.apache.logging.log4j" %% "log4j-api-scala" % "11.0", - "org.apache.logging.log4j" % "log4j-api" % "2.8.2", - "org.apache.logging.log4j" % "log4j-core" % "2.8.2", - "org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.8.2", - "com.squareup.okhttp3" % "okhttp" % "4.7.2", - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.11.3", - "com.fasterxml.jackson.core" % "jackson-databind" % "2.11.3", - "org.json" % "json" % "20190722") - -enablePlugins(GraphQLCodegenPlugin) -graphqlJavaCodegenVersion := Some((version in Scope.ThisScope).value) -GraphQLCodegenPluginDependencies -graphqlSchemaPaths := List("src/main/resources/schema.graphqls") -modelPackageName := Some("io.github.dreamylost.model") -apiPackageName := Some("io.github.dreamylost.api") -generateClient := true -generateApis := true -generatedLanguage := com.kobylynskyi.graphql.codegen.model.GeneratedLanguage.SCALA -generateImmutableModels := true -modelNameSuffix := Some("DO") -customAnnotationsMapping := { - val mapping = new util.HashMap[String, util.List[String]] - val annotations = new util.ArrayList[String]() - annotations.add("@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") - annotations.add( - """@com.fasterxml.jackson.annotation.JsonSubTypes(value = Array( - | new com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = classOf[HumanDO], name = "Human"), - | new com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = classOf[DroidDO], name = "Droid")))""".stripMargin) - mapping.put("Character", annotations) - mapping -} -generateCodegenTargetPath in GraphQLCodegenConfig := crossTarget.value / "src_managed_graphql_scala" -generateEqualsAndHashCode := true -generateToString := true -generateSealedInterfaces := true \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/project/build.properties b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/project/build.properties deleted file mode 100644 index 862afa5f2..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.4.7 \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/project/plugins.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/project/plugins.sbt deleted file mode 100644 index 614518cda..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/project/plugins.sbt +++ /dev/null @@ -1 +0,0 @@ -addSbtPlugin("io.github.jxnu-liguobin" % "graphql-codegen-sbt-plugin" % "5.10.1-SNAPSHOT") diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/resources/log4j2.xml b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/resources/log4j2.xml deleted file mode 100644 index bc2bb91ee..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/resources/log4j2.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/resources/schema.graphqls b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/resources/schema.graphqls deleted file mode 100644 index b028fcabf..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/resources/schema.graphqls +++ /dev/null @@ -1,46 +0,0 @@ -schema { - query: Query -} - -type Query { - hero(episode: Episode) : Character - human(id : String) : Human - humans: [Human] - droid(id: ID!) : Droid -} -enum Episode { - NEWHOPE - EMPIRE - JEDI -} - -interface Character { - id: ID! - name: String! - friends: [Character] - appearsIn: [Episode]! - secretBackstory : String @deprecated(reason : "We have decided that this is not canon") -} - -type Human implements Character { - id: ID! - name: String! - friends: [Character] - appearsIn: [Episode]! - homePlanet: String - secretBackstory : String @deprecated(reason : "We have decided that this is not canon") - email: Email! -} - -type Droid implements Character { - id: ID! - name: String! - friends: [Character] - appearsIn: [Episode]! - primaryFunction: String - secretBackstory : String @deprecated(reason : "We have decided that this is not canon") -} - -scalar Email - -union Role = Droid | Human diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/Jackson.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/Jackson.scala deleted file mode 100644 index 8cc8d3c88..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/Jackson.scala +++ /dev/null @@ -1,18 +0,0 @@ -package io.github.dreamylost - -import com.fasterxml.jackson.annotation.JsonInclude.Include -import com.fasterxml.jackson.databind.{ DeserializationFeature, ObjectMapper } -import com.fasterxml.jackson.module.scala.{ DefaultScalaModule, ScalaObjectMapper } - -object Jackson { - - lazy val mapper: ObjectMapper with ScalaObjectMapper = { - val mapper = new ObjectMapper() with ScalaObjectMapper - mapper.setSerializationInclusion(Include.NON_NULL) - mapper.setSerializationInclusion(Include.NON_ABSENT) - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - mapper.registerModule(DefaultScalaModule) - mapper - } - -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/OkHttp.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/OkHttp.scala deleted file mode 100644 index 269f64b67..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/OkHttp.scala +++ /dev/null @@ -1,65 +0,0 @@ -package io.github.dreamylost - -import java.io.IOException -import java.util -import java.util.concurrent.TimeUnit - -import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest -import okhttp3._ - -import scala.concurrent.{ ExecutionContext, Future, Promise } - -object OkHttp { - - var url = "http://localhost:8080/graphql" - val defaultCharset = "utf8" - val json = MediaType.parse("application/json; charset=utf-8") - - private lazy val defaultTimeout: Long = TimeUnit.MINUTES.toMillis(1) - lazy val client: OkHttpClient = buildClient(defaultTimeout, defaultTimeout, defaultTimeout) - - def buildClient(readTimeout: Long, writeTimeout: Long, connectTimeout: Long): OkHttpClient = { - new OkHttpClient.Builder() - .readTimeout(readTimeout, TimeUnit.MILLISECONDS) - .writeTimeout(writeTimeout, TimeUnit.MILLISECONDS) - .connectTimeout(connectTimeout, TimeUnit.MILLISECONDS) - .protocols(util.Arrays.asList(Protocol.HTTP_1_1, Protocol.HTTP_2)) - .build() - } - - /** - * - * @param request - * @param ec - * @tparam T - * @return - */ - def executeRequest[T: Manifest](request: GraphQLRequest)(implicit ec: ExecutionContext): Future[T] = { - val rb = new Request.Builder().url(url).addHeader("Accept", "application/json; charset=utf-8"). - post(RequestBody.create(request.toHttpJsonBody, json)) - val promise = Promise[T] - - println("Graphql query " + request.toHttpJsonBody) - OkHttp.client.newCall(rb.build()).enqueue(new Callback { - - override def onFailure(call: Call, e: IOException): Unit = { - promise.failure(e) - } - - override def onResponse(call: Call, response: Response): Unit = { - if (response.isSuccessful) { - val result = parseFrom[T](response.body().string()) - promise.success(result.asInstanceOf[T]) - - } else { - Future.successful() - } - - } - }) - promise.future - } - - def parseFrom[T: Manifest](json: String): T = Jackson.mapper.readValue(json) - -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala deleted file mode 100644 index 5813b5e85..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala +++ /dev/null @@ -1,63 +0,0 @@ -package io.github.dreamylost.service - -import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest -import io.github.dreamylost.api.QueryResolver -import io.github.dreamylost.model._ -import io.github.dreamylost.OkHttp -import io.github.dreamylost.model.EpisodeDO.EpisodeDO - -import scala.concurrent.Await -import scala.concurrent.ExecutionContext.Implicits.global -import scala.concurrent.duration.Duration - -/** - * This is scala style deserialization - * - * @author liguobin@growingio.com - * @version 1.0,2020/11/27 - */ -class QueryResolverImpl extends QueryResolver { - - @throws[Exception] - def hero(episode: EpisodeDO): CharacterDO = { - val heroQueryRequest = HeroQueryRequest() - heroQueryRequest.setEpisode(episode) - val characterResponseProjection = new CharacterResponseProjection().all$(1) - val graphQLRequest = new GraphQLRequest(heroQueryRequest, characterResponseProjection) - val retFuture = OkHttp.executeRequest[HeroQueryResponse](graphQLRequest) - val ret = Await.result(retFuture, Duration.Inf) - ret.hero() - } - - @throws[Exception] - def human(id: String): HumanDO = { - val humanQueryRequest = HumanQueryRequest() - humanQueryRequest.setId(id) - val humanResponseProjection = new HumanResponseProjection().all$(1) - val graphQLRequest = new GraphQLRequest(humanQueryRequest, humanResponseProjection) - val retFuture = OkHttp.executeRequest[HumanQueryResponse](graphQLRequest) - val ret = Await.result(retFuture, Duration.Inf) - ret.human() - } - - @throws[Exception] - def humans: Seq[HumanDO] = { - val humanQueryRequest = HumansQueryRequest() - val humanResponseProjection = new HumanResponseProjection().all$(1) - val graphQLRequest = new GraphQLRequest(humanQueryRequest, humanResponseProjection) - val retFuture = OkHttp.executeRequest[HumansQueryResponse](graphQLRequest) - val ret = Await.result(retFuture, Duration.Inf) - ret.humans() - } - - @throws[Exception] - def droid(id: String): DroidDO = { - val productByIdQueryRequest = DroidQueryRequest() - productByIdQueryRequest.setId(id) - val droidResponseProjection = new DroidResponseProjection().all$(1) - val graphQLRequest = new GraphQLRequest(productByIdQueryRequest, droidResponseProjection) - val retFuture = OkHttp.executeRequest[DroidQueryResponse](graphQLRequest) - val ret = Await.result(retFuture, Duration.Inf) - ret.droid() - } -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/service/QueryResolverImplMain.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/service/QueryResolverImplMain.scala deleted file mode 100644 index 3505f3346..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/src/main/scala/io/github/dreamylost/service/QueryResolverImplMain.scala +++ /dev/null @@ -1,69 +0,0 @@ -package io.github.dreamylost.service - -import io.github.dreamylost.model.EpisodeDO - -/** - * - * @author liguobin@growingio.com - * @version 1.0,2020/7/21 - */ -object QueryResolverImplMain extends App { - - val droidResolver = new QueryResolverImpl - println("=======QueryResolverImpl=======") - // need typename on Projection - println("=======get droid id 2001=========") - val d = droidResolver.droid("2001") - println(d) - - println("=======get humans all=======") - val hums = droidResolver.humans - for (h <- hums) { - println(h) - } - - println("=======get human id 1002=======") - val hum = droidResolver.human("1002") - println(hum) - - println("=======get hero Episode.EMPIRE=======") - val character = droidResolver.hero(EpisodeDO.EMPIRE) - println(character) - - println("=======QueryResolverImpl2=======") - /** - * MAX DEPTH = 4 - * gql:{{{ - * { id name friends { - * id name friends { - * id name friends { - * id name friends { - * id name friends { - * id name appearsIn secretBackstory __typename } - * appearsIn secretBackstory __typename } - * appearsIn secretBackstory __typename } - * appearsIn secretBackstory __typename } - * appearsIn secretBackstory __typename } - * appearsIn primaryFunction secretBackstory __typename } - * }}} - */ - val droidResolver2 = new QueryResolverImpl - println("=======2get droid id 2001=========") - val d2 = droidResolver2.droid("2001") - println(d2) - - println("=======2get humans all=======") - val hums2 = droidResolver2.humans - for (h <- hums2) { - println(h) - } - - println("=======2get human id 1002=======") - val hum2 = droidResolver2.human("1002") - println(hum2) - - println("=======2get hero Episode.EMPIRE=======") - val character2 = droidResolver2.hero(EpisodeDO.EMPIRE) - println(character2) - -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/test b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/test deleted file mode 100644 index 585d8979b..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/test +++ /dev/null @@ -1,6 +0,0 @@ -# check if the file gets created -> graphqlCodegen -> graphqlSchemaValidate src/main/resources/schema.graphqls -> graphqlCodegenValidate -> compile -$ exists target/scala-2.12/src_managed_graphql_scala/io/github/dreamylost/model/CharacterDO.scala \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/version.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/version.sbt deleted file mode 100644 index a4cf54075..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client-scala/version.sbt +++ /dev/null @@ -1 +0,0 @@ -version in ThisBuild := "5.10.1-SNAPSHOT" diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/build.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/build.sbt deleted file mode 100644 index 07f8abaac..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/build.sbt +++ /dev/null @@ -1,63 +0,0 @@ -import java.util - -name := "example-client" - -organization := "io.github.jxnu-liguobin" - -libraryDependencies ++= Seq( - "org.apache.logging.log4j" %% "log4j-api-scala" % "11.0", - "org.apache.logging.log4j" % "log4j-api" % "2.8.2", - "org.apache.logging.log4j" % "log4j-core" % "2.8.2", - "org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.8.2", - "com.squareup.okhttp3" % "okhttp" % "4.7.2", - "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.11.1", - "com.fasterxml.jackson.core" % "jackson-databind" % "2.11.1", - "org.json" % "json" % "20190722", - "com.graphql-java" % "graphql-java" % "16.2") - - -enablePlugins(GraphQLCodegenPlugin) - -graphqlJavaCodegenVersion := Some((version in Scope.ThisScope).value) - -GraphQLCodegenPluginDependencies - -graphqlSchemaPaths := List("src/main/resources/schema.graphqls") -modelPackageName := Some("io.github.dreamylost.model") -apiPackageName := Some("io.github.dreamylost.api") -generateClient := true -generateApis := true -// Scala collection cannot be used. The latter one uses the put method, which is not supported by Scala collection. -// in FB, collection is immutable -customTypesMapping := { - val mapping = new util.HashMap[String, String] -// mapping.put("Email", "io.github.dreamylost.scalar.EmailScalar") - //Character will conflict with java.lang.Character. maybe because Scala imports it automatically java.lang *. - //So we use Full class name - mapping -} - -//Of course, you can also add a suffix to be different from it -modelNameSuffix := Some("DO") - -customAnnotationsMapping := { - val mapping = new util.HashMap[String, util.List[String]] - val annotations = new util.ArrayList[String]() - annotations.add("@com.fasterxml.jackson.annotation.JsonTypeInfo(use=com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include=com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY,property = \"__typename\")") - annotations.add("""@com.fasterxml.jackson.annotation.JsonSubTypes(value = { - | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = HumanDO.class, name = "Human"), - | @com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = DroidDO.class, name = "Droid")})""".stripMargin) - //must add this annotation - //property is __typename and you must with __typename while invoke, like new CharacterResponseProjection().id().name().typename() - //and in @JsonSubTypes.Type, name is __typename's value - mapping.put("Character",annotations)//since v3.0.0 - mapping -} - -generateCodegenTargetPath in GraphQLCodegenConfig := crossTarget.value / "src_managed_graphql_my_folder" - -generateEqualsAndHashCode := true - -generateToString := true - -generateSealedInterfaces := true \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/project/build.properties b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/project/build.properties deleted file mode 100644 index 862afa5f2..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.4.7 \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/project/plugins.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/project/plugins.sbt deleted file mode 100644 index 614518cda..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/project/plugins.sbt +++ /dev/null @@ -1 +0,0 @@ -addSbtPlugin("io.github.jxnu-liguobin" % "graphql-codegen-sbt-plugin" % "5.10.1-SNAPSHOT") diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/resources/log4j2.xml b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/resources/log4j2.xml deleted file mode 100644 index bc2bb91ee..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/resources/log4j2.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/resources/schema.graphqls b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/resources/schema.graphqls deleted file mode 100644 index cba4019cd..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/resources/schema.graphqls +++ /dev/null @@ -1,44 +0,0 @@ -schema { - query: Query -} - -type Query { - hero(episode: Episode) : Character - human(id : String) : Human - humans: [Human] - droid(id: ID!) : Droid -} -enum Episode { - NEWHOPE - EMPIRE - JEDI -} - -interface Character { - id: ID! - name: String! - friends: [Character] - appearsIn: [Episode]! - secretBackstory : String @deprecated(reason : "We have decided that this is not canon") -} - -type Human implements Character { - id: ID! - name: String! - friends: [Character] - appearsIn: [Episode]! - homePlanet: String - secretBackstory : String @deprecated(reason : "We have decided that this is not canon") - email: Email! -} - -type Droid implements Character { - id: ID! - name: String! - friends: [Character] - appearsIn: [Episode]! - primaryFunction: String - secretBackstory : String @deprecated(reason : "We have decided that this is not canon") -} - -scalar Email diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/Jackson.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/Jackson.scala deleted file mode 100644 index 8cc8d3c88..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/Jackson.scala +++ /dev/null @@ -1,18 +0,0 @@ -package io.github.dreamylost - -import com.fasterxml.jackson.annotation.JsonInclude.Include -import com.fasterxml.jackson.databind.{ DeserializationFeature, ObjectMapper } -import com.fasterxml.jackson.module.scala.{ DefaultScalaModule, ScalaObjectMapper } - -object Jackson { - - lazy val mapper: ObjectMapper with ScalaObjectMapper = { - val mapper = new ObjectMapper() with ScalaObjectMapper - mapper.setSerializationInclusion(Include.NON_NULL) - mapper.setSerializationInclusion(Include.NON_ABSENT) - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - mapper.registerModule(DefaultScalaModule) - mapper - } - -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/OkHttp.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/OkHttp.scala deleted file mode 100644 index e21a70500..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/OkHttp.scala +++ /dev/null @@ -1,68 +0,0 @@ -package io.github.dreamylost - -import java.io.IOException -import java.util -import java.util.concurrent.TimeUnit - -import com.fasterxml.jackson.core.`type`.TypeReference -import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest -import okhttp3._ -import org.json.JSONObject - -import scala.concurrent.{ ExecutionContext, Future, Promise } - -object OkHttp { - - var url = "http://localhost:8080/graphql" - val defaultCharset = "utf8" - val json = MediaType.parse("application/json; charset=utf-8") - - private lazy val defaultTimeout: Long = TimeUnit.MINUTES.toMillis(1) - lazy val client: OkHttpClient = buildClient(defaultTimeout, defaultTimeout, defaultTimeout) - - def buildClient(readTimeout: Long, writeTimeout: Long, connectTimeout: Long): OkHttpClient = { - new OkHttpClient.Builder() - .readTimeout(readTimeout, TimeUnit.MILLISECONDS) - .writeTimeout(writeTimeout, TimeUnit.MILLISECONDS) - .connectTimeout(connectTimeout, TimeUnit.MILLISECONDS) - .protocols(util.Arrays.asList(Protocol.HTTP_1_1, Protocol.HTTP_2)) - .build() - } - - /** - * - * @param request - * @param valueType must get from invoker, ClassTag is invalid - * @param ec - * @tparam T - * @return - */ - def executeRequest[T](request: GraphQLRequest, valueType: TypeReference[T])(implicit ec: ExecutionContext): Future[T] = { - val rb = new Request.Builder().url(url).addHeader("Accept", "application/json; charset=utf-8"). - post(RequestBody.create(request.toHttpJsonBody, json)) - val promise = Promise[T] - - println("Graphql query " + request.toHttpJsonBody) - OkHttp.client.newCall(rb.build()).enqueue(new Callback { - - override def onFailure(call: Call, e: IOException): Unit = { - promise.failure(e) - } - - override def onResponse(call: Call, response: Response): Unit = { - if (response.isSuccessful) { - // val clazz = implicitly[ClassTag[T]].runtimeClass - val jsonObject = new JSONObject(response.body().string()) - val res = jsonObject.getJSONObject("data").get(request.getRequest.getOperationName) - val result = Jackson.mapper.readValue(res.toString, valueType) - promise.success(result.asInstanceOf[T]) - - } else { - Future.successful() - } - - } - }) - promise.future - } -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/scalar/EmailScalar.java b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/scalar/EmailScalar.java deleted file mode 100644 index 1583f1ccf..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/scalar/EmailScalar.java +++ /dev/null @@ -1,71 +0,0 @@ -package io.github.dreamylost.scalar; - -import graphql.language.StringValue; -import graphql.schema.*; - -import java.util.regex.Pattern; - -/** - * graphql scalar type - *

- * use in graphql schema like : scalar Email - * - * @author 梦境迷离 - * @time 2020年04月03日 - */ -public class EmailScalar { - - public static final GraphQLScalarType Email = GraphQLScalarType.newScalar().name("Email").description("A custom scalar that handles emails").coercing( - new Coercing() { - @Override - public Object serialize(Object dataFetcherResult) { - return serializeEmail(dataFetcherResult); - } - - @Override - public Object parseValue(Object input) { - return parseEmailFromVariable(input); - } - - @Override - public Object parseLiteral(Object input) { - return parseEmailFromAstLiteral(input); - } - }).build(); - - - private static boolean looksLikeAnEmailAddress(String possibleEmailValue) { - return Pattern.matches("^[A-Za-z0-9\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$", possibleEmailValue); - } - - private static Object serializeEmail(Object dataFetcherResult) { - String possibleEmailValue = String.valueOf(dataFetcherResult); - if (looksLikeAnEmailAddress(possibleEmailValue)) { - return possibleEmailValue; - } else { - throw new CoercingSerializeException("Unable to serialize " + possibleEmailValue + " as an email address"); - } - } - - private static Object parseEmailFromVariable(Object input) { - if (input instanceof String) { - String possibleEmailValue = input.toString(); - if (looksLikeAnEmailAddress(possibleEmailValue)) { - return possibleEmailValue; - } - } - throw new CoercingParseValueException("Unable to parse variable value " + input + " as an email address"); - } - - private static Object parseEmailFromAstLiteral(Object input) { - if (input instanceof StringValue) { - String possibleEmailValue = ((StringValue) input).getValue(); - if (looksLikeAnEmailAddress(possibleEmailValue)) { - return possibleEmailValue; - } - } - throw new CoercingParseLiteralException( - "Value is not any email address : '" + input + "'" - ); - } -} \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala deleted file mode 100644 index 97cc88b26..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl.scala +++ /dev/null @@ -1,71 +0,0 @@ -package io.github.dreamylost.service - -import java.util - -import com.fasterxml.jackson.core.`type`.TypeReference -import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest -import io.github.dreamylost.api.QueryResolver -import io.github.dreamylost.OkHttp -import io.github.dreamylost.model._ - -import scala.concurrent.Await -import scala.concurrent.duration.Duration -import scala.concurrent.ExecutionContext.Implicits.global - -/** - * a scala client example - * - * @author liguobin@growingio.com - * @version 1.0,2020/7/20 - */ -class QueryResolverImpl extends QueryResolver { - - @throws[Exception] - def hero(episode: EpisodeDO): CharacterDO = { - val heroQueryRequest = new HeroQueryRequest - heroQueryRequest.setEpisode(episode) - //must use typename, and add jackson annotation to support, since v2.4 - val characterResponseProjection = new CharacterResponseProjection().id().name().typename() - .friends(new CharacterResponseProjection().id().name().typename()).appearsIn() - val graphQLRequest = new GraphQLRequest(heroQueryRequest, characterResponseProjection) - val retFuture = OkHttp.executeRequest(graphQLRequest, new TypeReference[CharacterDO] {}) - val ret = Await.result(retFuture, Duration.Inf) - ret - } - - @throws[Exception] - def human(id: String): HumanDO = { - val humanQueryRequest = new HumanQueryRequest - humanQueryRequest.setId(id) - //must use typename, and add jackson annotation to support, since v2.4 - val humanResponseProjection = new HumanResponseProjection().id().name().typename() - val graphQLRequest = new GraphQLRequest(humanQueryRequest, humanResponseProjection) - val retFuture = OkHttp.executeRequest(graphQLRequest, new TypeReference[HumanDO] {}) - val ret = Await.result(retFuture, Duration.Inf) - ret - } - - @throws[Exception] - def humans: util.List[HumanDO] = { - import scala.collection.JavaConverters._ - val humanQueryRequest = new HumansQueryRequest - //must use typename, and add jackson annotation to support, since v2.4 - val humanResponseProjection = new HumanResponseProjection().id().name().typename() - val graphQLRequest = new GraphQLRequest(humanQueryRequest, humanResponseProjection) - val retFuture = OkHttp.executeRequest(graphQLRequest, new TypeReference[List[HumanDO]] {}) - val ret = Await.result(retFuture, Duration.Inf) - ret.asJava - } - - @throws[Exception] - def droid(id: String): DroidDO = { - val productByIdQueryRequest = new DroidQueryRequest - productByIdQueryRequest.setId(id) - //must use typename, and add jackson annotation to support, since v2.4 - val droidResponseProjection = new DroidResponseProjection().id().name().typename() - val graphQLRequest = new GraphQLRequest(productByIdQueryRequest, droidResponseProjection) - val retFuture = OkHttp.executeRequest(graphQLRequest, new TypeReference[DroidDO] {}) - val ret = Await.result(retFuture, Duration.Inf) - ret - } -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl2.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl2.scala deleted file mode 100644 index 46c3aa84e..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImpl2.scala +++ /dev/null @@ -1,74 +0,0 @@ -package io.github.dreamylost.service - -import java.util - -import com.fasterxml.jackson.core.`type`.TypeReference -import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequest -import io.github.dreamylost.api.QueryResolver -import io.github.dreamylost.model._ -import io.github.dreamylost.OkHttp - -import scala.concurrent.Await -import scala.concurrent.ExecutionContext.Implicits.global -import scala.concurrent.duration.Duration - -/** - * use all$() - * - * At now, we can simply construct a request and call it directly. - * - * Next, we'll replace the reflection in the proxy with `all$()` - * - * @author liguobin@growingio.com - * @version 1.0,2020/8/27 - */ -class QueryResolverImpl2 extends QueryResolver { - - @throws[Exception] - def hero(episode: EpisodeDO): CharacterDO = { - val heroQueryRequest = new HeroQueryRequest - heroQueryRequest.setEpisode(episode) - //must use typename, and add jackson annotation to support, since v2.4 - val characterResponseProjection = new CharacterResponseProjection().all$(1) - val graphQLRequest = new GraphQLRequest(heroQueryRequest, characterResponseProjection) - val retFuture = OkHttp.executeRequest(graphQLRequest, new TypeReference[CharacterDO] {}) - val ret = Await.result(retFuture, Duration.Inf) - ret - } - - @throws[Exception] - def human(id: String): HumanDO = { - val humanQueryRequest = new HumanQueryRequest - humanQueryRequest.setId(id) - //must use typename, and add jackson annotation to support, since v2.4 - val humanResponseProjection = new HumanResponseProjection().all$(1) - val graphQLRequest = new GraphQLRequest(humanQueryRequest, humanResponseProjection) - val retFuture = OkHttp.executeRequest(graphQLRequest, new TypeReference[HumanDO] {}) - val ret = Await.result(retFuture, Duration.Inf) - ret - } - - @throws[Exception] - def humans: util.List[HumanDO] = { - import scala.collection.JavaConverters._ - val humanQueryRequest = new HumansQueryRequest - //must use typename, and add jackson annotation to support, since v2.4 - val humanResponseProjection = new HumanResponseProjection().all$(1) - val graphQLRequest = new GraphQLRequest(humanQueryRequest, humanResponseProjection) - val retFuture = OkHttp.executeRequest(graphQLRequest, new TypeReference[List[HumanDO]] {}) - val ret = Await.result(retFuture, Duration.Inf) - ret.asJava - } - - @throws[Exception] - def droid(id: String): DroidDO = { - val productByIdQueryRequest = new DroidQueryRequest - productByIdQueryRequest.setId(id) - //must use typename, and add jackson annotation to support, since v2.4 - val droidResponseProjection = new DroidResponseProjection().all$(1) - val graphQLRequest = new GraphQLRequest(productByIdQueryRequest, droidResponseProjection) - val retFuture = OkHttp.executeRequest(graphQLRequest, new TypeReference[DroidDO] {}) - val ret = Await.result(retFuture, Duration.Inf) - ret - } -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImplMain.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImplMain.scala deleted file mode 100644 index 37b6af8bb..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/src/main/scala/io/github/dreamylost/service/QueryResolverImplMain.scala +++ /dev/null @@ -1,71 +0,0 @@ -package io.github.dreamylost.service - -import io.github.dreamylost.model.EpisodeDO - -import scala.collection.JavaConverters._ - -/** - * - * @author liguobin@growingio.com - * @version 1.0,2020/7/21 - */ -object QueryResolverImplMain extends App { - - val droidResolver = new QueryResolverImpl - println("=======QueryResolverImpl=======") - // need typename on Projection - println("=======get droid id 2001=========") - val d = droidResolver.droid("2001") - println(d) - - println("=======get humans all=======") - val hums = droidResolver.humans - for (h <- hums.asScala) { - println(h) - } - - println("=======get human id 1002=======") - val hum = droidResolver.human("1002") - println(hum) - - println("=======get hero Episode.EMPIRE=======") - val character = droidResolver.hero(EpisodeDO.EMPIRE) - println(character) - - println("=======QueryResolverImpl2=======") - /** - * MAX DEPTH = 4 - * gql:{{{ - * { id name friends { - * id name friends { - * id name friends { - * id name friends { - * id name friends { - * id name appearsIn secretBackstory __typename } - * appearsIn secretBackstory __typename } - * appearsIn secretBackstory __typename } - * appearsIn secretBackstory __typename } - * appearsIn secretBackstory __typename } - * appearsIn primaryFunction secretBackstory __typename } - * }}} - */ - val droidResolver2 = new QueryResolverImpl2 - println("=======2get droid id 2001=========") - val d2 = droidResolver2.droid("2001") - println(d2) - - println("=======2get humans all=======") - val hums2 = droidResolver2.humans - for (h <- hums2.asScala) { - println(h) - } - - println("=======2get human id 1002=======") - val hum2 = droidResolver2.human("1002") - println(hum2) - - println("=======2get hero Episode.EMPIRE=======") - val character2 = droidResolver2.hero(EpisodeDO.EMPIRE) - println(character2) - -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/test b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/test deleted file mode 100644 index 9a68f155c..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/test +++ /dev/null @@ -1,6 +0,0 @@ -# check if the file gets created -> graphqlCodegen -> graphqlSchemaValidate src/main/resources/schema.graphqls -> graphqlCodegenValidate -> compile -$ exists target/scala-2.12/src_managed_graphql_my_folder/io/github/dreamylost/model/CharacterDO.java \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/version.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/version.sbt deleted file mode 100644 index a4cf54075..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/example-client/version.sbt +++ /dev/null @@ -1 +0,0 @@ -version in ThisBuild := "5.10.1-SNAPSHOT" diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/build.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/build.sbt deleted file mode 100644 index 8b9ac7f94..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/build.sbt +++ /dev/null @@ -1,14 +0,0 @@ -name := "simple" - -lazy val root = (project in file(".")) - .settings( - scalaVersion := "2.13.2", - apiPackageName := Some("io.github.kobylynskyi.graphql.test.api"), - modelPackageName := Some("io.github.kobylynskyi.graphql.test.model"), - apiReturnType := Some("scala.concurrent.Future"), // if Async class is not at current source, need import dependency - graphqlJavaCodegenVersion := Some((version in Scope.ThisScope).value) - //use full class name is good - ).enablePlugins(GraphQLCodegenPlugin).settings(GraphQLCodegenPluginDependencies) - - -//javaSource in Compile := crossTarget.value / "src_managed_graphql" diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/project/build.properties b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/project/build.properties deleted file mode 100644 index 862afa5f2..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/project/build.properties +++ /dev/null @@ -1 +0,0 @@ -sbt.version=1.4.7 \ No newline at end of file diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/project/plugins.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/project/plugins.sbt deleted file mode 100644 index 35ceb501a..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/project/plugins.sbt +++ /dev/null @@ -1,5 +0,0 @@ -sys.props.get("plugin.version").orElse(Some("5.10.1-SNAPSHOT")) match { - case Some(x) => addSbtPlugin("io.github.jxnu-liguobin" % "graphql-codegen-sbt-plugin" % x) - case _ => sys.error("""|The system property 'plugin.version' is not defined. - |Specify this property using the scriptedLaunchOpts -D.""".stripMargin) -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/src/main/resources/schema.graphql b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/src/main/resources/schema.graphql deleted file mode 100644 index c14b91955..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/src/main/resources/schema.graphql +++ /dev/null @@ -1,37 +0,0 @@ -# -# Schemas must have at least a query root type -# -schema { - query: Query -} - -# This is the type that will be the root of our query, and the -# entry point into our schema. -type Query { - getPosts: [Post] - - getUser( - id : ID! - ): User - - getPost( - id: ID! - ): Post -} - -type Post { - id: ID! - title: String! - # Content if provided by author - content: String - # The URL if this is external content - url: String - author: User -} - -type User { - id: ID! - username: String! - email: String! - posts: [Post] -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/src/main/scala/io/github/kobylynskyi/graphql/test/api/impl/GetUserQueryResolverImpl.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/src/main/scala/io/github/kobylynskyi/graphql/test/api/impl/GetUserQueryResolverImpl.scala deleted file mode 100644 index a9cbc4225..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/src/main/scala/io/github/kobylynskyi/graphql/test/api/impl/GetUserQueryResolverImpl.scala +++ /dev/null @@ -1,19 +0,0 @@ -package io.github.kobylynskyi.graphql.test.api.impl - -import io.github.kobylynskyi.graphql.test.api.GetUserQueryResolver -import io.github.kobylynskyi.graphql.test.model.User - -import scala.concurrent.Future - -/** - * example, use a async api - * - * @author 梦境迷离 - * @since 2020-07-19 - * @version v1.0 - */ -class GetUserQueryResolverImpl extends GetUserQueryResolver { - override def getUser(id: _root_.java.lang.String): _root_.scala.concurrent.Future[_root_.io.github.kobylynskyi.graphql.test.model.User] = { - Future.successful(User.builder().setId("id").setEmail("email@126.com").setUsername("user name").build()) - } -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/test b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/test deleted file mode 100644 index 6c6c6bf91..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/test +++ /dev/null @@ -1,6 +0,0 @@ -# check if the file gets created -> graphqlCodegen -> graphqlSchemaValidate src/main/resources/schema.graphql -> graphqlCodegenValidate -> compile -$ exists target/scala-2.13/src_managed_graphql/io/github/kobylynskyi/graphql/test/model/User.java diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/version.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/version.sbt deleted file mode 100644 index a4cf54075..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/sbt-test/graphql-codegen-sbt-plugin/simple/version.sbt +++ /dev/null @@ -1 +0,0 @@ -version in ThisBuild := "5.10.1-SNAPSHOT" diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/test/scala/test/Test.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/test/scala/test/Test.scala deleted file mode 100644 index 4bfbb409a..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/test/scala/test/Test.scala +++ /dev/null @@ -1,13 +0,0 @@ -package test - -/** @author - * 梦境迷离 - * @version 1.0,2020/7/15 - */ -object Test { - - import io.github.dreamylost.graphql.codegen.GraphQLCodegenPlugin - - val s = GraphQLCodegenPlugin - -} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/version.sbt b/plugins/sbt/graphql-java-codegen-sbt-plugin/version.sbt deleted file mode 100644 index 4c81273a5..000000000 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/version.sbt +++ /dev/null @@ -1 +0,0 @@ -ThisBuild / version := "5.10.1-SNAPSHOT"