Skip to content

Commit 4181774

Browse files
committed
Remove lombok (fixes #24).
1 parent 152204e commit 4181774

File tree

10 files changed

+104
-65
lines changed

10 files changed

+104
-65
lines changed

build.gradle

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ repositories {
2525
mavenCentral()
2626
}
2727

28+
configurations.all {
29+
exclude group:"org.projectlombok", module: "lombok"
30+
}
31+
2832
dependencies {
2933
compile 'org.slf4j:slf4j-api:1.7.21'
3034

@@ -40,9 +44,6 @@ dependencies {
4044
testCompile 'org.springframework:spring-test:4.3.7.RELEASE' // MockHttpServletRequest, MockHttpServletResponse
4145
testRuntime 'org.springframework:spring-web:4.3.7.RELEASE'
4246

43-
// Remove boilerplate
44-
compile 'org.projectlombok:lombok:1.16.8'
45-
4647
// OSGi
4748
compileOnly 'org.osgi:org.osgi.core:6.0.0'
4849
compileOnly 'org.osgi:org.osgi.service.cm:1.5.0'
@@ -57,7 +58,6 @@ dependencies {
5758
// GraphQL
5859
compile 'com.graphql-java:graphql-java:2.4.0'
5960

60-
// Optional, but used for testing... not sure if there's a better way.
6161
compileOnly 'com.graphql-java:graphql-java-annotations:0.13.1'
6262
testCompile 'com.graphql-java:graphql-java-annotations:0.13.1'
6363

@@ -175,15 +175,5 @@ idea {
175175
project {
176176
languageLevel = '1.8'
177177
vcs = 'Git'
178-
ipr.withXml { xmlFile ->
179-
// enable 'Annotation Processors'
180-
xmlFile.asNode().component.find {
181-
it.@name == 'CompilerConfiguration'
182-
}['annotationProcessing'][0].replaceNode {
183-
annotationProcessing {
184-
profile(default: true, name: 'Default', useClasspath: 'true', enabled: true)
185-
}
186-
}
187-
}
188178
}
189179
}

gradle/wrapper/gradle-wrapper.jar

1.25 KB
Binary file not shown.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Thu Oct 27 10:17:46 ICT 2016
1+
#Mon Apr 24 13:12:01 EDT 2017
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-3.1-bin.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-bin.zip

gradlew

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#!/usr/bin/env bash
1+
#!/usr/bin/env sh
22

33
##############################################################################
44
##
@@ -154,16 +154,19 @@ if $cygwin ; then
154154
esac
155155
fi
156156

157-
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
158-
function splitJvmOpts() {
159-
JVM_OPTS=("$@")
157+
# Escape application args
158+
save ( ) {
159+
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
160+
echo " "
160161
}
161-
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
162-
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
162+
APP_ARGS=$(save "$@")
163+
164+
# Collect all arguments for the java command, following the shell quoting and substitution rules
165+
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
163166

164167
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
165-
if [[ "$(uname)" == "Darwin" ]] && [[ "$HOME" == "$PWD" ]]; then
168+
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
166169
cd "$(dirname "$0")"
167170
fi
168171

169-
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
172+
exec "$JAVACMD" "$@"

src/main/java/graphql/servlet/GraphQLContext.java

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,34 +14,56 @@
1414
*/
1515
package graphql.servlet;
1616

17-
import lombok.Getter;
18-
import lombok.NonNull;
19-
import lombok.RequiredArgsConstructor;
20-
import lombok.Setter;
2117
import org.apache.commons.fileupload.FileItem;
22-
import org.apache.commons.fileupload.FileItemIterator;
23-
import org.apache.commons.fileupload.FileItemStream;
24-
import org.apache.commons.fileupload.servlet.ServletFileUpload;
2518

2619
import javax.security.auth.Subject;
2720
import javax.servlet.http.HttpServletRequest;
2821
import javax.servlet.http.HttpServletResponse;
29-
import javax.servlet.http.Part;
30-
import java.util.Collection;
31-
import java.util.HashMap;
3222
import java.util.List;
3323
import java.util.Map;
3424
import java.util.Optional;
3525

36-
@RequiredArgsConstructor
3726
public class GraphQLContext {
38-
@Getter @Setter @NonNull
3927
private Optional<HttpServletRequest> request;
40-
@Getter @Setter @NonNull
4128
private Optional<HttpServletResponse> response;
42-
@Getter @Setter
43-
private Optional<Subject> subject = Optional.empty();
4429

45-
@Getter @Setter
30+
private Optional<Subject> subject = Optional.empty();
4631
private Optional<Map<String, List<FileItem>>> files = Optional.empty();
32+
33+
public GraphQLContext(Optional<HttpServletRequest> request, Optional<HttpServletResponse> response) {
34+
this.request = request;
35+
this.response = response;
36+
}
37+
38+
public Optional<HttpServletRequest> getRequest() {
39+
return request;
40+
}
41+
42+
public void setRequest(Optional<HttpServletRequest> request) {
43+
this.request = request;
44+
}
45+
46+
public Optional<HttpServletResponse> getResponse() {
47+
return response;
48+
}
49+
50+
public void setResponse(Optional<HttpServletResponse> response) {
51+
this.response = response;
52+
}
53+
54+
public Optional<Subject> getSubject() {
55+
return subject;
56+
}
57+
58+
public void setSubject(Optional<Subject> subject) {
59+
this.subject = subject;
60+
}
61+
62+
public Optional<Map<String, List<FileItem>>> getFiles() {
63+
return files;
64+
}
65+
66+
public void setFiles(Optional<Map<String, List<FileItem>>> files) {
67+
this.files = files;
68+
}
4769
}

src/main/java/graphql/servlet/GraphQLServlet.java

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,12 @@
3030
import graphql.schema.GraphQLFieldDefinition;
3131
import graphql.schema.GraphQLSchema;
3232
import graphql.validation.ValidationError;
33-
import lombok.Getter;
34-
import lombok.Setter;
35-
import lombok.SneakyThrows;
36-
import lombok.extern.slf4j.Slf4j;
3733
import org.apache.commons.fileupload.FileItem;
3834
import org.apache.commons.fileupload.FileItemFactory;
3935
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
4036
import org.apache.commons.fileupload.servlet.ServletFileUpload;
37+
import org.slf4j.Logger;
38+
import org.slf4j.LoggerFactory;
4139

4240
import javax.security.auth.Subject;
4341
import javax.servlet.Servlet;
@@ -62,9 +60,10 @@
6260
/**
6361
* @author Andrew Potter
6462
*/
65-
@Slf4j
6663
public abstract class GraphQLServlet extends HttpServlet implements Servlet, GraphQLMBean, GraphQLSchemaProvider {
6764

65+
public static final Logger log = LoggerFactory.getLogger(GraphQLServlet.class);
66+
6867
public static final String APPLICATION_JSON_UTF8 = "application/json;charset=UTF-8";
6968
public static final int STATUS_OK = 200;
7069
public static final int STATUS_BAD_REQUEST = 400;
@@ -212,7 +211,7 @@ public String[] getMutations() {
212211
return getSchema().getMutationType().getFieldDefinitions().stream().map(GraphQLFieldDefinition::getName).toArray(String[]::new);
213212
}
214213

215-
@Override @SneakyThrows
214+
@Override
216215
public String executeQuery(String query) {
217216
try {
218217
final ExecutionResult result = new GraphQL(getSchema()).execute(query, createContext(Optional.empty(), Optional.empty()), new HashMap<>());
@@ -258,12 +257,13 @@ private Optional<FileItem> getFileItem(Map<String, List<FileItem>> fileItems, St
258257

259258
private void query(String query, String operationName, Map<String, Object> variables, GraphQLSchema schema, HttpServletRequest req, HttpServletResponse resp, GraphQLContext context) throws IOException {
260259
if (Subject.getSubject(AccessController.getContext()) == null && context.getSubject().isPresent()) {
261-
Subject.doAs(context.getSubject().get(), new PrivilegedAction<Void>() {
262-
@Override @SneakyThrows
263-
public Void run() {
260+
Subject.doAs(context.getSubject().get(), (PrivilegedAction<Void>) () -> {
261+
try {
264262
query(query, operationName, variables, schema, req, resp, context);
265-
return null;
263+
} catch (IOException e) {
264+
throw new RuntimeException(e);
266265
}
266+
return null;
267267
});
268268
} else {
269269
runListeners(operationListeners, l -> runListener(l, it -> it.beforeGraphQLOperation(context, operationName, query, variables)));
@@ -345,13 +345,34 @@ public Map<String, Object> deserialize(JsonParser p, DeserializationContext ctxt
345345
}
346346

347347
protected static class GraphQLRequest {
348-
@Getter
349-
@Setter
350348
private String query;
351-
@Getter @Setter @JsonDeserialize(using = GraphQLServlet.VariablesDeserializer.class)
349+
@JsonDeserialize(using = GraphQLServlet.VariablesDeserializer.class)
352350
private Map<String, Object> variables = new HashMap<>();
353-
@Getter @Setter
354351
private String operationName;
352+
353+
public String getQuery() {
354+
return query;
355+
}
356+
357+
public void setQuery(String query) {
358+
this.query = query;
359+
}
360+
361+
public Map<String, Object> getVariables() {
362+
return variables;
363+
}
364+
365+
public void setVariables(Map<String, Object> variables) {
366+
this.variables = variables;
367+
}
368+
369+
public String getOperationName() {
370+
return operationName;
371+
}
372+
373+
public void setOperationName(String operationName) {
374+
this.operationName = operationName;
375+
}
355376
}
356377

357378
protected interface RequestHandler extends BiConsumer<HttpServletRequest, HttpServletResponse> {

src/main/java/graphql/servlet/GraphQLVariables.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,16 @@
1717
import com.fasterxml.jackson.databind.DeserializationFeature;
1818
import com.fasterxml.jackson.databind.ObjectMapper;
1919
import graphql.annotations.GraphQLObjectBackedByClass;
20-
import graphql.language.*;
20+
import graphql.language.NonNullType;
21+
import graphql.language.OperationDefinition;
22+
import graphql.language.Type;
23+
import graphql.language.TypeName;
24+
import graphql.language.VariableDefinition;
2125
import graphql.parser.Parser;
2226
import graphql.schema.GraphQLSchema;
2327
import graphql.schema.GraphQLType;
24-
import lombok.SneakyThrows;
2528

29+
import java.io.IOException;
2630
import java.util.HashMap;
2731
import java.util.Map;
2832
import java.util.function.Consumer;
@@ -44,7 +48,6 @@ public GraphQLVariables(GraphQLSchema schema, String query, Map<String, Object>
4448
.map(d -> (OperationDefinition) d)
4549
.flatMap(d -> d.getVariableDefinitions().stream())
4650
.forEach(new Consumer<VariableDefinition>() {
47-
@SneakyThrows
4851
@Override public void accept(VariableDefinition d) {
4952
GraphQLType type;
5053
Type t = d.getType();
@@ -57,8 +60,14 @@ public GraphQLVariables(GraphQLSchema schema, String query, Map<String, Object>
5760
type = null;
5861
}
5962
if (type instanceof GraphQLObjectBackedByClass) {
60-
String value = objectMapper.writeValueAsString(variables.get(d.getName()));
61-
Object val = objectMapper.readValue(value, ((GraphQLObjectBackedByClass) type).getObjectClass());
63+
String value;
64+
Object val;
65+
try {
66+
value = objectMapper.writeValueAsString(variables.get(d.getName()));
67+
val = objectMapper.readValue(value, ((GraphQLObjectBackedByClass) type).getObjectClass());
68+
} catch (IOException e) {
69+
throw new RuntimeException(e);
70+
}
6271
GraphQLVariables.this.put(d.getName(), val);
6372
} else {
6473
GraphQLVariables.this.put(d.getName(), variables.get(d.getName()));

src/main/java/graphql/servlet/OsgiGraphQLServlet.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import graphql.schema.GraphQLObjectType;
2020
import graphql.schema.GraphQLSchema;
2121
import graphql.schema.GraphQLType;
22-
import lombok.extern.slf4j.Slf4j;
2322
import org.osgi.service.component.annotations.Component;
2423
import org.osgi.service.component.annotations.Reference;
2524
import org.osgi.service.component.annotations.ReferenceCardinality;
@@ -37,7 +36,6 @@
3736
import static graphql.schema.GraphQLObjectType.newObject;
3837
import static graphql.schema.GraphQLSchema.newSchema;
3938

40-
@Slf4j
4139
@Component(
4240
service={javax.servlet.http.HttpServlet.class,javax.servlet.Servlet.class},
4341
property = {"osgi.http.whiteboard.servlet.pattern=/graphql/*", "jmx.objectname=graphql.servlet:type=graphql"}

src/test/groovy/graphql/servlet/GraphQLVariablesSpec.groovy

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@ import graphql.annotations.GraphQLAnnotations
1818
import graphql.annotations.GraphQLField
1919
import graphql.annotations.GraphQLName
2020
import graphql.schema.GraphQLFieldDefinition
21-
import graphql.schema.GraphQLObjectType
2221
import graphql.schema.GraphQLSchema
23-
import lombok.SneakyThrows
2422
import spock.lang.Specification
2523

2624
import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition

src/test/groovy/graphql/servlet/OsgiGraphQLServletSpec.groovy

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ import graphql.annotations.GraphQLAnnotations
1818
import graphql.annotations.GraphQLField
1919
import graphql.annotations.GraphQLName
2020
import graphql.schema.GraphQLFieldDefinition
21-
import graphql.schema.GraphQLObjectType
22-
import lombok.SneakyThrows
2321
import spock.lang.Specification
2422

2523
import static graphql.Scalars.GraphQLInt

0 commit comments

Comments
 (0)