Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: graphql-java-kickstart/graphql-java-tools
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v5.4.0
Choose a base ref
...
head repository: graphql-java-kickstart/graphql-java-tools
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing with 9,402 additions and 5,756 deletions.
  1. +30 −0 .github/ISSUE_TEMPLATE/bug.md
  2. +5 −0 .github/ISSUE_TEMPLATE/config.yml
  3. +23 −0 .github/ISSUE_TEMPLATE/feature.md
  4. +11 −0 .github/pull-request-template.md
  5. +26 −0 .github/workflows/pull-request.yml
  6. +46 −0 .github/workflows/release.yml
  7. +38 −0 .github/workflows/snapshot.yml
  8. +0 −6 .travis.yml
  9. +46 −32 README.md
  10. +0 −24 example/.gitignore
  11. +0 −78 example/pom.xml
  12. +0 −60 example/src/main/java/com/coxautodev/graphql/tools/example/CharacterRepository.java
  13. +0 −12 example/src/main/java/com/coxautodev/graphql/tools/example/GraphqlJavaToolsExampleApplication.java
  14. +0 −25 example/src/main/java/com/coxautodev/graphql/tools/example/resolvers/Mutation.java
  15. +0 −40 example/src/main/java/com/coxautodev/graphql/tools/example/resolvers/Query.java
  16. +0 −10 example/src/main/java/com/coxautodev/graphql/tools/example/types/Character.java
  17. +0 −48 example/src/main/java/com/coxautodev/graphql/tools/example/types/Droid.java
  18. +0 −7 example/src/main/java/com/coxautodev/graphql/tools/example/types/Episode.java
  19. +0 −48 example/src/main/java/com/coxautodev/graphql/tools/example/types/Human.java
  20. 0 example/src/main/resources/application.properties
  21. +0 −72 example/src/main/resources/swapi.graphqls
  22. +53 −0 github-build.sh
  23. +234 −76 pom.xml
  24. +35 −0 renovate.json
  25. +0 −45 src/main/kotlin/com/coxautodev/graphql/tools/DictionaryTypeResolver.kt
  26. +0 −40 src/main/kotlin/com/coxautodev/graphql/tools/FieldResolver.kt
  27. +0 −189 src/main/kotlin/com/coxautodev/graphql/tools/FieldResolverScanner.kt
  28. +0 −7 src/main/kotlin/com/coxautodev/graphql/tools/GraphQLMutationResolver.java
  29. +0 −7 src/main/kotlin/com/coxautodev/graphql/tools/GraphQLQueryResolver.java
  30. +0 −8 src/main/kotlin/com/coxautodev/graphql/tools/GraphQLResolver.java
  31. +0 −4 src/main/kotlin/com/coxautodev/graphql/tools/GraphQLSubscriptionResolver.java
  32. +0 −25 src/main/kotlin/com/coxautodev/graphql/tools/JavassistProxyHandler.kt
  33. +0 −198 src/main/kotlin/com/coxautodev/graphql/tools/MethodFieldResolver.kt
  34. +0 −16 src/main/kotlin/com/coxautodev/graphql/tools/PerFieldConfiguringObjectMapperProvider.kt
  35. +0 −9 src/main/kotlin/com/coxautodev/graphql/tools/PerFieldObjectMapperProvider.java
  36. +0 −33 src/main/kotlin/com/coxautodev/graphql/tools/PropertyFieldResolver.kt
  37. +0 −45 src/main/kotlin/com/coxautodev/graphql/tools/PropertyMapResolver.kt
  38. +0 −9 src/main/kotlin/com/coxautodev/graphql/tools/ProxyHandler.java
  39. +0 −22 src/main/kotlin/com/coxautodev/graphql/tools/ScannedSchemaObjects.kt
  40. +0 −37 src/main/kotlin/com/coxautodev/graphql/tools/SchemaObjects.kt
  41. +0 −350 src/main/kotlin/com/coxautodev/graphql/tools/SchemaParser.kt
  42. +0 −466 src/main/kotlin/com/coxautodev/graphql/tools/SchemaParserBuilder.kt
  43. +0 −24 src/main/kotlin/com/coxautodev/graphql/tools/Spring4AopProxyHandler.kt
  44. +0 −18 src/main/kotlin/com/coxautodev/graphql/tools/TypeDefinitionFactory.java
  45. +0 −35 src/main/kotlin/com/coxautodev/graphql/tools/Utils.kt
  46. +0 −92 src/main/kotlin/com/coxautodev/graphql/tools/relay/RelayConnectionFactory.kt
  47. +8 −0 src/main/kotlin/graphql/kickstart/tools/CoroutineContextProvider.kt
  48. +51 −0 src/main/kotlin/graphql/kickstart/tools/DictionaryTypeResolver.kt
  49. +41 −23 src/main/kotlin/{com/coxautodev/graphql → graphql/kickstart}/tools/GenericType.kt
  50. +6 −0 src/main/kotlin/graphql/kickstart/tools/GraphQLMutationResolver.kt
  51. +6 −0 src/main/kotlin/graphql/kickstart/tools/GraphQLQueryResolver.kt
  52. +6 −0 src/main/kotlin/graphql/kickstart/tools/GraphQLResolver.kt
  53. +3 −0 src/main/kotlin/graphql/kickstart/tools/GraphQLSubscriptionResolver.kt
  54. +2 −1 src/main/kotlin/{com/coxautodev/graphql → graphql/kickstart}/tools/ObjectMapperConfigurer.java
  55. +1 −1 src/main/kotlin/{com/coxautodev/graphql → graphql/kickstart}/tools/ObjectMapperConfigurerContext.kt
  56. +17 −0 src/main/kotlin/graphql/kickstart/tools/PerFieldConfiguringObjectMapperProvider.kt
  57. +9 −0 src/main/kotlin/graphql/kickstart/tools/PerFieldObjectMapperProvider.kt
  58. +26 −21 src/main/kotlin/{com/coxautodev/graphql → graphql/kickstart}/tools/ResolverInfo.kt
  59. +15 −7 src/main/kotlin/{com/coxautodev/graphql → graphql/kickstart}/tools/RootTypeInfo.kt
  60. +25 −0 src/main/kotlin/graphql/kickstart/tools/ScannedSchemaObjects.kt
  61. +146 −115 src/main/kotlin/{com/coxautodev/graphql → graphql/kickstart}/tools/SchemaClassScanner.kt
  62. +40 −0 src/main/kotlin/graphql/kickstart/tools/SchemaObjects.kt
  63. +524 −0 src/main/kotlin/graphql/kickstart/tools/SchemaParser.kt
  64. +220 −0 src/main/kotlin/graphql/kickstart/tools/SchemaParserBuilder.kt
  65. +67 −0 src/main/kotlin/graphql/kickstart/tools/SchemaParserDictionary.kt
  66. +277 −0 src/main/kotlin/graphql/kickstart/tools/SchemaParserOptions.kt
  67. +25 −38 src/main/kotlin/{com/coxautodev/graphql → graphql/kickstart}/tools/TypeClassMatcher.kt
  68. +16 −0 src/main/kotlin/graphql/kickstart/tools/TypeDefinitionFactory.kt
  69. +148 −0 src/main/kotlin/graphql/kickstart/tools/directive/DirectiveWiringHelper.kt
  70. +91 −0 src/main/kotlin/graphql/kickstart/tools/directive/SchemaDirectiveWiringEnvironmentImpl.kt
  71. +4 −1 ...n/kotlin/{com/coxautodev/graphql/tools → graphql/kickstart/tools/proxy}/GuiceAopProxyHandler.java
  72. +24 −0 src/main/kotlin/graphql/kickstart/tools/proxy/JavassistProxyHandler.kt
  73. +13 −0 src/main/kotlin/graphql/kickstart/tools/proxy/ProxyHandler.kt
  74. +24 −0 src/main/kotlin/graphql/kickstart/tools/proxy/Spring4AopProxyHandler.kt
  75. +20 −0 src/main/kotlin/graphql/kickstart/tools/proxy/WeldProxyHandler.java
  76. +94 −0 src/main/kotlin/graphql/kickstart/tools/relay/RelayConnectionFactory.kt
  77. +51 −0 src/main/kotlin/graphql/kickstart/tools/resolver/FieldResolver.kt
  78. +246 −0 src/main/kotlin/graphql/kickstart/tools/resolver/FieldResolverScanner.kt
  79. +69 −0 src/main/kotlin/graphql/kickstart/tools/resolver/MapFieldResolver.kt
  80. +292 −0 src/main/kotlin/graphql/kickstart/tools/resolver/MethodFieldResolver.kt
  81. +20 −0 src/main/kotlin/graphql/kickstart/tools/resolver/MissingFieldResolver.kt
  82. +12 −0 src/main/kotlin/graphql/kickstart/tools/resolver/MissingResolverDataFetcherProvider.kt
  83. +54 −0 src/main/kotlin/graphql/kickstart/tools/resolver/PropertyFieldResolver.kt
  84. +128 −0 src/main/kotlin/graphql/kickstart/tools/util/BiMap.java
  85. +49 −0 src/main/kotlin/graphql/kickstart/tools/util/ParameterizedTypeImpl.kt
  86. +29 −0 src/main/kotlin/graphql/kickstart/tools/util/Primitives.java
  87. +64 −0 src/main/kotlin/graphql/kickstart/tools/util/Utils.kt
  88. +0 −54 src/main/kotlin/graphql/schema/idl/DirectiveBehavior.kt
  89. +24 −0 src/main/kotlin/module-info.java
  90. +0 −619 src/test/groovy/com/coxautodev/graphql/tools/EndToEndSpec.groovy
  91. +0 −76 src/test/groovy/com/coxautodev/graphql/tools/EnumListParameterSpec.groovy
  92. +0 −104 src/test/groovy/com/coxautodev/graphql/tools/FieldResolverScannerSpec.groovy
  93. +0 −45 src/test/groovy/com/coxautodev/graphql/tools/GenericResolverSpec.groovy
  94. +0 −255 src/test/groovy/com/coxautodev/graphql/tools/MethodFieldResolverDataFetcherSpec.groovy
  95. +0 −80 src/test/groovy/com/coxautodev/graphql/tools/MultiResolverSpec.groovy
  96. +0 −61 src/test/groovy/com/coxautodev/graphql/tools/NestedInputTypesSpec.groovy
  97. +0 −70 src/test/groovy/com/coxautodev/graphql/tools/ParameterizedGetterSpec.groovy
  98. +0 −141 src/test/groovy/com/coxautodev/graphql/tools/RelayConnectionSpec.groovy
  99. +0 −456 src/test/groovy/com/coxautodev/graphql/tools/SchemaClassScannerSpec.groovy
  100. +0 −27 src/test/groovy/com/coxautodev/graphql/tools/SchemaParserBuilderSpec.groovy
  101. +0 −406 src/test/groovy/com/coxautodev/graphql/tools/SchemaParserSpec.groovy
  102. +0 −45 src/test/groovy/com/coxautodev/graphql/tools/SuperclassResolverSpec.groovy
  103. +0 −155 src/test/groovy/com/coxautodev/graphql/tools/TypeClassMatcherSpec.groovy
  104. +0 −28 src/test/groovy/com/coxautodev/graphql/tools/Utils.groovy
  105. +0 −63 src/test/java/com/coxautodev/graphql/tools/ReactiveTest.java
  106. +0 −71 src/test/java/com/coxautodev/graphql/tools/RelayConnectionTest.java
  107. +0 −399 src/test/kotlin/com/coxautodev/graphql/tools/EndToEndSpec.kt
  108. +0 −134 src/test/kotlin/com/coxautodev/graphql/tools/MethodFieldResolverDataFetcherTest.kt
  109. +113 −0 src/test/kotlin/graphql/kickstart/tools/BuiltInIdTest.kt
  110. +55 −0 src/test/kotlin/graphql/kickstart/tools/DeepGenericsHierarchyTest.kt
  111. +387 −0 src/test/kotlin/graphql/kickstart/tools/DeprecatedDirectiveTest.kt
  112. +368 −0 src/test/kotlin/graphql/kickstart/tools/DirectiveTest.kt
  113. +546 −0 src/test/kotlin/graphql/kickstart/tools/EndToEndSpecHelper.kt
  114. +748 −0 src/test/kotlin/graphql/kickstart/tools/EndToEndTest.kt
  115. +56 −0 src/test/kotlin/graphql/kickstart/tools/EnumDefaultValueTest.kt
  116. +67 −0 src/test/kotlin/graphql/kickstart/tools/EnumListParameterTest.kt
  117. +146 −0 src/test/kotlin/graphql/kickstart/tools/FieldResolverScannerTest.kt
  118. +67 −0 src/test/kotlin/graphql/kickstart/tools/GenericResolverTest.kt
  119. +96 −0 src/test/kotlin/graphql/kickstart/tools/InaccessibleFieldResolverTest.kt
  120. +330 −0 src/test/kotlin/graphql/kickstart/tools/MethodFieldResolverDataFetcherTest.kt
  121. +278 −0 src/test/kotlin/graphql/kickstart/tools/MethodFieldResolverTest.kt
  122. +131 −0 src/test/kotlin/graphql/kickstart/tools/MissingFieldResolverTest.kt
  123. +67 −0 src/test/kotlin/graphql/kickstart/tools/MultiResolverTest.kt
  124. +128 −0 src/test/kotlin/graphql/kickstart/tools/NestedInputTypesTest.kt
  125. +65 −0 src/test/kotlin/graphql/kickstart/tools/ParameterizedGetterTest.kt
  126. +59 −0 src/test/kotlin/graphql/kickstart/tools/ReactiveTest.kt
  127. +155 −0 src/test/kotlin/graphql/kickstart/tools/RelayConnectionTest.kt
  128. +47 −0 src/test/kotlin/graphql/kickstart/tools/ResolverMethodsTest.java
  129. +136 −0 src/test/kotlin/graphql/kickstart/tools/SchemaClassScannerDirectiveTest.kt
  130. +558 −0 src/test/kotlin/graphql/kickstart/tools/SchemaClassScannerTest.kt
  131. +33 −0 src/test/kotlin/graphql/kickstart/tools/SchemaParserBuilderTest.kt
  132. +746 −0 src/test/kotlin/graphql/kickstart/tools/SchemaParserTest.kt
  133. +49 −0 src/test/kotlin/graphql/kickstart/tools/SuperclassResolverTest.kt
  134. +16 −0 src/test/kotlin/graphql/kickstart/tools/TestInterfaces.kt
  135. +39 −0 src/test/kotlin/graphql/kickstart/tools/TestUtils.kt
  136. +183 −0 src/test/kotlin/graphql/kickstart/tools/TypeClassMatcherTest.kt
  137. +20 −0 src/test/kotlin/graphql/kickstart/tools/relay/RelayConnectionFactoryTest.kt
  138. +70 −0 src/test/kotlin/graphql/kickstart/tools/util/BiMapTest.kt
  139. +25 −0 src/test/kotlin/graphql/kickstart/tools/util/PrimitivesTest.kt
  140. +26 −0 src/test/kotlin/graphql/kickstart/tools/util/UtilsTest.kt
  141. +51 −0 src/test/resources/Place.graphqls
  142. +4 −4 src/test/resources/Reactive.graphqls
  143. +2 −0 src/test/resources/RelayConnection.graphqls
  144. +1 −1 src/test/resources/{test.graphqls → Test.graphqls}
  145. +0 −38 travis-build.sh
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: Bug
about: Have you found and confirmed a bug? Report it here.
title: ''
labels: bug
assignees: ''
---

<!-- ⚠️ Please ensure you are reporting the bug in the correct repository! -->

## Description

<!-- Please provide a brief description of the bug -->

### Expected behavior

<!-- Please describe what you expect to happen -->

### Actual behavior

<!-- Please describe what is actually happening -->

### Steps to reproduce the bug

<!-- Please provide the steps to reproduce the issue -->

1. ...
2. ...
3. ...

5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Question
url: https://github.com/graphql-java-kickstart/graphql-java-tools/discussions
about: Anything you are not sure about? Ask the community!
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: Feature
about: Suggest an idea for a new feature.
title: ''
labels: enhancement
assignees: ''
---

<!-- ⚠️ Please ensure you are requesting the feature in the correct repository! -->

__I want to suggest an idea and checked that ...__

- [ ] ... to my best knowledge, my idea wouldn't break something for other users
- [ ] ... the documentation does not mention anything about my idea
- [ ] ... there are no open or closed issues that are related to my idea

## Description

<!-- Please provide a brief description of the feature -->

### Use Cases

<!-- Please describe how your suggestion would benefit you and other users -->
11 changes: 11 additions & 0 deletions .github/pull-request-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!-- Uncomment one of the following lines as necessary. -->
<!-- Fixes #<ISSUE_NUMBER> -->
<!-- Resolves #<ISSUE_NUMBER> -->

## Checklist
<!-- Change [ ] to [x] to indicate you acknowledge the check. -->
- [ ] Pull requests follows the [contribution guide](https://github.com/graphql-java-kickstart/graphql-java-tools/wiki/Contribution-guide)
- [ ] New or modified functionality is covered by tests

## Description
<!-- Briefly describe how you resolved the issue or a bug. -->
26 changes: 26 additions & 0 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Pull request
on:
pull_request:
types: [ opened, reopened, synchronize ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
java: [ '11', '15', '17' ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup java
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'adopt'
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build with Maven
run: mvn --batch-mode --update-snapshots verify
46 changes: 46 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Release
on: [ workflow_dispatch ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup java
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'adopt'
- name: Build with Maven
run: mvn --batch-mode --update-snapshots verify

publish:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Maven Central
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'adopt'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.GPG_SIGNING_KEY }}
gpg-passphrase: GPG_PASSPHRASE
- name: Publish release
run: bash github-build.sh
env:
MAVEN_USERNAME: ${{ secrets.OSS_USER_TOKEN_KEY }}
MAVEN_PASSWORD: ${{ secrets.OSS_USER_TOKEN_PASS }}
GPG_PASSPHRASE: ${{ secrets.GPG_SIGNING_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create Release PR
uses: peter-evans/create-pull-request@v7
with:
branch: version-release
title: Version Release
body: |
Bumping project version after release.
38 changes: 38 additions & 0 deletions .github/workflows/snapshot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Release Snapshot
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup java
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'adopt'
- name: Build with Maven
run: mvn --batch-mode --update-snapshots verify

publish:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Maven Central
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'adopt'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
- name: Publish release
run: mvn --batch-mode deploy
env:
MAVEN_USERNAME: ${{ secrets.OSS_USER_TOKEN_KEY }}
MAVEN_PASSWORD: ${{ secrets.OSS_USER_TOKEN_PASS }}
6 changes: 0 additions & 6 deletions .travis.yml

This file was deleted.

78 changes: 46 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,53 +1,67 @@
# GraphQL Java Tools

[![TravisCI Build](https://travis-ci.org/graphql-java-kickstart/graphql-java-tools.svg?branch=master)](https://travis-ci.org/graphql-java-kickstart/graphql-java-tools)
[![Github Build](https://github.com/graphql-java-kickstart/graphql-java-tools/actions/workflows/snapshot.yml/badge.svg)](https://github.com/graphql-java-kickstart/graphql-java-tools/actions/workflows/snapshot.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.graphql-java-kickstart/graphql-java-tools/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.graphql-java-kickstart/graphql-java-tools)
[![Chat on Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/graphql-java-kickstart/Lobby)
[![Discuss on GitHub](https://img.shields.io/badge/GitHub-discuss-orange)](https://github.com/graphql-java-kickstart/graphql-java-tools/discussions)

This library allows you to use the GraphQL schema language to build your [graphql-java](https://github.com/graphql-java/graphql-java) schema.
Inspired by [graphql-tools](https://github.com/apollographql/graphql-tools), it parses the given GraphQL schema and allows you to BYOO (bring your own object) to fill in the implementations.
GraphQL Java Tools works extremely well if you already have domain POJOs that hold your data (e.g. for RPC, ORM, REST, etc) by allowing you to map these magically to GraphQL objects.
GraphQL Java Tools works well if you already have domain POJOs that hold your data (e.g. for RPC, ORM, REST, etc) by allowing you to map these "magically" to GraphQL objects.

GraphQL Java Tools aims for seamless integration with Java, but works for any JVM language. Try it with Kotlin!

Take a look at our new [documentation](https://www.graphql-java-kickstart.com/tools/) for more details.
## We are looking for contributors!

Are you interested in improving our documentation, working on the codebase, reviewing PRs?

[Reach out to us on GitHub](https://github.com/graphql-java-kickstart/graphql-java-tools/discussions) and join the team!

## Quick start

### Using Gradle
Set the Kotlin version in your `gradle.properties`:
```
kotlin.version=2.1.20
```

Add the dependency:
```groovy
compile 'com.graphql-java-kickstart:graphql-java-tools:14.0.1'
```

### Using Maven
Set the Kotlin version in your `<properties>` section:
```xml

<properties>
<kotlin.version>2.1.20</kotlin.version>
</properties>
```

Add the dependency:
```xml
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>graphql-java-tools</artifactId>
<version>14.0.1</version>
</dependency>
```

## Documentation

Take a look at our [documentation](https://graphql-java-kickstart.github.io/tools/) for more details.

## Why GraphQL Java Tools?

* **Schema First**: GraphQL Java Tools allows you to write your schema in a simple, portable way using the [GraphQL schema language](http://graphql.org/learn/schema/) instead of hard-to-read builders in code.
* **Minimal Boilerplate**: It takes a lot of work to describe your GraphQL-Java objects manually, and quickly becomes unreadable.
A few libraries exist to ease the boilerplate pain, including [GraphQL-Java's built-in schema-first wiring](http://graphql-java.readthedocs.io/en/latest/schema.html), but none (so far) do type and datafetcher discovery.
A few libraries exist to ease the boilerplate pain, including [GraphQL-Java's built-in schema-first wiring](https://www.graphql-java.com/documentation/master/schema/), but none (so far) do type and datafetcher discovery.
* **Stateful Data Fetchers**: If you're using an IOC container (like Spring), it's hard to wire up datafetchers that make use of beans you've already defined without a bunch of fragile configuration. GraphQL Java Tools allows you to register "Resolvers" for any type that can bring state along and use that to resolve fields.
* **Generated DataFetchers**: GraphQL Java Tools automatically creates data fetchers for your fields that call the appropriate method on your java class. This means all you have to do to create a new field is add the field definition to your schema and add a corresponding method on your class.
* **Type->Class Discovery**: GraphQL Java Tools starts from your root objects (Query, Mutation) and, as it's generating data fetchers for you, starts to learn about the classes you use for a certain GraphQL type.
* **Class Validation**: Since there aren't any compile-time checks of the type->class relationship, GraphQL Java Tools will warn you if you provide classes/types that you don't need to, as well as erroring if you use the wrong Java class for a certain GraphQL type when it builds the schema.
* **Unit Testing**: Since your GraphQL schema is independent of your data model, this makes your classes simple and extremely testable.

## Build with Maven or Gradle
## Known Issues

```xml
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>graphql-java-tools</artifactId>
<version>5.3.3</version>
</dependency>
```
```groovy
compile 'com.graphql-java-kickstart:graphql-java-tools:5.3.3'
```

New releases will be available faster in the JCenter repository than in Maven Central. Add the following to use for Maven
```xml
<repositories>
<repository>
<id>jcenter</id>
<url>https://jcenter.bintray.com/</url>
</repository>
</repositories>
```
For Gradle:
```groovy
repositories {
jcenter()
}
```
[Known issues are aggregated at the wiki](https://github.com/graphql-java-kickstart/graphql-java-tools/wiki/Known-Issues).
24 changes: 0 additions & 24 deletions example/.gitignore

This file was deleted.

78 changes: 0 additions & 78 deletions example/pom.xml

This file was deleted.

Loading