Skip to content

Commit 496160e

Browse files
dariuszkucsmyrick
authored andcommitted
Update to GraphQL Java 11 (#93)
Resolves #92
1 parent c30bfae commit 496160e

File tree

9 files changed

+66
-14
lines changed

9 files changed

+66
-14
lines changed

example/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
<kotlin.version>1.3.11</kotlin.version>
6464
<junit.version>4.12</junit.version>
6565
<graphiql.version>5.0.2</graphiql.version>
66-
<graphql-kotlin.version>0.0.25</graphql-kotlin.version>
66+
<graphql-kotlin.version>0.0.26-SNAPSHOT</graphql-kotlin.version>
6767
<graphql-servlet.version>6.1.2</graphql-servlet.version>
6868
</properties>
6969

example/src/main/kotlin/com.expedia.graphql.sample/dataFetchers/SpringDataFetcherFactory.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.expedia.graphql.sample.dataFetchers
22

3-
import com.expedia.graphql.schema.extensions.deepName
43
import graphql.schema.DataFetcher
54
import graphql.schema.DataFetcherFactory
65
import graphql.schema.DataFetcherFactoryEnvironment
6+
import graphql.schema.GraphQLList
7+
import graphql.schema.GraphQLNonNull
8+
import graphql.schema.GraphQLType
79
import org.springframework.beans.factory.BeanFactory
810
import org.springframework.beans.factory.BeanFactoryAware
911
import org.springframework.stereotype.Component
@@ -22,5 +24,12 @@ class SpringDataFetcherFactory: DataFetcherFactory<Any>, BeanFactoryAware {
2224
val targetedTypeName = environment?.fieldDefinition?.type?.deepName?.removeSuffix("!")?.removeSuffix("Input")
2325
return beanFactory.getBean("${targetedTypeName}DataFetcher") as DataFetcher<Any>
2426
}
27+
}
2528

26-
}
29+
// keeping it internal
30+
internal val GraphQLType.deepName: String
31+
get() = when {
32+
this is GraphQLNonNull -> "${this.wrappedType.deepName}!"
33+
this is GraphQLList -> "[${this.wrappedType.deepName}]"
34+
else -> name
35+
}

example/src/main/kotlin/com.expedia.graphql.sample/query/NestedQueries.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component
1212

1313
@Component
1414
class NestedQueries : Query {
15-
fun findAnimal(context: String): NestedAnimal = NestedAnimal(1, "cat")
15+
fun findAnimal(): NestedAnimal = NestedAnimal(1, "cat")
1616
}
1717

1818
data class NestedAnimal(

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.expedia.www</groupId>
77
<artifactId>graphql-kotlin</artifactId>
8-
<version>0.0.25-SNAPSHOT</version>
8+
<version>0.0.26-SNAPSHOT</version>
99
<name>graphql-kotlin</name>
1010
<description>Code-only GraphQL schema generation for Kotlin</description>
1111
<url>https://github.com/ExpediaDotCom/graphql-kotlin</url>
@@ -73,7 +73,7 @@
7373
<!-- Project Versions -->
7474
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
7575

76-
<graphql-java.version>10.0</graphql-java.version>
76+
<graphql-java.version>11.0</graphql-java.version>
7777

7878
<!-- kotlin -->
7979
<kotlin.version>1.3.11</kotlin.version>

src/main/kotlin/com/expedia/graphql/schema/generator/directive/DirectiveWiringHelper.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import graphql.schema.idl.WiringFactory
2323
* Based on
2424
* https://github.com/graphql-java/graphql-java/blob/master/src/main/java/graphql/schema/idl/SchemaGeneratorDirectiveHelper.java
2525
*/
26-
internal class DirectiveWiringHelper(private val wiringFactory: WiringFactory, private val manualWiring: Map<String, SchemaDirectiveWiring> = mutableMapOf()) {
26+
class DirectiveWiringHelper(private val wiringFactory: WiringFactory, private val manualWiring: Map<String, SchemaDirectiveWiring> = mutableMapOf()) {
2727

2828
/**
2929
* Wire up the directive based on the GraphQL type

src/test/kotlin/com/expedia/graphql/schema/extensions/GraphQLTypeExtensionsTest.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,18 @@ package com.expedia.graphql.schema.extensions
33
import graphql.schema.GraphQLList
44
import graphql.schema.GraphQLNonNull
55
import graphql.schema.GraphQLType
6+
import graphql.schema.GraphQLTypeVisitor
7+
import graphql.util.TraversalControl
8+
import graphql.util.TraverserContext
69
import kotlin.test.Test
710
import kotlin.test.assertEquals
811

912
internal class GraphQLTypeExtensionsTest {
1013

1114
private class BasicType : GraphQLType {
1215
override fun getName() = "BasicType"
16+
17+
override fun accept(context: TraverserContext<GraphQLType>, visitor: GraphQLTypeVisitor): TraversalControl = context.thisNode().accept(context, visitor)
1318
}
1419

1520
private val basicType = BasicType()

src/test/kotlin/com/expedia/graphql/schema/generator/TypesCacheTest.kt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ package com.expedia.graphql.schema.generator
22

33
import com.expedia.graphql.schema.generator.models.KGraphQLType
44
import graphql.schema.GraphQLType
5+
import graphql.schema.GraphQLTypeVisitor
6+
import graphql.util.TraversalControl
7+
import graphql.util.TraverserContext
58
import org.junit.jupiter.api.Test
69
import kotlin.reflect.full.starProjectedType
710
import kotlin.test.assertEquals
@@ -14,8 +17,17 @@ class TypesCacheTest {
1417

1518
internal data class MyType(val id: Int = 0)
1619

17-
private val graphQLType: GraphQLType = GraphQLType { "MyType" }
18-
private val secondGraphQLType: GraphQLType = GraphQLType { "MySecondType" }
20+
private val graphQLType: GraphQLType = object : GraphQLType {
21+
override fun getName(): String = "MyType"
22+
23+
override fun accept(context: TraverserContext<GraphQLType>, visitor: GraphQLTypeVisitor): TraversalControl = context.thisNode().accept(context, visitor)
24+
}
25+
26+
private val secondGraphQLType: GraphQLType = object : GraphQLType {
27+
override fun getName(): String = "MySecondType"
28+
29+
override fun accept(context: TraverserContext<GraphQLType>, visitor: GraphQLTypeVisitor): TraversalControl = context.thisNode().accept(context, visitor)
30+
}
1931

2032
@Test
2133
fun `basic get and put with non input type`() {

src/test/kotlin/com/expedia/graphql/schema/generator/directive/DirectiveWiringHelperTest.kt

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.expedia.graphql.schema.generator.directive
22

33
import com.expedia.graphql.schema.exceptions.GraphQLKotlinException
4+
import graphql.Scalars
45
import graphql.schema.GraphQLArgument
56
import graphql.schema.GraphQLDirective
67
import graphql.schema.GraphQLDirectiveContainer
@@ -12,12 +13,16 @@ import graphql.schema.GraphQLInputObjectType
1213
import graphql.schema.GraphQLInterfaceType
1314
import graphql.schema.GraphQLList
1415
import graphql.schema.GraphQLObjectType
16+
import graphql.schema.GraphQLOutputType
1517
import graphql.schema.GraphQLScalarType
1618
import graphql.schema.GraphQLType
19+
import graphql.schema.GraphQLTypeVisitor
1720
import graphql.schema.GraphQLUnionType
1821
import graphql.schema.idl.SchemaDirectiveWiring
1922
import graphql.schema.idl.SchemaDirectiveWiringEnvironment
2023
import graphql.schema.idl.WiringFactory
24+
import graphql.util.TraversalControl
25+
import graphql.util.TraverserContext
2126
import kotlin.test.Test
2227
import kotlin.test.assertEquals
2328
import kotlin.test.assertFailsWith
@@ -115,6 +120,8 @@ internal class DirectiveWiringHelperTest {
115120
override fun getName(): String = "MyCustomType"
116121

117122
override fun getDirectives(): MutableList<GraphQLDirective> = mutableListOf(graphQLDirective)
123+
124+
override fun accept(context: TraverserContext<GraphQLType>, visitor: GraphQLTypeVisitor): TraversalControl = context.thisNode().accept(context, visitor)
118125
}
119126

120127
val manualWiringMap = mapOf("MyDirective" to InvalidWiring())
@@ -166,12 +173,18 @@ internal class DirectiveWiringHelperTest {
166173
fun `An field with directives and arguments with no directives`() {
167174
val arugment = GraphQLArgument.newArgument()
168175
.name("MyArgument")
169-
.type { "GraphQLEnum" }
176+
.type(Scalars.GraphQLString)
170177
.build()
171178

172179
val field = GraphQLFieldDefinition.newFieldDefinition()
173180
.name("MyField")
174-
.type { "GraphQLField" }
181+
.type(
182+
object : GraphQLOutputType {
183+
override fun getName(): String = "GraphQLField"
184+
185+
override fun accept(context: TraverserContext<GraphQLType>, visitor: GraphQLTypeVisitor): TraversalControl = context.thisNode().accept(context, visitor)
186+
}
187+
)
175188
.argument(arugment)
176189
.withDirective(graphQLDirective)
177190
.build()
@@ -190,13 +203,19 @@ internal class DirectiveWiringHelperTest {
190203
fun `An field with arguments that has directives`() {
191204
val arugment = GraphQLArgument.newArgument()
192205
.name("MyArgument")
193-
.type { "GraphQLEnum" }
206+
.type(Scalars.GraphQLString)
194207
.withDirective(graphQLDirective)
195208
.build()
196209

197210
val field = GraphQLFieldDefinition.newFieldDefinition()
198211
.name("MyField")
199-
.type { "GraphQLField" }
212+
.type(
213+
object : GraphQLOutputType {
214+
override fun getName(): String = "GraphQLField"
215+
216+
override fun accept(context: TraverserContext<GraphQLType>, visitor: GraphQLTypeVisitor): TraversalControl = context.thisNode().accept(context, visitor)
217+
}
218+
)
200219
.argument(arugment)
201220
.build()
202221

src/test/kotlin/com/expedia/graphql/schema/generator/models/KGraphQLTypeTest.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
11
package com.expedia.graphql.schema.generator.models
22

33
import graphql.schema.GraphQLType
4+
import graphql.schema.GraphQLTypeVisitor
5+
import graphql.util.TraversalControl
6+
import graphql.util.TraverserContext
47
import org.junit.jupiter.api.Test
58
import kotlin.test.assertEquals
69

710
internal class KGraphQLTypeTest {
811

912
@Suppress("Detekt.UnusedPrivateClass")
1013
private data class MyType(val id: Int = 0)
11-
private val graphQLType = GraphQLType { "MyType" }
14+
private val graphQLType = object : GraphQLType {
15+
override fun getName(): String = "MyType"
16+
17+
override fun accept(context: TraverserContext<GraphQLType>, visitor: GraphQLTypeVisitor): TraversalControl = context.thisNode().accept(context, visitor)
18+
}
1219

1320
@Test
1421
fun `properties are set`() {

0 commit comments

Comments
 (0)