diff --git a/build.gradle.kts b/build.gradle.kts index 8d8978551..1c5affa80 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,6 +15,7 @@ */ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import java.net.URI buildscript { repositories { @@ -58,6 +59,12 @@ allprojects { extra["kotlin.version"] = Versions.KOTLIN_VERSION val springBootVersion = extra["sb.version"] as String + configurations.all { + resolutionStrategy { + force("org.springframework.graphql:spring-graphql:1.2.6") + } + } + dependencyRecommendations { mavenBom(mapOf("module" to "org.jetbrains.kotlin:kotlin-bom:${Versions.KOTLIN_VERSION}")) diff --git a/graphql-dgs-example-java-webflux/dependencies.lock b/graphql-dgs-example-java-webflux/dependencies.lock index 9aee77e08..aeaf779e5 100644 --- a/graphql-dgs-example-java-webflux/dependencies.lock +++ b/graphql-dgs-example-java-webflux/dependencies.lock @@ -2506,7 +2506,6 @@ "org.springframework.boot:spring-boot-starter": { "locked": "3.2.3", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", "com.netflix.graphql.dgs:graphql-dgs-spring-webflux-autoconfigure", "org.springframework.boot:spring-boot-dependencies", @@ -2650,7 +2649,6 @@ "org.springframework:spring-webflux": { "locked": "6.1.4", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-webflux-autoconfigure", "org.springframework.boot:spring-boot-dependencies", "org.springframework.boot:spring-boot-starter-webflux" @@ -3914,7 +3912,6 @@ "org.springframework.boot:spring-boot-starter": { "locked": "3.2.3", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", "com.netflix.graphql.dgs:graphql-dgs-spring-webflux-autoconfigure", "org.springframework.boot:spring-boot-dependencies", @@ -4027,7 +4024,6 @@ "org.springframework:spring-webflux": { "locked": "6.1.4", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-webflux-autoconfigure", "org.springframework.boot:spring-boot-dependencies", "org.springframework.boot:spring-boot-starter-webflux" @@ -6040,7 +6036,6 @@ "org.springframework.boot:spring-boot-starter": { "locked": "3.2.3", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", "com.netflix.graphql.dgs:graphql-dgs-spring-webflux-autoconfigure", "org.springframework.boot:spring-boot-dependencies", @@ -6184,7 +6179,6 @@ "org.springframework:spring-webflux": { "locked": "6.1.4", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-webflux-autoconfigure", "org.springframework.boot:spring-boot-dependencies", "org.springframework.boot:spring-boot-starter-webflux" diff --git a/graphql-dgs-example-java/src/test/java/RequestHeaderDataFetcherTest.java b/graphql-dgs-example-java/src/test/java/RequestHeaderDataFetcherTest.java index 87b13a809..eac9ee193 100644 --- a/graphql-dgs-example-java/src/test/java/RequestHeaderDataFetcherTest.java +++ b/graphql-dgs-example-java/src/test/java/RequestHeaderDataFetcherTest.java @@ -44,7 +44,7 @@ void withHeaders() { MockHttpServletRequest servletRequest = new MockHttpServletRequest(); servletRequest.addHeader("demo-header", "demo-header-value"); - String message = queryExecutor.executeAndExtractJsonPath("{headers}", "data.headers", new ServletWebRequest(servletRequest)); + String message = queryExecutor.executeAndExtractJsonPath("{demoHeader}", "data.demoHeader", new ServletWebRequest(servletRequest)); assertThat(message).isEqualTo("demo-header-value"); } @@ -53,7 +53,7 @@ void withHeadersAndNoRequest() { HttpHeaders headers = new HttpHeaders(); headers.add("demo-header", "demo-header-value"); - String message = queryExecutor.executeAndExtractJsonPath("{headers}", "data.headers", headers); + String message = queryExecutor.executeAndExtractJsonPath("{demoHeader}", "data.demoHeader", headers); assertThat(message).isEqualTo("demo-header-value"); } } \ No newline at end of file diff --git a/graphql-dgs-example-shared/src/main/java/com/netflix/graphql/dgs/example/shared/datafetcher/HelloDataFetcher.java b/graphql-dgs-example-shared/src/main/java/com/netflix/graphql/dgs/example/shared/datafetcher/HelloDataFetcher.java index 1945291e9..40668b640 100644 --- a/graphql-dgs-example-shared/src/main/java/com/netflix/graphql/dgs/example/shared/datafetcher/HelloDataFetcher.java +++ b/graphql-dgs-example-shared/src/main/java/com/netflix/graphql/dgs/example/shared/datafetcher/HelloDataFetcher.java @@ -25,8 +25,6 @@ import graphql.relay.SimpleListConnection; import graphql.schema.DataFetchingEnvironment; import org.dataloader.DataLoader; -import org.springframework.http.HttpHeaders; -import org.springframework.web.bind.annotation.RequestHeader; import java.util.ArrayList; import java.util.Collections; diff --git a/graphql-dgs-example-shared/src/main/java/com/netflix/graphql/dgs/example/shared/datafetcher/RequestHeadersDataFetcher.java b/graphql-dgs-example-shared/src/main/java/com/netflix/graphql/dgs/example/shared/datafetcher/RequestHeadersDataFetcher.java index cc49c9b22..7e07a1ca1 100644 --- a/graphql-dgs-example-shared/src/main/java/com/netflix/graphql/dgs/example/shared/datafetcher/RequestHeadersDataFetcher.java +++ b/graphql-dgs-example-shared/src/main/java/com/netflix/graphql/dgs/example/shared/datafetcher/RequestHeadersDataFetcher.java @@ -28,7 +28,14 @@ @DgsComponent public class RequestHeadersDataFetcher { + @DgsData(parentType = "Query", field = "headers") + public String headers(DgsDataFetchingEnvironment dfe) { + HttpHeaders headers = dfe.getDgsContext().getRequestData().getHeaders(); + return headers.toString(); + } + + @DgsData(parentType = "Query", field = "demoHeader") public String headers(DgsDataFetchingEnvironment dfe, @RequestHeader("demo-header") String demoHeader) { return demoHeader; } diff --git a/graphql-dgs-example-shared/src/main/resources/schema/schema.graphqls b/graphql-dgs-example-shared/src/main/resources/schema/schema.graphqls index 9adb6e1bd..78efed41e 100644 --- a/graphql-dgs-example-shared/src/main/resources/schema/schema.graphqls +++ b/graphql-dgs-example-shared/src/main/resources/schema/schema.graphqls @@ -21,10 +21,9 @@ type Query { concurrent1: Int concurrent2: Int - nested: [NestedA!]! - headers: String referer: String + demoHeader: String ### To show how to handle HttpHeaders helloWithHeaders(name: String): String @@ -33,14 +32,6 @@ type Query { withCookie: String } -type NestedA { - nested2: Nested2! -} - -type Nested2 { - message: String -} - type Message @connection { info: String } @@ -95,3 +86,5 @@ type Stock { scalar Upload scalar LocalTime +directive @connection on OBJECT + diff --git a/graphql-dgs-pagination/src/main/kotlin/com/netflix/graphql/dgs/pagination/DgsPaginationEnvironmentPostProcessor.kt b/graphql-dgs-pagination/src/main/kotlin/com/netflix/graphql/dgs/pagination/DgsPaginationEnvironmentPostProcessor.kt new file mode 100644 index 000000000..121408190 --- /dev/null +++ b/graphql-dgs-pagination/src/main/kotlin/com/netflix/graphql/dgs/pagination/DgsPaginationEnvironmentPostProcessor.kt @@ -0,0 +1,35 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.pagination + +import org.springframework.boot.SpringApplication +import org.springframework.boot.env.EnvironmentPostProcessor +import org.springframework.core.env.ConfigurableEnvironment +import org.springframework.core.env.MapPropertySource + +class DgsPaginationEnvironmentPostProcessor : EnvironmentPostProcessor { + override fun postProcessEnvironment(environment: ConfigurableEnvironment, application: SpringApplication) { + val properties = mutableMapOf() + properties["dgs.springgraphql.pagination.enabled"] = false + environment.propertySources.addLast( + MapPropertySource( + "dgs-pagination-defaults", + properties + ) + ) + } +} diff --git a/graphql-dgs-pagination/src/main/resources/META-INF/spring.factories b/graphql-dgs-pagination/src/main/resources/META-INF/spring.factories new file mode 100644 index 000000000..2dc29758d --- /dev/null +++ b/graphql-dgs-pagination/src/main/resources/META-INF/spring.factories @@ -0,0 +1 @@ +org.springframework.boot.env.EnvironmentPostProcessor=com.netflix.graphql.dgs.pagination.DgsPaginationEnvironmentPostProcessor \ No newline at end of file diff --git a/graphql-dgs-reactive/build.gradle.kts b/graphql-dgs-reactive/build.gradle.kts index 7db3d7f72..0123b5980 100644 --- a/graphql-dgs-reactive/build.gradle.kts +++ b/graphql-dgs-reactive/build.gradle.kts @@ -16,8 +16,9 @@ dependencies { api(project(":graphql-dgs")) - implementation("org.springframework.boot:spring-boot-starter") - implementation("org.springframework:spring-webflux") + compileOnly("org.springframework.boot:spring-boot-starter") + compileOnly("org.springframework:spring-webflux") + implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core") implementation("io.projectreactor.kotlin:reactor-kotlin-extensions") diff --git a/graphql-dgs-reactive/dependencies.lock b/graphql-dgs-reactive/dependencies.lock index 12548a176..d365d79bf 100644 --- a/graphql-dgs-reactive/dependencies.lock +++ b/graphql-dgs-reactive/dependencies.lock @@ -1146,8 +1146,7 @@ "io.projectreactor.kotlin:reactor-kotlin-extensions", "io.projectreactor:reactor-test", "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", - "org.springframework.boot:spring-boot-dependencies", - "org.springframework:spring-webflux" + "org.springframework.boot:spring-boot-dependencies" ] }, "io.projectreactor:reactor-test": { @@ -1650,8 +1649,7 @@ "org.springframework.boot:spring-boot-dependencies", "org.springframework:spring-aop", "org.springframework:spring-context", - "org.springframework:spring-web", - "org.springframework:spring-webflux" + "org.springframework:spring-web" ] }, "org.springframework:spring-context": { @@ -1674,8 +1672,7 @@ "org.springframework:spring-context", "org.springframework:spring-expression", "org.springframework:spring-test", - "org.springframework:spring-web", - "org.springframework:spring-webflux" + "org.springframework:spring-web" ] }, "org.springframework:spring-expression": { @@ -1705,13 +1702,6 @@ "com.netflix.graphql.dgs:graphql-dgs", "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", - "org.springframework.boot:spring-boot-dependencies", - "org.springframework:spring-webflux" - ] - }, - "org.springframework:spring-webflux": { - "locked": "6.1.4", - "transitive": [ "org.springframework.boot:spring-boot-dependencies" ] }, @@ -2202,20 +2192,6 @@ } }, "runtimeClasspath": { - "ch.qos.logback:logback-classic": { - "locked": "1.4.14", - "transitive": [ - "org.springframework.boot:spring-boot-dependencies", - "org.springframework.boot:spring-boot-starter-logging" - ] - }, - "ch.qos.logback:logback-core": { - "locked": "1.4.14", - "transitive": [ - "ch.qos.logback:logback-classic", - "org.springframework.boot:spring-boot-dependencies" - ] - }, "com.apollographql.federation:federation-graphql-java-support": { "locked": "4.4.0", "transitive": [ @@ -2377,15 +2353,7 @@ "com.netflix.graphql.dgs:graphql-dgs-platform", "io.projectreactor.kotlin:reactor-kotlin-extensions", "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", - "org.springframework.boot:spring-boot-dependencies", - "org.springframework:spring-webflux" - ] - }, - "jakarta.annotation:jakarta.annotation-api": { - "locked": "2.1.1", - "transitive": [ - "org.springframework.boot:spring-boot-dependencies", - "org.springframework.boot:spring-boot-starter" + "org.springframework.boot:spring-boot-dependencies" ] }, "net.datafaker:datafaker": { @@ -2407,22 +2375,6 @@ "org.springframework.boot:spring-boot-dependencies" ] }, - "org.apache.logging.log4j:log4j-api": { - "locked": "2.23.1", - "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-platform", - "org.apache.logging.log4j:log4j-to-slf4j", - "org.springframework.boot:spring-boot-dependencies" - ] - }, - "org.apache.logging.log4j:log4j-to-slf4j": { - "locked": "2.23.1", - "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-platform", - "org.springframework.boot:spring-boot-dependencies", - "org.springframework.boot:spring-boot-starter-logging" - ] - }, "org.jetbrains.kotlin:kotlin-bom": { "locked": "1.9.23" }, @@ -2542,58 +2494,20 @@ "org.springframework.boot:spring-boot-dependencies" ] }, - "org.slf4j:jul-to-slf4j": { - "locked": "2.0.12", - "transitive": [ - "org.springframework.boot:spring-boot-dependencies", - "org.springframework.boot:spring-boot-starter-logging" - ] - }, "org.slf4j:slf4j-api": { "locked": "2.0.12", "transitive": [ - "ch.qos.logback:logback-classic", "com.apollographql.federation:federation-graphql-java-support", "com.graphql-java:graphql-java", "com.graphql-java:java-dataloader", "com.jayway.jsonpath:json-path", "com.netflix.graphql.dgs:graphql-dgs-mocking", - "org.apache.logging.log4j:log4j-to-slf4j", - "org.slf4j:jul-to-slf4j", "org.springframework.boot:spring-boot-dependencies" ] }, - "org.springframework.boot:spring-boot": { - "locked": "3.2.3", - "transitive": [ - "org.springframework.boot:spring-boot-autoconfigure", - "org.springframework.boot:spring-boot-dependencies", - "org.springframework.boot:spring-boot-starter" - ] - }, - "org.springframework.boot:spring-boot-autoconfigure": { - "locked": "3.2.3", - "transitive": [ - "org.springframework.boot:spring-boot-dependencies", - "org.springframework.boot:spring-boot-starter" - ] - }, "org.springframework.boot:spring-boot-dependencies": { "locked": "3.2.3" }, - "org.springframework.boot:spring-boot-starter": { - "locked": "3.2.3", - "transitive": [ - "org.springframework.boot:spring-boot-dependencies" - ] - }, - "org.springframework.boot:spring-boot-starter-logging": { - "locked": "3.2.3", - "transitive": [ - "org.springframework.boot:spring-boot-dependencies", - "org.springframework.boot:spring-boot-starter" - ] - }, "org.springframework.cloud:spring-cloud-dependencies": { "locked": "2023.0.1" }, @@ -2610,30 +2524,25 @@ "org.springframework.boot:spring-boot-dependencies", "org.springframework:spring-aop", "org.springframework:spring-context", - "org.springframework:spring-web", - "org.springframework:spring-webflux" + "org.springframework:spring-web" ] }, "org.springframework:spring-context": { "locked": "6.1.4", "transitive": [ "com.netflix.graphql.dgs:graphql-dgs", - "org.springframework.boot:spring-boot", "org.springframework.boot:spring-boot-dependencies" ] }, "org.springframework:spring-core": { "locked": "6.1.4", "transitive": [ - "org.springframework.boot:spring-boot", "org.springframework.boot:spring-boot-dependencies", - "org.springframework.boot:spring-boot-starter", "org.springframework:spring-aop", "org.springframework:spring-beans", "org.springframework:spring-context", "org.springframework:spring-expression", - "org.springframework:spring-web", - "org.springframework:spring-webflux" + "org.springframework:spring-web" ] }, "org.springframework:spring-expression": { @@ -2654,13 +2563,6 @@ "locked": "6.1.4", "transitive": [ "com.netflix.graphql.dgs:graphql-dgs", - "org.springframework.boot:spring-boot-dependencies", - "org.springframework:spring-webflux" - ] - }, - "org.springframework:spring-webflux": { - "locked": "6.1.4", - "transitive": [ "org.springframework.boot:spring-boot-dependencies" ] }, @@ -2668,8 +2570,7 @@ "locked": "2.2", "transitive": [ "net.datafaker:datafaker", - "org.springframework.boot:spring-boot-dependencies", - "org.springframework.boot:spring-boot-starter" + "org.springframework.boot:spring-boot-dependencies" ] } }, @@ -2833,8 +2734,7 @@ "locked": "1.12.3", "transitive": [ "org.springframework.boot:spring-boot-dependencies", - "org.springframework:spring-context", - "org.springframework:spring-web" + "org.springframework:spring-context" ] }, "io.mockk:mockk": { @@ -2907,8 +2807,7 @@ "com.netflix.graphql.dgs:graphql-dgs-platform", "io.projectreactor.kotlin:reactor-kotlin-extensions", "io.projectreactor:reactor-test", - "org.springframework.boot:spring-boot-dependencies", - "org.springframework:spring-webflux" + "org.springframework.boot:spring-boot-dependencies" ] }, "io.projectreactor:reactor-test": { @@ -3285,9 +3184,7 @@ "transitive": [ "org.springframework.boot:spring-boot-dependencies", "org.springframework:spring-aop", - "org.springframework:spring-context", - "org.springframework:spring-web", - "org.springframework:spring-webflux" + "org.springframework:spring-context" ] }, "org.springframework:spring-context": { @@ -3308,9 +3205,7 @@ "org.springframework:spring-beans", "org.springframework:spring-context", "org.springframework:spring-expression", - "org.springframework:spring-test", - "org.springframework:spring-web", - "org.springframework:spring-webflux" + "org.springframework:spring-test" ] }, "org.springframework:spring-expression": { @@ -3334,19 +3229,6 @@ "org.springframework.boot:spring-boot-starter-test" ] }, - "org.springframework:spring-web": { - "locked": "6.1.4", - "transitive": [ - "org.springframework.boot:spring-boot-dependencies", - "org.springframework:spring-webflux" - ] - }, - "org.springframework:spring-webflux": { - "locked": "6.1.4", - "transitive": [ - "org.springframework.boot:spring-boot-dependencies" - ] - }, "org.xmlunit:xmlunit-core": { "locked": "2.9.1", "transitive": [ @@ -3625,8 +3507,7 @@ "io.projectreactor.kotlin:reactor-kotlin-extensions", "io.projectreactor:reactor-test", "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", - "org.springframework.boot:spring-boot-dependencies", - "org.springframework:spring-webflux" + "org.springframework.boot:spring-boot-dependencies" ] }, "io.projectreactor:reactor-test": { @@ -4088,8 +3969,7 @@ "org.springframework.boot:spring-boot-dependencies", "org.springframework:spring-aop", "org.springframework:spring-context", - "org.springframework:spring-web", - "org.springframework:spring-webflux" + "org.springframework:spring-web" ] }, "org.springframework:spring-context": { @@ -4112,8 +3992,7 @@ "org.springframework:spring-context", "org.springframework:spring-expression", "org.springframework:spring-test", - "org.springframework:spring-web", - "org.springframework:spring-webflux" + "org.springframework:spring-web" ] }, "org.springframework:spring-expression": { @@ -4143,13 +4022,6 @@ "com.netflix.graphql.dgs:graphql-dgs", "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", - "org.springframework.boot:spring-boot-dependencies", - "org.springframework:spring-webflux" - ] - }, - "org.springframework:spring-webflux": { - "locked": "6.1.4", - "transitive": [ "org.springframework.boot:spring-boot-dependencies" ] }, diff --git a/graphql-dgs-reactive/src/main/kotlin/com/netflix/graphql/dgs/reactive/internal/DefaultDgsReactiveQueryExecutor.kt b/graphql-dgs-reactive/src/main/kotlin/com/netflix/graphql/dgs/reactive/internal/DefaultDgsReactiveQueryExecutor.kt index b3cad10a4..918c67eb2 100644 --- a/graphql-dgs-reactive/src/main/kotlin/com/netflix/graphql/dgs/reactive/internal/DefaultDgsReactiveQueryExecutor.kt +++ b/graphql-dgs-reactive/src/main/kotlin/com/netflix/graphql/dgs/reactive/internal/DefaultDgsReactiveQueryExecutor.kt @@ -71,7 +71,7 @@ class DefaultDgsReactiveQueryExecutor( return Mono .fromCallable { if (reloadIndicator.reloadSchema()) { - schema.updateAndGet { schemaProvider.schema() } + schema.updateAndGet { schemaProvider.schema().graphQLSchema } } else { schema.get() } diff --git a/graphql-dgs-reactive/src/test/kotlin/com/netflix/graphql/dgs/reactive/DefaultDgsReactiveQueryExecutorTest.kt b/graphql-dgs-reactive/src/test/kotlin/com/netflix/graphql/dgs/reactive/DefaultDgsReactiveQueryExecutorTest.kt index 50a3b5b25..da0e5420e 100644 --- a/graphql-dgs-reactive/src/test/kotlin/com/netflix/graphql/dgs/reactive/DefaultDgsReactiveQueryExecutorTest.kt +++ b/graphql-dgs-reactive/src/test/kotlin/com/netflix/graphql/dgs/reactive/DefaultDgsReactiveQueryExecutorTest.kt @@ -132,7 +132,7 @@ internal class DefaultDgsReactiveQueryExecutorTest { scalar DateTime """.trimIndent() - ) + ).graphQLSchema dgsQueryExecutor = DefaultDgsReactiveQueryExecutor( defaultSchema = schema, diff --git a/graphql-dgs-reactive/src/test/kotlin/com/netflix/graphql/dgs/reactive/ReactiveReturnTypesTest.kt b/graphql-dgs-reactive/src/test/kotlin/com/netflix/graphql/dgs/reactive/ReactiveReturnTypesTest.kt index 269e5c043..7b19c60f7 100644 --- a/graphql-dgs-reactive/src/test/kotlin/com/netflix/graphql/dgs/reactive/ReactiveReturnTypesTest.kt +++ b/graphql-dgs-reactive/src/test/kotlin/com/netflix/graphql/dgs/reactive/ReactiveReturnTypesTest.kt @@ -187,7 +187,7 @@ internal class ReactiveReturnTypesTest { scalar DateTime """.trimIndent() - ) + ).graphQLSchema dgsQueryExecutor = DefaultDgsReactiveQueryExecutor( defaultSchema = schema, diff --git a/graphql-dgs-spring-boot-oss-autoconfigure/src/main/kotlin/com/netflix/graphql/dgs/autoconfig/DgsAutoConfiguration.kt b/graphql-dgs-spring-boot-oss-autoconfigure/src/main/kotlin/com/netflix/graphql/dgs/autoconfig/DgsAutoConfiguration.kt index 7649df834..f4b79750c 100644 --- a/graphql-dgs-spring-boot-oss-autoconfigure/src/main/kotlin/com/netflix/graphql/dgs/autoconfig/DgsAutoConfiguration.kt +++ b/graphql-dgs-spring-boot-oss-autoconfigure/src/main/kotlin/com/netflix/graphql/dgs/autoconfig/DgsAutoConfiguration.kt @@ -58,6 +58,7 @@ import org.springframework.boot.autoconfigure.AutoConfiguration import org.springframework.boot.autoconfigure.ImportAutoConfiguration import org.springframework.boot.autoconfigure.condition.ConditionalOnClass import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration import org.springframework.boot.context.properties.EnableConfigurationProperties @@ -104,6 +105,7 @@ open class DgsAutoConfiguration( } @Bean + @ConditionalOnMissingBean open fun dgsQueryExecutor( applicationContext: ApplicationContext, schema: GraphQLSchema, @@ -272,7 +274,7 @@ open class DgsAutoConfiguration( @Bean @ConditionalOnMissingBean open fun schema(dgsSchemaProvider: DgsSchemaProvider, fieldVisibility: GraphqlFieldVisibility): GraphQLSchema { - return dgsSchemaProvider.schema(null, fieldVisibility) + return dgsSchemaProvider.schema(null, fieldVisibility).graphQLSchema } @Bean @@ -317,6 +319,7 @@ open class DgsAutoConfiguration( } @Bean + @ConditionalOnMissingClass("com.netflix.graphql.dgs.springgraphql.autoconfig.DgsSpringGraphQLAutoConfiguration") open fun uploadScalar(): UploadScalar { return UploadScalar() } diff --git a/graphql-dgs-spring-graphql-example-java-webflux/.gitignore b/graphql-dgs-spring-graphql-example-java-webflux/.gitignore new file mode 100644 index 000000000..b63da4551 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/.gitignore @@ -0,0 +1,42 @@ +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-example-java-webflux/README.md b/graphql-dgs-spring-graphql-example-java-webflux/README.md new file mode 100644 index 000000000..006b08245 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/README.md @@ -0,0 +1,8 @@ +This example app demonstrates some DGS framework features. +It also includes a very simple React UI that uses Apollo Client that connects to both the /graphql and /subscriptions endpoints. +Start the app by running the `ExampleApp` class (e.g. from an IDE). + +* Graphiql will be available on: http://localhost:8080/graphiql +* The example UI will be available on: http://localhost:8080/index.html + +The example project includes a number of tests as well. \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-example-java-webflux/build.gradle.kts b/graphql-dgs-spring-graphql-example-java-webflux/build.gradle.kts new file mode 100644 index 000000000..67474d0e4 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/build.gradle.kts @@ -0,0 +1,32 @@ +/* + * Copyright 2021 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +dependencies { + + implementation(project(":graphql-dgs-example-shared")) + implementation(project(":graphql-dgs-pagination")) + implementation(project(":graphql-dgs-reactive")) + implementation("org.springframework.boot:spring-boot-starter-webflux") + implementation(project(":graphql-dgs-spring-graphql-starter")) + implementation("org.springframework.boot:spring-boot-starter-actuator") + implementation(project(":graphql-dgs-spring-boot-micrometer")) + implementation("com.github.ben-manes.caffeine:caffeine") + implementation("name.nkonev.multipart-spring-graphql:multipart-spring-graphql:1.1.4") + + testImplementation("org.springframework.boot:spring-boot-starter-webflux") + testImplementation(project(":graphql-dgs-client")) + testImplementation("io.projectreactor:reactor-test") +} diff --git a/graphql-dgs-spring-graphql-example-java-webflux/dependencies.lock b/graphql-dgs-spring-graphql-example-java-webflux/dependencies.lock new file mode 100644 index 000000000..584ed9c79 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/dependencies.lock @@ -0,0 +1,6783 @@ +{ + "annotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-autoconfigure-processor": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-configuration-processor": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "compileClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-example-shared": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-pagination": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-core": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-jakarta9": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.netty:netty-buffer": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http2": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-socks": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler-proxy", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-resolver-dns", + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler-proxy": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-classes-macos", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-classes-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-native-macos", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-native-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-classes-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-unix-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-core": { + "locked": "1.1.16", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-http": { + "locked": "1.1.16", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-reactor-netty" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql": { + "locked": "1.1.4" + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.graphql-java:java-dataloader", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-actuator-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-reactor-netty": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-webflux": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web", + "org.springframework:spring-webflux" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-web", + "org.springframework:spring-webflux" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-webflux", + "org.springframework:spring-webflux" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "jmh": { + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.0", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm" + ] + } + }, + "jmhAnnotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "jmhCompileClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-example-shared": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-pagination": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-core": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-jakarta9": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.netty:netty-buffer": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http2": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-socks": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler-proxy", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-resolver-dns", + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler-proxy": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-classes-macos", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-classes-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-native-macos", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-native-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-classes-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-unix-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-core": { + "locked": "1.1.16", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-http": { + "locked": "1.1.16", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-reactor-netty" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql": { + "locked": "1.1.4" + }, + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.0", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.graphql-java:java-dataloader", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-actuator-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-reactor-netty": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-webflux": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web", + "org.springframework:spring-webflux" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-web", + "org.springframework:spring-webflux" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-webflux", + "org.springframework:spring-webflux" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "jmhRuntimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.apollographql.federation:federation-graphql-java-support": { + "locked": "4.4.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.github.mifmif:generex": { + "locked": "1.0.2", + "transitive": [ + "net.datafaker:datafaker" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.google.protobuf:protobuf-java": { + "locked": "3.25.2", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:graphql-java-extended-scalars": { + "locked": "21.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-example-shared": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-pagination": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.spectator:spectator-api": { + "locked": "1.7.10", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "commons-codec:commons-codec": { + "locked": "1.16.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "dk.brics.automaton:automaton": { + "locked": "1.11-8", + "transitive": [ + "com.github.mifmif:generex" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.graphql:spring-graphql" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-core": { + "locked": "1.12.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-jakarta9": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "io.netty:netty-buffer": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http2": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-socks": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler-proxy", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-resolver-dns", + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler-proxy": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-classes-macos", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-classes-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-native-macos", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-native-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-classes-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-unix-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.kotlin:reactor-kotlin-extensions": { + "locked": "1.2.2", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-core": { + "locked": "1.1.16", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-http": { + "locked": "1.1.16", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-reactor-netty" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.kotlin:reactor-kotlin-extensions", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "io.projectreactor:reactor-test", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "io.projectreactor:reactor-test": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "junit:junit": { + "locked": "4.13.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql": { + "locked": "1.1.4" + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.datafaker:datafaker": { + "locked": "2.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-mocking" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-lang3": { + "locked": "3.13.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.hamcrest:hamcrest-core", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest-core": { + "locked": "2.2", + "transitive": [ + "junit:junit", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.hdrhistogram:HdrHistogram": { + "locked": "2.1.12", + "transitive": [ + "io.micrometer:micrometer-core" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-engine": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-engine": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.latencyutils:LatencyUtils": { + "locked": "2.0.3", + "transitive": [ + "io.micrometer:micrometer-core" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart", + "org.openjdk.jmh:jmh-generator-asm" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java", + "com.graphql-java:java-dataloader", + "com.jayway.jsonpath:json-path", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.spectator:spectator-api", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-actuator-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-reactor-netty": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-webflux": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-context-support", + "org.springframework:spring-web", + "org.springframework:spring-webflux" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-context-support", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-context-support": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-context-support", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-webflux", + "org.springframework:spring-webflux", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework:spring-websocket": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "net.datafaker:datafaker", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "kotlinBuildToolsApiClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-build-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-runner" + ] + }, + "org.jetbrains.kotlin:kotlin-build-tools-api": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-build-tools-impl" + ] + }, + "org.jetbrains.kotlin:kotlin-build-tools-impl": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-build-tools-impl", + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-compiler-runner": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-build-tools-impl" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-client": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-build-tools-impl", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathJmh": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathMain": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathTest": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinKlibCommonizerClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinNativeCompilerPluginClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "nebulaRecommenderBom": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "runtimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.apollographql.federation:federation-graphql-java-support": { + "locked": "4.4.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.github.mifmif:generex": { + "locked": "1.0.2", + "transitive": [ + "net.datafaker:datafaker" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.google.protobuf:protobuf-java": { + "locked": "3.25.2", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:graphql-java-extended-scalars": { + "locked": "21.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-example-shared": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-pagination": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.spectator:spectator-api": { + "locked": "1.7.10", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer" + ] + }, + "commons-codec:commons-codec": { + "locked": "1.16.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "dk.brics.automaton:automaton": { + "locked": "1.11-8", + "transitive": [ + "com.github.mifmif:generex" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.graphql:spring-graphql" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-core": { + "locked": "1.12.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-jakarta9": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.netty:netty-buffer": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http2": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-socks": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler-proxy", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-resolver-dns", + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler-proxy": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-classes-macos", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-classes-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-native-macos", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-native-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-classes-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-unix-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.kotlin:reactor-kotlin-extensions": { + "locked": "1.2.2", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-core": { + "locked": "1.1.16", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-http": { + "locked": "1.1.16", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-reactor-netty" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.kotlin:reactor-kotlin-extensions", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql": { + "locked": "1.1.4" + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.datafaker:datafaker": { + "locked": "2.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-mocking" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.commons:commons-lang3": { + "locked": "3.13.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.hdrhistogram:HdrHistogram": { + "locked": "2.1.12", + "transitive": [ + "io.micrometer:micrometer-core" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.latencyutils:LatencyUtils": { + "locked": "2.0.3", + "transitive": [ + "io.micrometer:micrometer-core" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java", + "com.graphql-java:java-dataloader", + "com.jayway.jsonpath:json-path", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.spectator:spectator-api", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-actuator-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-reactor-netty": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-webflux": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-context-support", + "org.springframework:spring-web", + "org.springframework:spring-webflux" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-context-support", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-context-support": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-context-support", + "org.springframework:spring-expression", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-webflux", + "org.springframework:spring-webflux", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework:spring-websocket": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "net.datafaker:datafaker", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "testAnnotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "testCompileClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-example-shared": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-pagination": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-core": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-jakarta9": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "io.netty:netty-buffer": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http2": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-socks": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler-proxy", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-resolver-dns", + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler-proxy": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-classes-macos", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-classes-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-native-macos", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-native-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-classes-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-unix-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-core": { + "locked": "1.1.16", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-http": { + "locked": "1.1.16", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-reactor-netty" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "io.projectreactor:reactor-test", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "io.projectreactor:reactor-test": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql": { + "locked": "1.1.4" + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apiguardian:apiguardian-api": { + "locked": "1.1.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.graphql-java:java-dataloader", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-actuator-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-reactor-netty": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-webflux": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web", + "org.springframework:spring-webflux" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-webflux" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-webflux", + "org.springframework:spring-webflux" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "testRuntimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.apollographql.federation:federation-graphql-java-support": { + "locked": "4.4.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.github.mifmif:generex": { + "locked": "1.0.2", + "transitive": [ + "net.datafaker:datafaker" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.google.protobuf:protobuf-java": { + "locked": "3.25.2", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:graphql-java-extended-scalars": { + "locked": "21.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-example-shared": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-pagination": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.spectator:spectator-api": { + "locked": "1.7.10", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "commons-codec:commons-codec": { + "locked": "1.16.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "dk.brics.automaton:automaton": { + "locked": "1.11-8", + "transitive": [ + "com.github.mifmif:generex" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.graphql:spring-graphql" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-core": { + "locked": "1.12.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-jakarta9": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "io.netty:netty-buffer": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http2": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-socks": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler-proxy", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-resolver-dns", + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler-proxy": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-classes-macos", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-classes-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-native-macos", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-native-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-classes-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-unix-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.kotlin:reactor-kotlin-extensions": { + "locked": "1.2.2", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-core": { + "locked": "1.1.16", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-http": { + "locked": "1.1.16", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-reactor-netty" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.kotlin:reactor-kotlin-extensions", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "io.projectreactor:reactor-test", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "io.projectreactor:reactor-test": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "junit:junit": { + "locked": "4.13.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql": { + "locked": "1.1.4" + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.datafaker:datafaker": { + "locked": "2.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-mocking" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.apache.commons:commons-lang3": { + "locked": "3.13.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.hamcrest:hamcrest-core", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest-core": { + "locked": "2.2", + "transitive": [ + "junit:junit", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.hdrhistogram:HdrHistogram": { + "locked": "2.1.12", + "transitive": [ + "io.micrometer:micrometer-core" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-engine": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-engine": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.latencyutils:LatencyUtils": { + "locked": "2.0.3", + "transitive": [ + "io.micrometer:micrometer-core" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java", + "com.graphql-java:java-dataloader", + "com.jayway.jsonpath:json-path", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.spectator:spectator-api", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-actuator-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-reactor-netty": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-webflux": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-context-support", + "org.springframework:spring-web", + "org.springframework:spring-webflux" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-context-support", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-context-support": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-context-support", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-webflux", + "org.springframework:spring-webflux", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework:spring-websocket": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "net.datafaker:datafaker", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + } +} \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/ReactiveSpringGraphQLExampleApp.java b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/ReactiveSpringGraphQLExampleApp.java new file mode 100644 index 000000000..e1379c625 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/ReactiveSpringGraphQLExampleApp.java @@ -0,0 +1,52 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.reactive; + +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; +import graphql.execution.preparsed.PreparsedDocumentEntry; +import graphql.execution.preparsed.PreparsedDocumentProvider; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.TimeUnit; +import java.util.function.Function; +@SpringBootApplication(scanBasePackages = {"com.netflix.graphql.dgs.example.shared", "com.netflix.graphql.dgs.example"}) +public class ReactiveSpringGraphQLExampleApp { + public static void main(String[] args) { + SpringApplication.run(ReactiveSpringGraphQLExampleApp.class, args); + } + + @Configuration + static class PreparsedDocumentProviderConfig { + + private final Cache cache = Caffeine.newBuilder().maximumSize(250) + .expireAfterAccess(5,TimeUnit.MINUTES).recordStats().build(); + + + @Bean + public PreparsedDocumentProvider preparsedDocumentProvider() { + return (executionInput, parseAndValidateFunction) -> { + Function mapCompute = key -> parseAndValidateFunction.apply(executionInput); + return cache.get(executionInput.getQuery(), mapCompute); + }; + } + } +} + diff --git a/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/context/MyContextBuilder.java b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/context/MyContextBuilder.java new file mode 100644 index 000000000..0d15ae274 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/context/MyContextBuilder.java @@ -0,0 +1,37 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.reactive.context; + +import com.netflix.graphql.dgs.example.shared.context.MyContext; +import com.netflix.graphql.dgs.reactive.DgsReactiveCustomContextBuilderWithRequest; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.springframework.http.HttpHeaders; +import org.springframework.stereotype.Component; +import org.springframework.web.reactive.function.server.ServerRequest; +import reactor.core.publisher.Mono; + +import java.util.Map; + +@Component +public class MyContextBuilder implements DgsReactiveCustomContextBuilderWithRequest { + @NotNull + @Override + public Mono build(@Nullable Map extensions, @Nullable HttpHeaders headers, @Nullable ServerRequest serverRequest) { + return Mono.just(new MyContext()); + } +} diff --git a/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/FileUploadMutation.java b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/FileUploadMutation.java new file mode 100644 index 000000000..7303f919e --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/FileUploadMutation.java @@ -0,0 +1,85 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.reactive.datafetchers; + +import com.netflix.graphql.dgs.DgsComponent; +import com.netflix.graphql.dgs.DgsData; +import com.netflix.graphql.dgs.InputArgument; +import graphql.schema.DataFetchingEnvironment; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.codec.multipart.FilePart; +import org.springframework.web.multipart.MultipartFile; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import java.io.IOException; +import java.util.List; + +@DgsComponent +public class FileUploadMutation { + private static final Logger log = LoggerFactory.getLogger(FileUploadMutation.class); + + /** + * Implementation of the _Data Fetcher_ that will handle file upload. + * + * To test file upload via the command line you will first have to create a file, + * let's say we name it {@code a.txt} and contains only {@code Hello World!}. + * After that, you can use the {@code curl} command to execute the filue upload of one file as follows: + * {@code + *
+     *  curl -a http://localhost:8080/graphql \
+     *      --header "graphql-require-preflight:true" \
+     *      -F operations='{ "query" : "mutation ($file: Upload!) { uploadFile(input: { files:[$file]} ) }", "variables": {"file": null } }' \
+     *      -F map='{ "0": ["variables.file"] }' \
+     *      -F 0=@a.txt
+     * 
+ * } + * + * @param input the GraphQL input argument of type FileUploadInput, serialized to the java pojo FileUploadInput. + * @param dfe the Data Fetching Environment + * @return boolean that will be true if all files are uploaded. + */ + @DgsData(parentType = "Mutation", field = "uploadFile") + public Mono uploadFile(@InputArgument FileUploadInput input, DataFetchingEnvironment dfe) { + List parts = input.getFiles(); + parts.forEach( filePart -> log.info(filePart.filename())); + return Mono.just(!parts.isEmpty()); + } + + static class FileUploadInput { + private String description; + private List files; + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public List getFiles() { + return files; + } + + public void setFiles(List file) { + this.files = file; + } + } +} + diff --git a/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/ReactiveDataFetchers.java b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/ReactiveDataFetchers.java new file mode 100644 index 000000000..02eb4eda8 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/ReactiveDataFetchers.java @@ -0,0 +1,35 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.reactive.datafetchers; + +import com.netflix.graphql.dgs.DgsComponent; +import com.netflix.graphql.dgs.DgsQuery; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +@DgsComponent +public class ReactiveDataFetchers { + @DgsQuery + public Mono mono() { + return Mono.just("hello mono"); + } + + @DgsQuery + public Flux flux() { + return Flux.just(1, 2, 3); + } +} diff --git a/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/SpringGraphQLDataFetchers.java b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/SpringGraphQLDataFetchers.java new file mode 100644 index 000000000..cd94f761c --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/SpringGraphQLDataFetchers.java @@ -0,0 +1,36 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.reactive.datafetchers; + + +import org.springframework.graphql.data.method.annotation.Argument; +import org.springframework.graphql.data.method.annotation.QueryMapping; +import org.springframework.stereotype.Controller; +import reactor.core.publisher.Mono; + +@Controller +public class SpringGraphQLDataFetchers { + @QueryMapping + public String greetings(@Argument String name) { + return "Greetings, " + name + "!"; + } + + @QueryMapping + public Mono greetingsMono(@Argument String name) { + return Mono.just("Greetings, " + name + "!"); + } +} diff --git a/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/UsingWebFluxReactorContext.java b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/UsingWebFluxReactorContext.java new file mode 100644 index 000000000..160e95e25 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/UsingWebFluxReactorContext.java @@ -0,0 +1,29 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.reactive.datafetchers; + +import com.netflix.graphql.dgs.DgsComponent; +import com.netflix.graphql.dgs.DgsQuery; +import reactor.core.publisher.Mono; + +@DgsComponent +public class UsingWebFluxReactorContext { + @DgsQuery + public Mono usingContext() { + return Mono.deferContextual(context -> Mono.just("Query with request ID: " + context.get("RequestId"))); + } +} diff --git a/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/WithCookie.java b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/WithCookie.java new file mode 100644 index 000000000..8e25bb2c2 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/src/main/java/com/netflix/graphql/dgs/example/reactive/datafetchers/WithCookie.java @@ -0,0 +1,42 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.reactive.datafetchers; + +import com.netflix.graphql.dgs.*; +import com.netflix.graphql.dgs.reactive.internal.DgsReactiveRequestData; +import org.springframework.http.ResponseCookie; +import org.springframework.web.bind.annotation.CookieValue; +import org.springframework.web.reactive.function.server.ServerRequest; + +@DgsComponent +public class WithCookie { + + @DgsQuery + public String withCookie(@CookieValue String mydgscookie) { + return mydgscookie; + } + + @DgsMutation + public String updateCookie(@InputArgument String value, DgsDataFetchingEnvironment dfe) { + DgsReactiveRequestData requestData = (DgsReactiveRequestData) dfe.getDgsContext().getRequestData(); + ServerRequest serverRequest = requestData.getServerRequest(); + + serverRequest.exchange().getResponse() + .addCookie(ResponseCookie.from("mydgscookie", "webfluxupdated").build()); + return value; + } +} diff --git a/graphql-dgs-spring-graphql-example-java-webflux/src/main/resources/application.yml b/graphql-dgs-spring-graphql-example-java-webflux/src/main/resources/application.yml new file mode 100644 index 000000000..d755ad5ba --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/src/main/resources/application.yml @@ -0,0 +1,18 @@ +spring: + application: + name: dgs-spring-graphql-example + + graphql: + graphiql: + enabled: true + websocket: + path: /graphql + +dgs.reload: true + +management: + endpoints: + web: + exposure: + include: + - metrics diff --git a/graphql-dgs-spring-graphql-example-java-webflux/src/main/resources/schema/schema.graphqls b/graphql-dgs-spring-graphql-example-java-webflux/src/main/resources/schema/schema.graphqls new file mode 100644 index 000000000..6e5d0770b --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/src/main/resources/schema/schema.graphqls @@ -0,0 +1,7 @@ +extend type Query { + mono: String + flux: [Int] + usingContext: String + greetings(name: String): String + greetingsMono(name: String): String +} \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-example-java-webflux/src/test/java/com/netflix/graphql/dgs/example/reactive/ReactiveDataFetchersTest.java b/graphql-dgs-spring-graphql-example-java-webflux/src/test/java/com/netflix/graphql/dgs/example/reactive/ReactiveDataFetchersTest.java new file mode 100644 index 000000000..29406e0ca --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/src/test/java/com/netflix/graphql/dgs/example/reactive/ReactiveDataFetchersTest.java @@ -0,0 +1,84 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.reactive; + +import com.netflix.graphql.dgs.reactive.DgsReactiveQueryExecutor; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.HttpCookie; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.mock.http.server.reactive.MockServerHttpRequest; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.reactive.function.server.MockServerRequest; +import org.springframework.mock.web.server.MockServerWebExchange; +import org.springframework.web.context.request.ServletWebRequest; + +import java.util.Collections; +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest +public class ReactiveDataFetchersTest { + + @Autowired + private DgsReactiveQueryExecutor queryExecutor; + + @Test + public void testMonoQuery() { + var result = queryExecutor.executeAndExtractJsonPath("{ mono }", "data.mono") + .block(); + + assertThat(result).isEqualTo("hello mono"); + } + + @Test + public void testHello() { + var result = queryExecutor.executeAndExtractJsonPath("{ hello }", "data.hello") + .block(); + + assertThat(result).isEqualTo("hello, Stranger!"); + } + + @Test + public void testGreetings() { + var result = queryExecutor.executeAndExtractJsonPath("{ greetings(name: \"DGS\") }", "data.greetings") + .block(); + + assertThat(result).isEqualTo("Greetings, DGS!"); + } + + @Test + public void testGreetingsMono() { + var result = queryExecutor.executeAndExtractJsonPath("{ greetingsMono(name: \"DGS\") }", "data.greetingsMono") + .block(); + + assertThat(result).isEqualTo("Greetings, DGS!"); + } + + @Test + void webRequest() { + MockServerRequest mockServerRequest = MockServerRequest.builder() + .exchange(MockServerWebExchange.builder(MockServerHttpRequest.get("/graphql").cookie(new HttpCookie("mydgscookie", "DGS cookies are yummy")).build()).build()) + .cookie(new HttpCookie("mydgscookie", "DGS cookies are yummy")).build(); + var result = queryExecutor.execute("{ withCookie }", Collections.emptyMap(), Collections.emptyMap(), null, "", mockServerRequest).block(); + assertThat(result.isDataPresent()).isTrue(); + Map data = result.getData(); + assertThat(data.get("withCookie")).isEqualTo("DGS cookies are yummy"); + } +} diff --git a/graphql-dgs-spring-graphql-example-java-webflux/src/test/java/com/netflix/graphql/dgs/example/reactive/SubscriptionTest.java b/graphql-dgs-spring-graphql-example-java-webflux/src/test/java/com/netflix/graphql/dgs/example/reactive/SubscriptionTest.java new file mode 100644 index 000000000..de887087c --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java-webflux/src/test/java/com/netflix/graphql/dgs/example/reactive/SubscriptionTest.java @@ -0,0 +1,67 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.reactive; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.netflix.graphql.dgs.DgsQueryExecutor; +import com.netflix.graphql.dgs.example.shared.types.Stock; +import com.netflix.graphql.dgs.reactive.DgsReactiveQueryExecutor; +import graphql.ExecutionResult; +import graphql.execution.reactive.SubscriptionPublisher; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.reactivestreams.Publisher; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import reactor.core.publisher.Mono; +import reactor.test.StepVerifier; + +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest +@Disabled +public class SubscriptionTest { + + @Autowired + DgsReactiveQueryExecutor queryExecutor; + + ObjectMapper objectMapper = new ObjectMapper(); + + + @Test + void stocks() { + var executionResult = queryExecutor.execute("subscription Stocks { stocks { name, price } }"); + + Publisher publisher = executionResult.flatMap(ExecutionResult::getData); + StepVerifier.withVirtualTime(() -> publisher, 3) + .expectSubscription() + .thenRequest(3) + + .assertNext(result -> assertThat(toStock(result).getPrice()).isEqualTo(500)) + .assertNext(result -> assertThat(toStock(result).getPrice()).isEqualTo(501)) + .assertNext(result -> assertThat(toStock(result).getPrice()).isEqualTo(502)) + .thenCancel() + .verify(); + } + + private Stock toStock(ExecutionResult result) { + Map data = result.getData(); + return objectMapper.convertValue(data.get("stocks"), Stock.class); + } +} diff --git a/graphql-dgs-spring-graphql-example-java/.gitignore b/graphql-dgs-spring-graphql-example-java/.gitignore new file mode 100644 index 000000000..b63da4551 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/.gitignore @@ -0,0 +1,42 @@ +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-example-java/README.md b/graphql-dgs-spring-graphql-example-java/README.md new file mode 100644 index 000000000..006b08245 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/README.md @@ -0,0 +1,8 @@ +This example app demonstrates some DGS framework features. +It also includes a very simple React UI that uses Apollo Client that connects to both the /graphql and /subscriptions endpoints. +Start the app by running the `ExampleApp` class (e.g. from an IDE). + +* Graphiql will be available on: http://localhost:8080/graphiql +* The example UI will be available on: http://localhost:8080/index.html + +The example project includes a number of tests as well. \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-example-java/build.gradle.kts b/graphql-dgs-spring-graphql-example-java/build.gradle.kts new file mode 100644 index 000000000..9f3770f32 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/build.gradle.kts @@ -0,0 +1,37 @@ +/* + * Copyright 2021 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +dependencies { + + implementation(project(":graphql-dgs-example-shared")) + implementation(project(":graphql-dgs-subscriptions-graphql-sse-autoconfigure")) + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-webflux") + implementation("io.projectreactor:reactor-core") + implementation(project(":graphql-dgs-spring-graphql-starter")) + implementation("org.springframework.boot:spring-boot-starter-actuator") + implementation(project(":graphql-dgs-spring-boot-micrometer")) + implementation("com.github.ben-manes.caffeine:caffeine") + implementation("name.nkonev.multipart-spring-graphql:multipart-spring-graphql:1.1.4") + + testImplementation("org.springframework.boot:spring-boot-starter-webflux") + testImplementation(project(":graphql-dgs-client")) + testImplementation("io.projectreactor:reactor-test") + testImplementation("org.springframework.graphql:spring-graphql-test:1.2.6") + testImplementation(project(":graphql-dgs-pagination")) + testImplementation(project(":graphql-dgs-extended-scalars")) + testImplementation(project(":graphql-dgs-spring-graphql-starter-test")) +} diff --git a/graphql-dgs-spring-graphql-example-java/dependencies.lock b/graphql-dgs-spring-graphql-example-java/dependencies.lock new file mode 100644 index 000000000..a81792b6e --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/dependencies.lock @@ -0,0 +1,7262 @@ +{ + "annotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-autoconfigure-processor": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-configuration-processor": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "compileClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-example-shared": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-core": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-jakarta9": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.netty:netty-buffer": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http2": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-socks": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler-proxy", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-resolver-dns", + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler-proxy": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-classes-macos", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-classes-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-native-macos", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-native-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-classes-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-unix-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-core": { + "locked": "1.1.16", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-http": { + "locked": "1.1.16", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-reactor-netty" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql": { + "locked": "1.1.4" + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-core": { + "locked": "10.1.19", + "transitive": [ + "org.apache.tomcat.embed:tomcat-embed-websocket", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-el": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-websocket": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.graphql-java:java-dataloader", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-actuator-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-reactor-netty": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-tomcat": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-web": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-webflux": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework:spring-webmvc": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "jmh": { + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.0", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm" + ] + } + }, + "jmhAnnotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "jmhCompileClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-example-shared": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-core": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-jakarta9": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.netty:netty-buffer": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http2": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-socks": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler-proxy", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-resolver-dns", + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler-proxy": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-classes-macos", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-classes-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-native-macos", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-native-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-classes-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-unix-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-core": { + "locked": "1.1.16", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-http": { + "locked": "1.1.16", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-reactor-netty" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql": { + "locked": "1.1.4" + }, + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-core": { + "locked": "10.1.19", + "transitive": [ + "org.apache.tomcat.embed:tomcat-embed-websocket", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-el": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-websocket": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.0", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.graphql-java:java-dataloader", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-actuator-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-reactor-netty": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-tomcat": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-web": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-webflux": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework:spring-webmvc": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "jmhRuntimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.apollographql.federation:federation-graphql-java-support": { + "locked": "4.4.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.github.mifmif:generex": { + "locked": "1.0.2", + "transitive": [ + "net.datafaker:datafaker" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.google.protobuf:protobuf-java": { + "locked": "3.25.2", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework.graphql:spring-graphql-test" + ] + }, + "com.graphql-java:graphql-java-extended-scalars": { + "locked": "21.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.graphql:spring-graphql-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-example-shared": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-pagination": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter-test", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter-test": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.spectator:spectator-api": { + "locked": "1.7.10", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "commons-codec:commons-codec": { + "locked": "1.16.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "dk.brics.automaton:automaton": { + "locked": "1.11-8", + "transitive": [ + "com.github.mifmif:generex" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.graphql:spring-graphql" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-core": { + "locked": "1.12.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-jakarta9": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "io.netty:netty-buffer": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http2": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-socks": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler-proxy", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-resolver-dns", + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler-proxy": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-classes-macos", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-classes-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-native-macos", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-native-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-classes-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-unix-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.kotlin:reactor-kotlin-extensions": { + "locked": "1.2.2", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-core": { + "locked": "1.1.16", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-http": { + "locked": "1.1.16", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-reactor-netty" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "io.projectreactor.kotlin:reactor-kotlin-extensions", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "io.projectreactor:reactor-test", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework.graphql:spring-graphql-test", + "org.springframework:spring-webflux" + ] + }, + "io.projectreactor:reactor-test": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "junit:junit": { + "locked": "4.13.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql": { + "locked": "1.1.4" + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.datafaker:datafaker": { + "locked": "2.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-mocking" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-lang3": { + "locked": "3.13.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-core": { + "locked": "10.1.19", + "transitive": [ + "org.apache.tomcat.embed:tomcat-embed-websocket", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-el": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-websocket": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.hamcrest:hamcrest-core", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest-core": { + "locked": "2.2", + "transitive": [ + "junit:junit", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.hdrhistogram:HdrHistogram": { + "locked": "2.1.12", + "transitive": [ + "io.micrometer:micrometer-core" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter-test", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-engine": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-engine": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.latencyutils:LatencyUtils": { + "locked": "2.0.3", + "transitive": [ + "io.micrometer:micrometer-core" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart", + "org.openjdk.jmh:jmh-generator-asm" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java", + "com.graphql-java:java-dataloader", + "com.jayway.jsonpath:json-path", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.spectator:spectator-api", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-actuator-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-reactor-netty": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-tomcat": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-web": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-webflux": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.graphql:spring-graphql-test" + ] + }, + "org.springframework.graphql:spring-graphql-test": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-context-support", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework.graphql:spring-graphql-test", + "org.springframework:spring-context-support", + "org.springframework:spring-webmvc", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-context-support": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-context-support", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.graphql:spring-graphql-test" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework:spring-webmvc": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework:spring-websocket": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "net.datafaker:datafaker", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "kotlinBuildToolsApiClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-build-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-runner" + ] + }, + "org.jetbrains.kotlin:kotlin-build-tools-api": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-build-tools-impl" + ] + }, + "org.jetbrains.kotlin:kotlin-build-tools-impl": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-build-tools-impl", + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-compiler-runner": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-build-tools-impl" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-client": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-build-tools-impl", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathJmh": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathMain": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathTest": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinKlibCommonizerClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinNativeCompilerPluginClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "nebulaRecommenderBom": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "runtimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.apollographql.federation:federation-graphql-java-support": { + "locked": "4.4.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.github.mifmif:generex": { + "locked": "1.0.2", + "transitive": [ + "net.datafaker:datafaker" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.google.protobuf:protobuf-java": { + "locked": "3.25.2", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:graphql-java-extended-scalars": { + "locked": "21.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-example-shared": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-pagination": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.spectator:spectator-api": { + "locked": "1.7.10", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer" + ] + }, + "commons-codec:commons-codec": { + "locked": "1.16.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "dk.brics.automaton:automaton": { + "locked": "1.11-8", + "transitive": [ + "com.github.mifmif:generex" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.graphql:spring-graphql" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-core": { + "locked": "1.12.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-jakarta9": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.netty:netty-buffer": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http2": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-socks": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler-proxy", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-resolver-dns", + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler-proxy": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-classes-macos", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-classes-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-native-macos", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-native-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-classes-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-unix-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.kotlin:reactor-kotlin-extensions": { + "locked": "1.2.2", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-core": { + "locked": "1.1.16", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-http": { + "locked": "1.1.16", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-reactor-netty" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "io.projectreactor.kotlin:reactor-kotlin-extensions", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql": { + "locked": "1.1.4" + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.datafaker:datafaker": { + "locked": "2.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-mocking" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.commons:commons-lang3": { + "locked": "3.13.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-core": { + "locked": "10.1.19", + "transitive": [ + "org.apache.tomcat.embed:tomcat-embed-websocket", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-el": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-websocket": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.hdrhistogram:HdrHistogram": { + "locked": "2.1.12", + "transitive": [ + "io.micrometer:micrometer-core" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.latencyutils:LatencyUtils": { + "locked": "2.0.3", + "transitive": [ + "io.micrometer:micrometer-core" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java", + "com.graphql-java:java-dataloader", + "com.jayway.jsonpath:json-path", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.spectator:spectator-api", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-actuator-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-reactor-netty": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-tomcat": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-web": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-webflux": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-context-support", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-context-support", + "org.springframework:spring-webmvc", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-context-support": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-context-support", + "org.springframework:spring-expression", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework:spring-webmvc": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework:spring-websocket": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "net.datafaker:datafaker", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "testAnnotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "testCompileClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework.graphql:spring-graphql-test" + ] + }, + "com.graphql-java:graphql-java-extended-scalars": { + "locked": "21.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.graphql:spring-graphql-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-example-shared": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-pagination": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter-test", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter-test": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-core": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-jakarta9": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "io.netty:netty-buffer": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http2": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-socks": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler-proxy", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-resolver-dns", + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler-proxy": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-classes-macos", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-classes-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-native-macos", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-native-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-classes-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-unix-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-core": { + "locked": "1.1.16", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-http": { + "locked": "1.1.16", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-reactor-netty" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "io.projectreactor:reactor-test", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework.graphql:spring-graphql-test", + "org.springframework:spring-webflux" + ] + }, + "io.projectreactor:reactor-test": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql": { + "locked": "1.1.4" + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-core": { + "locked": "10.1.19", + "transitive": [ + "org.apache.tomcat.embed:tomcat-embed-websocket", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-el": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-websocket": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apiguardian:apiguardian-api": { + "locked": "1.1.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter-test", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.graphql-java:java-dataloader", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-actuator-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-reactor-netty": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-tomcat": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-web": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-webflux": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.graphql:spring-graphql-test" + ] + }, + "org.springframework.graphql:spring-graphql-test": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework.graphql:spring-graphql-test", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.graphql:spring-graphql-test" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework:spring-webmvc": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "testRuntimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.apollographql.federation:federation-graphql-java-support": { + "locked": "4.4.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.github.mifmif:generex": { + "locked": "1.0.2", + "transitive": [ + "net.datafaker:datafaker" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.google.protobuf:protobuf-java": { + "locked": "3.25.2", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework.graphql:spring-graphql-test" + ] + }, + "com.graphql-java:graphql-java-extended-scalars": { + "locked": "21.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.graphql:spring-graphql-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-example-shared": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-pagination": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter-test", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter-test": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.spectator:spectator-api": { + "locked": "1.7.10", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "commons-codec:commons-codec": { + "locked": "1.16.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "dk.brics.automaton:automaton": { + "locked": "1.11-8", + "transitive": [ + "com.github.mifmif:generex" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.graphql:spring-graphql" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-core": { + "locked": "1.12.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-jakarta9": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-core", + "io.micrometer:micrometer-jakarta9", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "io.netty:netty-buffer": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http2", + "io.netty:netty-handler-proxy", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-http2": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-codec-socks": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler-proxy", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-buffer", + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver", + "io.netty:netty-resolver-dns", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-resolver-dns", + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-handler-proxy": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-classes-macos", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-classes-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-resolver-dns-native-macos", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-resolver-dns-native-macos": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-codec", + "io.netty:netty-codec-dns", + "io.netty:netty-codec-http", + "io.netty:netty-codec-http2", + "io.netty:netty-codec-socks", + "io.netty:netty-handler", + "io.netty:netty-handler-proxy", + "io.netty:netty-resolver-dns", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "io.netty:netty-transport-native-unix-common", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-classes-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-epoll": { + "locked": "4.1.107.Final", + "transitive": [ + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.netty:netty-transport-native-unix-common": { + "locked": "4.1.107.Final", + "transitive": [ + "io.netty:netty-handler", + "io.netty:netty-resolver-dns-classes-macos", + "io.netty:netty-transport-classes-epoll", + "io.netty:netty-transport-native-epoll", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.kotlin:reactor-kotlin-extensions": { + "locked": "1.2.2", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-core": { + "locked": "1.1.16", + "transitive": [ + "io.projectreactor.netty:reactor-netty-http", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor.netty:reactor-netty-http": { + "locked": "1.1.16", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-reactor-netty" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "io.projectreactor.kotlin:reactor-kotlin-extensions", + "io.projectreactor.netty:reactor-netty-core", + "io.projectreactor.netty:reactor-netty-http", + "io.projectreactor:reactor-test", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework.graphql:spring-graphql-test", + "org.springframework:spring-webflux" + ] + }, + "io.projectreactor:reactor-test": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "junit:junit": { + "locked": "4.13.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql": { + "locked": "1.1.4" + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.datafaker:datafaker": { + "locked": "2.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-mocking" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.apache.commons:commons-lang3": { + "locked": "3.13.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-core": { + "locked": "10.1.19", + "transitive": [ + "org.apache.tomcat.embed:tomcat-embed-websocket", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-el": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-websocket": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.hamcrest:hamcrest-core", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest-core": { + "locked": "2.2", + "transitive": [ + "junit:junit", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.hdrhistogram:HdrHistogram": { + "locked": "2.1.12", + "transitive": [ + "io.micrometer:micrometer-core" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter-test", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-engine": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-engine": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.latencyutils:LatencyUtils": { + "locked": "2.0.3", + "transitive": [ + "io.micrometer:micrometer-core" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java", + "com.graphql-java:java-dataloader", + "com.jayway.jsonpath:json-path", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.spectator:spectator-api", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-actuator-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-extended-scalars", + "com.netflix.graphql.dgs:graphql-dgs-pagination", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "org.springframework.boot:spring-boot-actuator-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-actuator", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-actuator": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter", + "name.nkonev.multipart-spring-graphql:multipart-spring-graphql", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-reactor-netty": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-tomcat": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-web": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-webflux": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.graphql:spring-graphql-test" + ] + }, + "org.springframework.graphql:spring-graphql-test": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-context-support", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework.graphql:spring-graphql-test", + "org.springframework:spring-context-support", + "org.springframework:spring-webmvc", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-context-support": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-micrometer", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-context-support", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.graphql:spring-graphql-test" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-example-shared", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-webflux", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-webflux" + ] + }, + "org.springframework:spring-webmvc": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse", + "com.netflix.graphql.dgs:graphql-dgs-subscriptions-graphql-sse-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework:spring-websocket": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "net.datafaker:datafaker", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + } +} \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/SpringGraphQLExampleApp.java b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/SpringGraphQLExampleApp.java new file mode 100644 index 000000000..dedd09f22 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/SpringGraphQLExampleApp.java @@ -0,0 +1,55 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example; + +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; +import graphql.execution.preparsed.PreparsedDocumentEntry; +import graphql.execution.preparsed.PreparsedDocumentProvider; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; + +import java.util.concurrent.TimeUnit; +import java.util.function.Function; + +@SpringBootApplication(scanBasePackages = {"com.netflix.graphql.dgs.example.shared", "com.netflix.graphql.dgs.example"}) +@EnableAsync +public class SpringGraphQLExampleApp { + public static void main(String[] args) { + SpringApplication.run(SpringGraphQLExampleApp.class, args); + } + + @Configuration + static class PreparsedDocumentProviderConfig { + + private final Cache cache = Caffeine.newBuilder().maximumSize(250) + .expireAfterAccess(5,TimeUnit.MINUTES).recordStats().build(); + + + @Bean + public PreparsedDocumentProvider preparsedDocumentProvider() { + return (executionInput, parseAndValidateFunction) -> { + Function mapCompute = key -> parseAndValidateFunction.apply(executionInput); + return cache.get(executionInput.getQuery(), mapCompute); + }; + } + } +} + diff --git a/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/context/MyContextBuilder.java b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/context/MyContextBuilder.java new file mode 100644 index 000000000..750d451a1 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/context/MyContextBuilder.java @@ -0,0 +1,29 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.context; + +import com.netflix.graphql.dgs.context.DgsCustomContextBuilder; +import com.netflix.graphql.dgs.example.shared.context.MyContext; +import org.springframework.stereotype.Component; + +@Component +public class MyContextBuilder implements DgsCustomContextBuilder { + @Override + public MyContext build() { + return new MyContext(); + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/FileUploadMutation.java b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/FileUploadMutation.java new file mode 100644 index 000000000..5b7b21d1d --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/FileUploadMutation.java @@ -0,0 +1,90 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import com.netflix.graphql.dgs.DgsComponent; +import com.netflix.graphql.dgs.DgsData; +import com.netflix.graphql.dgs.InputArgument; +import graphql.schema.DataFetchingEnvironment; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +@DgsComponent +public class FileUploadMutation { + private static final Logger log = LoggerFactory.getLogger(FileUploadMutation.class); + + /** + * Implementation of the _Data Fetcher_ that will handle file upload. + * + * To test file upload via the command line you will first have to create a file, + * let's say we name it {@code a.txt} and contains only {@code Hello World!}. + * After that, you can use the {@code curl} command to execute the filue upload of one file as follows: + * {@code + *
+     *  curl -a http://localhost:8080/graphql \
+     *      --header "graphql-require-preflight:true" \
+     *      -F operations='{ "query" : "mutation ($file: Upload!) { uploadFile(input: { files:[$file]} ) }", "variables": {"file": null } }' \
+     *      -F map='{ "0": ["variables.file"] }' \
+     *      -F 0=@a.txt
+     * 
+ * } + * + * @param input the GraphQL input argument of type FileUploadInput, serialized to the java pojo FileUploadInput. + * @param dfe the Data Fetching Environment + * @return boolean that will be true if all files are uploaded. + */ + @DgsData(parentType = "Mutation", field = "uploadFile") + public boolean uploadFile(@InputArgument FileUploadInput input, DataFetchingEnvironment dfe) { + List parts = input.getFiles(); + for (int i = 0; i < parts.size(); i++) { + try { + String content = new String(parts.get(i).getBytes()); + log.debug("File upload contents are\n{}\n", content); + } catch (IOException e) { + log.error("Failed to upload file[{}]!", i, e); + e.printStackTrace(); + } + } + return !parts.isEmpty(); + } + + static class FileUploadInput { + private String description; + private List files; + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public List getFiles() { + return files; + } + + public void setFiles(List file) { + this.files = file; + } + } +} + diff --git a/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/GreetingBatchLoader.java b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/GreetingBatchLoader.java new file mode 100644 index 000000000..fcb682f45 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/GreetingBatchLoader.java @@ -0,0 +1,49 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import graphql.schema.DataFetchingEnvironment; +import org.dataloader.DataLoader; +import org.dataloader.DataLoaderRegistry; +import org.springframework.graphql.data.method.annotation.Argument; +import org.springframework.graphql.data.method.annotation.QueryMapping; +import org.springframework.graphql.execution.BatchLoaderRegistry; +import org.springframework.stereotype.Controller; +import reactor.core.publisher.Mono; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +@Controller +public class GreetingBatchLoader { + public GreetingBatchLoader(BatchLoaderRegistry registry) { + registry.forTypePair(Person.class, String.class).registerMappedBatchLoader((persons, env) -> { + Map result = new HashMap<>(); + persons.forEach(it -> result.put(it, "greetings " + it.getName())); + return Mono.just(result); + }); + } + + @QueryMapping + public CompletableFuture greetingFromBatchLoader(@Argument Person person, DataLoader loader, DataFetchingEnvironment env) { + DataLoaderRegistry registry = env.getDataLoaderRegistry(); + CompletableFuture result = loader.load(person); + loader.dispatch(); + return result; + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/MyInstrumentation.java b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/MyInstrumentation.java new file mode 100644 index 000000000..ce846d239 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/MyInstrumentation.java @@ -0,0 +1,46 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import com.netflix.graphql.dgs.DgsExecutionResult; +import graphql.ExecutionResult; +import graphql.execution.instrumentation.InstrumentationState; +import graphql.execution.instrumentation.SimpleInstrumentation; +import graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters; +import org.jetbrains.annotations.NotNull; +import org.springframework.http.HttpHeaders; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +@Component +public class MyInstrumentation extends SimpleInstrumentation { + @NotNull + @Override + public CompletableFuture instrumentExecutionResult(ExecutionResult executionResult, + InstrumentationExecutionParameters parameters, + InstrumentationState state) { + HttpHeaders responseHeaders = new HttpHeaders(); + responseHeaders.add("myHeader", "hello"); + + return super.instrumentExecutionResult( + DgsExecutionResult.builder().executionResult(executionResult).headers(responseHeaders).build(), + parameters, + state + ); + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/Person.java b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/Person.java new file mode 100644 index 000000000..7003e76e4 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/Person.java @@ -0,0 +1,36 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +public class Person { + private String name; + + public Person() {} + + public Person(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} + diff --git a/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/SpringGraphQLDataFetchers.java b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/SpringGraphQLDataFetchers.java new file mode 100644 index 000000000..9e5402860 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/SpringGraphQLDataFetchers.java @@ -0,0 +1,30 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + + +import org.springframework.graphql.data.method.annotation.Argument; +import org.springframework.graphql.data.method.annotation.QueryMapping; +import org.springframework.stereotype.Controller; + +@Controller +public class SpringGraphQLDataFetchers { + @QueryMapping + public String greetings(@Argument String name) { + return "Hello, " + name + "!"; + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/WithCookie.java b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/WithCookie.java new file mode 100644 index 000000000..5c0aae8ee --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/WithCookie.java @@ -0,0 +1,41 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import com.netflix.graphql.dgs.*; +import com.netflix.graphql.dgs.internal.DgsWebMvcRequestData; +import org.springframework.web.bind.annotation.CookieValue; +import org.springframework.web.context.request.ServletWebRequest; + +@DgsComponent +public class WithCookie { + + @DgsQuery + public String withCookie(@CookieValue String mydgscookie) { + return mydgscookie; + } + + @DgsMutation + public String updateCookie(@InputArgument String value, DgsDataFetchingEnvironment dfe) { + DgsWebMvcRequestData requestData = (DgsWebMvcRequestData) dfe.getDgsContext().getRequestData(); + ServletWebRequest webRequest = (ServletWebRequest) requestData.getWebRequest(); + jakarta.servlet.http.Cookie cookie = new jakarta.servlet.http.Cookie("mydgscookie", value); + webRequest.getResponse().addCookie(cookie); + + return value; + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/WithHeader.java b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/WithHeader.java new file mode 100644 index 000000000..59beef9b9 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/main/java/com/netflix/graphql/dgs/example/datafetcher/WithHeader.java @@ -0,0 +1,31 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import com.netflix.graphql.dgs.DgsComponent; +import com.netflix.graphql.dgs.DgsQuery; +import com.netflix.graphql.dgs.InputArgument; +import org.springframework.http.HttpHeaders; +import org.springframework.web.bind.annotation.RequestHeader; + +@DgsComponent +public class WithHeader { + @DgsQuery + public String helloWithHeaders(@InputArgument String name, @RequestHeader(HttpHeaders.AUTHORIZATION) String authorization) { + return "hello, " + authorization + "!"; + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/main/resources/application.yml b/graphql-dgs-spring-graphql-example-java/src/main/resources/application.yml new file mode 100644 index 000000000..2cc48f3ec --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/main/resources/application.yml @@ -0,0 +1,23 @@ +spring: + application: + name: dgs-spring-graphql-example + + graphql: + graphiql: + enabled: true + websocket: + path: /graphql + + schema: + inspection: + enabled: true + +dgs.reload: true + +management: + endpoints: + web: + exposure: + include: + - metrics +debug: true \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-example-java/src/main/resources/schema/schema.graphqls b/graphql-dgs-spring-graphql-example-java/src/main/resources/schema/schema.graphqls new file mode 100644 index 000000000..daccf8137 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/main/resources/schema/schema.graphqls @@ -0,0 +1,8 @@ +extend type Query { + greetings(name: String): String + greetingFromBatchLoader(person: Person): String +} + +input Person { + name: String +} \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/DgsTestSliceWithMockMvcAndHttpGraphQlTesterTest.java b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/DgsTestSliceWithMockMvcAndHttpGraphQlTesterTest.java new file mode 100644 index 000000000..c3b5060ea --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/DgsTestSliceWithMockMvcAndHttpGraphQlTesterTest.java @@ -0,0 +1,60 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import com.netflix.graphql.dgs.autoconfig.DgsExtendedScalarsAutoConfiguration; +import com.netflix.graphql.dgs.example.shared.dataLoader.MessageDataLoader; +import com.netflix.graphql.dgs.pagination.DgsPaginationAutoConfiguration; +import com.netflix.graphql.dgs.scalars.UploadScalar; +import com.netflix.graphql.dgs.test.EnableDgsMockMvcTest; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.graphql.tester.AutoConfigureHttpGraphQlTester; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.graphql.test.tester.HttpGraphQlTester; + +@SpringBootTest(classes = {com.netflix.graphql.dgs.example.datafetcher.HelloDataFetcher.class, + SpringGraphQLDataFetchers.class} +) +@TestAppTestSlice +@EnableDgsMockMvcTest +@AutoConfigureMockMvc +@AutoConfigureHttpGraphQlTester +public class DgsTestSliceWithMockMvcAndHttpGraphQlTesterTest { + + @Autowired + private HttpGraphQlTester graphQlTester; + + @Test + void testSpringDataFetcher() { + graphQlTester.document("query Greetings($name: String){ greetings(name: $name) }").variable("name", "Spring GraphQL").execute() + .path("greetings").entity(String.class).isEqualTo("Hello, Spring GraphQL!"); + } + + @Test + void testDgsDataFetcher() { + graphQlTester.document("query Hello($name: String){ hello(name: $name) }").variable("name", "DGS").execute() + .path("hello").entity(String.class).isEqualTo("hello, DGS!"); + } + + @Test + void withDataLoader() { + graphQlTester.document("query { messageFromBatchLoader }").execute() + .path("messageFromBatchLoader").entity(String.class).isEqualTo("hello, a!"); + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/GreetingTest.java b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/GreetingTest.java new file mode 100644 index 000000000..a3e6dfbea --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/GreetingTest.java @@ -0,0 +1,177 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import com.jayway.jsonpath.DocumentContext; +import com.jayway.jsonpath.TypeRef; +import com.netflix.graphql.dgs.DgsQueryExecutor; +import com.netflix.graphql.dgs.example.shared.datafetcher.MovieDataFetcher; +import com.netflix.graphql.dgs.example.shared.datafetcher.RequestHeadersDataFetcher; +import com.netflix.graphql.dgs.example.shared.types.ActionMovie; +import com.netflix.graphql.dgs.example.shared.types.Movie; +import com.netflix.graphql.dgs.test.EnableDgsTest; +import graphql.ExecutionResult; +import jakarta.servlet.http.Cookie; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.HttpHeaders; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.web.context.request.ServletWebRequest; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Example test using test slices with DgsQueryExecutor. + * No web stack is used, so there is no need for MockMvc. + * The correct test slice to use is @EnableDgsTest + * The data fetchers are listed in the classes attribute of @SpringBootTest, while more generic classes are in a app specific @TestAppTestSlice, so that this configuration can be reused between tests. + */ +@SpringBootTest(classes = {SpringGraphQLDataFetchers.class, com.netflix.graphql.dgs.example.datafetcher.HelloDataFetcher.class, WithHeader.class, WithCookie.class, MovieDataFetcher.class, RequestHeadersDataFetcher.class}) +@EnableDgsTest +@TestAppTestSlice +public class GreetingTest { + @Autowired + DgsQueryExecutor queryExecutor; + + @Test + void testSpringDataFetcher() { + var result = queryExecutor.execute("query Greetings($name: String){ greetings(name: $name) }", Map.of("name", "DGS"), Collections.emptyMap(), null, "", null); + + assertThat(result.isDataPresent()).isTrue(); + Map data = result.getData(); + assertThat(data.get("greetings")).isEqualTo("Hello, DGS!"); + + } + + @Test + void testDgsDataFetcher() { + ExecutionResult result = queryExecutor.execute("query Hello($name: String){ hello(name: $name) }", Map.of("name", "DGS")); + assertThat(result.isDataPresent()).isTrue(); + Map data = result.getData(); + assertThat(data.get("hello")).isEqualTo("hello, DGS!"); + } + + @Test + void withDataLoader() { + ExecutionResult result = queryExecutor.execute("{messageFromBatchLoader}"); + assertThat(result.isDataPresent()).isTrue(); + Map data = result.getData(); + assertThat(data.get("messageFromBatchLoader")).isEqualTo("hello, a!"); + } + + @Test + void withDataLoaderAsync() { + ExecutionResult result = queryExecutor.execute("{withDataLoaderContext}"); + assertThat(result.isDataPresent()).isTrue(); + Map data = result.getData(); + assertThat(data.get("withDataLoaderContext")).isEqualTo("Custom state! A"); + } + + @Test + void headers() { + var headers = HttpHeaders.writableHttpHeaders(HttpHeaders.EMPTY); + headers.add("my-header", "DGS rocks!"); + headers.add("referer", "Test"); + + var result = queryExecutor.execute("{ headers }", Collections.emptyMap(), Collections.emptyMap(), headers, "", null); + assertThat(result.isDataPresent()).isTrue(); + Map data = result.getData(); + assertThat(data.get("headers")).isEqualTo(""" + [my-header:"DGS rocks!", referer:"Test"] + """.trim()); + } + + @Test + void webRequest() { + MockHttpServletRequest mockHttpServletRequest = new MockHttpServletRequest(); + mockHttpServletRequest.setCookies(new Cookie("mydgscookie", "DGS cookies are yummy")); + + ServletWebRequest servletWebRequest = new ServletWebRequest(mockHttpServletRequest); + + var result = queryExecutor.execute("{ withCookie }", Collections.emptyMap(), Collections.emptyMap(), null, "", servletWebRequest); + assertThat(result.isDataPresent()).isTrue(); + Map data = result.getData(); + assertThat(data.get("withCookie")).isEqualTo("DGS cookies are yummy"); + } + + @Test + void jsonPath() { + String query = "query Hello($name: String){ hello(name: $name) }"; + var result = queryExecutor.executeAndExtractJsonPath(query, "data.hello"); + assertThat(result).isEqualTo("hello, Stranger!"); + } + + @Test + void jsonPathWithVariables() { + String query = "query Hello($name: String){ hello(name: $name) }"; + Map variables = Map.of("name", "DGS"); + var result = queryExecutor.executeAndExtractJsonPath(query, "data.hello", variables); + assertThat(result).isEqualTo("hello, DGS!"); + } + + @Test + void jsonPathWithHeaders() { + String query = "{ headers }"; + var headers = HttpHeaders.writableHttpHeaders(HttpHeaders.EMPTY); + headers.add("my-header", "DGS rocks!"); + headers.add("referer", "Test"); + + var result = queryExecutor.executeAndExtractJsonPath(query, "data.headers", headers); + assertThat(result).isEqualTo("[my-header:\"DGS rocks!\", referer:\"Test\"]"); + } + + @Test + void jsonPathWithSebRequest() { + MockHttpServletRequest mockHttpServletRequest = new MockHttpServletRequest(); + mockHttpServletRequest.setCookies(new Cookie("mydgscookie", "DGS cookies are yummy")); + + ServletWebRequest servletWebRequest = new ServletWebRequest(mockHttpServletRequest); + + var result = queryExecutor.executeAndExtractJsonPath("{ withCookie }", "data.withCookie", servletWebRequest); + assertThat(result).isEqualTo("DGS cookies are yummy"); + } + + @Test + void jsonPathAsObject() { + Movie movie = queryExecutor.executeAndExtractJsonPathAsObject("{movies { title} }", "data.movies[0]", ActionMovie.class); + assertThat(movie.getTitle()).isEqualTo("Crouching Tiger"); + } + + @Test + void jsonPathAsObjectRef() { + List movies = queryExecutor.executeAndExtractJsonPathAsObject("{movies { title} }", "data.movies", new TypeRef>() { + }); + assertThat(movies).size().isEqualTo(4); + } + + @Test + void documentContext() { + DocumentContext documentContext = queryExecutor.executeAndGetDocumentContext("{hello}"); + assertThat(documentContext.read("data.hello")).isEqualTo("hello, Stranger!"); + } + + @Test + void documentContextWithHeaders() { + DocumentContext documentContext = queryExecutor.executeAndGetDocumentContext("query Hello($name: String){ hello(name: $name) }", Map.of("name", "DGS")); + assertThat(documentContext.read("data.hello")).isEqualTo("hello, DGS!"); + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/GreetingTestWithGraphQlTester.java b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/GreetingTestWithGraphQlTester.java new file mode 100644 index 000000000..fceff8b42 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/GreetingTestWithGraphQlTester.java @@ -0,0 +1,43 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.graphql.ExecutionGraphQlService; +import org.springframework.graphql.test.tester.ExecutionGraphQlServiceTester; + +@SpringBootTest +@Disabled +public class GreetingTestWithGraphQlTester { + @Autowired + ExecutionGraphQlService service; + private ExecutionGraphQlServiceTester graphQlTester; + @BeforeEach + void setUp() { + graphQlTester = ExecutionGraphQlServiceTester.create(service); + } + + @Test + void testSpringDataFetcher() { + graphQlTester.document("query Greetings($name: String){ greetings(name: $name) }").variable("name", "Spring GraphQL").execute() + .path("greetings").entity(String.class).isEqualTo("Hello, Spring GraphQL!"); + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/HttpGraphQlTesterTest.java b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/HttpGraphQlTesterTest.java new file mode 100644 index 000000000..24c89e578 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/HttpGraphQlTesterTest.java @@ -0,0 +1,57 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import com.netflix.graphql.dgs.example.shared.types.Stock; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.graphql.tester.AutoConfigureHttpGraphQlTester; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.graphql.test.tester.HttpGraphQlTester; +import reactor.core.publisher.Flux; +import reactor.test.StepVerifier; + +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +@SpringBootTest +@AutoConfigureMockMvc +@AutoConfigureHttpGraphQlTester +public class HttpGraphQlTesterTest { + + @Autowired + private HttpGraphQlTester graphQlTester; + + @Test + void testSpringDataFetcher() { + graphQlTester.document("query Greetings($name: String){ greetings(name: $name) }").variable("name", "Spring GraphQL").execute() + .path("greetings").entity(String.class).isEqualTo("Hello, Spring GraphQL!"); + } + + @Test + void testDgsDataFetcher() { + graphQlTester.document("query Hello($name: String){ hello(name: $name) }").variable("name", "DGS").execute() + .path("hello").entity(String.class).isEqualTo("hello, DGS!"); + } + + @Test + void withDataLoader() { + graphQlTester.document("query { messageFromBatchLoader }").execute() + .path("messageFromBatchLoader").entity(String.class).isEqualTo("hello, a!"); + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/MockMvcTest.java b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/MockMvcTest.java new file mode 100644 index 000000000..de9242eed --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/MockMvcTest.java @@ -0,0 +1,66 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.netflix.graphql.dgs.test.EnableDgsMockMvcTest; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; + +@SpringBootTest(classes = {com.netflix.graphql.dgs.example.datafetcher.HelloDataFetcher.class, SpringGraphQLDataFetchers.class}) +@TestAppTestSlice +@EnableDgsMockMvcTest +public class MockMvcTest { + @Autowired + MockMvc mockMvc; + + @Autowired + ObjectMapper objectMapper; + + @Test + void testWithMockMvc() throws Exception { + var query = """ + query { + hello(name: "DGS") + greetings(name: "SpringGraphQL") + } + """; + + var request = objectMapper.writeValueAsString(new GraphQlRequest(query)); + + mockMvc.perform(post("/graphql") + .content(request) + .contentType(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().json(""" + { + "data": { + "hello": "hello, DGS!", + "greetings": "Hello, SpringGraphQL!" + } + }""")); + } + + record GraphQlRequest(String query){} +} diff --git a/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/MockMvcTestWithHttpGraphQlTester.java b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/MockMvcTestWithHttpGraphQlTester.java new file mode 100644 index 000000000..d41e58e95 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/MockMvcTestWithHttpGraphQlTester.java @@ -0,0 +1,53 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.graphql.tester.AutoConfigureHttpGraphQlTester; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.graphql.test.tester.HttpGraphQlTester; + +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +@SpringBootTest +@AutoConfigureMockMvc +@AutoConfigureHttpGraphQlTester +public class MockMvcTestWithHttpGraphQlTester { + + @Autowired + private HttpGraphQlTester graphQlTester; + + @Test + void testSpringDataFetcher() { + graphQlTester.document("query Greetings($name: String){ greetings(name: $name) }").variable("name", "Spring GraphQL").execute() + .path("greetings").entity(String.class).isEqualTo("Hello, Spring GraphQL!"); + } + + @Test + void testDgsDataFetcher() { + graphQlTester.document("query Hello($name: String){ hello(name: $name) }").variable("name", "DGS").execute() + .path("hello").entity(String.class).isEqualTo("hello, DGS!"); + } + + @Test + void withDataLoader() { + graphQlTester.document("query { messageFromBatchLoader }").execute() + .path("messageFromBatchLoader").entity(String.class).isEqualTo("hello, a!"); + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/SubscriptionTest.java b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/SubscriptionTest.java new file mode 100644 index 000000000..7b1710a2c --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/SubscriptionTest.java @@ -0,0 +1,63 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.netflix.graphql.dgs.DgsQueryExecutor; +import com.netflix.graphql.dgs.example.shared.types.Stock; +import graphql.ExecutionResult; +import org.junit.jupiter.api.Test; +import org.reactivestreams.Publisher; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import reactor.test.StepVerifier; + +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest +public class SubscriptionTest { + + @Autowired + DgsQueryExecutor queryExecutor; + + ObjectMapper objectMapper = new ObjectMapper(); + + + @Test + void stocks() { + var executionResult = queryExecutor.execute("subscription Stocks { stocks { name, price } }"); + + Publisher publisher = executionResult.getData(); + + StepVerifier.withVirtualTime(() -> publisher, 3) + .expectSubscription() + .thenRequest(3) + + .assertNext(result -> assertThat(toStock(result).getPrice()).isEqualTo(500)) + .assertNext(result -> assertThat(toStock(result).getPrice()).isEqualTo(501)) + .assertNext(result -> assertThat(toStock(result).getPrice()).isEqualTo(502)) + .thenCancel() + .verify(); + } + + private Stock toStock(ExecutionResult result) { + Map data = result.getData(); + return objectMapper.convertValue(data.get("stocks"), Stock.class); + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/SubscriptionsGraphQlTesterTest.java b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/SubscriptionsGraphQlTesterTest.java new file mode 100644 index 000000000..4dcd3d416 --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/SubscriptionsGraphQlTesterTest.java @@ -0,0 +1,70 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import com.netflix.graphql.dgs.example.shared.types.Stock; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.autoconfigure.graphql.tester.AutoConfigureGraphQlTester; +import org.springframework.boot.test.autoconfigure.graphql.tester.AutoConfigureHttpGraphQlTester; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.server.LocalServerPort; +import org.springframework.graphql.test.tester.GraphQlTester; +import org.springframework.graphql.test.tester.HttpGraphQlTester; +import org.springframework.graphql.test.tester.WebSocketGraphQlTester; +import org.springframework.web.reactive.socket.client.ReactorNettyWebSocketClient; +import org.springframework.web.reactive.socket.client.WebSocketClient; +import reactor.core.publisher.Flux; +import reactor.test.StepVerifier; + +import java.net.URI; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class SubscriptionsGraphQlTesterTest { + + @LocalServerPort + private int port; + + @Value("http://localhost:${local.server.port}/graphql") + private String baseUrl; + + private GraphQlTester graphQlTester; + + + @BeforeEach + void setUp() { + URI url = URI.create(baseUrl); + this.graphQlTester = WebSocketGraphQlTester.builder(url, new ReactorNettyWebSocketClient()).build(); + } + + @Test + void stocks() { + Flux result = graphQlTester.document("subscription Stocks { stocks { name, price } }").executeSubscription().toFlux("stocks", Stock.class); + + StepVerifier.create(result) + .assertNext(res -> Assertions.assertThat(res.getPrice()).isEqualTo(500)) + .assertNext(res -> Assertions.assertThat(res.getPrice()).isEqualTo(501)) + .assertNext(res -> Assertions.assertThat(res.getPrice()).isEqualTo(502)) + .thenCancel() + .verify(); + } +} diff --git a/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/TestAppTestSlice.java b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/TestAppTestSlice.java new file mode 100644 index 000000000..cfc99f7eb --- /dev/null +++ b/graphql-dgs-spring-graphql-example-java/src/test/java/com/netflix/graphql/dgs/example/datafetcher/TestAppTestSlice.java @@ -0,0 +1,45 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.example.datafetcher; + +import com.netflix.graphql.dgs.autoconfig.DgsExtendedScalarsAutoConfiguration; +import com.netflix.graphql.dgs.example.context.MyContextBuilder; +import com.netflix.graphql.dgs.example.shared.context.ExampleGraphQLContextContributor; +import com.netflix.graphql.dgs.example.shared.dataLoader.ExampleLoaderWithContext; +import com.netflix.graphql.dgs.example.shared.dataLoader.MessageDataLoader; +import com.netflix.graphql.dgs.example.shared.instrumentation.ExampleInstrumentationDependingOnContextContributor; +import com.netflix.graphql.dgs.pagination.DgsPaginationAutoConfiguration; +import com.netflix.graphql.dgs.scalars.UploadScalar; +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; +import org.springframework.context.annotation.Import; + +import java.lang.annotation.*; + +@Target({ElementType.TYPE }) +@Retention(RetentionPolicy.RUNTIME) +@Inherited +@Documented +@Import({MessageDataLoader.class, + UploadScalar.class, + ExampleLoaderWithContext.class, + ExampleGraphQLContextContributor.class, + ExampleInstrumentationDependingOnContextContributor.class, + MyContextBuilder.class + }) +@ImportAutoConfiguration({DgsPaginationAutoConfiguration.class, DgsExtendedScalarsAutoConfiguration.class}) +public @interface TestAppTestSlice { +} diff --git a/graphql-dgs-spring-graphql-starter-test/build.gradle.kts b/graphql-dgs-spring-graphql-starter-test/build.gradle.kts new file mode 100644 index 000000000..d349c1390 --- /dev/null +++ b/graphql-dgs-spring-graphql-starter-test/build.gradle.kts @@ -0,0 +1,19 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +dependencies { + api(project(":graphql-dgs-spring-graphql-test")) +} \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-starter-test/dependencies.lock b/graphql-dgs-spring-graphql-starter-test/dependencies.lock new file mode 100644 index 000000000..e9c89ed69 --- /dev/null +++ b/graphql-dgs-spring-graphql-starter-test/dependencies.lock @@ -0,0 +1,2518 @@ +{ + "annotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-autoconfigure-processor": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-configuration-processor": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "compileClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "jmh": { + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.0", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm" + ] + } + }, + "jmhAnnotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "jmhCompileClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.0", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "jmhRuntimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "junit:junit": { + "locked": "4.13.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.hamcrest:hamcrest-core", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest-core": { + "locked": "2.2", + "transitive": [ + "junit:junit", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-engine": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-engine": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart", + "org.openjdk.jmh:jmh-generator-asm" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.jayway.jsonpath:json-path", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "kotlinBuildToolsApiClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-build-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-runner" + ] + }, + "org.jetbrains.kotlin:kotlin-build-tools-api": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-build-tools-impl" + ] + }, + "org.jetbrains.kotlin:kotlin-build-tools-impl": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-build-tools-impl", + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-compiler-runner": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-build-tools-impl" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-client": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-build-tools-impl", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathJmh": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathMain": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathTest": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinKlibCommonizerClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinNativeCompilerPluginClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "nebulaRecommenderBom": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "runtimeClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + } + }, + "testAnnotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "testCompileClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apiguardian:apiguardian-api": { + "locked": "1.1.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "testRuntimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "junit:junit": { + "locked": "4.13.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.hamcrest:hamcrest-core", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest-core": { + "locked": "2.2", + "transitive": [ + "junit:junit", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-engine": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-engine": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.jayway.jsonpath:json-path", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql-test", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + } +} \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-starter/.gitignore b/graphql-dgs-spring-graphql-starter/.gitignore new file mode 100644 index 000000000..b63da4551 --- /dev/null +++ b/graphql-dgs-spring-graphql-starter/.gitignore @@ -0,0 +1,42 @@ +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-starter/build.gradle.kts b/graphql-dgs-spring-graphql-starter/build.gradle.kts new file mode 100644 index 000000000..5714a1c50 --- /dev/null +++ b/graphql-dgs-spring-graphql-starter/build.gradle.kts @@ -0,0 +1,24 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +dependencies { + api(project(":graphql-dgs-spring-boot-oss-autoconfigure")) + api(project(":graphql-dgs-spring-graphql")) + api(project(":graphql-dgs-client")) + api(project(":graphql-error-types")) + api("org.springframework.boot:spring-boot-starter-graphql") +} \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-starter/dependencies.lock b/graphql-dgs-spring-graphql-starter/dependencies.lock new file mode 100644 index 000000000..1ba6b3667 --- /dev/null +++ b/graphql-dgs-spring-graphql-starter/dependencies.lock @@ -0,0 +1,4596 @@ +{ + "annotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-autoconfigure-processor": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-configuration-processor": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "compileClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.graphql-java:java-dataloader", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-web" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "jmh": { + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.0", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm" + ] + } + }, + "jmhAnnotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "jmhCompileClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.0", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.graphql-java:java-dataloader", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-web" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "jmhRuntimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.apollographql.federation:federation-graphql-java-support": { + "locked": "4.4.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.mifmif:generex": { + "locked": "1.0.2", + "transitive": [ + "net.datafaker:datafaker" + ] + }, + "com.google.protobuf:protobuf-java": { + "locked": "3.25.2", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "dk.brics.automaton:automaton": { + "locked": "1.11-8", + "transitive": [ + "com.github.mifmif:generex" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.graphql:spring-graphql" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "io.projectreactor.kotlin:reactor-kotlin-extensions": { + "locked": "1.2.2", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.kotlin:reactor-kotlin-extensions", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "junit:junit": { + "locked": "4.13.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.datafaker:datafaker": { + "locked": "2.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-mocking" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-lang3": { + "locked": "3.13.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.hamcrest:hamcrest-core", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest-core": { + "locked": "2.2", + "transitive": [ + "junit:junit", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-engine": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-engine": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart", + "org.openjdk.jmh:jmh-generator-asm" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java", + "com.graphql-java:java-dataloader", + "com.jayway.jsonpath:json-path", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-websocket": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "net.datafaker:datafaker", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "kotlinBuildToolsApiClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-build-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-runner" + ] + }, + "org.jetbrains.kotlin:kotlin-build-tools-api": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-build-tools-impl" + ] + }, + "org.jetbrains.kotlin:kotlin-build-tools-impl": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-build-tools-impl", + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-compiler-runner": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-build-tools-impl" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-client": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-build-tools-impl", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathJmh": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathMain": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathTest": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinKlibCommonizerClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinNativeCompilerPluginClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "nebulaRecommenderBom": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "runtimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.apollographql.federation:federation-graphql-java-support": { + "locked": "4.4.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.mifmif:generex": { + "locked": "1.0.2", + "transitive": [ + "net.datafaker:datafaker" + ] + }, + "com.google.protobuf:protobuf-java": { + "locked": "3.25.2", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "dk.brics.automaton:automaton": { + "locked": "1.11-8", + "transitive": [ + "com.github.mifmif:generex" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.graphql:spring-graphql" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.projectreactor.kotlin:reactor-kotlin-extensions": { + "locked": "1.2.2", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.kotlin:reactor-kotlin-extensions", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "net.datafaker:datafaker": { + "locked": "2.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-mocking" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.commons:commons-lang3": { + "locked": "3.13.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java", + "com.graphql-java:java-dataloader", + "com.jayway.jsonpath:json-path", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-web", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-websocket": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "net.datafaker:datafaker", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "testAnnotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "testCompileClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apiguardian:apiguardian-api": { + "locked": "1.1.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.graphql-java:java-dataloader", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "testRuntimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.apollographql.federation:federation-graphql-java-support": { + "locked": "4.4.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.mifmif:generex": { + "locked": "1.0.2", + "transitive": [ + "net.datafaker:datafaker" + ] + }, + "com.google.protobuf:protobuf-java": { + "locked": "3.25.2", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-client": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-subscription-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "dk.brics.automaton:automaton": { + "locked": "1.11-8", + "transitive": [ + "com.github.mifmif:generex" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.graphql:spring-graphql" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "io.projectreactor.kotlin:reactor-kotlin-extensions": { + "locked": "1.2.2", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.kotlin:reactor-kotlin-extensions", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "junit:junit": { + "locked": "4.13.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.datafaker:datafaker": { + "locked": "2.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-mocking" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.apache.commons:commons-lang3": { + "locked": "3.13.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.hamcrest:hamcrest-core", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest-core": { + "locked": "2.2", + "transitive": [ + "junit:junit", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-client", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-engine": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-engine": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java", + "com.graphql-java:java-dataloader", + "com.jayway.jsonpath:json-path", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-client", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-graphql", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework:spring-websocket" + ] + }, + "org.springframework:spring-websocket": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-subscription-types", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "net.datafaker:datafaker", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + } +} \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-test/build.gradle.kts b/graphql-dgs-spring-graphql-test/build.gradle.kts new file mode 100644 index 000000000..93d3fd7e6 --- /dev/null +++ b/graphql-dgs-spring-graphql-test/build.gradle.kts @@ -0,0 +1,20 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +dependencies { + implementation("org.springframework.boot:spring-boot-autoconfigure") + implementation("org.springframework.boot:spring-boot-test-autoconfigure") +} \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-test/dependencies.lock b/graphql-dgs-spring-graphql-test/dependencies.lock new file mode 100644 index 000000000..e44be887a --- /dev/null +++ b/graphql-dgs-spring-graphql-test/dependencies.lock @@ -0,0 +1,2632 @@ +{ + "annotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-autoconfigure-processor": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-configuration-processor": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "compileClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + } + }, + "jmh": { + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.0", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm" + ] + } + }, + "jmhAnnotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "jmhCompileClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.0", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + } + }, + "jmhRuntimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "junit:junit": { + "locked": "4.13.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.hamcrest:hamcrest-core", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest-core": { + "locked": "2.2", + "transitive": [ + "junit:junit", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-engine": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-engine": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart", + "org.openjdk.jmh:jmh-generator-asm" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.jayway.jsonpath:json-path", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "kotlinBuildToolsApiClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-build-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-runner" + ] + }, + "org.jetbrains.kotlin:kotlin-build-tools-api": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-build-tools-impl" + ] + }, + "org.jetbrains.kotlin:kotlin-build-tools-impl": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-build-tools-impl", + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-compiler-runner": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-build-tools-impl" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-client": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-build-tools-impl", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathJmh": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathMain": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathTest": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinKlibCommonizerClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinNativeCompilerPluginClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "nebulaRecommenderBom": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "runtimeClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + } + }, + "testAnnotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "testCompileClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apiguardian:apiguardian-api": { + "locked": "1.1.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "testRuntimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "junit:junit": { + "locked": "4.13.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.hamcrest:hamcrest-core", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest-core": { + "locked": "2.2", + "transitive": [ + "junit:junit", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-engine": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-engine": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.jayway.jsonpath:json-path", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + } +} \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-test/src/main/java/com/netflix/graphql/dgs/test/EnableDgsMockMvcTest.java b/graphql-dgs-spring-graphql-test/src/main/java/com/netflix/graphql/dgs/test/EnableDgsMockMvcTest.java new file mode 100644 index 000000000..d731c02fa --- /dev/null +++ b/graphql-dgs-spring-graphql-test/src/main/java/com/netflix/graphql/dgs/test/EnableDgsMockMvcTest.java @@ -0,0 +1,16 @@ +package com.netflix.graphql.dgs.test; + +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; + +import java.lang.annotation.*; + +@Target({ ElementType.METHOD, ElementType.TYPE }) +@Retention(RetentionPolicy.RUNTIME) +@Inherited +@Documented +@EnableDgsTest +@AutoConfigureMockMvc +@ImportAutoConfiguration +public @interface EnableDgsMockMvcTest { +} diff --git a/graphql-dgs-spring-graphql-test/src/main/java/com/netflix/graphql/dgs/test/EnableDgsTest.java b/graphql-dgs-spring-graphql-test/src/main/java/com/netflix/graphql/dgs/test/EnableDgsTest.java new file mode 100644 index 000000000..e085a8280 --- /dev/null +++ b/graphql-dgs-spring-graphql-test/src/main/java/com/netflix/graphql/dgs/test/EnableDgsTest.java @@ -0,0 +1,29 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.test; + +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; + +import java.lang.annotation.*; + +@Target({ ElementType.METHOD, ElementType.TYPE }) +@Retention(RetentionPolicy.RUNTIME) +@Inherited +@Documented +@ImportAutoConfiguration +public @interface EnableDgsTest { +} diff --git a/graphql-dgs-spring-graphql-test/src/main/resources/META-INF/spring/com.netflix.graphql.dgs.test.EnableDgsMockMvcTest.imports b/graphql-dgs-spring-graphql-test/src/main/resources/META-INF/spring/com.netflix.graphql.dgs.test.EnableDgsMockMvcTest.imports new file mode 100644 index 000000000..0e44bb7ee --- /dev/null +++ b/graphql-dgs-spring-graphql-test/src/main/resources/META-INF/spring/com.netflix.graphql.dgs.test.EnableDgsMockMvcTest.imports @@ -0,0 +1,3 @@ +org.springframework.boot.autoconfigure.graphql.servlet.GraphQlWebMvcAutoConfiguration +org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration +org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration \ No newline at end of file diff --git a/graphql-dgs-spring-graphql-test/src/main/resources/META-INF/spring/com.netflix.graphql.dgs.test.EnableDgsTest.imports b/graphql-dgs-spring-graphql-test/src/main/resources/META-INF/spring/com.netflix.graphql.dgs.test.EnableDgsTest.imports new file mode 100644 index 000000000..154729821 --- /dev/null +++ b/graphql-dgs-spring-graphql-test/src/main/resources/META-INF/spring/com.netflix.graphql.dgs.test.EnableDgsTest.imports @@ -0,0 +1,4 @@ +com.netflix.graphql.dgs.springgraphql.autoconfig.DgsSpringGraphQLAutoConfiguration +com.netflix.graphql.dgs.autoconfig.DgsAutoConfiguration +com.netflix.graphql.dgs.springgraphql.autoconfig.DgsSpringGraphQLSourceAutoConfiguration +org.springframework.boot.autoconfigure.graphql.GraphQlAutoConfiguration diff --git a/graphql-dgs-spring-graphql/build.gradle.kts b/graphql-dgs-spring-graphql/build.gradle.kts new file mode 100644 index 000000000..ae382ec19 --- /dev/null +++ b/graphql-dgs-spring-graphql/build.gradle.kts @@ -0,0 +1,39 @@ +/* + * Copyright 2020 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +dependencies { + implementation(project(":graphql-dgs")) + implementation(project(":graphql-dgs-reactive")) + implementation("org.springframework:spring-web") + implementation("org.springframework.boot:spring-boot-autoconfigure") + implementation("io.micrometer:context-propagation:1.1.0") + implementation("org.springframework.graphql:spring-graphql:1.2.6") + implementation("com.fasterxml.jackson.module:jackson-module-kotlin") + implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") + + compileOnly("jakarta.servlet:jakarta.servlet-api") + compileOnly("org.springframework:spring-webmvc") + compileOnly("org.springframework:spring-webflux") + compileOnly("org.springframework:spring-test") + + testImplementation(project(":graphql-dgs-spring-boot-oss-autoconfigure")) + testImplementation("org.springframework.boot:spring-boot-starter-graphql") + testImplementation("org.springframework.boot:spring-boot-starter-test") + testImplementation("org.springframework.boot:spring-boot-starter-web") + testImplementation("org.springframework:spring-webflux") + testImplementation("com.github.ben-manes.caffeine:caffeine") +} diff --git a/graphql-dgs-spring-graphql/dependencies.lock b/graphql-dgs-spring-graphql/dependencies.lock new file mode 100644 index 000000000..5a350bc05 --- /dev/null +++ b/graphql-dgs-spring-graphql/dependencies.lock @@ -0,0 +1,4345 @@ +{ + "annotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-autoconfigure-processor": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-configuration-processor": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "compileClasspath": { + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0" + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "jakarta.servlet:jakarta.servlet-api": { + "locked": "6.0.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "com.graphql-java:java-dataloader", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-webmvc": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + } + }, + "jmh": { + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.0", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm" + ] + } + }, + "jmhAnnotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "jmhCompileClasspath": { + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0" + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "jakarta.servlet:jakarta.servlet-api": { + "locked": "6.0.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.0", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "com.graphql-java:java-dataloader", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-webmvc": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + } + }, + "jmhRuntimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.apollographql.federation:federation-graphql-java-support": { + "locked": "4.4.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.github.mifmif:generex": { + "locked": "1.0.2", + "transitive": [ + "net.datafaker:datafaker" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.google.protobuf:protobuf-java": { + "locked": "3.25.2", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "dk.brics.automaton:automaton": { + "locked": "1.11-8", + "transitive": [ + "com.github.mifmif:generex" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0", + "transitive": [ + "org.springframework.graphql:spring-graphql" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "io.projectreactor.kotlin:reactor-kotlin-extensions": { + "locked": "1.2.2", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.kotlin:reactor-kotlin-extensions", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "junit:junit": { + "locked": "4.13.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.datafaker:datafaker": { + "locked": "2.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-mocking" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "net.sf.jopt-simple:jopt-simple": { + "locked": "5.0.4", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.commons:commons-lang3": { + "locked": "3.13.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.commons:commons-math3": { + "locked": "3.6.1", + "transitive": [ + "org.openjdk.jmh:jmh-core" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-core": { + "locked": "10.1.19", + "transitive": [ + "org.apache.tomcat.embed:tomcat-embed-websocket", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-el": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-websocket": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.hamcrest:hamcrest-core", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest-core": { + "locked": "2.2", + "transitive": [ + "junit:junit", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-engine": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-engine": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core" + ] + }, + "org.openjdk.jmh:jmh-core": { + "locked": "1.37", + "transitive": [ + "org.openjdk.jmh:jmh-generator-annprocess", + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode", + "org.openjdk.jmh:jmh-generator-reflection" + ] + }, + "org.openjdk.jmh:jmh-generator-annprocess": { + "locked": "1.37" + }, + "org.openjdk.jmh:jmh-generator-asm": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.openjdk.jmh:jmh-generator-bytecode": { + "locked": "1.36" + }, + "org.openjdk.jmh:jmh-generator-reflection": { + "locked": "1.36", + "transitive": [ + "org.openjdk.jmh:jmh-generator-asm", + "org.openjdk.jmh:jmh-generator-bytecode" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart", + "org.openjdk.jmh:jmh-generator-asm" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java", + "com.graphql-java:java-dataloader", + "com.jayway.jsonpath:json-path", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-tomcat": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-web": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-webmvc": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "net.datafaker:datafaker", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "kotlinBuildToolsApiClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-build-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-runner" + ] + }, + "org.jetbrains.kotlin:kotlin-build-tools-api": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-build-tools-impl" + ] + }, + "org.jetbrains.kotlin:kotlin-build-tools-impl": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-build-tools-impl", + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-compiler-runner": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-build-tools-impl" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-client": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-build-tools-impl", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-runner", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathJmh": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathMain": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinCompilerPluginClasspathTest": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-scripting-common", + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable", + "org.jetbrains.kotlin:kotlin-scripting-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinKlibCommonizerClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.intellij.deps:trove4j": { + "locked": "1.0.20200330", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-compiler-embeddable" + ] + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-script-runtime": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-compiler-embeddable", + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "kotlinNativeCompilerPluginClasspath": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "nebulaRecommenderBom": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "runtimeClasspath": { + "com.apollographql.federation:federation-graphql-java-support": { + "locked": "4.4.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin" + ] + }, + "com.github.mifmif:generex": { + "locked": "1.0.2", + "transitive": [ + "net.datafaker:datafaker" + ] + }, + "com.google.protobuf:protobuf-java": { + "locked": "3.25.2", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "dk.brics.automaton:automaton": { + "locked": "1.11-8", + "transitive": [ + "com.github.mifmif:generex" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0", + "transitive": [ + "org.springframework.graphql:spring-graphql" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.projectreactor.kotlin:reactor-kotlin-extensions": { + "locked": "1.2.2", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.kotlin:reactor-kotlin-extensions", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "net.datafaker:datafaker": { + "locked": "2.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-mocking" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java", + "com.graphql-java:java-dataloader", + "com.jayway.jsonpath:json-path", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-web" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "net.datafaker:datafaker", + "org.springframework.boot:spring-boot-dependencies" + ] + } + }, + "testAnnotationProcessor": { + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4" + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + } + }, + "testCompileClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0" + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-core": { + "locked": "10.1.19", + "transitive": [ + "org.apache.tomcat.embed:tomcat-embed-websocket", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-el": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-websocket": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apiguardian:apiguardian-api": { + "locked": "1.1.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "13.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.graphql-java:java-dataloader", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-tomcat": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-web": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-webmvc": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + }, + "testRuntimeClasspath": { + "ch.qos.logback:logback-classic": { + "locked": "1.4.14", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "ch.qos.logback:logback-core": { + "locked": "1.4.14", + "transitive": [ + "ch.qos.logback:logback-classic", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.apollographql.federation:federation-graphql-java-support": { + "locked": "4.4.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.fasterxml.jackson.core:jackson-annotations": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-core": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.core:jackson-databind": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names", + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson.module:jackson-module-kotlin": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.fasterxml.jackson.module:jackson-module-parameter-names": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson:jackson-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json" + ] + }, + "com.fasterxml.jackson:jackson-bom": { + "locked": "2.15.4", + "transitive": [ + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "com.fasterxml.jackson.datatype:jackson-datatype-jdk8", + "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.fasterxml.jackson.module:jackson-module-parameter-names" + ] + }, + "com.github.ben-manes.caffeine:caffeine": { + "locked": "3.1.8", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "com.github.mifmif:generex": { + "locked": "1.0.2", + "transitive": [ + "net.datafaker:datafaker" + ] + }, + "com.google.errorprone:error_prone_annotations": { + "locked": "2.21.1", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "com.google.protobuf:protobuf-java": { + "locked": "3.25.2", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support" + ] + }, + "com.graphql-java:graphql-java": { + "locked": "21.5", + "transitive": [ + "com.apollographql.federation:federation-graphql-java-support", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-error-types", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql" + ] + }, + "com.graphql-java:java-dataloader": { + "locked": "3.2.2", + "transitive": [ + "com.graphql-java:graphql-java", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.jayway.jsonpath:json-path": { + "locked": "2.9.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-mocking": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-platform": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-error-types" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-reactive": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform" + ] + }, + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure" + ] + }, + "com.netflix.graphql.dgs:graphql-error-types": { + "project": true, + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-platform", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc" + ] + }, + "com.vaadin.external.google:android-json": { + "locked": "0.0.20131108.vaadin1", + "transitive": [ + "org.skyscreamer:jsonassert" + ] + }, + "dk.brics.automaton:automaton": { + "locked": "1.11-8", + "transitive": [ + "com.github.mifmif:generex" + ] + }, + "io.micrometer:context-propagation": { + "locked": "1.1.0", + "transitive": [ + "org.springframework.graphql:spring-graphql" + ] + }, + "io.micrometer:micrometer-commons": { + "locked": "1.12.3", + "transitive": [ + "io.micrometer:micrometer-observation", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.micrometer:micrometer-observation": { + "locked": "1.12.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-web" + ] + }, + "io.mockk:mockk": { + "locked": "1.13.10" + }, + "io.mockk:mockk-agent": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-agent-api-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-api" + ] + }, + "io.mockk:mockk-agent-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent" + ] + }, + "io.mockk:mockk-core": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-core-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-core" + ] + }, + "io.mockk:mockk-dsl": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-jvm" + ] + }, + "io.mockk:mockk-dsl-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk-dsl" + ] + }, + "io.mockk:mockk-jvm": { + "locked": "1.13.10", + "transitive": [ + "io.mockk:mockk" + ] + }, + "io.projectreactor.kotlin:reactor-kotlin-extensions": { + "locked": "1.2.2", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "io.projectreactor:reactor-core": { + "locked": "3.6.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "io.projectreactor.kotlin:reactor-kotlin-extensions", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webflux" + ] + }, + "jakarta.activation:jakarta.activation-api": { + "locked": "2.1.2", + "transitive": [ + "jakarta.xml.bind:jakarta.xml.bind-api", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "jakarta.annotation:jakarta.annotation-api": { + "locked": "2.1.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "jakarta.xml.bind:jakarta.xml.bind-api": { + "locked": "4.0.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "junit:junit": { + "locked": "4.13.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.assertj:assertj-core", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.bytebuddy:byte-buddy-agent": { + "locked": "1.14.12", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "net.datafaker:datafaker": { + "locked": "2.1.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-mocking" + ] + }, + "net.minidev:accessors-smart": { + "locked": "2.5.0", + "transitive": [ + "net.minidev:json-smart" + ] + }, + "net.minidev:json-smart": { + "locked": "2.5.0", + "transitive": [ + "com.jayway.jsonpath:json-path", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.apache.commons:commons-lang3": { + "locked": "3.13.0", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-api": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.apache.logging.log4j:log4j-to-slf4j": { + "locked": "2.23.1", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-platform", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-core": { + "locked": "10.1.19", + "transitive": [ + "org.apache.tomcat.embed:tomcat-embed-websocket", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-el": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.apache.tomcat.embed:tomcat-embed-websocket": { + "locked": "10.1.19", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-tomcat" + ] + }, + "org.assertj:assertj-core": { + "locked": "3.24.2", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.awaitility:awaitility": { + "locked": "4.2.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.checkerframework:checker-qual": { + "locked": "3.37.0", + "transitive": [ + "com.github.ben-manes.caffeine:caffeine" + ] + }, + "org.hamcrest:hamcrest": { + "locked": "2.2", + "transitive": [ + "org.awaitility:awaitility", + "org.hamcrest:hamcrest-core", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.hamcrest:hamcrest-core": { + "locked": "2.2", + "transitive": [ + "junit:junit", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-bom": { + "locked": "1.9.23" + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "locked": "1.9.23", + "transitive": [ + "com.fasterxml.jackson.module:jackson-module-kotlin", + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib": { + "locked": "1.9.23", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "com.netflix.graphql.dgs:graphql-error-types", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-reflect", + "org.jetbrains.kotlin:kotlin-stdlib-common", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-common": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7": { + "locked": "1.9.23", + "transitive": [ + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8": { + "locked": "1.9.23", + "transitive": [ + "io.mockk:mockk-agent-api-jvm", + "io.mockk:mockk-agent-jvm", + "io.mockk:mockk-core-jvm", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlin:kotlin-bom", + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom": { + "locked": "1.7.3", + "transitive": [ + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-reactive", + "io.mockk:mockk-dsl-jvm", + "io.mockk:mockk-jvm", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-core", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive": { + "locked": "1.7.3", + "transitive": [ + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-reactor": { + "locked": "1.7.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.jetbrains.kotlinx:kotlinx-coroutines-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.jetbrains:annotations": { + "locked": "23.0.0", + "transitive": [ + "org.jetbrains.kotlin:kotlin-stdlib", + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" + ] + }, + "org.junit.jupiter:junit-jupiter": { + "locked": "5.10.2", + "transitive": [ + "io.mockk:mockk-jvm", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.junit.jupiter:junit-jupiter-api": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit:junit-bom", + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-engine": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.jupiter:junit-jupiter-params": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-commons": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit.platform:junit-platform-engine": { + "locked": "1.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter-engine", + "org.junit:junit-bom", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.junit:junit-bom": { + "locked": "5.10.2", + "transitive": [ + "org.junit.jupiter:junit-jupiter", + "org.junit.jupiter:junit-jupiter-api", + "org.junit.jupiter:junit-jupiter-engine", + "org.junit.jupiter:junit-jupiter-params", + "org.junit.platform:junit-platform-commons", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.mockito:mockito-core": { + "locked": "5.7.0", + "transitive": [ + "org.mockito:mockito-junit-jupiter", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.mockito:mockito-junit-jupiter": { + "locked": "5.7.0", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.objenesis:objenesis": { + "locked": "3.3", + "transitive": [ + "io.mockk:mockk-agent-jvm", + "org.mockito:mockito-core" + ] + }, + "org.opentest4j:opentest4j": { + "locked": "1.3.0", + "transitive": [ + "org.junit.jupiter:junit-jupiter-api", + "org.junit.platform:junit-platform-engine" + ] + }, + "org.ow2.asm:asm": { + "locked": "9.3", + "transitive": [ + "net.minidev:accessors-smart" + ] + }, + "org.reactivestreams:reactive-streams": { + "locked": "1.0.4", + "transitive": [ + "com.graphql-java:graphql-java", + "io.projectreactor:reactor-core", + "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.skyscreamer:jsonassert": { + "locked": "1.5.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.slf4j:jul-to-slf4j": { + "locked": "2.0.12", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-logging" + ] + }, + "org.slf4j:slf4j-api": { + "locked": "2.0.12", + "transitive": [ + "ch.qos.logback:logback-classic", + "com.apollographql.federation:federation-graphql-java-support", + "com.graphql-java:graphql-java", + "com.graphql-java:java-dataloader", + "com.jayway.jsonpath:json-path", + "com.netflix.graphql.dgs:graphql-dgs-mocking", + "org.apache.logging.log4j:log4j-to-slf4j", + "org.slf4j:jul-to-slf4j", + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-dependencies": { + "locked": "3.2.3" + }, + "org.springframework.boot:spring-boot-starter": { + "locked": "3.2.3", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-graphql": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-json": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-logging": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + }, + "org.springframework.boot:spring-boot-starter-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-starter-tomcat": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.springframework.boot:spring-boot-starter-web": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework.boot:spring-boot-test": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework.boot:spring-boot-test-autoconfigure" + ] + }, + "org.springframework.boot:spring-boot-test-autoconfigure": { + "locked": "3.2.3", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework.cloud:spring-cloud-dependencies": { + "locked": "2023.0.1" + }, + "org.springframework.graphql:spring-graphql": { + "locked": "1.2.6", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-graphql" + ] + }, + "org.springframework:spring-aop": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-beans": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-aop", + "org.springframework:spring-context", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-context": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.graphql:spring-graphql", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-core": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter", + "org.springframework.boot:spring-boot-starter-test", + "org.springframework:spring-aop", + "org.springframework:spring-beans", + "org.springframework:spring-context", + "org.springframework:spring-expression", + "org.springframework:spring-test", + "org.springframework:spring-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-expression": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-context", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-jcl": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework:spring-core" + ] + }, + "org.springframework:spring-test": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.springframework:spring-web": { + "locked": "6.1.4", + "transitive": [ + "com.netflix.graphql.dgs:graphql-dgs", + "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", + "com.netflix.graphql.dgs:graphql-dgs-spring-webmvc", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-json", + "org.springframework.boot:spring-boot-starter-web", + "org.springframework:spring-webflux", + "org.springframework:spring-webmvc" + ] + }, + "org.springframework:spring-webflux": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies" + ] + }, + "org.springframework:spring-webmvc": { + "locked": "6.1.4", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-web" + ] + }, + "org.xmlunit:xmlunit-core": { + "locked": "2.9.1", + "transitive": [ + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter-test" + ] + }, + "org.yaml:snakeyaml": { + "locked": "2.2", + "transitive": [ + "net.datafaker:datafaker", + "org.springframework.boot:spring-boot-dependencies", + "org.springframework.boot:spring-boot-starter" + ] + } + } +} \ No newline at end of file diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/DgsGraphQLSourceBuilder.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/DgsGraphQLSourceBuilder.kt new file mode 100644 index 000000000..a1301627d --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/DgsGraphQLSourceBuilder.kt @@ -0,0 +1,132 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql + +import com.netflix.graphql.dgs.internal.DataFetcherReference +import com.netflix.graphql.dgs.internal.DgsSchemaProvider +import com.netflix.graphql.dgs.internal.SchemaProviderResult +import graphql.schema.* +import graphql.schema.idl.RuntimeWiring +import graphql.schema.idl.TypeDefinitionRegistry +import org.springframework.core.ResolvableType +import org.springframework.core.io.Resource +import org.springframework.graphql.execution.* +import org.springframework.graphql.execution.GraphQlSource.SchemaResourceBuilder +import org.springframework.lang.Nullable +import java.util.function.BiFunction +import java.util.function.Consumer + +class DgsGraphQLSourceBuilder(private val dgsSchemaProvider: DgsSchemaProvider) : AbstractGraphQlSourceBuilder(), SchemaResourceBuilder { + private val typeDefinitionConfigurers = mutableListOf() + private val runtimeWiringConfigurers = mutableListOf() + + private val schemaResources: Set = LinkedHashSet() + + @Nullable + private var typeResolver: TypeResolver? = null + + @Nullable + private var schemaReportConsumer: Consumer? = null + + override fun initGraphQlSchema(): GraphQLSchema { + val schema = dgsSchemaProvider.schema(schemaResources = schemaResources) + setupSchemaReporter(schema) + return schema.graphQLSchema + } + + override fun schemaResources(vararg resources: Resource?): SchemaResourceBuilder { + schemaResources.plus(listOf(*resources)) + return this + } + + override fun configureTypeDefinitions(configurer: TypeDefinitionConfigurer): SchemaResourceBuilder { + this.typeDefinitionConfigurers.add(configurer) + return this + } + + override fun configureRuntimeWiring(configurer: RuntimeWiringConfigurer): SchemaResourceBuilder { + this.runtimeWiringConfigurers.add(configurer) + return this + } + + override fun defaultTypeResolver(typeResolver: TypeResolver): SchemaResourceBuilder { + this.typeResolver = typeResolver + return this + } + + override fun inspectSchemaMappings(reportConsumer: Consumer): SchemaResourceBuilder { + this.schemaReportConsumer = reportConsumer + return this + } + + override fun schemaFactory(schemaFactory: BiFunction): SchemaResourceBuilder { + throw IllegalStateException("Overriding the schema factory is not supported in this builder") + } + + class SpringGraphQlDataFetcher(private val dataFetcher: DataFetcherReference) : SelfDescribingDataFetcher { + override fun get(environment: DataFetchingEnvironment?): Any { + TODO("Not yet implemented") + } + override fun getDescription(): String { + return dataFetcher.field + } + override fun getReturnType(): ResolvableType { + return ResolvableType.forMethodReturnType(dataFetcher.method) + } + } + + private fun wrapDataFetchers(dataFetchers: List): Map>> { + val wrappedDataFetchers: MutableMap>> = mutableMapOf() + dataFetchers.forEach { + val wrappedDataFetcher = SpringGraphQlDataFetcher(it) + if (!wrappedDataFetchers.containsKey(it.parentType)) { + wrappedDataFetchers[it.parentType] = mutableMapOf() + } + wrappedDataFetchers[it.parentType]!![it.field] = wrappedDataFetcher + } + + return wrappedDataFetchers + } + + private fun setupSchemaReporter(schema: SchemaProviderResult) { + // wrap DGS data fetchers in a SelfDescribingDataFetcher for schema reporting + val selfDescribingDgsDataFetchers = wrapDataFetchers(dgsSchemaProvider.resolvedDataFetchers()) + + val mergedDataFetchers = mutableMapOf>>() + mergedDataFetchers.putAll(selfDescribingDgsDataFetchers) + + val springGraphQLDataFetchers = schema.runtimeWiring.dataFetchers + springGraphQLDataFetchers.keys.forEach { + if (selfDescribingDgsDataFetchers.containsKey(it)) { + val dgsDataFetchersForRootField = selfDescribingDgsDataFetchers[it]!! + val springGraphQLDataFetchersForRootField = (springGraphQLDataFetchers[it] as Map>) + // Merge the spring data fetcher map with dgs data fetchers + // e.g For each entry, merge each Pair(Query, mapOf(Pair(movies, movieDgsDataFetcher)) in DGS with Spring Graphql's map of Pair(Query, mapOf(greetings, greetingSpringDataFetcher) + // to get Pair(Query, mapOf(Pair(movies, moviesDgsDataFetcher), Pair(greetings, greetingSpringDataFetcher)...)) + mergedDataFetchers[it] = dgsDataFetchersForRootField + springGraphQLDataFetchersForRootField + } else { + mergedDataFetchers[it] = springGraphQLDataFetchers[it] as Map> + } + } + if (schemaReportConsumer != null) { + configureGraphQl { + val report = SchemaMappingInspector.inspect(schema.graphQLSchema, mergedDataFetchers) + schemaReportConsumer!!.accept(report) + } + } + } +} diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/ReloadableGraphQLSource.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/ReloadableGraphQLSource.kt new file mode 100644 index 000000000..432931908 --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/ReloadableGraphQLSource.kt @@ -0,0 +1,52 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql + +import com.netflix.graphql.dgs.internal.DefaultDgsQueryExecutor +import graphql.GraphQL +import graphql.schema.GraphQLSchema +import org.slf4j.LoggerFactory +import org.springframework.graphql.execution.GraphQlSource + +class ReloadableGraphQLSource( + private var graphQlSourceBuilder: GraphQlSource.Builder<*>, + private val reloadSchemaIndicator: DefaultDgsQueryExecutor.ReloadSchemaIndicator +) : GraphQlSource { + + private var graphQlSource: GraphQlSource? = null + + override fun graphQl(): GraphQL { + return getSource().graphQl() + } + + override fun schema(): GraphQLSchema { + return getSource().schema() + } + + private fun getSource(): GraphQlSource { + if (graphQlSource == null || reloadSchemaIndicator.reloadSchema()) { + LOGGER.info("Rebuilding GraphQLSource") + graphQlSource = graphQlSourceBuilder.build() + } + + return graphQlSource!! + } + + companion object { + val LOGGER = LoggerFactory.getLogger(ReloadableGraphQLSource::class.java) + } +} diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/SpringGraphQLDgsQueryExecutor.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/SpringGraphQLDgsQueryExecutor.kt new file mode 100644 index 000000000..fdff921d5 --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/SpringGraphQLDgsQueryExecutor.kt @@ -0,0 +1,161 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql + +import com.jayway.jsonpath.DocumentContext +import com.jayway.jsonpath.JsonPath +import com.jayway.jsonpath.TypeRef +import com.jayway.jsonpath.spi.mapper.MappingException +import com.netflix.graphql.dgs.DgsQueryExecutor +import com.netflix.graphql.dgs.exceptions.DgsQueryExecutionDataExtractionException +import com.netflix.graphql.dgs.exceptions.QueryException +import com.netflix.graphql.dgs.internal.BaseDgsQueryExecutor +import com.netflix.graphql.dgs.internal.DefaultDgsGraphQLContextBuilder +import com.netflix.graphql.dgs.internal.DgsDataLoaderProvider +import com.netflix.graphql.dgs.internal.DgsQueryExecutorRequestCustomizer +import com.netflix.graphql.dgs.internal.DgsWebMvcRequestData +import graphql.ExecutionResult +import graphql.GraphQLContext +import graphql.GraphQLError +import org.springframework.graphql.ExecutionGraphQlService +import org.springframework.graphql.support.DefaultExecutionGraphQlRequest +import org.springframework.http.HttpHeaders +import org.springframework.web.context.request.RequestContextHolder +import org.springframework.web.context.request.ServletWebRequest +import org.springframework.web.context.request.WebRequest +import java.util.concurrent.CompletableFuture + +class SpringGraphQLDgsQueryExecutor(val executionService: ExecutionGraphQlService, private val dgsContextBuilder: DefaultDgsGraphQLContextBuilder, private val dgsDataLoaderProvider: DgsDataLoaderProvider, private val requestCustomizer: DgsQueryExecutorRequestCustomizer = DgsQueryExecutorRequestCustomizer.DEFAULT_REQUEST_CUSTOMIZER) : DgsQueryExecutor { + + override fun execute( + query: String, + variables: Map, + extensions: Map?, + headers: HttpHeaders?, + operationName: String?, + webRequest: WebRequest? + ): ExecutionResult { + val request = DefaultExecutionGraphQlRequest( + query, + operationName, + variables, + extensions, + "", + null + ) + + val httpRequest = requestCustomizer.apply(webRequest ?: RequestContextHolder.getRequestAttributes() as? WebRequest, headers) + val dgsContext = dgsContextBuilder.build(DgsWebMvcRequestData(request.extensions, headers, httpRequest)) + val graphQLContextFuture = CompletableFuture() + val dataLoaderRegistry = dgsDataLoaderProvider.buildRegistryWithContextSupplier { graphQLContextFuture.get() } + + request.configureExecutionInput { _, builder -> + builder + .context(dgsContext) + .graphQLContext(dgsContext) + .dataLoaderRegistry(dataLoaderRegistry).build() + } + + graphQLContextFuture.complete(request.toExecutionInput().graphQLContext) + + val execute = executionService.execute( + request + ).block() ?: throw IllegalStateException("Unexpected null response from Spring GraphQL client") + + return ExecutionResult.newExecutionResult() + .data(execute.getData()) + .errors(execute.errors.map { GraphQLError.newError().message(it.message).build() }) + .build() + } + + override fun executeAndExtractJsonPath( + query: String, + jsonPath: String, + variables: MutableMap + ): T { + return JsonPath.read(getJsonResult(query, variables), jsonPath) + } + + override fun executeAndExtractJsonPath(query: String, jsonPath: String, headers: HttpHeaders): T { + return JsonPath.read(getJsonResult(query, emptyMap(), headers), jsonPath) + } + + override fun executeAndExtractJsonPath( + query: String, + jsonPath: String, + servletWebRequest: ServletWebRequest + ): T { + val httpHeaders = HttpHeaders() + servletWebRequest.headerNames.forEach { name -> + httpHeaders.addAll(name, servletWebRequest.getHeaderValues(name).orEmpty().toList()) + } + + return JsonPath.read(getJsonResult(query, emptyMap(), httpHeaders, servletWebRequest), jsonPath) + } + + override fun executeAndGetDocumentContext(query: String, variables: MutableMap): DocumentContext { + return BaseDgsQueryExecutor.parseContext.parse(getJsonResult(query, variables)) + } + + override fun executeAndGetDocumentContext( + query: String, + variables: MutableMap, + headers: HttpHeaders? + ): DocumentContext { + return BaseDgsQueryExecutor.parseContext.parse(getJsonResult(query, variables, headers)) + } + + override fun executeAndExtractJsonPathAsObject( + query: String, + jsonPath: String, + variables: MutableMap, + clazz: Class, + headers: HttpHeaders? + ): T { + val jsonResult = getJsonResult(query, variables, headers) + return try { + BaseDgsQueryExecutor.parseContext.parse(jsonResult).read(jsonPath, clazz) + } catch (ex: MappingException) { + throw DgsQueryExecutionDataExtractionException(ex, jsonResult, jsonPath, clazz) + } + } + + override fun executeAndExtractJsonPathAsObject( + query: String, + jsonPath: String, + variables: MutableMap, + typeRef: TypeRef, + headers: HttpHeaders? + ): T { + val jsonResult = getJsonResult(query, variables, headers) + return try { + BaseDgsQueryExecutor.parseContext.parse(jsonResult).read(jsonPath, typeRef) + } catch (ex: MappingException) { + throw DgsQueryExecutionDataExtractionException(ex, jsonResult, jsonPath, typeRef) + } + } + + private fun getJsonResult(query: String, variables: Map, headers: HttpHeaders? = null, servletWebRequest: ServletWebRequest? = null): String { + val executionResult = execute(query, variables, null, headers, null, servletWebRequest) + + if (executionResult.errors.size > 0) { + throw QueryException(executionResult.errors) + } + + return BaseDgsQueryExecutor.objectMapper.writeValueAsString(executionResult.toSpecification()) + } +} diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/SpringGraphQLDgsReactiveQueryExecutor.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/SpringGraphQLDgsReactiveQueryExecutor.kt new file mode 100644 index 000000000..96d7c3b9f --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/SpringGraphQLDgsReactiveQueryExecutor.kt @@ -0,0 +1,147 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql + +import com.jayway.jsonpath.DocumentContext +import com.jayway.jsonpath.JsonPath +import com.jayway.jsonpath.TypeRef +import com.jayway.jsonpath.spi.mapper.MappingException +import com.netflix.graphql.dgs.exceptions.DgsQueryExecutionDataExtractionException +import com.netflix.graphql.dgs.exceptions.QueryException +import com.netflix.graphql.dgs.internal.BaseDgsQueryExecutor +import com.netflix.graphql.dgs.internal.DgsDataLoaderProvider +import com.netflix.graphql.dgs.reactive.DgsReactiveQueryExecutor +import com.netflix.graphql.dgs.reactive.internal.DefaultDgsReactiveGraphQLContextBuilder +import com.netflix.graphql.dgs.reactive.internal.DgsReactiveRequestData +import graphql.ExecutionResult +import graphql.GraphQLContext +import graphql.GraphQLError +import org.intellij.lang.annotations.Language +import org.springframework.graphql.ExecutionGraphQlService +import org.springframework.graphql.support.DefaultExecutionGraphQlRequest +import org.springframework.http.HttpHeaders +import org.springframework.web.reactive.function.server.ServerRequest +import reactor.core.publisher.Mono +import java.util.concurrent.CompletableFuture + +class SpringGraphQLDgsReactiveQueryExecutor( + val executionService: ExecutionGraphQlService, + private val dgsContextBuilder: DefaultDgsReactiveGraphQLContextBuilder, + private val dgsDataLoaderProvider: DgsDataLoaderProvider +) : DgsReactiveQueryExecutor { + override fun execute( + query: String?, + variables: Map?, + extensions: Map?, + headers: HttpHeaders?, + operationName: String?, + serverRequest: org.springframework.web.reactive.function.server.ServerRequest? + ): Mono { + val request = DefaultExecutionGraphQlRequest( + query, + operationName, + variables, + extensions, + "", + null + ) + + val graphQLContextFuture = CompletableFuture() + val dataLoaderRegistry = dgsDataLoaderProvider.buildRegistryWithContextSupplier { graphQLContextFuture.get() } + return dgsContextBuilder.build(DgsReactiveRequestData(request.extensions, headers, serverRequest)) + .flatMap { context -> + request.configureExecutionInput { _, builder -> + builder + .context(context) + .graphQLContext(context) + .dataLoaderRegistry(dataLoaderRegistry).build() + } + + graphQLContextFuture.complete(request.toExecutionInput().graphQLContext) + + executionService.execute( + request + ) ?: throw IllegalStateException("Unexpected null response from Spring GraphQL client") + }.map { execute -> + ExecutionResult.newExecutionResult() + .data(execute.getData()) + .errors(execute.errors.map { GraphQLError.newError().message(it.message).build() }) + .build() + } + } + + override fun executeAndExtractJsonPath( + @Language("graphql") query: String, + jsonPath: String, + variables: Map?, + serverRequest: ServerRequest? + ): Mono { + return getJsonResult(query, variables, serverRequest).map { JsonPath.read(it, jsonPath) } + } + + override fun executeAndGetDocumentContext( + @Language("graphql") query: String, + variables: Map + ): Mono { + return getJsonResult(query, variables, null).map(BaseDgsQueryExecutor.parseContext::parse) + } + + override fun executeAndExtractJsonPathAsObject( + @Language("graphql") query: String, + jsonPath: String, + variables: Map, + clazz: Class + ): Mono { + return getJsonResult(query, variables, null) + .map(BaseDgsQueryExecutor.parseContext::parse) + .map { + try { + it.read(jsonPath, clazz) + } catch (ex: MappingException) { + throw DgsQueryExecutionDataExtractionException(ex, it.jsonString(), jsonPath, clazz) + } + } + } + + override fun executeAndExtractJsonPathAsObject( + @Language("graphql") query: String, + jsonPath: String, + variables: Map, + typeRef: TypeRef + ): Mono { + return getJsonResult(query, variables, null) + .map(BaseDgsQueryExecutor.parseContext::parse) + .map { + try { + it.read(jsonPath, typeRef) + } catch (ex: MappingException) { + throw DgsQueryExecutionDataExtractionException(ex, it.jsonString(), jsonPath, typeRef) + } + } + } + + private fun getJsonResult(@Language("graphql") query: String, variables: Map?, serverRequest: ServerRequest?): Mono { + val httpHeaders = serverRequest?.headers()?.asHttpHeaders() + return execute(query, variables, null, httpHeaders, null, serverRequest).map { executionResult -> + if (executionResult.errors.size > 0) { + throw QueryException(executionResult.errors) + } + + BaseDgsQueryExecutor.objectMapper.writeValueAsString(executionResult.toSpecification()) + } + } +} diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLAutoConfiguration.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLAutoConfiguration.kt new file mode 100644 index 000000000..db601f380 --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLAutoConfiguration.kt @@ -0,0 +1,343 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql.autoconfig + +import com.netflix.graphql.dgs.DgsComponent +import com.netflix.graphql.dgs.DgsQueryExecutor +import com.netflix.graphql.dgs.DgsRuntimeWiring +import com.netflix.graphql.dgs.DgsTypeDefinitionRegistry +import com.netflix.graphql.dgs.internal.* +import com.netflix.graphql.dgs.internal.method.ArgumentResolver +import com.netflix.graphql.dgs.mvc.internal.method.HandlerMethodArgumentResolverAdapter +import com.netflix.graphql.dgs.reactive.DgsReactiveCustomContextBuilderWithRequest +import com.netflix.graphql.dgs.reactive.DgsReactiveQueryExecutor +import com.netflix.graphql.dgs.reactive.internal.DefaultDgsReactiveGraphQLContextBuilder +import com.netflix.graphql.dgs.reactive.internal.method.SyncHandlerMethodArgumentResolverAdapter +import com.netflix.graphql.dgs.springgraphql.SpringGraphQLDgsQueryExecutor +import com.netflix.graphql.dgs.springgraphql.SpringGraphQLDgsReactiveQueryExecutor +import com.netflix.graphql.dgs.springgraphql.webflux.DgsWebFluxGraphQLInterceptor +import com.netflix.graphql.dgs.springgraphql.webmvc.DgsWebMvcGraphQLInterceptor +import graphql.execution.AsyncExecutionStrategy +import graphql.execution.AsyncSerialExecutionStrategy +import graphql.execution.DataFetcherExceptionHandler +import graphql.execution.ExecutionStrategy +import graphql.execution.preparsed.PreparsedDocumentProvider +import graphql.schema.idl.RuntimeWiring +import graphql.schema.idl.TypeDefinitionRegistry +import org.reactivestreams.Publisher +import org.springframework.beans.factory.ObjectProvider +import org.springframework.beans.factory.annotation.Qualifier +import org.springframework.beans.factory.config.ConfigurableBeanFactory +import org.springframework.boot.autoconfigure.AutoConfiguration +import org.springframework.boot.autoconfigure.AutoConfigureBefore +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty +import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication +import org.springframework.boot.autoconfigure.graphql.GraphQlSourceBuilderCustomizer +import org.springframework.boot.context.properties.EnableConfigurationProperties +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.core.ReactiveAdapterRegistry +import org.springframework.core.env.Environment +import org.springframework.graphql.ExecutionGraphQlService +import org.springframework.graphql.execution.* +import org.springframework.web.bind.support.WebDataBinderFactory +import org.springframework.web.filter.reactive.ServerWebExchangeContextFilter +import org.springframework.web.method.annotation.RequestHeaderMapMethodArgumentResolver +import org.springframework.web.method.annotation.RequestHeaderMethodArgumentResolver +import org.springframework.web.method.annotation.RequestParamMapMethodArgumentResolver +import org.springframework.web.method.annotation.RequestParamMethodArgumentResolver +import org.springframework.web.reactive.BindingContext +import org.springframework.web.reactive.function.server.ServerRequest +import org.springframework.web.reactive.result.method.annotation.CookieValueMethodArgumentResolver +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter +import org.springframework.web.servlet.mvc.method.annotation.ServletCookieValueMethodArgumentResolver +import org.springframework.web.servlet.mvc.method.annotation.ServletRequestDataBinderFactory +import java.util.* + +/** + * Framework auto configuration based on open source Spring only, without Netflix integrations. + * This does NOT have logging, tracing, metrics and security integration. + */ +@Suppress("SpringJavaInjectionPointsAutowiringInspection") +@AutoConfiguration +@AutoConfigureBefore(name = ["com.netflix.graphql.dgs.autoconfig.DgsAutoConfiguration"]) +@EnableConfigurationProperties(DgsSpringGraphQLConfigurationProperties::class) +open class DgsSpringGraphQLAutoConfiguration { + @Bean + @DgsComponent + open fun dgsRuntimeWiringConfigurerBridge(configurers: List): DgsRuntimeWiringConfigurerBridge { + return DgsRuntimeWiringConfigurerBridge(configurers) + } + + class DgsRuntimeWiringConfigurerBridge(private val configurers: List) { + @DgsRuntimeWiring + fun runtimeWiring(builder: RuntimeWiring.Builder): RuntimeWiring.Builder { + configurers.forEach { + it.configure(builder) + } + return builder + } + } + + @Bean + @ConditionalOnProperty("dgs.springgraphql.pagination.enabled", havingValue = "true", matchIfMissing = true) + @DgsComponent + open fun dgsTypeDefinitionConfigurerBridge(environment: Environment): DgsTypeDefinitionConfigurerBridge { + return DgsTypeDefinitionConfigurerBridge() + } + + class DgsTypeDefinitionConfigurerBridge() { + @DgsTypeDefinitionRegistry + fun typeDefinitionRegistry(typeDefinitionRegistry: TypeDefinitionRegistry): TypeDefinitionRegistry { + val newTypeDefinitionRegistry = TypeDefinitionRegistry() + ConnectionTypeDefinitionConfigurer().configure(typeDefinitionRegistry) + return newTypeDefinitionRegistry + } + } + + @Bean + open fun sourceBuilderCustomizer( + preparsedDocumentProvider: Optional, + @Qualifier("query") providedQueryExecutionStrategy: Optional, + @Qualifier("mutation") providedMutationExecutionStrategy: Optional, + dataFetcherExceptionHandler: DataFetcherExceptionHandler + ): GraphQlSourceBuilderCustomizer { + val queryExecutionStrategy = + providedQueryExecutionStrategy.orElse(AsyncExecutionStrategy(dataFetcherExceptionHandler)) + val mutationExecutionStrategy = + providedMutationExecutionStrategy.orElse(AsyncSerialExecutionStrategy(dataFetcherExceptionHandler)) + + return GraphQlSourceBuilderCustomizer { builder -> + builder.configureGraphQl { graphQlBuilder -> + if (preparsedDocumentProvider.isPresent) { + graphQlBuilder + .preparsedDocumentProvider(preparsedDocumentProvider.get()) + .queryExecutionStrategy(queryExecutionStrategy) + .mutationExecutionStrategy(mutationExecutionStrategy) + } + } + } + } + + @Bean + open fun springGraphQLDgsQueryExecutor( + executionService: ExecutionGraphQlService, + dgsContextBuilder: DefaultDgsGraphQLContextBuilder, + dgsDataLoaderProvider: DgsDataLoaderProvider, + requestCustomizer: ObjectProvider + ): DgsQueryExecutor { + return SpringGraphQLDgsQueryExecutor( + executionService, + dgsContextBuilder, + dgsDataLoaderProvider, + requestCustomizer = requestCustomizer.getIfAvailable(DgsQueryExecutorRequestCustomizer::DEFAULT_REQUEST_CUSTOMIZER) + ) + } + + @Configuration(proxyBeanMethods = false) + @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) + open class WebMvcConfiguration( + private val dgsSpringGraphQLConfigurationProperties: DgsSpringGraphQLConfigurationProperties + ) { + @Bean + open fun dgsGraphQlInterceptor( + dgsDataLoaderProvider: DgsDataLoaderProvider, + dgsDefaultContextBuilder: DefaultDgsGraphQLContextBuilder + ): DgsWebMvcGraphQLInterceptor { + return DgsWebMvcGraphQLInterceptor( + dgsDataLoaderProvider, + dgsDefaultContextBuilder, + dgsSpringGraphQLConfigurationProperties + ) + } + } + + @Configuration(proxyBeanMethods = false) + @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) + open class WebMvcArgumentHandlerConfiguration { + + @Qualifier + private annotation class Dgs + + @Bean + @Dgs + open fun dgsWebDataBinderFactory(adapter: ObjectProvider): WebDataBinderFactory { + return ServletRequestDataBinderFactory(listOf(), adapter.ifAvailable?.webBindingInitializer) + } + + @Bean + open fun requestHeaderMapResolver(@Dgs dataBinderFactory: WebDataBinderFactory): ArgumentResolver { + return HandlerMethodArgumentResolverAdapter(RequestHeaderMapMethodArgumentResolver(), dataBinderFactory) + } + + @Bean + open fun requestHeaderResolver( + beanFactory: ConfigurableBeanFactory, + @Dgs dataBinderFactory: WebDataBinderFactory + ): ArgumentResolver { + return HandlerMethodArgumentResolverAdapter( + RequestHeaderMethodArgumentResolver(beanFactory), + dataBinderFactory + ) + } + + @Bean + open fun requestParamResolver(@Dgs dataBinderFactory: WebDataBinderFactory): ArgumentResolver { + return HandlerMethodArgumentResolverAdapter(RequestParamMethodArgumentResolver(false), dataBinderFactory) + } + + @Bean + open fun requestParamMapResolver(@Dgs dataBinderFactory: WebDataBinderFactory): ArgumentResolver { + return HandlerMethodArgumentResolverAdapter(RequestParamMapMethodArgumentResolver(), dataBinderFactory) + } + + @Bean + open fun cookieValueResolver( + beanFactory: ConfigurableBeanFactory, + @Dgs dataBinderFactory: WebDataBinderFactory + ): ArgumentResolver { + return HandlerMethodArgumentResolverAdapter( + ServletCookieValueMethodArgumentResolver(beanFactory), + dataBinderFactory + ) + } + } + + @Configuration(proxyBeanMethods = false) + @ConditionalOnClass(Publisher::class, ServerRequest::class) + open class ReactiveConfiguration { + @Bean + open fun springGraphQLDgsReactiveQueryExecutor( + executionService: ExecutionGraphQlService, + dgsContextBuilder: DefaultDgsReactiveGraphQLContextBuilder, + dgsDataLoaderProvider: DgsDataLoaderProvider + ): DgsReactiveQueryExecutor { + return SpringGraphQLDgsReactiveQueryExecutor(executionService, dgsContextBuilder, dgsDataLoaderProvider) + } + + @Bean + @ConditionalOnMissingBean + open fun reactiveGraphQlContextBuilder( + dgsReactiveCustomContextBuilderWithRequest: Optional> + ): DefaultDgsReactiveGraphQLContextBuilder { + return DefaultDgsReactiveGraphQLContextBuilder(dgsReactiveCustomContextBuilderWithRequest) + } + + @Bean + open fun serverWebExchangeContextFilter(): ServerWebExchangeContextFilter { + return ServerWebExchangeContextFilter() + } + } + + @Configuration(proxyBeanMethods = false) + @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) + open class WebFluxConfiguration { + @Bean + open fun webFluxDgsGraphQLInterceptor( + dgsDataLoaderProvider: DgsDataLoaderProvider, + defaultDgsReactiveGraphQLContextBuilder: DefaultDgsReactiveGraphQLContextBuilder + ): DgsWebFluxGraphQLInterceptor { + return DgsWebFluxGraphQLInterceptor( + dgsDataLoaderProvider, + defaultDgsReactiveGraphQLContextBuilder + ) + } + } + + @Configuration(proxyBeanMethods = false) + @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) + open class WebFluxArgumentHandlerConfiguration { + @Qualifier + private annotation class Dgs + + @Dgs + @Bean + open fun dgsBindingContext(adapter: ObjectProvider): BindingContext { + return BindingContext(adapter.ifAvailable?.webBindingInitializer) + } + + @Bean + open fun cookieValueArgumentResolver( + beanFactory: ConfigurableBeanFactory, + registry: ReactiveAdapterRegistry, + @Dgs bindingContext: BindingContext + ): ArgumentResolver { + return SyncHandlerMethodArgumentResolverAdapter( + CookieValueMethodArgumentResolver(beanFactory, registry), + bindingContext + ) + } + + @Bean + open fun requestHeaderMapArgumentResolver( + registry: ReactiveAdapterRegistry, + @Dgs bindingContext: BindingContext + ): ArgumentResolver { + return SyncHandlerMethodArgumentResolverAdapter( + org.springframework.web.reactive.result.method.annotation.RequestHeaderMapMethodArgumentResolver( + registry + ), + bindingContext + ) + } + + @Bean + open fun requestHeaderArgumentResolver( + beanFactory: ConfigurableBeanFactory, + registry: ReactiveAdapterRegistry, + @Dgs bindingContext: BindingContext + ): ArgumentResolver { + return SyncHandlerMethodArgumentResolverAdapter( + org.springframework.web.reactive.result.method.annotation.RequestHeaderMethodArgumentResolver( + beanFactory, + registry + ), + bindingContext + ) + } + + @Bean + open fun requestParamArgumentResolver( + beanFactory: ConfigurableBeanFactory, + registry: ReactiveAdapterRegistry, + @Dgs bindingContext: BindingContext + ): ArgumentResolver { + return SyncHandlerMethodArgumentResolverAdapter( + org.springframework.web.reactive.result.method.annotation.RequestParamMethodArgumentResolver( + beanFactory, + registry, + false + ), + bindingContext + ) + } + + @Bean + open fun requestParamMapArgumentResolver( + beanFactory: ConfigurableBeanFactory, + registry: ReactiveAdapterRegistry, + @Dgs bindingContext: BindingContext + ): ArgumentResolver { + return SyncHandlerMethodArgumentResolverAdapter( + org.springframework.web.reactive.result.method.annotation.RequestParamMapMethodArgumentResolver(registry), + bindingContext + ) + } + } +} diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLConfigurationProperties.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLConfigurationProperties.kt new file mode 100644 index 000000000..c44e24b00 --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLConfigurationProperties.kt @@ -0,0 +1,33 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql.autoconfig + +import com.netflix.graphql.dgs.springgraphql.autoconfig.DgsSpringGraphQLConfigurationProperties.Companion.PREFIX +import org.springframework.boot.context.properties.ConfigurationProperties +import org.springframework.boot.context.properties.bind.DefaultValue + +@ConfigurationProperties(prefix = PREFIX) +data class DgsSpringGraphQLConfigurationProperties( + val webmvc: WebMvc = WebMvc(Asyncdispatch(false)) +) { + companion object { + const val PREFIX: String = "dgs.graphql.spring" + } + + data class WebMvc(val asyncdispatch: Asyncdispatch) + data class Asyncdispatch(@DefaultValue("false") val enabled: Boolean) +} diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLEnvironmentPostProcessor.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLEnvironmentPostProcessor.kt new file mode 100644 index 000000000..55460ac4d --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLEnvironmentPostProcessor.kt @@ -0,0 +1,57 @@ +/* + * Copyright 2023 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql.autoconfig + +import com.netflix.graphql.dgs.exceptions.InvalidDgsConfigurationException +import org.springframework.boot.SpringApplication +import org.springframework.boot.env.EnvironmentPostProcessor +import org.springframework.core.env.ConfigurableEnvironment +import org.springframework.core.env.MapPropertySource +import kotlin.collections.MutableMap +import kotlin.collections.mutableMapOf +import kotlin.collections.set + +class DgsSpringGraphQLEnvironmentPostProcessor : EnvironmentPostProcessor { + override fun postProcessEnvironment(environment: ConfigurableEnvironment, application: SpringApplication) { + val properties = mutableMapOf() + + properties["spring.graphql.graphiql.enabled"] = environment.getProperty("dgs.graphql.graphiql.enabled") ?: true + properties["spring.graphql.graphiql.path"] = environment.getProperty("dgs.graphql.graphiql.path") ?: "/graphiql" + properties["spring.graphql.websocket.connection-init-timeout"] = environment.getProperty("dgs.graphql.websocket.connection-init-timeout") ?: "10s" + + environment.getProperty("dgs.graphql.websocket.path")?.let { + properties["spring.graphql.websocket.path"] = environment.getProperty("dgs.graphql.websocket.path")!! + } + + environment.propertySources.addLast( + MapPropertySource( + "dgs-spring-graphql-defaults", + properties + ) + ) + } + + private fun defaultSchemaLocation(environment: ConfigurableEnvironment, properties: MutableMap) { + environment.getProperty("spring.graphql.schema.locations")?.let { + throw InvalidDgsConfigurationException("Do not set spring.graphql.schema.locations, instead use dgs.graphql.schema-locations") + } + + environment.getProperty("spring.graphql.schema.fileExtensions")?.let { + throw InvalidDgsConfigurationException("Do not set spring.graphql.schema.fileExtensions, instead use dgs.graphql.schema-locations") + } + } +} diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLSourceAutoConfiguration.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLSourceAutoConfiguration.kt new file mode 100644 index 000000000..1bcc1dba8 --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLSourceAutoConfiguration.kt @@ -0,0 +1,91 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql.autoconfig + +import com.netflix.graphql.dgs.internal.DefaultDgsQueryExecutor +import com.netflix.graphql.dgs.internal.DgsSchemaProvider +import com.netflix.graphql.dgs.springgraphql.DgsGraphQLSourceBuilder +import com.netflix.graphql.dgs.springgraphql.ReloadableGraphQLSource +import graphql.GraphQLError +import graphql.execution.DataFetcherExceptionHandler +import graphql.execution.DataFetcherExceptionHandlerParameters +import graphql.execution.instrumentation.Instrumentation +import graphql.schema.DataFetchingEnvironment +import org.apache.commons.logging.LogFactory +import org.springframework.beans.factory.ObjectProvider +import org.springframework.boot.autoconfigure.AutoConfiguration +import org.springframework.boot.autoconfigure.AutoConfigureAfter +import org.springframework.boot.autoconfigure.AutoConfigureBefore +import org.springframework.boot.autoconfigure.graphql.GraphQlProperties +import org.springframework.boot.autoconfigure.graphql.GraphQlSourceBuilderCustomizer +import org.springframework.context.annotation.Bean +import org.springframework.graphql.execution.* + +@AutoConfiguration +@AutoConfigureBefore(name = ["org.springframework.boot.autoconfigure.graphql.GraphQlAutoConfiguration"]) +@AutoConfigureAfter(name = ["com.netflix.graphql.dgs.autoconfig.DgsAutoConfiguration"]) +open class DgsSpringGraphQLSourceAutoConfiguration { + + private val logger = LogFactory.getLog(DgsSpringGraphQLAutoConfiguration::class.java) + + @Bean + open fun graphQlSource( + properties: GraphQlProperties, + dgsSchemaProvider: DgsSchemaProvider, + exceptionResolvers: ObjectProvider, + subscriptionExceptionResolvers: ObjectProvider, + instrumentations: ObjectProvider, + wiringConfigurers: ObjectProvider, + sourceCustomizers: ObjectProvider, + reloadSchemaIndicator: DefaultDgsQueryExecutor.ReloadSchemaIndicator, + defaultExceptionHandler: DataFetcherExceptionHandler + ): GraphQlSource { + val dataFetcherExceptionResolvers: MutableList = exceptionResolvers.orderedStream().toList().toMutableList() + dataFetcherExceptionResolvers.add((ExceptionHandlerResolverAdapter(defaultExceptionHandler))) + + val builder = DgsGraphQLSourceBuilder(dgsSchemaProvider) + .exceptionResolvers(dataFetcherExceptionResolvers) + .subscriptionExceptionResolvers(subscriptionExceptionResolvers.orderedStream().toList()) + .instrumentation(instrumentations.orderedStream().toList()) + + if (properties.schema.inspection.isEnabled) { + builder.inspectSchemaMappings { message: SchemaReport? -> logger.info(message) } + } + + wiringConfigurers.orderedStream().forEach { configurer: RuntimeWiringConfigurer -> + builder.configureRuntimeWiring( + configurer + ) + } + sourceCustomizers.orderedStream().forEach { customizer: GraphQlSourceBuilderCustomizer -> + customizer.customize( + builder + ) + } + return ReloadableGraphQLSource(builder, reloadSchemaIndicator) + } +} + +class ExceptionHandlerResolverAdapter(private val dataFetcherExceptionHandler: DataFetcherExceptionHandler) : DataFetcherExceptionResolverAdapter() { + override fun resolveToMultipleErrors(ex: Throwable, env: DataFetchingEnvironment): MutableList? { + val exceptionHandlerParameters = + DataFetcherExceptionHandlerParameters.newExceptionParameters().exception(ex).dataFetchingEnvironment(env) + .build() + + return dataFetcherExceptionHandler.handleException(exceptionHandlerParameters).get().errors + } +} diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/webflux/DgsWebFluxGraphQLInterceptor.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/webflux/DgsWebFluxGraphQLInterceptor.kt new file mode 100644 index 000000000..5ccd8e23e --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/webflux/DgsWebFluxGraphQLInterceptor.kt @@ -0,0 +1,61 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql.webflux + +import com.netflix.graphql.dgs.internal.DgsDataLoaderProvider +import com.netflix.graphql.dgs.reactive.internal.DefaultDgsReactiveGraphQLContextBuilder +import com.netflix.graphql.dgs.reactive.internal.DgsReactiveRequestData +import graphql.GraphQLContext +import org.springframework.graphql.server.WebGraphQlInterceptor +import org.springframework.graphql.server.WebGraphQlRequest +import org.springframework.graphql.server.WebGraphQlResponse +import org.springframework.web.filter.reactive.ServerWebExchangeContextFilter +import org.springframework.web.reactive.function.server.ServerRequest +import reactor.core.publisher.Mono +import java.util.concurrent.CompletableFuture + +class DgsWebFluxGraphQLInterceptor( + private val dgsDataLoaderProvider: DgsDataLoaderProvider, + private val dgsReactiveGraphQLContextBuilder: DefaultDgsReactiveGraphQLContextBuilder +) : WebGraphQlInterceptor { + override fun intercept(request: WebGraphQlRequest, chain: WebGraphQlInterceptor.Chain): Mono { + return Mono.deferContextual { ctx -> + val webExchange = ServerWebExchangeContextFilter.getExchange(ctx).get() + val serverRequest = ServerRequest.create(webExchange, emptyList()) + dgsReactiveGraphQLContextBuilder.build( + DgsReactiveRequestData( + request.extensions, + request.headers, + serverRequest + ) + ) + }.flatMap { dgsContext -> + val graphQLContextFuture = CompletableFuture() + val dataLoaderRegistry = + dgsDataLoaderProvider.buildRegistryWithContextSupplier { graphQLContextFuture.get() } + + request.configureExecutionInput { _, builder -> + builder + .context(dgsContext) + .graphQLContext(dgsContext) + .dataLoaderRegistry(dataLoaderRegistry).build() + } + graphQLContextFuture.complete(request.toExecutionInput().graphQLContext) + chain.next(request) + } + } +} diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/webmvc/DgsWebMvcGraphQLInterceptor.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/webmvc/DgsWebMvcGraphQLInterceptor.kt new file mode 100644 index 000000000..864b92845 --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/webmvc/DgsWebMvcGraphQLInterceptor.kt @@ -0,0 +1,70 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql.webmvc + +import com.netflix.graphql.dgs.internal.DefaultDgsGraphQLContextBuilder +import com.netflix.graphql.dgs.internal.DgsDataLoaderProvider +import com.netflix.graphql.dgs.internal.DgsWebMvcRequestData +import com.netflix.graphql.dgs.springgraphql.autoconfig.DgsSpringGraphQLConfigurationProperties +import graphql.GraphQLContext +import jakarta.servlet.http.HttpServletRequest +import org.springframework.graphql.server.WebGraphQlInterceptor +import org.springframework.graphql.server.WebGraphQlRequest +import org.springframework.graphql.server.WebGraphQlResponse +import org.springframework.web.context.request.RequestContextHolder +import org.springframework.web.context.request.ServletRequestAttributes +import org.springframework.web.context.request.ServletWebRequest +import org.springframework.web.context.request.WebRequest +import reactor.core.publisher.Mono +import java.util.concurrent.CompletableFuture + +class DgsWebMvcGraphQLInterceptor( + private val dgsDataLoaderProvider: DgsDataLoaderProvider, + private val dgsContextBuilder: DefaultDgsGraphQLContextBuilder, + private val dgsSpringConfigurationProperties: DgsSpringGraphQLConfigurationProperties +) : WebGraphQlInterceptor { + override fun intercept(request: WebGraphQlRequest, chain: WebGraphQlInterceptor.Chain): Mono { + // We need to pass in the original server request for the dgs context + val servletRequest: HttpServletRequest? = if (RequestContextHolder.getRequestAttributes() is ServletRequestAttributes) { + (RequestContextHolder.getRequestAttributes() as ServletRequestAttributes).request + } else null + + val dgsContext = if (servletRequest != null) { + val webRequest: WebRequest = ServletWebRequest(servletRequest) + dgsContextBuilder.build(DgsWebMvcRequestData(request.extensions, request.headers, webRequest)) + } else { + dgsContextBuilder.build(DgsWebMvcRequestData(request.extensions, request.headers)) + } + val graphQLContextFuture = CompletableFuture() + val dataLoaderRegistry = dgsDataLoaderProvider.buildRegistryWithContextSupplier { graphQLContextFuture.get() } + + request.configureExecutionInput { _, builder -> + builder + .context(dgsContext) + .graphQLContext(dgsContext) + .dataLoaderRegistry(dataLoaderRegistry).build() + } + graphQLContextFuture.complete(request.toExecutionInput().graphQLContext) + + return if (dgsSpringConfigurationProperties.webmvc.asyncdispatch.enabled) { + chain.next(request) + } else { + @Suppress("BlockingMethodInNonBlockingContext") + return Mono.just(chain.next(request).block()!!) + } + } +} diff --git a/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/webmvc/method/HandlerMethodArgumentResolverAdapter.kt b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/webmvc/method/HandlerMethodArgumentResolverAdapter.kt new file mode 100644 index 000000000..3b5dadc3f --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/kotlin/com/netflix/graphql/dgs/springgraphql/webmvc/method/HandlerMethodArgumentResolverAdapter.kt @@ -0,0 +1,53 @@ +/* + * Copyright 2022 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.mvc.internal.method + +import com.netflix.graphql.dgs.context.DgsContext +import com.netflix.graphql.dgs.internal.DgsWebMvcRequestData +import com.netflix.graphql.dgs.internal.method.ArgumentResolver +import graphql.schema.DataFetchingEnvironment +import org.springframework.core.MethodParameter +import org.springframework.web.bind.support.WebDataBinderFactory +import org.springframework.web.context.request.NativeWebRequest +import org.springframework.web.method.support.HandlerMethodArgumentResolver + +/** + * [ArgumentResolver] adapter for Spring's [HandlerMethodArgumentResolver]. + * Allows leveraging Spring MVC adapters for things such as @CookieValue annotated + * methods. + */ +class HandlerMethodArgumentResolverAdapter( + private val delegate: HandlerMethodArgumentResolver, + private val webDataBinderFactory: WebDataBinderFactory? = null +) : ArgumentResolver { + + override fun supportsParameter(parameter: MethodParameter): Boolean { + return delegate.supportsParameter(parameter) + } + + override fun resolveArgument(parameter: MethodParameter, dfe: DataFetchingEnvironment): Any? { + return delegate.resolveArgument(parameter, null, getRequest(dfe), webDataBinderFactory) + } + + private fun getRequest(dfe: DataFetchingEnvironment): NativeWebRequest { + val request = when (val requestData = DgsContext.getRequestData(dfe)) { + is DgsWebMvcRequestData -> requestData.webRequest + else -> throw AssertionError() + } + return request as NativeWebRequest + } +} diff --git a/graphql-dgs-spring-graphql/src/main/resources/META-INF/spring.factories b/graphql-dgs-spring-graphql/src/main/resources/META-INF/spring.factories new file mode 100644 index 000000000..8d57aa86b --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/resources/META-INF/spring.factories @@ -0,0 +1 @@ +org.springframework.boot.env.EnvironmentPostProcessor=com.netflix.graphql.dgs.springgraphql.autoconfig.DgsSpringGraphQLEnvironmentPostProcessor \ No newline at end of file diff --git a/graphql-dgs-spring-graphql/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/graphql-dgs-spring-graphql/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 000000000..298cc798d --- /dev/null +++ b/graphql-dgs-spring-graphql/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +com.netflix.graphql.dgs.springgraphql.autoconfig.DgsSpringGraphQLAutoConfiguration +com.netflix.graphql.dgs.springgraphql.autoconfig.DgsSpringGraphQLSourceAutoConfiguration diff --git a/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLEnvironmentPostProcessorTest.kt b/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLEnvironmentPostProcessorTest.kt new file mode 100644 index 000000000..42b24974e --- /dev/null +++ b/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQLEnvironmentPostProcessorTest.kt @@ -0,0 +1,82 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql.autoconfig + +import io.mockk.mockk +import org.assertj.core.api.Assertions +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test +import org.springframework.boot.SpringApplication +import org.springframework.mock.env.MockEnvironment + +class DgsSpringGraphQLEnvironmentPostProcessorTest { + val application = mockk() + lateinit var env: MockEnvironment + + @BeforeEach + fun setup() { + env = MockEnvironment() + } + + @Test + fun `Default for graphiql-enabled`() { + DgsSpringGraphQLEnvironmentPostProcessor().postProcessEnvironment(env, application) + + Assertions.assertThat(env.getProperty("spring.graphql.graphiql.enabled")).isEqualTo("true") + } + + @Test + fun `DGS setting should propagate to spring graphql for graphiql-enabled`() { + env.setProperty("dgs.graphql.graphiql.enabled", "false") + + DgsSpringGraphQLEnvironmentPostProcessor().postProcessEnvironment(env, application) + + Assertions.assertThat(env.getProperty("spring.graphql.graphiql.enabled")).isEqualTo("false") + } + + @Test + fun `Default for graphiql-path`() { + DgsSpringGraphQLEnvironmentPostProcessor().postProcessEnvironment(env, application) + + Assertions.assertThat(env.getProperty("spring.graphql.graphiql.path")).isEqualTo("/graphiql") + } + + @Test + fun `DGS setting should propagate to spring graphql for graphiql-path`() { + env.setProperty("dgs.graphql.graphiql.path", "/somepath") + + DgsSpringGraphQLEnvironmentPostProcessor().postProcessEnvironment(env, application) + + Assertions.assertThat(env.getProperty("spring.graphql.graphiql.path")).isEqualTo("/somepath") + } + + @Test + fun `Default for websocket-connection-timeout`() { + DgsSpringGraphQLEnvironmentPostProcessor().postProcessEnvironment(env, application) + + Assertions.assertThat(env.getProperty("spring.graphql.websocket.connection-init-timeout")).isEqualTo("10s") + } + + @Test + fun `DGS setting should propagate to spring graphql for websocket-connection-timeout`() { + env.setProperty("dgs.graphql.websocket.connection-init-timeout", "30s") + + DgsSpringGraphQLEnvironmentPostProcessor().postProcessEnvironment(env, application) + + Assertions.assertThat(env.getProperty("spring.graphql.websocket.connection-init-timeout")).isEqualTo("30s") + } +} diff --git a/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQlAutoConfigurationTest.kt b/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQlAutoConfigurationTest.kt new file mode 100644 index 000000000..5bc27c891 --- /dev/null +++ b/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQlAutoConfigurationTest.kt @@ -0,0 +1,164 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql.autoconfig + +import com.netflix.graphql.dgs.DgsQueryExecutor +import com.netflix.graphql.dgs.autoconfig.DgsAutoConfiguration +import com.netflix.graphql.dgs.internal.DgsSchemaProvider +import com.netflix.graphql.dgs.mvc.internal.method.HandlerMethodArgumentResolverAdapter +import com.netflix.graphql.dgs.reactive.DgsReactiveQueryExecutor +import com.netflix.graphql.dgs.reactive.internal.DefaultDgsReactiveGraphQLContextBuilder +import com.netflix.graphql.dgs.reactive.internal.method.SyncHandlerMethodArgumentResolverAdapter +import com.netflix.graphql.dgs.springgraphql.webflux.DgsWebFluxGraphQLInterceptor +import com.netflix.graphql.dgs.springgraphql.webmvc.DgsWebMvcGraphQLInterceptor +import org.assertj.core.api.Assertions.assertThat +import org.junit.jupiter.api.Test +import org.springframework.boot.autoconfigure.AutoConfigurations +import org.springframework.boot.autoconfigure.graphql.GraphQlAutoConfiguration +import org.springframework.boot.autoconfigure.graphql.GraphQlSourceBuilderCustomizer +import org.springframework.boot.test.context.runner.ApplicationContextRunner +import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner +import org.springframework.boot.test.context.runner.WebApplicationContextRunner +import org.springframework.core.ReactiveAdapterRegistry +import org.springframework.graphql.execution.GraphQlSource +import org.springframework.web.bind.support.WebDataBinderFactory +import org.springframework.web.filter.reactive.ServerWebExchangeContextFilter +import org.springframework.web.reactive.BindingContext + +class DgsSpringGraphQlAutoConfigurationTest { + private val autoConfigurations = AutoConfigurations.of( + DgsSpringGraphQLAutoConfiguration::class.java, + DgsAutoConfiguration::class.java, + DgsSpringGraphQLSourceAutoConfiguration::class.java, + GraphQlAutoConfiguration::class.java + ) + + @Test + fun shouldContributeBeans() { + val contextRunner = ApplicationContextRunner() + .withConfiguration(autoConfigurations) + + contextRunner.run { context -> + assertThat(context) + .hasSingleBean(DgsQueryExecutor::class.java) + .hasSingleBean(DgsSpringGraphQLAutoConfiguration.DgsRuntimeWiringConfigurerBridge::class.java) + .hasSingleBean(DgsSpringGraphQLAutoConfiguration.DgsTypeDefinitionConfigurerBridge::class.java) + .hasSingleBean(GraphQlSourceBuilderCustomizer::class.java) + .hasSingleBean(DgsSchemaProvider::class.java) + .hasSingleBean(GraphQlSource::class.java) + } + } + + @Test + fun shouldContributeWebMvcBeans() { + val webContextRunner = WebApplicationContextRunner() + .withConfiguration(autoConfigurations) + + webContextRunner.run { context -> + assertThat(context) + .hasSingleBean(DgsWebMvcGraphQLInterceptor::class.java) + .hasSingleBean(WebDataBinderFactory::class.java) + + assertThat(context).getBean("requestHeaderMapResolver").isExactlyInstanceOf( + HandlerMethodArgumentResolverAdapter::class.java + ) + + assertThat(context).getBean("requestHeaderResolver").isExactlyInstanceOf( + HandlerMethodArgumentResolverAdapter::class.java + ) + + assertThat(context).getBean("requestParamResolver").isExactlyInstanceOf( + HandlerMethodArgumentResolverAdapter::class.java + ) + + assertThat(context).getBean("requestParamMapResolver").isExactlyInstanceOf( + HandlerMethodArgumentResolverAdapter::class.java + ) + + assertThat(context).getBean("cookieValueResolver").isExactlyInstanceOf( + HandlerMethodArgumentResolverAdapter::class.java + ) + } + } + + @Test + fun shouldContributeWebfluxBeans() { + val reactiveContextRunner = ReactiveWebApplicationContextRunner() + .withConfiguration(autoConfigurations).withBean(ReactiveAdapterRegistry::class.java) + + reactiveContextRunner.run { context -> + assertThat(context) + .hasSingleBean(DgsReactiveQueryExecutor::class.java) + .hasSingleBean(DefaultDgsReactiveGraphQLContextBuilder::class.java) + .hasSingleBean(ServerWebExchangeContextFilter::class.java) + .hasSingleBean(DgsWebFluxGraphQLInterceptor::class.java) + + assertThat(context).getBean("dgsBindingContext").isExactlyInstanceOf( + BindingContext::class.java + ) + + assertThat(context).getBean("cookieValueArgumentResolver").isExactlyInstanceOf( + SyncHandlerMethodArgumentResolverAdapter::class.java + ) + + assertThat(context).getBean("requestHeaderMapArgumentResolver").isExactlyInstanceOf( + SyncHandlerMethodArgumentResolverAdapter::class.java + ) + + assertThat(context).getBean("requestHeaderArgumentResolver").isExactlyInstanceOf( + SyncHandlerMethodArgumentResolverAdapter::class.java + ) + + assertThat(context).getBean("requestParamArgumentResolver").isExactlyInstanceOf( + SyncHandlerMethodArgumentResolverAdapter::class.java + ) + + assertThat(context).getBean("requestParamMapArgumentResolver").isExactlyInstanceOf( + SyncHandlerMethodArgumentResolverAdapter::class.java + ) + } + } + + @Test + fun loadsDefaultWebMvcConfiguration() { + ApplicationContextRunner() + .withConfiguration(autoConfigurations) + .run { context -> + assertThat(context.getBean(DgsSpringGraphQLConfigurationProperties::class.java).webmvc.asyncdispatch.enabled).isFalse() + } + } + + @Test + fun loadsWebMvcConfiguration() { + ApplicationContextRunner() + .withConfiguration(autoConfigurations) + .withPropertyValues("dgs.graphql.spring.webmvc.asyncdispatch.enabled=true") + .run { context -> + assertThat(context.getBean(DgsSpringGraphQLConfigurationProperties::class.java).webmvc.asyncdispatch.enabled).isTrue() + } + } + + @Test + fun loadsWebMvcConfigurationDisabled() { + ApplicationContextRunner() + .withConfiguration(autoConfigurations) + .withPropertyValues("dgs.graphql.spring.webmvc.asyncdispatch.enabled=false") + .run { context -> + assertThat(context.getBean(DgsSpringGraphQLConfigurationProperties::class.java).webmvc.asyncdispatch.enabled).isFalse() + } + } +} diff --git a/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQlSmokeTest.kt b/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQlSmokeTest.kt new file mode 100644 index 000000000..12084b436 --- /dev/null +++ b/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsSpringGraphQlSmokeTest.kt @@ -0,0 +1,105 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql.autoconfig + +import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper +import com.netflix.graphql.dgs.DgsComponent +import com.netflix.graphql.dgs.DgsQuery +import com.netflix.graphql.dgs.autoconfig.DgsAutoConfiguration +import org.junit.jupiter.api.Test +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.autoconfigure.graphql.GraphQlAutoConfiguration +import org.springframework.boot.autoconfigure.graphql.servlet.GraphQlWebMvcAutoConfiguration +import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc +import org.springframework.boot.test.context.SpringBootTest +import org.springframework.boot.test.context.TestConfiguration +import org.springframework.graphql.data.method.annotation.QueryMapping +import org.springframework.http.MediaType +import org.springframework.stereotype.Controller +import org.springframework.test.web.servlet.MockMvc +import org.springframework.test.web.servlet.post + +@SpringBootTest( + classes = [ + DgsSpringGraphQlSmokeTest.TestApp::class, + DgsSpringGraphQLAutoConfiguration::class, + DgsAutoConfiguration::class, + DgsSpringGraphQLSourceAutoConfiguration::class, + GraphQlAutoConfiguration::class, + GraphQlWebMvcAutoConfiguration::class, + WebMvcAutoConfiguration::class + ], + + properties = ["dgs.graphql.schema-locations=classpath:/dgs-spring-graphql-smoke-test.graphqls"] +) +@AutoConfigureMockMvc +class DgsSpringGraphQlSmokeTest { + + @Autowired + lateinit var mockMvc: MockMvc + + @Test + fun testGraphQlRequest() { + val query = """ + query { + dgsField + springControllerField + } + """.trimIndent() + + data class GraphQlRequest(val query: String) + + mockMvc.post("/graphql") { + content = jacksonObjectMapper().writeValueAsString(GraphQlRequest(query)) + accept = MediaType.APPLICATION_JSON + contentType = MediaType.APPLICATION_JSON + }.andExpect { + status { isOk() } + content { + json( + """{ + | "data": { + | "dgsField": "test from DGS", + | "springControllerField": "test from Spring Controller" + | } + |} + """.trimMargin() + ) + } + } + } + + @TestConfiguration + open class TestApp { + @DgsComponent + open class DgsTestDatafetcher { + @DgsQuery + fun dgsField(): String { + return "test from DGS" + } + } + + @Controller + open class SpringDatafetcher { + @QueryMapping + fun springControllerField(): String { + return "test from Spring Controller" + } + } + } +} diff --git a/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsWebMVCAutomatedPersistedQueriesSmokeTest.kt b/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsWebMVCAutomatedPersistedQueriesSmokeTest.kt new file mode 100644 index 000000000..a83cc4600 --- /dev/null +++ b/graphql-dgs-spring-graphql/src/test/kotlin/com/netflix/graphql/dgs/springgraphql/autoconfig/DgsWebMVCAutomatedPersistedQueriesSmokeTest.kt @@ -0,0 +1,202 @@ +/* + * Copyright 2024 Netflix, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.netflix.graphql.dgs.springgraphql.autoconfig + +import com.netflix.graphql.dgs.DgsComponent +import com.netflix.graphql.dgs.DgsTypeDefinitionRegistry +import graphql.schema.idl.SchemaParser +import graphql.schema.idl.TypeDefinitionRegistry +import org.junit.jupiter.api.MethodOrderer +import org.junit.jupiter.api.Order +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.TestMethodOrder +import org.junit.jupiter.api.parallel.Execution +import org.junit.jupiter.api.parallel.ExecutionMode +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.autoconfigure.EnableAutoConfiguration +import org.springframework.boot.autoconfigure.SpringBootApplication +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc +import org.springframework.boot.test.context.SpringBootTest +import org.springframework.context.annotation.ComponentScan +import org.springframework.context.annotation.FilterType +import org.springframework.http.MediaType +import org.springframework.test.web.servlet.MockMvc +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders +import org.springframework.test.web.servlet.result.MockMvcResultMatchers.content +import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status + +@SpringBootTest( + properties = [ + "debug:true", + "dgs.graphql.apq.enabled:true" + ] +) +@AutoConfigureMockMvc +@EnableAutoConfiguration +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation::class) +class DgsWebMVCAutomatedPersistedQueriesSmokeTest { + + @Autowired + lateinit var mvc: MockMvc + + @Test + @Order(0) + fun `The demo app is able to start`() { + } + + @Test + @Order(1) + fun `Attempt to execute a POST Request with a unknown hash`() { + val uriBuilder = + MockMvcRequestBuilders + .post("/graphql") + .contentType(MediaType.APPLICATION_JSON) + .content( + """ + |{ + | "extensions":{ + | "persistedQuery":{ + | "version":1, + | "sha256Hash":"ecf4edb46db40b5132295c0291d62fb65d6759a9eedfa4d5d612dd5ec54a6b38" + | } + | } + | } + | + """.trimMargin() + ) + mvc.perform(uriBuilder) + .andExpect(status().isOk) + .andExpect( + content().json( + """ + |{ + | "errors":[ + | { + | "message":"PersistedQueryNotFound", + | "locations":[], + | "extensions":{ + | "persistedQueryId":"ecf4edb46db40b5132295c0291d62fb65d6759a9eedfa4d5d612dd5ec54a6b38", + | "generatedBy":"graphql-java", + | "classification":"PersistedQueryNotFound" + | } + | } + | ] + | } + | + """.trimMargin() + ) + ) + } + + @Test + @Order(2) + fun `Execute a POST Request with a known hash and query`() { + val uriBuilder = + MockMvcRequestBuilders + .post("/graphql") + .contentType(MediaType.APPLICATION_JSON) + .content( + """ + |{ + | "query": "{__typename}", + | "extensions":{ + | "persistedQuery":{ + | "version":1, + | "sha256Hash":"ecf4edb46db40b5132295c0291d62fb65d6759a9eedfa4d5d612dd5ec54a6b38" + | } + | } + | } + | + """.trimMargin() + ) + mvc.perform(uriBuilder) + .andExpect(status().isOk) + .andExpect( + content().json( + """ + | { + | "data": { + | "__typename":"Query" + | } + | } + | + """.trimMargin() + ) + ) + } + + @Test + @Order(3) + fun `Execute a POST Request with a known hash once the query was registered`() { + val uriBuilder = + MockMvcRequestBuilders + .post("/graphql") + .contentType(MediaType.APPLICATION_JSON) + .content( + """ + |{ + | "extensions":{ + | "persistedQuery":{ + | "version":1, + | "sha256Hash":"ecf4edb46db40b5132295c0291d62fb65d6759a9eedfa4d5d612dd5ec54a6b38" + | } + | } + | } + | + """.trimMargin() + ) + mvc.perform(uriBuilder) + .andExpect(status().isOk) + .andExpect( + content().json( + """ + | { + | "data": { + | "__typename":"Query" + | } + | } + | + """.trimMargin() + ) + ) + } + + @SpringBootApplication(proxyBeanMethods = false, scanBasePackages = []) + @ComponentScan( + useDefaultFilters = false, + includeFilters = [ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = [])] + ) + @SuppressWarnings("unused") + open class LocalApp { + + @DgsComponent + class ExampleImplementation { + + @DgsTypeDefinitionRegistry + fun typeDefinitionRegistry(): TypeDefinitionRegistry { + val schemaParser = SchemaParser() + + val gqlSchema = """ + |type Query{ + |} + """.trimMargin() + return schemaParser.parse(gqlSchema) + } + } + } +} diff --git a/graphql-dgs-spring-graphql/src/test/resources/dgs-spring-graphql-smoke-test.graphqls b/graphql-dgs-spring-graphql/src/test/resources/dgs-spring-graphql-smoke-test.graphqls new file mode 100644 index 000000000..1ec31e9dd --- /dev/null +++ b/graphql-dgs-spring-graphql/src/test/resources/dgs-spring-graphql-smoke-test.graphqls @@ -0,0 +1,4 @@ +type Query { + dgsField: String + springControllerField: String +} \ No newline at end of file diff --git a/graphql-dgs-spring-webflux-autoconfigure/dependencies.lock b/graphql-dgs-spring-webflux-autoconfigure/dependencies.lock index 2d71116bd..5f37c4a63 100644 --- a/graphql-dgs-spring-webflux-autoconfigure/dependencies.lock +++ b/graphql-dgs-spring-webflux-autoconfigure/dependencies.lock @@ -2201,7 +2201,6 @@ "org.springframework.boot:spring-boot-starter": { "locked": "3.2.3", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", "org.springframework.boot:spring-boot-dependencies", "org.springframework.boot:spring-boot-starter-json", @@ -2340,7 +2339,6 @@ "org.springframework:spring-webflux": { "locked": "6.1.4", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "org.springframework.boot:spring-boot-dependencies", "org.springframework.boot:spring-boot-starter-webflux" ] @@ -3464,7 +3462,6 @@ "org.springframework.boot:spring-boot-starter": { "locked": "3.2.3", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "org.springframework.boot:spring-boot-dependencies" ] }, @@ -3545,7 +3542,6 @@ "org.springframework:spring-webflux": { "locked": "6.1.4", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "org.springframework.boot:spring-boot-dependencies" ] }, @@ -5481,7 +5477,6 @@ "org.springframework.boot:spring-boot-starter": { "locked": "3.2.3", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", "org.springframework.boot:spring-boot-dependencies", "org.springframework.boot:spring-boot-starter-json", @@ -5620,7 +5615,6 @@ "org.springframework:spring-webflux": { "locked": "6.1.4", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "org.springframework.boot:spring-boot-dependencies", "org.springframework.boot:spring-boot-starter-webflux" ] diff --git a/graphql-dgs-spring-webflux-autoconfigure/src/main/kotlin/com/netflix/graphql/dgs/webflux/autoconfiguration/DgsWebFluxAutoConfiguration.kt b/graphql-dgs-spring-webflux-autoconfigure/src/main/kotlin/com/netflix/graphql/dgs/webflux/autoconfiguration/DgsWebFluxAutoConfiguration.kt index a9abd5a48..4df880f41 100644 --- a/graphql-dgs-spring-webflux-autoconfigure/src/main/kotlin/com/netflix/graphql/dgs/webflux/autoconfiguration/DgsWebFluxAutoConfiguration.kt +++ b/graphql-dgs-spring-webflux-autoconfigure/src/main/kotlin/com/netflix/graphql/dgs/webflux/autoconfiguration/DgsWebFluxAutoConfiguration.kt @@ -188,7 +188,7 @@ open class DgsWebFluxAutoConfiguration(private val configProps: DgsWebfluxConfig .GET( configProps.schemaJson.path ) { - val graphQLSchema: GraphQLSchema = schemaProvider.schema() + val graphQLSchema: GraphQLSchema = schemaProvider.schema().graphQLSchema val graphQL = GraphQL.newGraphQL(graphQLSchema).build() val executionInput: ExecutionInput = diff --git a/graphql-dgs-spring-webmvc-autoconfigure/src/test/kotlin/com/netflix/graphql/dgs/webmvc/autoconfigure/DgsWebMvcAutoConfigurationTest.kt b/graphql-dgs-spring-webmvc-autoconfigure/src/test/kotlin/com/netflix/graphql/dgs/webmvc/autoconfigure/DgsWebMvcAutoConfigurationTest.kt index 37a4c0193..d1d735d46 100644 --- a/graphql-dgs-spring-webmvc-autoconfigure/src/test/kotlin/com/netflix/graphql/dgs/webmvc/autoconfigure/DgsWebMvcAutoConfigurationTest.kt +++ b/graphql-dgs-spring-webmvc-autoconfigure/src/test/kotlin/com/netflix/graphql/dgs/webmvc/autoconfigure/DgsWebMvcAutoConfigurationTest.kt @@ -21,6 +21,7 @@ import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import com.netflix.graphql.dgs.DgsQueryExecutor import com.netflix.graphql.dgs.internal.DgsSchemaProvider +import com.netflix.graphql.dgs.internal.SchemaProviderResult import com.netflix.graphql.dgs.mvc.DgsRestController import com.netflix.graphql.dgs.mvc.DgsRestSchemaJsonController import graphql.ExecutionResultImpl @@ -28,6 +29,7 @@ import graphql.Scalars import graphql.schema.GraphQLFieldDefinition import graphql.schema.GraphQLObjectType import graphql.schema.GraphQLSchema +import graphql.schema.idl.RuntimeWiring import io.mockk.every import io.mockk.mockk import org.assertj.core.api.Assertions.* @@ -233,7 +235,7 @@ class DgsWebMvcAutoConfigurationTest { .clearDirectives() .query(objectType).build() val mockSchemaProvider = mockk() - every { mockSchemaProvider.schema() } returns schema + every { mockSchemaProvider.schema() } returns SchemaProviderResult(schema, RuntimeWiring.MOCKED_WIRING) return mockSchemaProvider } diff --git a/graphql-dgs-spring-webmvc/src/main/kotlin/com/netflix/graphql/dgs/mvc/DgsRestSchemaJsonController.kt b/graphql-dgs-spring-webmvc/src/main/kotlin/com/netflix/graphql/dgs/mvc/DgsRestSchemaJsonController.kt index df00eb02a..ad7993e84 100644 --- a/graphql-dgs-spring-webmvc/src/main/kotlin/com/netflix/graphql/dgs/mvc/DgsRestSchemaJsonController.kt +++ b/graphql-dgs-spring-webmvc/src/main/kotlin/com/netflix/graphql/dgs/mvc/DgsRestSchemaJsonController.kt @@ -42,7 +42,7 @@ open class DgsRestSchemaJsonController(open val schemaProvider: DgsSchemaProvide produces = [ MediaType.APPLICATION_JSON_VALUE ] ) fun schema(): String { - val graphQLSchema: GraphQLSchema = schemaProvider.schema() + val graphQLSchema: GraphQLSchema = schemaProvider.schema().graphQLSchema val graphQL = GraphQL.newGraphQL(graphQLSchema).build() val executionInput: ExecutionInput = ExecutionInput.newExecutionInput().query(IntrospectionQuery.INTROSPECTION_QUERY) diff --git a/graphql-dgs-spring-webmvc/src/test/kotlin/com/netflix/graphql/dgs/mvc/DgsRestSchemaJsonControllerTest.kt b/graphql-dgs-spring-webmvc/src/test/kotlin/com/netflix/graphql/dgs/mvc/DgsRestSchemaJsonControllerTest.kt index 0b2847ac7..4ae5c4203 100644 --- a/graphql-dgs-spring-webmvc/src/test/kotlin/com/netflix/graphql/dgs/mvc/DgsRestSchemaJsonControllerTest.kt +++ b/graphql-dgs-spring-webmvc/src/test/kotlin/com/netflix/graphql/dgs/mvc/DgsRestSchemaJsonControllerTest.kt @@ -20,10 +20,12 @@ import com.jayway.jsonpath.Configuration import com.jayway.jsonpath.JsonPath import com.jayway.jsonpath.Option import com.netflix.graphql.dgs.internal.DgsSchemaProvider +import com.netflix.graphql.dgs.internal.SchemaProviderResult import graphql.Scalars import graphql.schema.GraphQLFieldDefinition import graphql.schema.GraphQLObjectType import graphql.schema.GraphQLSchema +import graphql.schema.idl.RuntimeWiring import io.mockk.every import io.mockk.impl.annotations.MockK import io.mockk.junit5.MockKExtension @@ -52,7 +54,7 @@ class DgsRestSchemaJsonControllerTest { .clearDirectives() .query(objectType).build() - every { dgsSchemaProvider.schema() } returns schema + every { dgsSchemaProvider.schema() } returns SchemaProviderResult(schema, runtimeWiring = RuntimeWiring.MOCKED_WIRING) val result = DgsRestSchemaJsonController(dgsSchemaProvider).schema() diff --git a/graphql-dgs-spring-webmvc/src/test/kotlin/com/netflix/graphql/dgs/mvc/RequestHeaderTest.kt b/graphql-dgs-spring-webmvc/src/test/kotlin/com/netflix/graphql/dgs/mvc/RequestHeaderTest.kt index e01e6268a..bce8d13c8 100644 --- a/graphql-dgs-spring-webmvc/src/test/kotlin/com/netflix/graphql/dgs/mvc/RequestHeaderTest.kt +++ b/graphql-dgs-spring-webmvc/src/test/kotlin/com/netflix/graphql/dgs/mvc/RequestHeaderTest.kt @@ -76,7 +76,7 @@ class RequestHeaderTest { applicationContext.registerBean("helloFetcher", Fetcher::class.java, *emptyArray()) applicationContext.refresh() - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val httpHeaders = HttpHeaders() @@ -116,7 +116,7 @@ class RequestHeaderTest { applicationContext.registerBean("helloFetcher", Fetcher::class.java, *emptyArray()) applicationContext.refresh() - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val httpHeaders = HttpHeaders() @@ -156,7 +156,7 @@ class RequestHeaderTest { applicationContext.registerBean("helloFetcher", Fetcher::class.java, *emptyArray()) applicationContext.refresh() - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val httpHeaders = HttpHeaders() @@ -195,7 +195,7 @@ class RequestHeaderTest { applicationContext.registerBean("helloFetcher", Fetcher::class.java, *emptyArray()) applicationContext.refresh() - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val httpHeaders = HttpHeaders() @@ -234,7 +234,7 @@ class RequestHeaderTest { applicationContext.registerBean("helloFetcher", Fetcher::class.java, *emptyArray()) applicationContext.refresh() - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val httpHeaders = HttpHeaders() @@ -273,7 +273,7 @@ class RequestHeaderTest { applicationContext.registerBean("helloFetcher", Fetcher::class.java, *emptyArray()) applicationContext.refresh() - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val httpHeaders = HttpHeaders() diff --git a/graphql-dgs-spring-webmvc/src/test/kotlin/com/netflix/graphql/dgs/mvc/RequestParamTest.kt b/graphql-dgs-spring-webmvc/src/test/kotlin/com/netflix/graphql/dgs/mvc/RequestParamTest.kt index c0868c6aa..c7fea8452 100644 --- a/graphql-dgs-spring-webmvc/src/test/kotlin/com/netflix/graphql/dgs/mvc/RequestParamTest.kt +++ b/graphql-dgs-spring-webmvc/src/test/kotlin/com/netflix/graphql/dgs/mvc/RequestParamTest.kt @@ -73,7 +73,7 @@ class RequestParamTest { applicationContext.registerBean("helloFetcher", Fetcher::class.java, *emptyArray()) applicationContext.refresh() - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() @@ -110,7 +110,7 @@ class RequestParamTest { applicationContext.registerBean("helloFetcher", Fetcher::class.java, *emptyArray()) applicationContext.refresh() - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() @@ -147,7 +147,7 @@ class RequestParamTest { applicationContext.registerBean("helloFetcher", Fetcher::class.java, *emptyArray()) applicationContext.refresh() - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() diff --git a/graphql-dgs-webflux-starter/dependencies.lock b/graphql-dgs-webflux-starter/dependencies.lock index 3a564006b..bc3548797 100644 --- a/graphql-dgs-webflux-starter/dependencies.lock +++ b/graphql-dgs-webflux-starter/dependencies.lock @@ -2360,7 +2360,6 @@ "org.springframework.boot:spring-boot-starter": { "locked": "3.2.3", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", "com.netflix.graphql.dgs:graphql-dgs-spring-webflux-autoconfigure", "org.springframework.boot:spring-boot-dependencies", @@ -2501,7 +2500,6 @@ "org.springframework:spring-webflux": { "locked": "6.1.4", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-webflux-autoconfigure", "org.springframework.boot:spring-boot-dependencies", "org.springframework.boot:spring-boot-starter-webflux" @@ -3711,7 +3709,6 @@ "org.springframework.boot:spring-boot-starter": { "locked": "3.2.3", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", "com.netflix.graphql.dgs:graphql-dgs-spring-webflux-autoconfigure", "org.springframework.boot:spring-boot-dependencies", @@ -3821,7 +3818,6 @@ "org.springframework:spring-webflux": { "locked": "6.1.4", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-webflux-autoconfigure", "org.springframework.boot:spring-boot-dependencies", "org.springframework.boot:spring-boot-starter-webflux" @@ -5734,7 +5730,6 @@ "org.springframework.boot:spring-boot-starter": { "locked": "3.2.3", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-boot-oss-autoconfigure", "com.netflix.graphql.dgs:graphql-dgs-spring-webflux-autoconfigure", "org.springframework.boot:spring-boot-dependencies", @@ -5875,7 +5870,6 @@ "org.springframework:spring-webflux": { "locked": "6.1.4", "transitive": [ - "com.netflix.graphql.dgs:graphql-dgs-reactive", "com.netflix.graphql.dgs:graphql-dgs-spring-webflux-autoconfigure", "org.springframework.boot:spring-boot-dependencies", "org.springframework.boot:spring-boot-starter-webflux" diff --git a/graphql-dgs/src/main/java/com/netflix/graphql/dgs/DgsComponent.java b/graphql-dgs/src/main/java/com/netflix/graphql/dgs/DgsComponent.java index 4a034d15e..1c99dd86a 100644 --- a/graphql-dgs/src/main/java/com/netflix/graphql/dgs/DgsComponent.java +++ b/graphql-dgs/src/main/java/com/netflix/graphql/dgs/DgsComponent.java @@ -30,7 +30,7 @@ * Each DgsComponent is also a regular Spring Component. * The framework will scan each DgsComponent for other annotations. */ -@Target(ElementType.TYPE) +@Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Component @Qualifier("dgs") diff --git a/graphql-dgs/src/main/kotlin/com/netflix/graphql/dgs/internal/DefaultDgsQueryExecutor.kt b/graphql-dgs/src/main/kotlin/com/netflix/graphql/dgs/internal/DefaultDgsQueryExecutor.kt index 88acbc793..bdda500a6 100644 --- a/graphql-dgs/src/main/kotlin/com/netflix/graphql/dgs/internal/DefaultDgsQueryExecutor.kt +++ b/graphql-dgs/src/main/kotlin/com/netflix/graphql/dgs/internal/DefaultDgsQueryExecutor.kt @@ -72,7 +72,7 @@ class DefaultDgsQueryExecutor( ): ExecutionResult { val graphQLSchema: GraphQLSchema = if (reloadIndicator.reloadSchema()) { - schema.updateAndGet { schemaProvider.schema() } + schema.updateAndGet { schemaProvider.schema().graphQLSchema } } else { schema.get() } diff --git a/graphql-dgs/src/main/kotlin/com/netflix/graphql/dgs/internal/DgsSchemaProvider.kt b/graphql-dgs/src/main/kotlin/com/netflix/graphql/dgs/internal/DgsSchemaProvider.kt index 111fdbeb8..dbe3b9478 100644 --- a/graphql-dgs/src/main/kotlin/com/netflix/graphql/dgs/internal/DgsSchemaProvider.kt +++ b/graphql-dgs/src/main/kotlin/com/netflix/graphql/dgs/internal/DgsSchemaProvider.kt @@ -141,17 +141,18 @@ class DgsSchemaProvider( fun schema( @Language("GraphQL") schema: String? = null, - fieldVisibility: GraphqlFieldVisibility = DefaultGraphqlFieldVisibility.DEFAULT_FIELD_VISIBILITY - ): GraphQLSchema { + fieldVisibility: GraphqlFieldVisibility = DefaultGraphqlFieldVisibility.DEFAULT_FIELD_VISIBILITY, + schemaResources: Set = emptySet() + ): SchemaProviderResult { schemaReadWriteLock.write { dataFetchers.clear() dataFetcherTracingInstrumentationEnabled.clear() dataFetcherMetricsInstrumentationEnabled.clear() - return computeSchema(schema, fieldVisibility) + return computeSchema(schema, fieldVisibility, schemaResources) } } - private fun computeSchema(schema: String? = null, fieldVisibility: GraphqlFieldVisibility): GraphQLSchema { + private fun computeSchema(schema: String? = null, fieldVisibility: GraphqlFieldVisibility, schemaResources: Set = emptySet()): SchemaProviderResult { val startTime = System.currentTimeMillis() val dgsComponents = applicationContext.getBeansWithAnnotation().values.asSequence() .let { beans -> if (componentFilter != null) beans.filter(componentFilter) else beans } @@ -168,6 +169,10 @@ class DgsSchemaProvider( // the source files aren't newline-terminated. readerBuilder.reader("\n".reader(), "newline") } + + for (resource in schemaResources) { + readerBuilder.reader(resource.inputStream.reader(), resource.filename) + } SchemaParser().parse(readerBuilder.build()) } else { SchemaParser().parse(schema) @@ -222,7 +227,7 @@ class DgsSchemaProvider( val entityFetcher = federationResolverInstance.entitiesFetcher() val typeResolver = federationResolverInstance.typeResolver() - val graphQLSchema = + var graphQLSchema = Federation.transform(mergedRegistry, runtimeWiring).fetchEntities(entityFetcher) .resolveEntityType(typeResolver).build() @@ -230,11 +235,13 @@ class DgsSchemaProvider( val totalTime = endTime - startTime logger.debug("DGS initialized schema in {}ms", totalTime) - return if (mockProviders.isNotEmpty()) { + graphQLSchema = if (mockProviders.isNotEmpty()) { DgsSchemaTransformer().transformSchemaWithMockProviders(graphQLSchema, mockProviders) } else { graphQLSchema } + + return SchemaProviderResult(graphQLSchema, runtimeWiring) } private fun invokeDgsTypeDefinitionRegistry( @@ -729,3 +736,5 @@ class DgsSchemaProvider( } } } + +data class SchemaProviderResult(val graphQLSchema: GraphQLSchema, val runtimeWiring: RuntimeWiring) diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/CoroutineDataFetcherTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/CoroutineDataFetcherTest.kt index 582909b5f..e388fe204 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/CoroutineDataFetcherTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/CoroutineDataFetcherTest.kt @@ -101,7 +101,7 @@ class CoroutineDataFetcherTest { concurrent(from: Int, to: Int): Int } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() @@ -177,7 +177,7 @@ class CoroutineDataFetcherTest { concurrent: Int } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() @@ -217,7 +217,7 @@ class CoroutineDataFetcherTest { exceptionWithMessage(message: String): Int } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() val context = DgsContext( diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/CustomDirectivesTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/CustomDirectivesTest.kt index 5b8f36243..d77a7c798 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/CustomDirectivesTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/CustomDirectivesTest.kt @@ -75,7 +75,7 @@ class CustomDirectivesTest { directive @uppercase on FIELD_DEFINITION """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute( diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/CustomScalarsTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/CustomScalarsTest.kt index 8811fd67b..e7903e426 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/CustomScalarsTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/CustomScalarsTest.kt @@ -82,7 +82,7 @@ class CustomScalarsTest { scalar DateTime """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute( diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DataFetcherWithDirectivesTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DataFetcherWithDirectivesTest.kt index 194a0ea27..90c923e15 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DataFetcherWithDirectivesTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DataFetcherWithDirectivesTest.kt @@ -79,7 +79,7 @@ class DataFetcherWithDirectivesTest { } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute("{ hello }") diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DgsDataFetchingEnvironmentTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DgsDataFetchingEnvironmentTest.kt index 280681757..93c103a9b 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DgsDataFetchingEnvironmentTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DgsDataFetchingEnvironmentTest.kt @@ -114,7 +114,7 @@ internal class DgsDataFetchingEnvironmentTest { existingTypeDefinitionRegistry = Optional.empty(), methodDataFetcherFactory = MethodDataFetcherFactory(listOf(DataFetchingEnvironmentArgumentResolver())) ) - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionInput: ExecutionInput = ExecutionInput.newExecutionInput() @@ -141,7 +141,7 @@ internal class DgsDataFetchingEnvironmentTest { existingTypeDefinitionRegistry = Optional.empty(), methodDataFetcherFactory = MethodDataFetcherFactory(listOf(DataFetchingEnvironmentArgumentResolver())) ) - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionInput: ExecutionInput = ExecutionInput.newExecutionInput() @@ -168,7 +168,7 @@ internal class DgsDataFetchingEnvironmentTest { existingTypeDefinitionRegistry = Optional.empty(), methodDataFetcherFactory = MethodDataFetcherFactory(listOf(DataFetchingEnvironmentArgumentResolver())) ) - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionInput: ExecutionInput = ExecutionInput.newExecutionInput() @@ -196,7 +196,7 @@ internal class DgsDataFetchingEnvironmentTest { methodDataFetcherFactory = MethodDataFetcherFactory(listOf()) ) - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionInput: ExecutionInput = ExecutionInput.newExecutionInput() @@ -223,7 +223,7 @@ internal class DgsDataFetchingEnvironmentTest { methodDataFetcherFactory = MethodDataFetcherFactory(listOf(DataFetchingEnvironmentArgumentResolver())) ) - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionInput: ExecutionInput = ExecutionInput.newExecutionInput() @@ -251,7 +251,7 @@ internal class DgsDataFetchingEnvironmentTest { methodDataFetcherFactory = MethodDataFetcherFactory(listOf(DataFetchingEnvironmentArgumentResolver())) ) - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionInput: ExecutionInput = ExecutionInput.newExecutionInput() diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DgsSchemaProviderTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DgsSchemaProviderTest.kt index 7bb24e5bd..fd30c76a4 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DgsSchemaProviderTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DgsSchemaProviderTest.kt @@ -175,7 +175,7 @@ internal class DgsSchemaProviderTest { schemaLocations = listOf("classpath*:schema/**/*.graphql*") ) - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema for (type in schema.allTypesAsList) { if (type.definition?.sourceLocation != null) { @@ -240,7 +240,7 @@ internal class DgsSchemaProviderTest { contextRunner.withBeans(Fetcher::class).run { context -> val schemaProvider = schemaProvider(applicationContext = context) assertThat(schemaProvider.resolvedDataFetchers()).isEmpty() - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema assertThat(schemaProvider.resolvedDataFetchers()) .isNotEmpty.hasSize(1).first().satisfies( Consumer { @@ -267,7 +267,7 @@ internal class DgsSchemaProviderTest { contextRunner.withBeans(Fetcher::class).run { context -> val schemaProvider = schemaProvider(applicationContext = context) assertThat(schemaProvider.resolvedDataFetchers()).isEmpty() - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema assertThat(schemaProvider.resolvedDataFetchers()) .isNotEmpty.hasSize(1).first().satisfies( Consumer { @@ -298,7 +298,7 @@ internal class DgsSchemaProviderTest { contextRunner.withBeans(Fetcher::class).run { context -> val exc = assertThrows { - GraphQL.newGraphQL(schemaProvider(applicationContext = context).schema()).build() + GraphQL.newGraphQL(schemaProvider(applicationContext = context).schema().graphQLSchema).build() } assertThat(exc.message).isEqualTo("Duplicate data fetchers registered for Query.hello") } @@ -319,7 +319,7 @@ internal class DgsSchemaProviderTest { } contextRunner.withBeans(Fetcher::class).run { context -> - val schema = schemaProvider(applicationContext = context).schema() + val schema = schemaProvider(applicationContext = context).schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() assertHello(build) } @@ -339,7 +339,7 @@ internal class DgsSchemaProviderTest { contextRunner.withBeans(VideoFetcher::class).run { context -> val error = assertThrows { - val build = GraphQL.newGraphQL(schemaProvider(applicationContext = context).schema(schema)).build() + val build = GraphQL.newGraphQL(schemaProvider(applicationContext = context).schema(schema).graphQLSchema).build() build.execute("{video{title}}") } assertThat(error.message).isEqualTo("The default type resolver could not find a suitable Java type for GraphQL interface type `Video`. Provide a @DgsTypeResolver for `Show`.") @@ -368,7 +368,7 @@ internal class DgsSchemaProviderTest { contextRunner.withBean(SearchFetcher::class.java).run { context -> val error = assertThrows { - val build = GraphQL.newGraphQL(schemaProvider(applicationContext = context).schema(schema)).build() + val build = GraphQL.newGraphQL(schemaProvider(applicationContext = context).schema(schema).graphQLSchema).build() build.execute( """ query { @@ -414,7 +414,7 @@ internal class DgsSchemaProviderTest { contextRunner.withBean(FetcherWithDefaultResolver::class.java).withBean(VideoFetcher::class.java).run { context -> assertThatNoException().isThrownBy { // verify that it should not trigger a build failure - GraphQL.newGraphQL(schemaProvider(applicationContext = context).schema(schema)).build() + GraphQL.newGraphQL(schemaProvider(applicationContext = context).schema(schema).graphQLSchema).build() } } } @@ -453,7 +453,7 @@ internal class DgsSchemaProviderTest { } contextRunner.withBeans(FetcherWithDefaultResolver::class, FetcherWithResolverOverride::class, VideoFetcher::class).run { context -> - val build = GraphQL.newGraphQL(schemaProvider(applicationContext = context).schema(schema)).build() + val build = GraphQL.newGraphQL(schemaProvider(applicationContext = context).schema(schema).graphQLSchema).build() assertVideo(build) } } @@ -461,7 +461,7 @@ internal class DgsSchemaProviderTest { @Test fun addFetchersWithoutDataFetchingEnvironment() { contextRunner.withBeans(HelloFetcher::class).run { context -> - val schema = schemaProvider(applicationContext = context).schema() + val schema = schemaProvider(applicationContext = context).schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() assertHello(build) } @@ -528,7 +528,7 @@ internal class DgsSchemaProviderTest { applicationContext = context, typeDefinitionRegistry = typeDefinitionRegistry, dataFetcherResultProcessors = listOf(processor) - ).schema() + ).schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() assertHello(build) @@ -555,7 +555,7 @@ internal class DgsSchemaProviderTest { .build() typeDefinitionRegistry.add(objectTypeExtensionDefinition) - val schema = schemaProvider(applicationContext = context, typeDefinitionRegistry = typeDefinitionRegistry).schema() + val schema = schemaProvider(applicationContext = context, typeDefinitionRegistry = typeDefinitionRegistry).schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() assertHello(build) @@ -591,7 +591,7 @@ internal class DgsSchemaProviderTest { contextRunner.run { context -> val dgsSchemaProvider = schemaProvider(applicationContext = context) - assertThat(dgsSchemaProvider.schema(schema)).isNotNull + assertThat(dgsSchemaProvider.schema(schema).graphQLSchema).isNotNull } } @@ -780,7 +780,7 @@ internal class DgsSchemaProviderTest { contextRunner.withBeans(Fetcher::class).run { context -> val schemaProvider = schemaProvider(applicationContext = context) - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() assertHello(build) } @@ -798,7 +798,7 @@ internal class DgsSchemaProviderTest { contextRunner.withBeans(Fetcher::class).run { context -> val schemaProvider = schemaProvider(applicationContext = context) - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() assertHello(build) } @@ -815,7 +815,7 @@ internal class DgsSchemaProviderTest { } contextRunner.withBeans(Fetcher::class).run { context -> - val schema = schemaProvider(applicationContext = context).schema() + val schema = schemaProvider(applicationContext = context).schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() assertHello(build) } @@ -838,7 +838,7 @@ internal class DgsSchemaProviderTest { addMessage(message: String): String } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() assertInputMessage(build) } @@ -861,7 +861,7 @@ internal class DgsSchemaProviderTest { addMessage(message: String): String } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() assertInputMessage(build) } @@ -884,7 +884,7 @@ internal class DgsSchemaProviderTest { messages: String } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() assertSubscription(build) } @@ -907,7 +907,7 @@ internal class DgsSchemaProviderTest { messages: String } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() assertSubscription(build) } @@ -922,7 +922,7 @@ internal class DgsSchemaProviderTest { Files.writeString(anotherPath, """directive @bar on FIELD_DEFINITION""") contextRunner.run { context -> - val schema = schemaProvider(context, schemaLocations = listOf("file:$tempDir/*.graphql")).schema() + val schema = schemaProvider(context, schemaLocations = listOf("file:$tempDir/*.graphql")).schema().graphQLSchema assertThat(schema.getType("Foo")).isNotNull assertThat(schema.getDirective("bar")).isNotNull } @@ -953,7 +953,7 @@ internal class DgsSchemaProviderTest { val schema = schemaProvider( applicationContext = context, componentFilter = { !it::class.hasAnnotation() } - ).schema() + ).schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() assertHello(build) } @@ -989,7 +989,7 @@ internal class DgsSchemaProviderTest { contextRunner.withBeans(Fetcher::class).run { context -> val schemaProvider = schemaProvider(applicationContext = context) - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute("{world}") assertTrue(executionResult.isDataPresent) @@ -1042,7 +1042,7 @@ internal class DgsSchemaProviderTest { contextRunner.withBeans(Fetcher::class, FetcherWithDefaultResolver::class).run { context -> val schemaProvider = schemaProvider(applicationContext = context) - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute("{character { age }}") assertTrue(executionResult.isDataPresent) @@ -1083,7 +1083,7 @@ internal class DgsSchemaProviderTest { contextRunner.withBeans(Fetcher::class).run { context -> val schemaProvider = schemaProvider(applicationContext = context) - val schema = schemaProvider.schema() + val schema = schemaProvider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute("{world}") assertTrue(executionResult.isDataPresent) diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DgsTypeRegistryDefinitionTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DgsTypeRegistryDefinitionTest.kt index f08164f6c..9ebca5672 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DgsTypeRegistryDefinitionTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/DgsTypeRegistryDefinitionTest.kt @@ -71,7 +71,7 @@ class DgsTypeRegistryDefinitionTest { methodDataFetcherFactory = MethodDataFetcherFactory(listOf()) ) - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val graphql = GraphQL.newGraphQL(schema).build() val result = graphql.execute( """ @@ -146,7 +146,7 @@ class DgsTypeRegistryDefinitionTest { methodDataFetcherFactory = MethodDataFetcherFactory(listOf()) ) - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val graphql = GraphQL.newGraphQL(schema).build() val result = graphql.execute( """ diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/InterfaceDataFetchersTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/InterfaceDataFetchersTest.kt index fda6504e7..e0a513da1 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/InterfaceDataFetchersTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/InterfaceDataFetchersTest.kt @@ -130,7 +130,7 @@ class InterfaceDataFetchersTest { nrOfExplosions: Int } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/TypeResolverTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/TypeResolverTest.kt index 016d3abb5..d60787a8e 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/TypeResolverTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/TypeResolverTest.kt @@ -94,7 +94,7 @@ class TypeResolverTest { nrOfExplosions: Int } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute( @@ -150,7 +150,7 @@ class TypeResolverTest { nrOfExplosions: Int } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() @@ -217,7 +217,7 @@ class TypeResolverTest { nrOfExplosions: Int } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute( diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/UnionDataFetcherTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/UnionDataFetcherTest.kt index c5c9ba8fa..ec42e11cb 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/UnionDataFetcherTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/UnionDataFetcherTest.kt @@ -96,7 +96,7 @@ class UnionDataFetcherTest { imdbRating: Int } """.trimIndent() - ) + ).graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute( diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/context/DgsContextTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/context/DgsContextTest.kt index 620ee4896..407f732c5 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/context/DgsContextTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/context/DgsContextTest.kt @@ -78,7 +78,7 @@ internal class DgsContextTest { ) return DefaultDgsQueryExecutor( - defaultSchema = provider.schema(schemaString), + defaultSchema = provider.schema(schemaString).graphQLSchema, schemaProvider = provider, dataLoaderProvider = context.getBean(DgsDataLoaderProvider::class.java), contextBuilder = DefaultDgsGraphQLContextBuilder(Optional.empty()), diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/internal/DefaultDgsQueryExecutorTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/internal/DefaultDgsQueryExecutorTest.kt index be01e3d78..2e0f32254 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/internal/DefaultDgsQueryExecutorTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/internal/DefaultDgsQueryExecutorTest.kt @@ -145,7 +145,7 @@ internal class DefaultDgsQueryExecutorTest { scalar DateTime """.trimIndent() - ) + ).graphQLSchema dgsQueryExecutor = DefaultDgsQueryExecutor( defaultSchema = schema, diff --git a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/internal/InputArgumentTest.kt b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/internal/InputArgumentTest.kt index 786179dd3..ee9f70384 100644 --- a/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/internal/InputArgumentTest.kt +++ b/graphql-dgs/src/test/kotlin/com/netflix/graphql/dgs/internal/InputArgumentTest.kt @@ -99,7 +99,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute("""{hello(name: "tester")}""") @@ -123,7 +123,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute("""{hello(name: "tester")}""") @@ -169,7 +169,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute("""{hello(name: "tester")}""") @@ -212,7 +212,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute("""{hello(name: "tester")}""") @@ -247,7 +247,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(person: {name: "tester"})}""") assertThat(executionResult.errors).isEmpty() assertThat(executionResult.isDataPresent).isTrue @@ -279,7 +279,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(person: {name: "tester"})}""") assertThat(executionResult.errors).isEmpty() assertThat(executionResult.isDataPresent).isTrue @@ -311,7 +311,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(person: {name: "tester"})}""") assertThat(executionResult.errors).isEmpty() assertThat(executionResult.isDataPresent).isTrue @@ -343,7 +343,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(person: {name: "tester"})}""") assertThat(executionResult.errors).isEmpty() assertThat(executionResult.isDataPresent).isTrue @@ -371,7 +371,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(names: ["tester 1", "tester 2"])}""") assertThat(executionResult.errors).isEmpty() assertThat(executionResult.isDataPresent).isTrue @@ -399,7 +399,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(names: ["tester 1", "tester 2"])}""") assertThat(executionResult.errors).isEmpty() assertThat(executionResult.isDataPresent).isTrue @@ -427,7 +427,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(names: ["tester 1", "tester 2"])}""") assertThat(executionResult.errors).isEmpty() assertThat(executionResult.isDataPresent).isTrue @@ -455,7 +455,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(names: ["tester 1", "tester 2"])}""") assertThat(executionResult.errors).isEmpty() assertThat(executionResult.isDataPresent).isTrue @@ -487,7 +487,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(person: [{name: "tester 1"}, {name: "tester 2"}])}""") assertThat(executionResult.errors).isEmpty() assertThat(executionResult.isDataPresent).isTrue @@ -520,7 +520,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(persons: [{name: "tester"}, {name: "tester 2"}])}""") assertThat(executionResult.errors).isEmpty() assertThat(executionResult.isDataPresent).isTrue @@ -559,7 +559,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(person: [{name: "tester 1"}, {name: "tester 2"}])}""")!! assertThat(executionResult).isNotNull @@ -601,7 +601,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(person: [{name: "tester 1"}, {name: "tester 2"}])}""")!! assertThat(executionResult).isNotNull @@ -635,7 +635,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{ numbers(list: [1, 2, 3]) }""") assertThat(executionResult).isNotNull assertThat(executionResult.isDataPresent).isTrue @@ -674,7 +674,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{titles(filter: {movieIds: [1, "two"]})}""") assertThat(executionResult).isNotNull Assertions.assertTrue(executionResult.isDataPresent) @@ -717,7 +717,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{titles(input: {bars: [{name: "bar 1", value: 1}, {name: "bar 2", value: "two"}]})}""") assertThat(executionResult).isNotNull @@ -761,7 +761,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{titles(input: {bars: [{name: "bar 1", value: 1}, {name: "bar 2", value: "two"}]})}""") assertThat(executionResult).isNotNull @@ -793,7 +793,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(person: [{name: "tester"}, {name: "tester 2"}, {name: "tester"}])}""") @@ -828,7 +828,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(person: [{name: "tester"}, {name: "tester 2"}])}""") assertThat(executionResult.errors).hasSize(1) @@ -862,7 +862,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(person: {})}""") assertThat(executionResult).isNotNull @@ -896,7 +896,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -937,7 +937,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(capitalize: true, person: {name: "tester"})}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -984,7 +984,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(capitalize: true, person: {name: "tester"}, otherArg: "!")}""") assertThat(executionResult).isNotNull @@ -1028,7 +1028,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(capitalize: true, person: {name: "tester"}, otherArg: "!")}""") assertThat(executionResult).isNotNull @@ -1059,7 +1059,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class, UploadScalar::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val file = MockMultipartFile("hello.txt", "hello.txt", MediaType.TEXT_PLAIN_VALUE, "Hello World".toByteArray()) val executionResult = build.execute( @@ -1094,7 +1094,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1125,7 +1125,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class, LocalDateTimeScalar::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""mutation {setDate(date: "2021-01-27T10:15:30")}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1159,7 +1159,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class, LocalDateTimeScalar::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""mutation {setDate(date: null)}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1190,7 +1190,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class, LocalDateTimeScalar::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""mutation {setDate(date: ["2021-01-27T10:15:30"])}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1224,7 +1224,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class, LocalDateTimeScalar::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""mutation {setDate(input: {date: "2021-01-27T10:15:30"})}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1254,7 +1254,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""mutation {setRatings(ratings: [1, 2, 3])}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1277,7 +1277,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute("""{hello(name: "tester")}""") assertThat(executionResult).isNotNull @@ -1311,7 +1311,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(person: {name: "tester"})}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1334,7 +1334,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute("""{hello}""") @@ -1371,7 +1371,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(type: FRIENDLY)}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1406,7 +1406,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(type: FRIENDLY)}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1448,7 +1448,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute( """{ | khello(input: [FRIENDLY POLITE]) @@ -1488,7 +1488,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1522,7 +1522,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1556,7 +1556,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(type: FRIENDLY)}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1590,7 +1590,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(type: FRIENDLY)}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1624,7 +1624,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1666,7 +1666,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute( """ { hello(input: { type: FRIENDLY, typeList: [POLITE, FRIENDLY] }) } @@ -1709,7 +1709,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(someInput: {type: null})}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1751,7 +1751,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute( """ { hello(input: { type: FRIENDLY, typeList: [POLITE, FRIENDLY] }) } @@ -1779,7 +1779,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val schema = provider.schema() + val schema = provider.schema().graphQLSchema val build = GraphQL.newGraphQL(schema).build() val executionResult = build.execute("""{hello(name: "tester")}""") assertThat(executionResult).isNotNull @@ -1821,7 +1821,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(objects: [{name: "Test 1", value: 1}, {name: "Test 2", value: "two"}])}""") assertThat(executionResult).isNotNull @@ -1858,7 +1858,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(json: {keyA: "value A", keyB: "value B"})}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1898,7 +1898,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(filter: {query: {and: ["title", "genre"]}})}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1940,7 +1940,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(filter: {query: {and: ["title", "genre"]}})}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -1984,7 +1984,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute( """ { @@ -2075,7 +2075,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute( """ @@ -2167,7 +2167,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute( """ { @@ -2209,7 +2209,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{ hello }""") assertThat(executionResult.errors).isEmpty() assertThat(executionResult.isDataPresent).isTrue @@ -2249,7 +2249,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(input: {countryCode: "US"})}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() @@ -2286,7 +2286,7 @@ internal class InputArgumentTest { contextRunner.withBeans(Fetcher::class).run { context -> val provider = schemaProvider(context) - val build = GraphQL.newGraphQL(provider.schema(schema)).build() + val build = GraphQL.newGraphQL(provider.schema(schema).graphQLSchema).build() val executionResult = build.execute("""{hello(countryCode: "ZW")}""") assertThat(executionResult).isNotNull assertThat(executionResult.errors).isEmpty() diff --git a/settings.gradle.kts b/settings.gradle.kts index 0d200a9af..242d13c25 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -52,3 +52,9 @@ include("graphql-dgs-webflux-starter") include("graphql-dgs-example-shared") include("graphql-dgs-pagination") include("graphql-dgs-subscription-types") +include("graphql-dgs-spring-graphql") +include("graphql-dgs-spring-graphql-test") +include("graphql-dgs-spring-graphql-starter") +include("graphql-dgs-spring-graphql-starter-test") +include("graphql-dgs-spring-graphql-example-java") +include("graphql-dgs-spring-graphql-example-java-webflux")