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

Commit 61fca22

Browse files
committed
Merge remote-tracking branch 'remotes/upstream/master' into wip/unify-objectmapper
# Conflicts: # gradle.properties # graphql-spring-boot-autoconfigure/src/main/java/com/oembedler/moon/graphql/boot/GraphQLWebAutoConfiguration.java
2 parents 8b04164 + 38d337b commit 61fca22

8 files changed

Lines changed: 92 additions & 24 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ repositories {
4242
4343
dependencies {
4444
compile 'com.graphql-java:graphql-spring-boot-starter:5.0.2'
45-
45+
4646
// to embed GraphiQL tool
4747
compile 'com.graphql-java:graphiql-spring-boot-starter:5.0.2'
4848

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1818
#
1919

20-
PROJECT_VERSION = 6.0.0-SNAPSHOT
20+
PROJECT_VERSION = 5.0.3
2121
PROJECT_GROUP = com.graphql-java
2222
PROJECT_NAME = graphql-spring-boot
2323
PROJECT_DESC = GraphQL Spring Framework Boot

graphql-spring-boot-autoconfigure/src/main/java/com/oembedler/moon/graphql/boot/GraphQLWebAutoConfiguration.java

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@
6161
import org.springframework.web.filter.CorsFilter;
6262
import org.springframework.web.servlet.DispatcherServlet;
6363
import org.springframework.web.servlet.config.annotation.CorsRegistryWorkaround;
64-
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
65-
import org.springframework.web.socket.server.standard.ServerEndpointRegistration;
6664

6765
import javax.servlet.MultipartConfigElement;
6866
import java.util.List;
@@ -91,9 +89,6 @@ public class GraphQLWebAutoConfiguration {
9189
@Autowired
9290
private GraphQLServletProperties graphQLServletProperties;
9391

94-
@Value("${graphql.servlet.subscriptions.websocket.path:/subscriptions}")
95-
private String websocketPath;
96-
9792
@Autowired(required = false)
9893
private List<GraphQLServletListener> listeners;
9994

@@ -257,23 +252,6 @@ public ServletRegistrationBean<AbstractGraphQLHttpServlet> graphQLServletRegistr
257252
return registration;
258253
}
259254

260-
@Bean
261-
@ConditionalOnMissingBean
262-
public GraphQLWebsocketServlet graphQLWebsocketServlet(GraphQLInvocationInputFactory invocationInputFactory, GraphQLQueryInvoker queryInvoker, GraphQLObjectMapper graphQLObjectMapper) {
263-
return new GraphQLWebsocketServlet(queryInvoker, invocationInputFactory, graphQLObjectMapper);
264-
}
265-
266-
@Bean
267-
public ServerEndpointRegistration serverEndpointRegistration(GraphQLWebsocketServlet servlet) {
268-
return new GraphQLWsServerEndpointRegistration(websocketPath, servlet);
269-
}
270-
271-
@Bean
272-
@ConditionalOnMissingBean
273-
public ServerEndpointExporter serverEndpointExporter() {
274-
return new ServerEndpointExporter();
275-
}
276-
277255
private MultipartConfigElement multipartConfigElement() {
278256
return Optional.ofNullable(multipartConfigElement).orElse(new MultipartConfigElement(""));
279257
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.oembedler.moon.graphql.boot;
2+
3+
import graphql.schema.GraphQLSchema;
4+
import graphql.servlet.GraphQLInvocationInputFactory;
5+
import graphql.servlet.GraphQLObjectMapper;
6+
import graphql.servlet.GraphQLQueryInvoker;
7+
import graphql.servlet.GraphQLWebsocketServlet;
8+
import org.springframework.beans.factory.annotation.Value;
9+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
10+
import org.springframework.boot.autoconfigure.condition.*;
11+
import org.springframework.context.annotation.Bean;
12+
import org.springframework.context.annotation.Configuration;
13+
import org.springframework.web.servlet.DispatcherServlet;
14+
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
15+
import org.springframework.web.socket.server.standard.ServerEndpointRegistration;
16+
17+
import javax.websocket.server.ServerContainer;
18+
19+
@Configuration
20+
@ConditionalOnWebApplication
21+
@ConditionalOnClass(DispatcherServlet.class)
22+
@ConditionalOnBean({GraphQLSchema.class})
23+
@ConditionalOnProperty(value = "graphql.servlet.websocket.enabled", havingValue = "true", matchIfMissing = true)
24+
@AutoConfigureAfter({GraphQLJavaToolsAutoConfiguration.class})
25+
public class GraphQLWebsocketAutoConfiguration {
26+
27+
@Value("${graphql.servlet.subscriptions.websocket.path:/subscriptions}")
28+
private String websocketPath;
29+
30+
@Bean
31+
@ConditionalOnMissingBean
32+
public GraphQLWebsocketServlet graphQLWebsocketServlet(GraphQLInvocationInputFactory invocationInputFactory, GraphQLQueryInvoker queryInvoker, GraphQLObjectMapper graphQLObjectMapper) {
33+
return new GraphQLWebsocketServlet(queryInvoker, invocationInputFactory, graphQLObjectMapper);
34+
}
35+
36+
@Bean
37+
@ConditionalOnClass(ServerContainer.class)
38+
public ServerEndpointRegistration serverEndpointRegistration(GraphQLWebsocketServlet servlet) {
39+
return new GraphQLWsServerEndpointRegistration(websocketPath, servlet);
40+
}
41+
42+
@Bean
43+
@ConditionalOnMissingBean
44+
@ConditionalOnClass(ServerContainer.class)
45+
public ServerEndpointExporter serverEndpointExporter() {
46+
return new ServerEndpointExporter();
47+
}
48+
49+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
22
com.oembedler.moon.graphql.boot.GraphQLWebAutoConfiguration,\
3+
com.oembedler.moon.graphql.boot.GraphQLWebsocketAutoConfiguration,\
34
com.oembedler.moon.graphql.boot.GraphQLJavaToolsAutoConfiguration,\
45
com.oembedler.moon.graphql.boot.GraphQLInstrumentationAutoConfiguration
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.oembedler.moon.graphql.boot;
2+
3+
import org.junit.Test;
4+
import org.junit.runner.RunWith;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.boot.test.context.SpringBootTest;
7+
import org.springframework.test.context.junit4.SpringRunner;
8+
9+
import static graphql.Assert.assertNotNull;
10+
import static org.junit.Assert.assertEquals;
11+
12+
@RunWith(SpringRunner.class)
13+
@SpringBootTest(properties = {"graphql.servlet.mapping=/test"})
14+
public class GraphQLServletPropertiesTest {
15+
16+
@Autowired
17+
private GraphQLServletProperties properties;
18+
19+
@Test
20+
public void contains_custom_servlet_endpoint() {
21+
String mapping = properties.getMapping();
22+
assertNotNull(mapping);
23+
assertEquals("/test", mapping);
24+
}
25+
26+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.oembedler.moon.graphql.boot;
2+
3+
import org.springframework.boot.SpringBootConfiguration;
4+
import org.springframework.boot.context.properties.EnableConfigurationProperties;
5+
import org.springframework.context.annotation.Import;
6+
7+
@SpringBootConfiguration
8+
@Import(GraphQLServletProperties.class)
9+
@EnableConfigurationProperties
10+
public class TestAutoConfiguration {
11+
12+
13+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
graphql.servlet.mapping: /test

0 commit comments

Comments
 (0)