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

Commit b820f4c

Browse files
committed
Extract graphql-java-tools into its own starter
1 parent 1d15482 commit b820f4c

26 files changed

+340
-202
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
dependencies {
2+
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:$LIB_SPRING_BOOT_VER"
3+
compileOnly "org.springframework.boot:spring-boot-configuration-processor:$LIB_SPRING_BOOT_VER"
4+
5+
compile "com.graphql-java-kickstart:graphql-java-tools:$LIB_GRAPHQL_JAVA_TOOLS_VER"
6+
compile "org.springframework.boot:spring-boot-autoconfigure:$LIB_SPRING_BOOT_VER"
7+
compile "commons-io:commons-io:$LIB_COMMONS_IO_VER"
8+
9+
compile "com.graphql-java-kickstart:graphql-java-servlet:$LIB_GRAPHQL_SERVLET_VER"
10+
11+
// testCompile "com.graphql-java-kickstart:graphql-java-servlet:$LIB_GRAPHQL_SERVLET_VER"
12+
testCompile "com.graphql-java:graphql-java:$LIB_GRAPHQL_JAVA_VER"
13+
testCompile "org.springframework.boot:spring-boot-starter-web:$LIB_SPRING_BOOT_VER"
14+
testCompile "org.springframework.boot:spring-boot-starter-test:$LIB_SPRING_BOOT_VER"
15+
testCompile(project(":graphql-spring-boot-test"))
16+
}
17+
18+
compileJava.dependsOn(processResources)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.oembedler.moon.graphql.boot;
1+
package graphql.kickstart.tools.boot;
22

33
import org.apache.commons.io.IOUtils;
44
import org.springframework.beans.factory.annotation.Autowired;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.oembedler.moon.graphql.boot;
1+
package graphql.kickstart.tools.boot;
22

33
import com.coxautodev.graphql.tools.GraphQLResolver;
44
import com.coxautodev.graphql.tools.PerFieldObjectMapperProvider;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.oembedler.moon.graphql.boot;
1+
package graphql.kickstart.tools.boot;
22

33
import lombok.Data;
44
import org.springframework.boot.context.properties.ConfigurationProperties;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.oembedler.moon.graphql.boot;
1+
package graphql.kickstart.tools.boot;
22

33
import java.io.IOException;
44
import java.util.ArrayList;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.oembedler.moon.graphql.boot;
1+
package graphql.kickstart.tools.boot;
22

33
import graphql.schema.idl.SchemaDirectiveWiring;
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.oembedler.moon.graphql.boot;
1+
package graphql.kickstart.tools.boot;
22

33
import java.io.IOException;
44
import java.util.List;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2+
graphql.kickstart.tools.boot.GraphQLJavaToolsAutoConfiguration
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package graphql.kickstart.tools.boot;
2+
3+
import static org.mockito.Mockito.mock;
4+
5+
import javax.servlet.ServletContext;
6+
import javax.websocket.server.ServerContainer;
7+
import org.junit.After;
8+
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
9+
import org.springframework.boot.test.util.TestPropertyValues;
10+
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
11+
import org.springframework.context.annotation.AnnotationConfigRegistry;
12+
import org.springframework.context.support.AbstractApplicationContext;
13+
import org.springframework.mock.web.MockServletContext;
14+
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
15+
16+
/**
17+
* @author Andrew Potter
18+
*/
19+
public abstract class AbstractAutoConfigurationTest {
20+
21+
private final Class<? extends AbstractApplicationContext> contextClass;
22+
private final Class<?> autoConfiguration;
23+
24+
private AbstractApplicationContext context;
25+
26+
protected AbstractAutoConfigurationTest(Class<?> autoConfiguration) {
27+
this(AnnotationConfigApplicationContext.class, autoConfiguration);
28+
}
29+
30+
protected AbstractAutoConfigurationTest(Class<? extends AbstractApplicationContext> contextClass,
31+
Class<?> autoConfiguration) {
32+
assert AnnotationConfigRegistry.class.isAssignableFrom(contextClass);
33+
this.contextClass = contextClass;
34+
this.autoConfiguration = autoConfiguration;
35+
}
36+
37+
@After
38+
public void tearDown() {
39+
if (this.context != null) {
40+
this.context.close();
41+
this.context = null;
42+
}
43+
}
44+
45+
protected void load(Class<?> config, String... environment) {
46+
try {
47+
this.context = contextClass.newInstance();
48+
} catch (InstantiationException | IllegalAccessException e) {
49+
throw new RuntimeException("Failed to instantiate testing context", e);
50+
}
51+
52+
if (environment != null && environment.length > 0) {
53+
TestPropertyValues.of(environment).applyTo(context);
54+
}
55+
56+
getRegistry().register(config);
57+
getRegistry().register(autoConfiguration);
58+
getRegistry().register(JacksonAutoConfiguration.class);
59+
60+
loadServletContext();
61+
getContext().refresh();
62+
}
63+
64+
private void loadServletContext() {
65+
if (context instanceof AnnotationConfigWebApplicationContext) {
66+
ServerContainer serverContainer = mock(ServerContainer.class);
67+
ServletContext servletContext = new MockServletContext();
68+
servletContext.setAttribute("javax.websocket.server.ServerContainer", serverContainer);
69+
((AnnotationConfigWebApplicationContext) context).setServletContext(servletContext);
70+
}
71+
}
72+
73+
public AnnotationConfigRegistry getRegistry() {
74+
return (AnnotationConfigRegistry) context;
75+
}
76+
77+
public AbstractApplicationContext getContext() {
78+
return context;
79+
}
80+
}
Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
package com.oembedler.moon.graphql.boot;
1+
package graphql.kickstart.tools.boot;
22

33
import static org.junit.Assert.assertEquals;
44
import static org.junit.Assert.assertTrue;
55

66
import com.coxautodev.graphql.tools.GraphQLQueryResolver;
7-
import com.oembedler.moon.graphql.boot.test.AbstractAutoConfigurationTest;
87
import java.io.IOException;
98
import java.util.List;
9+
import org.junit.After;
10+
import org.junit.Before;
1011
import org.junit.Test;
1112
import org.springframework.context.annotation.Configuration;
1213

@@ -18,9 +19,18 @@ public ClasspathResourceSchemaStringProviderTest() {
1819
super(GraphQLJavaToolsAutoConfiguration.class);
1920
}
2021

22+
@Before
23+
public void setup() {
24+
System.setProperty("graphql.tools.schemaLocationPattern", "graphql/*.gqls");
25+
}
26+
27+
@After
28+
public void clear() {
29+
System.clearProperty("graphql.tools.schemaLocationPattern");
30+
}
31+
2132
@Test
2233
public void schemaStrings() throws IOException {
23-
System.setProperty("graphql.tools.schemaLocationPattern", "graphql/*.gqls");
2434
load(BaseConfiguration.class);
2535
schemaStringProvider = getContext().getBean(ClasspathResourceSchemaStringProvider.class);
2636

@@ -33,6 +43,7 @@ public void schemaStrings() throws IOException {
3343
static class BaseConfiguration {
3444

3545
public class Query implements GraphQLQueryResolver {
46+
3647
String schemaLocationTest(String id) {
3748
return id;
3849
}

0 commit comments

Comments
 (0)