Skip to content

Commit 55ba690

Browse files
authored
Merge pull request #27 from nfl/update-graphql-java
bumping to the latest release of graphql-java
2 parents e6dce74 + 4a5ca54 commit 55ba690

File tree

6 files changed

+31
-17
lines changed

6 files changed

+31
-17
lines changed

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ repositories {
4343

4444
dependencies {
4545
// GraphQL dependencies
46-
compile("com.graphql-java:graphql-java:6.0")
46+
compile("com.graphql-java:graphql-java:7.0")
4747

4848
// Commons dependencies
4949
compile("org.apache.commons:commons-lang3:3.4")

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ maven.central.sync=false
55
sonatype.username=DUMMY_SONATYPE_USER
66
sonatype.password=DUMMY_SONATYPE_PASSWORD
77

8-
PROJECT_VERSION=1.3.0
8+
PROJECT_VERSION=1.4.0
99
PROJECT_GITHUB_REPO_URL=https://github.com/nfl/glitr
1010
PROJECT_LICENSE_URL=https://github.com/nfl/glitr/blob/master/LICENSE

src/main/java/com/nfl/glitr/Glitr.java

+17-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.nfl.glitr;
22

3-
import com.nfl.glitr.exception.GlitrException;
43
import com.nfl.glitr.registry.TypeRegistry;
54
import com.nfl.glitr.relay.RelayHelper;
65
import com.nfl.glitr.util.ObjectMapper;
76
import com.nfl.glitr.util.QueryComplexityCalculator;
87
import graphql.schema.GraphQLObjectType;
98
import graphql.schema.GraphQLSchema;
9+
import graphql.schema.visibility.GraphqlFieldVisibility;
1010

1111
import javax.annotation.Nullable;
1212

@@ -22,11 +22,11 @@ public class Glitr {
2222
private static ObjectMapper objectMapper;
2323

2424

25-
public Glitr(TypeRegistry typeRegistry, Class queryRoot, @Nullable ObjectMapper objectMapper, @Nullable Class mutationRoot, @Nullable QueryComplexityCalculator queryComplexityCalculator) {
26-
this(typeRegistry, queryRoot, objectMapper, null, mutationRoot, queryComplexityCalculator);
25+
public Glitr(TypeRegistry typeRegistry, Class queryRoot, @Nullable GraphqlFieldVisibility fieldVisibility, @Nullable ObjectMapper objectMapper, @Nullable Class mutationRoot, @Nullable QueryComplexityCalculator queryComplexityCalculator) {
26+
this(typeRegistry, queryRoot, fieldVisibility, objectMapper, null, mutationRoot, queryComplexityCalculator);
2727
}
2828

29-
public Glitr(TypeRegistry typeRegistry, Class queryRoot, @Nullable ObjectMapper objectMapper, @Nullable RelayHelper relayHelper, @Nullable Class mutationRoot, @Nullable QueryComplexityCalculator queryComplexityCalculator) {
29+
public Glitr(TypeRegistry typeRegistry, Class queryRoot, @Nullable GraphqlFieldVisibility fieldVisibility, @Nullable ObjectMapper objectMapper, @Nullable RelayHelper relayHelper, @Nullable Class mutationRoot, @Nullable QueryComplexityCalculator queryComplexityCalculator) {
3030
assertNotNull(typeRegistry, "TypeRegistry can't be null");
3131
assertNotNull(queryRoot, "queryRoot class can't be null");
3232
this.typeRegistry = typeRegistry;
@@ -37,7 +37,7 @@ public Glitr(TypeRegistry typeRegistry, Class queryRoot, @Nullable ObjectMapper
3737
.withQueryComplexityExcludeNodes(typeRegistry.getQueryComplexityExcludeNodes());
3838
}
3939
Glitr.objectMapper = objectMapper;
40-
this.schema = buildSchema(queryRoot, mutationRoot);
40+
this.schema = buildSchema(queryRoot, mutationRoot, fieldVisibility);
4141
}
4242

4343
public TypeRegistry getTypeRegistry() {
@@ -65,22 +65,31 @@ public static ObjectMapper getObjectMapper() {
6565
return objectMapper;
6666
}
6767

68-
private GraphQLSchema buildSchema(Class queryRoot, Class mutationRoot) {
68+
private GraphQLSchema buildSchema(Class queryRoot, Class mutationRoot, GraphqlFieldVisibility fieldVisibility) {
6969
// create GraphQL Schema
7070
GraphQLObjectType mutationType = null;
7171
if (mutationRoot != null) {
7272
mutationType = typeRegistry.createRelayMutationType(mutationRoot);
7373
}
7474

7575
GraphQLObjectType queryType = (GraphQLObjectType) typeRegistry.lookup(queryRoot);
76+
77+
if (fieldVisibility != null) {
78+
return GraphQLSchema.newSchema()
79+
.query(queryType)
80+
.mutation(mutationType)
81+
.fieldVisibility(fieldVisibility)
82+
.build(typeRegistry.getTypeDictionary());
83+
}
84+
7685
return GraphQLSchema.newSchema()
7786
.query(queryType)
7887
.mutation(mutationType)
7988
.build(typeRegistry.getTypeDictionary());
8089
}
8190

82-
public GraphQLSchema reloadSchema(Class queryRoot, Class mutationRoot) {
83-
this.schema = buildSchema(queryRoot, mutationRoot);
91+
public GraphQLSchema reloadSchema(Class queryRoot, Class mutationRoot, GraphqlFieldVisibility fieldVisibility) {
92+
this.schema = buildSchema(queryRoot, mutationRoot, fieldVisibility);
8493
return this.schema;
8594
}
8695
}

src/main/java/com/nfl/glitr/GlitrBuilder.java

+9-4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.nfl.glitr.util.ObjectMapper;
1212
import com.nfl.glitr.util.QueryComplexityCalculator;
1313
import graphql.schema.*;
14+
import graphql.schema.visibility.GraphqlFieldVisibility;
1415
import org.slf4j.Logger;
1516
import org.slf4j.LoggerFactory;
1617
import rx.functions.Func4;
@@ -36,6 +37,7 @@ public class GlitrBuilder {
3637
private RelayConfig relayConfig = null;
3738
private Object queryRoot = null;
3839
private Object mutationRoot = null;
40+
private GraphqlFieldVisibility fieldVisibility = null;
3941
private ObjectMapper objectMapper = null;
4042
private QueryComplexityCalculator queryComplexityCalculator;
4143

@@ -63,6 +65,11 @@ public GlitrBuilder withMutationRoot(Object mutationRoot) {
6365
return this;
6466
}
6567

68+
public GlitrBuilder withFieldVisibility(GraphqlFieldVisibility fieldVisibility) {
69+
this.fieldVisibility = fieldVisibility;
70+
return this;
71+
}
72+
6673
public GlitrBuilder withOverrides(Map<Class, List<Object>> overrides) {
6774
this.overrides = overrides;
6875
return this;
@@ -146,7 +153,6 @@ public Glitr build() {
146153
}
147154

148155
private Glitr buildGlitr() {
149-
150156
if (objectMapper == null) {
151157
logger.warn("No ObjectMapper instance has been registered.");
152158
}
@@ -163,11 +169,10 @@ private Glitr buildGlitr() {
163169

164170
Class mutationRootClass = mutationRoot != null ? mutationRoot.getClass() : null;
165171

166-
return new Glitr(typeRegistry, queryRoot.getClass(), objectMapper, null, mutationRootClass, queryComplexityCalculator);
172+
return new Glitr(typeRegistry, queryRoot.getClass(), fieldVisibility, objectMapper, null, mutationRootClass, queryComplexityCalculator);
167173
}
168174

169175
private Glitr buildGlitrWithRelaySupport() {
170-
171176
if (objectMapper == null) {
172177
throw new IllegalArgumentException("No ObjectMapper instance has been registered. It's required to register one when using GLiTR with Relay");
173178
}
@@ -201,6 +206,6 @@ private Glitr buildGlitrWithRelaySupport() {
201206

202207
Class mutationRootClass = mutationRoot != null ? mutationRoot.getClass() : null;
203208

204-
return new Glitr(typeRegistry, queryRoot.getClass(), objectMapper, relayHelper, mutationRootClass, queryComplexityCalculator);
209+
return new Glitr(typeRegistry, queryRoot.getClass(), fieldVisibility, objectMapper, relayHelper, mutationRootClass, queryComplexityCalculator);
205210
}
206211
}

src/main/java/com/nfl/glitr/util/QueryComplexityCalculator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ private int calculateMaxDepth(Node queryNode) {
204204
}
205205

206206
int maxChildDepth = 0;
207-
for (Node childNode : queryNode.getChildren()) {
207+
for (Node childNode : (List<Node>) queryNode.getChildren()) {
208208
final int currentChildDepth = calculateMaxDepth(childNode);
209209
maxChildDepth = Math.max(maxChildDepth, currentChildDepth);
210210
}
@@ -309,7 +309,7 @@ private int queryScore(String path, Node queryNode, int depth) {
309309
}
310310
}
311311

312-
for (Node currentChild : queryNode.getChildren()) {
312+
for (Node currentChild : (List<Node>) queryNode.getChildren()) {
313313
if (currentChild.getClass() == Argument.class) {
314314
continue;
315315
}

src/test/groovy/com/nfl/glitr/registry/GlitrAdditionalTypesTest.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class GlitrAdditionalTypesTest extends Specification {
2828
when: "add additional types to type registry and reload the schema"
2929
glitr.typeRegistry.lookup(Man.class)
3030
glitr.typeRegistry.lookup(Cyborg.class)
31-
glitr.reloadSchema(QueryRoot.class, null)
31+
glitr.reloadSchema(QueryRoot.class, null, null)
3232
then: "Man and Cyborg are now part of the schema"
3333
glitr.typeRegistry.getType(typeResolutionEnvMan) != null
3434
glitr.typeRegistry.getType(typeResolutionEnvCyborg) != null

0 commit comments

Comments
 (0)