diff --git a/build.gradle b/build.gradle
index 8aad9b09e..2e11e264a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ plugins {
id "java-library"
id "signing"
id "maven-publish"
- id "org.sonarqube" version "4.3.0.3225"
+ id "org.sonarqube" version "4.0.0.2929"
}
def graphqlCodegenVersion = '5.8.1-SNAPSHOT' // This variable used in the automatic release process
@@ -20,7 +20,7 @@ repositories {
dependencies {
compileOnly "org.freemarker:freemarker:2.3.32"
- compileOnly "com.graphql-java:graphql-java:21.0"
+ compileOnly "com.graphql-java:graphql-java:20.2"
compileOnly "com.fasterxml.jackson.core:jackson-databind:2.15.2"
compileOnly "com.typesafe:config:1.4.2"
diff --git a/plugins/gradle/example-server/build.gradle b/plugins/gradle/example-server/build.gradle
index 5f12f23b7..1e548a470 100644
--- a/plugins/gradle/example-server/build.gradle
+++ b/plugins/gradle/example-server/build.gradle
@@ -13,7 +13,7 @@ mainClassName = "io.github.kobylynskyi.product.Application"
dependencies {
implementation "org.springframework.boot:spring-boot-starter-web:2.7.14"
- implementation "org.springframework.boot:spring-boot-starter-data-mongodb:2.7.13"
+ implementation "org.springframework.boot:spring-boot-starter-data-mongodb:2.7.14"
implementation "com.graphql-java-kickstart:graphql-spring-boot-starter:11.0.0"
implementation "com.graphql-java-kickstart:graphiql-spring-boot-starter:11.1.0"
diff --git a/plugins/gradle/graphql-java-codegen-gradle-plugin/build.gradle b/plugins/gradle/graphql-java-codegen-gradle-plugin/build.gradle
index d4ecadeb8..662558d80 100644
--- a/plugins/gradle/graphql-java-codegen-gradle-plugin/build.gradle
+++ b/plugins/gradle/graphql-java-codegen-gradle-plugin/build.gradle
@@ -27,7 +27,7 @@ dependencies {
implementation "io.github.kobylynskyi:graphql-java-codegen:${version}"
implementation "org.freemarker:freemarker:2.3.32"
- implementation "com.graphql-java:graphql-java:21.0"
+ implementation "com.graphql-java:graphql-java:20.2"
implementation "com.fasterxml.jackson.core:jackson-databind:2.15.2"
implementation "com.typesafe:config:1.4.2"
diff --git a/plugins/maven/example-client/pom.xml b/plugins/maven/example-client/pom.xml
index 35e794736..19477a584 100644
--- a/plugins/maven/example-client/pom.xml
+++ b/plugins/maven/example-client/pom.xml
@@ -128,7 +128,7 @@
org.springframework.boot
spring-boot-starter-data-mongodb
- 2.7.13
+ 2.7.14
diff --git a/plugins/maven/example-server/pom.xml b/plugins/maven/example-server/pom.xml
index 97f8eb3d7..7c8a95cb7 100644
--- a/plugins/maven/example-server/pom.xml
+++ b/plugins/maven/example-server/pom.xml
@@ -76,12 +76,12 @@
org.springframework.boot
spring-boot-starter-web
- 2.7.13
+ 2.7.14
org.springframework.boot
spring-boot-starter-data-mongodb
- 2.7.13
+ 2.7.14
diff --git a/plugins/maven/graphql-java-codegen-maven-plugin/pom.xml b/plugins/maven/graphql-java-codegen-maven-plugin/pom.xml
index ea454b7aa..3cacce50e 100644
--- a/plugins/maven/graphql-java-codegen-maven-plugin/pom.xml
+++ b/plugins/maven/graphql-java-codegen-maven-plugin/pom.xml
@@ -56,8 +56,8 @@
- 3.9.3
- 3.9.3
+ 3.9.4
+ 3.9.4
3.9.0
3.9.0
3.11.0
@@ -121,7 +121,7 @@
com.graphql-java
graphql-java
- 21.0
+ 20.2
com.fasterxml.jackson.core
diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/ValueMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/ValueMapper.java
index 87f161d12..aa187a18b 100644
--- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/ValueMapper.java
+++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/ValueMapper.java
@@ -17,6 +17,7 @@
import java.util.Collections;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -122,6 +123,11 @@ public String map(MappingContext mappingContext, Value> value, Type> graphQL
private String mapEnum(MappingContext mappingContext, EnumValue value, Type> graphQLType) {
if (graphQLType == null) {
+ Map customTypesMapping = mappingContext.getCustomTypesMapping();
+ if (customTypesMapping.containsKey(value.getName())) {
+ return customTypesMapping.get(value.getName());
+ }
+
return value.getName();
}
if (graphQLType instanceof TypeName) {
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 127abb4f7..fa86b3c28 100644
--- a/src/test/java/com/kobylynskyi/graphql/codegen/kotlin/GraphQLCodegenAnnotationsTest.java
+++ b/src/test/java/com/kobylynskyi/graphql/codegen/kotlin/GraphQLCodegenAnnotationsTest.java
@@ -119,6 +119,21 @@ void generate_CustomAnnotationMappings_FieldType() throws Exception {
" val createdDateTime: org.joda.time.DateTime?");
}
+ @Test
+ void generate_CustomAnnotationMappings_With_Annotations() throws Exception {
+ mappingConfig.setCustomTypesMapping(new HashMap<>(
+ singletonMap("CAMS", "com.intuit.identity.manage.enum.CamsGroup::class")));
+ mappingConfig.setDirectiveAnnotationsMapping(new HashMap<>(singletonMap("NotNull",
+ singletonList("@javax.validation.constraints.NotNull(message = {{message}}, groups = {{groups}})"))));
+
+ generate("src/test/resources/schemas/kt/customTypesMapping-directive.graphqls");
+
+ File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles());
+ assertFileContainsElements(files, "TrustAccountInput.kt",
+ "@field:javax.validation.constraints.NotNull(message = \"test\", " +
+ "groups = com.intuit.identity.manage.enum.CamsGroup::class)");
+ }
+
private void generate(String path) throws IOException {
new KotlinGraphQLCodegen(singletonList(path), outputBuildDir, mappingConfig,
TestUtils.getStaticGeneratedInfo(mappingConfig)).generate();
diff --git a/src/test/resources/schemas/kt/customTypesMapping-directive.graphqls b/src/test/resources/schemas/kt/customTypesMapping-directive.graphqls
new file mode 100644
index 000000000..c500183a6
--- /dev/null
+++ b/src/test/resources/schemas/kt/customTypesMapping-directive.graphqls
@@ -0,0 +1,10 @@
+directive @NotNull(message : String, groups: ValidationGroup) on INPUT_FIELD_DEFINITION
+
+schema {
+ query: Query
+}
+
+input TrustAccountInput
+{
+ accountId: String! @NotNull(message: "test", groups: CAMS)
+}
\ No newline at end of file