Skip to content
This repository was archived by the owner on Dec 19, 2023. It is now read-only.

Commit 3164992

Browse files
committed
Add instrumentation to subscriptions fix #358
1 parent 9c07d1f commit 3164992

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

graphql-spring-boot-autoconfigure/src/main/java/graphql/kickstart/spring/web/boot/GraphQLWebsocketAutoConfiguration.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package graphql.kickstart.spring.web.boot;
22

3+
import graphql.execution.instrumentation.ChainedInstrumentation;
4+
import graphql.execution.instrumentation.Instrumentation;
35
import graphql.execution.instrumentation.dataloader.DataLoaderDispatcherInstrumentationOptions;
46
import graphql.kickstart.execution.BatchedDataLoaderGraphQLBuilder;
57
import graphql.kickstart.execution.GraphQLInvoker;
@@ -13,6 +15,7 @@
1315
import java.time.Duration;
1416
import java.util.Collection;
1517
import java.util.HashSet;
18+
import java.util.List;
1619
import java.util.Optional;
1720
import java.util.Set;
1821
import java.util.function.Supplier;
@@ -48,8 +51,17 @@ public class GraphQLWebsocketAutoConfiguration {
4851

4952
@Bean
5053
@ConditionalOnMissingBean
51-
public GraphQLBuilder graphQLBuilder() {
52-
return new GraphQLBuilder();
54+
public GraphQLBuilder graphQLBuilder(
55+
@Autowired(required = false) List<Instrumentation> instrumentations) {
56+
GraphQLBuilder graphQLBuilder = new GraphQLBuilder();
57+
if (instrumentations != null && !instrumentations.isEmpty()) {
58+
if (instrumentations.size() == 1) {
59+
graphQLBuilder.instrumentation(() -> instrumentations.get(0));
60+
} else {
61+
graphQLBuilder.instrumentation(() -> new ChainedInstrumentation(instrumentations));
62+
}
63+
}
64+
return graphQLBuilder;
5365
}
5466

5567
@Bean

0 commit comments

Comments
 (0)