Skip to content

Commit d839101

Browse files
committed
WIP: boot server
1 parent ef94e70 commit d839101

40 files changed

+432
-124
lines changed

examples/spring/pom.xml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,9 @@
2323
<dependencies>
2424
<dependency>
2525
<groupId>com.expediagroup</groupId>
26-
<artifactId>graphql-kotlin-schema-generator</artifactId>
26+
<artifactId>graphql-kotlin-boot-server</artifactId>
2727
<version>${project.parent.version}</version>
2828
</dependency>
29-
<dependency>
30-
<groupId>org.springframework.boot</groupId>
31-
<artifactId>spring-boot-starter-webflux</artifactId>
32-
<version>${spring-boot.version}</version>
33-
</dependency>
3429
</dependencies>
3530

3631
<build>

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/Application.kt

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,16 @@
11
package com.expediagroup.graphql.sample
22

33
import com.expediagroup.graphql.SchemaGeneratorConfig
4-
import com.expediagroup.graphql.TopLevelObject
54
import com.expediagroup.graphql.directives.KotlinDirectiveWiringFactory
65
import com.expediagroup.graphql.execution.KotlinDataFetcherFactoryProvider
7-
import com.expediagroup.graphql.extensions.print
86
import com.expediagroup.graphql.hooks.SchemaGeneratorHooks
97
import com.expediagroup.graphql.sample.datafetchers.CustomDataFetcherFactoryProvider
108
import com.expediagroup.graphql.sample.datafetchers.SpringDataFetcherFactory
119
import com.expediagroup.graphql.sample.directives.CustomDirectiveWiringFactory
1210
import com.expediagroup.graphql.sample.exceptions.CustomDataFetcherExceptionHandler
1311
import com.expediagroup.graphql.sample.extension.CustomSchemaGeneratorHooks
14-
import com.expediagroup.graphql.sample.mutation.Mutation
15-
import com.expediagroup.graphql.sample.query.Query
16-
import com.expediagroup.graphql.sample.subscriptions.Subscription
17-
import com.expediagroup.graphql.toSchema
1812
import graphql.GraphQL
19-
import graphql.execution.AsyncExecutionStrategy
20-
import graphql.execution.AsyncSerialExecutionStrategy
2113
import graphql.execution.DataFetcherExceptionHandler
22-
import graphql.execution.SubscriptionExecutionStrategy
23-
import graphql.schema.GraphQLSchema
24-
import org.slf4j.LoggerFactory
2514
import org.springframework.boot.autoconfigure.SpringBootApplication
2615
import org.springframework.boot.runApplication
2716
import org.springframework.context.annotation.Bean
@@ -31,8 +20,6 @@ import javax.validation.Validator
3120
@SpringBootApplication
3221
class Application {
3322

34-
private val logger = LoggerFactory.getLogger(Application::class.java)
35-
3623
@Bean
3724
fun wiringFactory() = CustomDirectiveWiringFactory()
3825

@@ -51,29 +38,6 @@ class Application {
5138
dataFetcherFactoryProvider = dataFetcherFactoryProvider
5239
)
5340

54-
@Bean
55-
fun schema(
56-
queries: List<Query>,
57-
mutations: List<Mutation>,
58-
subscriptions: List<Subscription>,
59-
schemaConfig: SchemaGeneratorConfig
60-
): GraphQLSchema {
61-
fun List<Any>.toTopLevelObjects() = this.map {
62-
TopLevelObject(it)
63-
}
64-
65-
val schema = toSchema(
66-
config = schemaConfig,
67-
queries = queries.toTopLevelObjects(),
68-
mutations = mutations.toTopLevelObjects(),
69-
subscriptions = subscriptions.toTopLevelObjects()
70-
)
71-
72-
logger.info(schema.print())
73-
74-
return schema
75-
}
76-
7741
@Bean
7842
fun dataFetcherExceptionHandler(): DataFetcherExceptionHandler = CustomDataFetcherExceptionHandler()
7943

@@ -82,16 +46,6 @@ class Application {
8246

8347
@Bean
8448
fun websocketHandlerAdapter() = WebSocketHandlerAdapter()
85-
86-
@Bean
87-
fun graphQL(
88-
schema: GraphQLSchema,
89-
dataFetcherExceptionHandler: DataFetcherExceptionHandler
90-
): GraphQL = GraphQL.newGraphQL(schema)
91-
.queryExecutionStrategy(AsyncExecutionStrategy(dataFetcherExceptionHandler))
92-
.mutationExecutionStrategy(AsyncSerialExecutionStrategy(dataFetcherExceptionHandler))
93-
.subscriptionExecutionStrategy(SubscriptionExecutionStrategy(dataFetcherExceptionHandler))
94-
.build()
9549
}
9650

9751
fun main(args: Array<String>) {

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/QueryHandler.kt

Lines changed: 0 additions & 19 deletions
This file was deleted.

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/SubscriptionHandler.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.expediagroup.graphql.sample
22

3+
import com.expediagroup.graphql.boot.server.model.GraphQLRequest
4+
import com.expediagroup.graphql.boot.server.model.toExecutionInput
35
import com.fasterxml.jackson.databind.ObjectMapper
46
import com.fasterxml.jackson.module.kotlin.readValue
57
import com.fasterxml.jackson.module.kotlin.registerKotlinModule
@@ -35,7 +37,7 @@ class SubscriptionHandler(private val graphQL: GraphQL) : WebSocketHandler {
3537
val executionResult = graphQL.execute(executionInput)
3638
executionResult.getData<Publisher<ExecutionResult>>()
3739
}
38-
.map { objectMapper.writeValueAsString(it.toGraphQLResponse()) }
40+
.map { objectMapper.writeValueAsString(it.toSpecification()) }
3941
.map { session.textMessage(it) }
4042
)
4143
}

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/context/MyGraphQLContextWebFilter.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.expediagroup.graphql.sample.context
22

3+
import com.expediagroup.graphql.boot.server.GRAPHQL_CONTEXT_KEY
34
import org.springframework.stereotype.Component
45
import org.springframework.web.server.ServerWebExchange
56
import org.springframework.web.server.WebFilter
@@ -18,6 +19,6 @@ class MyGraphQLContextWebFilter : WebFilter {
1819
myCustomValue = myValue,
1920
request = exchange.request,
2021
response = exchange.response)
21-
return chain.filter(exchange).subscriberContext { it.put("graphQLContext", customContext) }
22+
return chain.filter(exchange).subscriberContext { it.put(GRAPHQL_CONTEXT_KEY, customContext) }
2223
}
2324
}

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/mutation/SimpleMutation.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.expediagroup.graphql.sample.mutation
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
4+
import com.expediagroup.graphql.boot.server.annotation.Mutation
45
import org.springframework.stereotype.Component
56

67
/**

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/mutation/WidgetMutation.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.expediagroup.graphql.sample.mutation
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
4+
import com.expediagroup.graphql.boot.server.annotation.Mutation
45
import com.expediagroup.graphql.sample.model.Widget
56
import org.springframework.stereotype.Component
67

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/AsyncQuery.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.expediagroup.graphql.sample.query
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
4+
import com.expediagroup.graphql.boot.server.annotation.Query
45
import org.springframework.stereotype.Component
56
import java.util.concurrent.CompletableFuture
67

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/ContextualQuery.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.expediagroup.graphql.sample.query
22

33
import com.expediagroup.graphql.annotations.GraphQLContext
44
import com.expediagroup.graphql.annotations.GraphQLDescription
5+
import com.expediagroup.graphql.boot.server.annotation.Query
56
import com.expediagroup.graphql.sample.context.MyGraphQLContext
67
import com.expediagroup.graphql.sample.model.ContextualResponse
78
import org.springframework.stereotype.Component

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/CoroutineQuery.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.expediagroup.graphql.sample.query
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
4+
import com.expediagroup.graphql.boot.server.annotation.Query
45
import kotlinx.coroutines.async
56
import kotlinx.coroutines.coroutineScope
67
import kotlinx.coroutines.delay

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/CustomDirectiveQuery.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.expediagroup.graphql.sample.query
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
4+
import com.expediagroup.graphql.boot.server.annotation.Query
45
import com.expediagroup.graphql.sample.directives.LowercaseDirective
56
import com.expediagroup.graphql.sample.directives.SpecificValueOnly
67
import com.expediagroup.graphql.sample.directives.StringEval

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/EnvironmentQuery.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.expediagroup.graphql.sample.query
22

3+
import com.expediagroup.graphql.boot.server.annotation.Query
34
import graphql.schema.DataFetchingEnvironment
45
import org.springframework.stereotype.Component
56

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/NestedQueries.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.expediagroup.graphql.sample.query
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
4+
import com.expediagroup.graphql.boot.server.annotation.Query
45
import com.fasterxml.jackson.annotation.JsonIgnore
56
import graphql.schema.DataFetcher
67
import graphql.schema.DataFetchingEnvironment

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/PolymorphicQuery.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.expediagroup.graphql.sample.query
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
4+
import com.expediagroup.graphql.boot.server.annotation.Query
45
import com.expediagroup.graphql.sample.model.Animal
56
import com.expediagroup.graphql.sample.model.AnimalType
67
import com.expediagroup.graphql.sample.model.BodyPart

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/PrivateInterfaceQuery.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.expediagroup.graphql.sample.query
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
4+
import com.expediagroup.graphql.boot.server.annotation.Query
45
import com.expediagroup.graphql.sample.model.HidesInheritance
56
import org.springframework.stereotype.Component
67

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/Query.kt

Lines changed: 0 additions & 6 deletions
This file was deleted.

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/RecursiveQuery.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.expediagroup.graphql.sample.query
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
4+
import com.expediagroup.graphql.boot.server.annotation.Query
45
import com.expediagroup.graphql.sample.model.Node
56
import org.springframework.stereotype.Component
67

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/ScalarQuery.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ package com.expediagroup.graphql.sample.query
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
44
import com.expediagroup.graphql.annotations.GraphQLID
5-
import com.expediagroup.graphql.sample.mutation.Mutation
5+
import com.expediagroup.graphql.boot.server.annotation.Mutation
6+
import com.expediagroup.graphql.boot.server.annotation.Query
67
import org.springframework.stereotype.Component
78
import java.util.UUID
89

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/SimpleQuery.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.expediagroup.graphql.sample.query
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
44
import com.expediagroup.graphql.annotations.GraphQLIgnore
5+
import com.expediagroup.graphql.boot.server.annotation.Query
56
import org.springframework.stereotype.Component
67
import java.util.Random
78

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/SubQueries.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.expediagroup.graphql.sample.query
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
44
import com.expediagroup.graphql.annotations.GraphQLIgnore
5+
import com.expediagroup.graphql.boot.server.annotation.Query
56
import org.springframework.beans.factory.BeanFactory
67
import org.springframework.beans.factory.BeanFactoryAware
78
import org.springframework.beans.factory.getBean

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/ValidatedQuery.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.expediagroup.graphql.sample.query
22

3+
import com.expediagroup.graphql.boot.server.annotation.Query
34
import org.springframework.stereotype.Component
45
import javax.validation.Valid
56
import javax.validation.constraints.Pattern

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/query/WidgetQuery.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.expediagroup.graphql.sample.query
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
4+
import com.expediagroup.graphql.boot.server.annotation.Query
45
import com.expediagroup.graphql.sample.model.Widget
56
import org.springframework.stereotype.Component
67

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/subscriptions/SimpleSubscription.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.expediagroup.graphql.sample.subscriptions
22

33
import com.expediagroup.graphql.annotations.GraphQLDescription
4+
import com.expediagroup.graphql.boot.server.annotation.Subscription
45
import org.springframework.stereotype.Component
56
import reactor.core.publisher.Flux
67
import reactor.core.publisher.Mono

examples/spring/src/main/kotlin/com/expediagroup/graphql/sample/subscriptions/Subscription.kt

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)