You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2020/04/22 11:09:53 UTC

[sling-whiteboard] branch master updated (0e63704 -> 6e4d978)

This is an automated email from the ASF dual-hosted git repository.

bdelacretaz pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git.


    from 0e63704  Bunch of renames
     new 25bda7b  Add SchemaProvider API
     new 6e4d978  Rename API package

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../gql => graphql}/api/DataFetcherDefinition.java |  2 +-
 .../gql => graphql}/api/DataFetcherProvider.java   |  2 +-
 .../api/SchemaProvider.java}                       | 32 ++++++++++++++--------
 .../gql => graphql}/api/package-info.java          |  2 +-
 .../scripting/gql/engine/GraphQLResourceQuery.java |  8 +++---
 .../gql/engine/GraphQLScriptEngineFactory.java     |  6 ++--
 .../gql/schema/DataFetcherDefinitionImpl.java      |  2 +-
 .../scripting/gql/schema/DataFetcherSelector.java  |  4 +--
 ...emaProvider.java => DefaultSchemaProvider.java} | 31 ++++++++++-----------
 .../scripting/gql/servlet/GraphQLServlet.java      |  4 +--
 .../gql/engine/GraphQLResourceQueryTest.java       |  4 +--
 .../scripting/gql/engine/MockSchemaProvider.java   |  7 +++--
 .../gql/schema/DataFetcherSelectorTest.java        |  2 +-
 .../gql/schema/MockDataFetcherSelector.java        |  4 +--
 .../graphql/it/GraphQLScriptingTestSupport.java    |  2 +-
 .../graphql/it/PipeDataFetcherFactory.java         |  4 +--
 16 files changed, 62 insertions(+), 54 deletions(-)
 copy graphql-scripting/src/main/java/org/apache/sling/{scripting/gql => graphql}/api/DataFetcherDefinition.java (95%)
 rename graphql-scripting/src/main/java/org/apache/sling/{scripting/gql => graphql}/api/DataFetcherProvider.java (96%)
 rename graphql-scripting/src/main/java/org/apache/sling/{scripting/gql/api/DataFetcherDefinition.java => graphql/api/SchemaProvider.java} (56%)
 rename graphql-scripting/src/main/java/org/apache/sling/{scripting/gql => graphql}/api/package-info.java (90%)
 rename graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/{GraphQLSchemaProvider.java => DefaultSchemaProvider.java} (79%)


[sling-whiteboard] 02/02: Rename API package

Posted by bd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

bdelacretaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git

commit 6e4d978acd663eff7c3644ec95711c286fa0f9d4
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Wed Apr 22 13:09:36 2020 +0200

    Rename API package
---
 .../sling/{scripting/gql => graphql}/api/DataFetcherDefinition.java   | 2 +-
 .../sling/{scripting/gql => graphql}/api/DataFetcherProvider.java     | 2 +-
 .../apache/sling/{scripting/gql => graphql}/api/SchemaProvider.java   | 2 +-
 .../org/apache/sling/{scripting/gql => graphql}/api/package-info.java | 2 +-
 .../org/apache/sling/scripting/gql/engine/GraphQLResourceQuery.java   | 2 +-
 .../apache/sling/scripting/gql/engine/GraphQLScriptEngineFactory.java | 2 +-
 .../apache/sling/scripting/gql/schema/DataFetcherDefinitionImpl.java  | 2 +-
 .../org/apache/sling/scripting/gql/schema/DataFetcherSelector.java    | 4 ++--
 .../org/apache/sling/scripting/gql/schema/DefaultSchemaProvider.java  | 2 +-
 .../java/org/apache/sling/scripting/gql/servlet/GraphQLServlet.java   | 2 +-
 .../apache/sling/scripting/gql/engine/GraphQLResourceQueryTest.java   | 2 +-
 .../org/apache/sling/scripting/gql/engine/MockSchemaProvider.java     | 2 +-
 .../apache/sling/scripting/gql/schema/DataFetcherSelectorTest.java    | 2 +-
 .../apache/sling/scripting/gql/schema/MockDataFetcherSelector.java    | 4 ++--
 .../sling/scripting/graphql/it/GraphQLScriptingTestSupport.java       | 2 +-
 .../org/apache/sling/scripting/graphql/it/PipeDataFetcherFactory.java | 4 ++--
 16 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/DataFetcherDefinition.java b/graphql-scripting/src/main/java/org/apache/sling/graphql/api/DataFetcherDefinition.java
similarity index 95%
rename from graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/DataFetcherDefinition.java
rename to graphql-scripting/src/main/java/org/apache/sling/graphql/api/DataFetcherDefinition.java
index 1a8f09e..bfe5c31 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/DataFetcherDefinition.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/graphql/api/DataFetcherDefinition.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.sling.scripting.gql.api;
+package org.apache.sling.graphql.api;
 
 import aQute.bnd.annotation.ProviderType;
 
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/DataFetcherProvider.java b/graphql-scripting/src/main/java/org/apache/sling/graphql/api/DataFetcherProvider.java
similarity index 96%
rename from graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/DataFetcherProvider.java
rename to graphql-scripting/src/main/java/org/apache/sling/graphql/api/DataFetcherProvider.java
index e0b6bc1..8c37d79 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/DataFetcherProvider.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/graphql/api/DataFetcherProvider.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.sling.scripting.gql.api;
+package org.apache.sling.graphql.api;
 
 import aQute.bnd.annotation.ConsumerType;
 import graphql.schema.DataFetcher;
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/SchemaProvider.java b/graphql-scripting/src/main/java/org/apache/sling/graphql/api/SchemaProvider.java
similarity index 97%
rename from graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/SchemaProvider.java
rename to graphql-scripting/src/main/java/org/apache/sling/graphql/api/SchemaProvider.java
index eeef129..d876ac1 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/SchemaProvider.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/graphql/api/SchemaProvider.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.sling.scripting.gql.api;
+package org.apache.sling.graphql.api;
 
 import java.io.IOException;
 
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/package-info.java b/graphql-scripting/src/main/java/org/apache/sling/graphql/api/package-info.java
similarity index 90%
rename from graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/package-info.java
rename to graphql-scripting/src/main/java/org/apache/sling/graphql/api/package-info.java
index d89c510..dc831ff 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/package-info.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/graphql/api/package-info.java
@@ -18,6 +18,6 @@
  */
 
 @Version("1.0.0")
-package org.apache.sling.scripting.gql.api;
+package org.apache.sling.graphql.api;
 
 import org.osgi.annotation.versioning.Version;
\ No newline at end of file
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQuery.java b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQuery.java
index c015f15..28dd5d9 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQuery.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQuery.java
@@ -25,7 +25,7 @@ import graphql.language.Comment;
 import graphql.language.FieldDefinition;
 import graphql.language.ObjectTypeDefinition;
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.scripting.gql.api.SchemaProvider;
+import org.apache.sling.graphql.api.SchemaProvider;
 import org.apache.sling.scripting.gql.schema.DataFetcherDefinitionImpl;
 import org.apache.sling.scripting.gql.schema.DataFetcherSelector;
 import org.slf4j.Logger;
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLScriptEngineFactory.java b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLScriptEngineFactory.java
index 50ee0c6..1a94974 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLScriptEngineFactory.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLScriptEngineFactory.java
@@ -23,7 +23,7 @@ import javax.script.ScriptEngine;
 import javax.script.ScriptEngineFactory;
 
 import org.apache.sling.scripting.api.AbstractScriptEngineFactory;
-import org.apache.sling.scripting.gql.api.SchemaProvider;
+import org.apache.sling.graphql.api.SchemaProvider;
 import org.apache.sling.scripting.gql.schema.DataFetcherSelector;
 import org.osgi.framework.Constants;
 import org.osgi.service.component.annotations.Activate;
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DataFetcherDefinitionImpl.java b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DataFetcherDefinitionImpl.java
index e9c923b..23d2404 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DataFetcherDefinitionImpl.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DataFetcherDefinitionImpl.java
@@ -20,7 +20,7 @@
 
 package org.apache.sling.scripting.gql.schema;
 
-import org.apache.sling.scripting.gql.api.DataFetcherDefinition;
+import org.apache.sling.graphql.api.DataFetcherDefinition;
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DataFetcherSelector.java b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DataFetcherSelector.java
index 0f83aac..4caa635 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DataFetcherSelector.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DataFetcherSelector.java
@@ -21,8 +21,8 @@ package org.apache.sling.scripting.gql.schema;
 
 import graphql.schema.DataFetcher;
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.scripting.gql.api.DataFetcherProvider;
-import org.apache.sling.scripting.gql.api.DataFetcherDefinition;
+import org.apache.sling.graphql.api.DataFetcherProvider;
+import org.apache.sling.graphql.api.DataFetcherDefinition;
 import org.osgi.framework.Constants;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DefaultSchemaProvider.java b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DefaultSchemaProvider.java
index 1899b31..7afbb09 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DefaultSchemaProvider.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DefaultSchemaProvider.java
@@ -27,7 +27,7 @@ import javax.servlet.ServletException;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.engine.SlingRequestProcessor;
-import org.apache.sling.scripting.gql.api.SchemaProvider;
+import org.apache.sling.graphql.api.SchemaProvider;
 import org.apache.sling.servlethelpers.MockSlingHttpServletRequest;
 import org.apache.sling.servlethelpers.MockSlingHttpServletResponse;
 import org.osgi.framework.Constants;
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/servlet/GraphQLServlet.java b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/servlet/GraphQLServlet.java
index 939590d..c7d3aa5 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/servlet/GraphQLServlet.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/servlet/GraphQLServlet.java
@@ -31,7 +31,7 @@ import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.servlets.SlingAllMethodsServlet;
-import org.apache.sling.scripting.gql.api.SchemaProvider;
+import org.apache.sling.graphql.api.SchemaProvider;
 import org.apache.sling.scripting.gql.engine.GraphQLResourceQuery;
 import org.apache.sling.scripting.gql.schema.DataFetcherSelector;
 import org.apache.sling.scripting.gql.engine.GraphQLScriptEngine;
diff --git a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQueryTest.java b/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQueryTest.java
index 0d4e3fe..af74124 100644
--- a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQueryTest.java
+++ b/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQueryTest.java
@@ -33,7 +33,7 @@ import com.google.gson.Gson;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.scripting.gql.schema.DataFetcherSelector;
 import org.apache.sling.scripting.gql.schema.MockDataFetcherSelector;
-import org.apache.sling.scripting.gql.api.SchemaProvider;
+import org.apache.sling.graphql.api.SchemaProvider;
 import org.junit.Test;
 import org.mockito.Mockito;
 
diff --git a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/MockSchemaProvider.java b/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/MockSchemaProvider.java
index 1eadc78..583d42b 100644
--- a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/MockSchemaProvider.java
+++ b/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/MockSchemaProvider.java
@@ -19,7 +19,7 @@
 package org.apache.sling.scripting.gql.engine;
 
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.scripting.gql.api.SchemaProvider;
+import org.apache.sling.graphql.api.SchemaProvider;
 
 class MockSchemaProvider implements SchemaProvider {
 
diff --git a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/schema/DataFetcherSelectorTest.java b/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/schema/DataFetcherSelectorTest.java
index ae19ae2..cdcd814 100644
--- a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/schema/DataFetcherSelectorTest.java
+++ b/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/schema/DataFetcherSelectorTest.java
@@ -20,7 +20,7 @@
 package org.apache.sling.scripting.gql.schema;
 
 import graphql.schema.DataFetcher;
-import org.apache.sling.scripting.gql.api.DataFetcherProvider;
+import org.apache.sling.graphql.api.DataFetcherProvider;
 import org.junit.Test;
 import org.mockito.Mockito;
 
diff --git a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/schema/MockDataFetcherSelector.java b/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/schema/MockDataFetcherSelector.java
index fe501e9..5a75a07 100644
--- a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/schema/MockDataFetcherSelector.java
+++ b/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/schema/MockDataFetcherSelector.java
@@ -22,8 +22,8 @@ package org.apache.sling.scripting.gql.schema;
 import graphql.schema.DataFetcher;
 import graphql.schema.DataFetchingEnvironment;
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.scripting.gql.api.DataFetcherProvider;
-import org.apache.sling.scripting.gql.api.DataFetcherDefinition;
+import org.apache.sling.graphql.api.DataFetcherProvider;
+import org.apache.sling.graphql.api.DataFetcherDefinition;
 
 import java.util.LinkedHashMap;
 import java.util.Map;
diff --git a/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/GraphQLScriptingTestSupport.java b/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/GraphQLScriptingTestSupport.java
index 14c7d0b..be63cc8 100644
--- a/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/GraphQLScriptingTestSupport.java
+++ b/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/GraphQLScriptingTestSupport.java
@@ -23,7 +23,7 @@ import javax.script.ScriptEngineFactory;
 
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.apache.sling.scripting.gql.api.DataFetcherProvider;
+import org.apache.sling.graphql.api.DataFetcherProvider;
 import org.apache.sling.servlethelpers.MockSlingHttpServletRequest;
 import org.apache.sling.servlethelpers.MockSlingHttpServletResponse;
 import org.apache.sling.testing.paxexam.TestSupport;
diff --git a/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/PipeDataFetcherFactory.java b/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/PipeDataFetcherFactory.java
index 1a2687f..0c1120a 100644
--- a/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/PipeDataFetcherFactory.java
+++ b/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/PipeDataFetcherFactory.java
@@ -22,8 +22,8 @@ package org.apache.sling.scripting.graphql.it;
 import graphql.schema.DataFetcher;
 import graphql.schema.DataFetchingEnvironment;
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.scripting.gql.api.DataFetcherDefinition;
-import org.apache.sling.scripting.gql.api.DataFetcherProvider;
+import org.apache.sling.graphql.api.DataFetcherDefinition;
+import org.apache.sling.graphql.api.DataFetcherProvider;
 
 public class PipeDataFetcherFactory implements DataFetcherProvider {
 


[sling-whiteboard] 01/02: Add SchemaProvider API

Posted by bd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

bdelacretaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git

commit 25bda7b7461531bf3b48ef018ddc4e5454de9166
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Wed Apr 22 13:01:48 2020 +0200

    Add SchemaProvider API
---
 .../sling/scripting/gql/api/SchemaProvider.java}   | 41 ++++++++++++----------
 .../scripting/gql/engine/GraphQLResourceQuery.java |  8 ++---
 .../gql/engine/GraphQLScriptEngineFactory.java     |  6 ++--
 ...emaProvider.java => DefaultSchemaProvider.java} | 31 ++++++++--------
 .../scripting/gql/servlet/GraphQLServlet.java      |  4 +--
 .../gql/engine/GraphQLResourceQueryTest.java       |  4 +--
 .../scripting/gql/engine/MockSchemaProvider.java   |  7 ++--
 7 files changed, 52 insertions(+), 49 deletions(-)

diff --git a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/MockSchemaProvider.java b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/SchemaProvider.java
similarity index 55%
copy from graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/MockSchemaProvider.java
copy to graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/SchemaProvider.java
index 3d18fe2..eeef129 100644
--- a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/MockSchemaProvider.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/api/SchemaProvider.java
@@ -16,25 +16,30 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.scripting.gql.engine;
+
+package org.apache.sling.scripting.gql.api;
+
+import java.io.IOException;
 
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.scripting.gql.schema.GraphQLSchemaProvider;
-
-class MockSchemaProvider extends GraphQLSchemaProvider {
-
-    private static final String MOCK_SCHEMA = 
-        "type Query {\n"
-        + "    ## fetch:test/echo\n"
-        + "    currentResource : SlingResource\n"
-        + "    ## fetch:test/static\n"
-        + "    staticContent: Test"
-        + "}\n"
-        + "type SlingResource { path: String resourceType: String }\n"
-        + "type Test { test: Boolean }";
-
-    @Override
-    public String getSchema(Resource r) throws Exception {
-        return MOCK_SCHEMA;
+
+import aQute.bnd.annotation.ProviderType;
+
+@ProviderType
+public interface SchemaProvider {
+    
+    public static class SchemaProviderException extends IOException {
+        private static final long serialVersionUID = 1L;
+
+        public SchemaProviderException(String reason) {
+            super(reason);
+        }
+
+        public SchemaProviderException(String reason, Throwable cause) {
+            super(reason, cause);
+        }
     }
+
+    /** Get a GraphQL Schema definition for the given resource and optional selectors */
+    String getSchema(Resource r, String [] selectors) throws SchemaProviderException;
 }
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQuery.java b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQuery.java
index 1810391..c015f15 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQuery.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQuery.java
@@ -25,9 +25,9 @@ import graphql.language.Comment;
 import graphql.language.FieldDefinition;
 import graphql.language.ObjectTypeDefinition;
 import org.apache.sling.api.resource.Resource;
+import org.apache.sling.scripting.gql.api.SchemaProvider;
 import org.apache.sling.scripting.gql.schema.DataFetcherDefinitionImpl;
 import org.apache.sling.scripting.gql.schema.DataFetcherSelector;
-import org.apache.sling.scripting.gql.schema.GraphQLSchemaProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -47,7 +47,7 @@ public class GraphQLResourceQuery {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
 
-    public ExecutionResult executeQuery(GraphQLSchemaProvider schemaProvider, DataFetcherSelector fetchers,
+    public ExecutionResult executeQuery(SchemaProvider schemaProvider, DataFetcherSelector fetchers,
                                         Resource r, String query) throws ScriptException {
         if(r == null) {
             throw new ScriptException("Resource is null");
@@ -56,12 +56,12 @@ public class GraphQLResourceQuery {
             throw new ScriptException("Query is null");
         }
         if(schemaProvider == null) {
-            throw new ScriptException("GraphQLSchemaProvider is null");
+            throw new ScriptException("SchemaProvider is null");
         }
 
         String schemaDef = null;
         try {
-            schemaDef = schemaProvider.getSchema(r);
+            schemaDef = schemaProvider.getSchema(r, null);
         } catch(Exception e) {
             final ScriptException up = new ScriptException("Schema provider failed");
             up.initCause(e);
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLScriptEngineFactory.java b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLScriptEngineFactory.java
index 6716b07..50ee0c6 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLScriptEngineFactory.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLScriptEngineFactory.java
@@ -23,8 +23,8 @@ import javax.script.ScriptEngine;
 import javax.script.ScriptEngineFactory;
 
 import org.apache.sling.scripting.api.AbstractScriptEngineFactory;
+import org.apache.sling.scripting.gql.api.SchemaProvider;
 import org.apache.sling.scripting.gql.schema.DataFetcherSelector;
-import org.apache.sling.scripting.gql.schema.GraphQLSchemaProvider;
 import org.osgi.framework.Constants;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
@@ -50,7 +50,7 @@ public class GraphQLScriptEngineFactory extends AbstractScriptEngineFactory {
     public static final String LANGUAGE_VERSION = "Sling:GraphQL:0.1";
 
     @Reference
-    private GraphQLSchemaProvider schemaProvider;
+    private SchemaProvider schemaProvider;
 
     @Reference
     private DataFetcherSelector fetcherManager;
@@ -77,7 +77,7 @@ public class GraphQLScriptEngineFactory extends AbstractScriptEngineFactory {
         return new GraphQLScriptEngine(this);
     }
 
-    GraphQLSchemaProvider getSchemaProvider() {
+    SchemaProvider getSchemaProvider() {
         return schemaProvider;
     }
 
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/GraphQLSchemaProvider.java b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DefaultSchemaProvider.java
similarity index 79%
rename from graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/GraphQLSchemaProvider.java
rename to graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DefaultSchemaProvider.java
index dd3b0d2..1899b31 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/GraphQLSchemaProvider.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/schema/DefaultSchemaProvider.java
@@ -22,9 +22,12 @@ package org.apache.sling.scripting.gql.schema;
 
 import java.io.IOException;
 
+import javax.servlet.ServletException;
+
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.engine.SlingRequestProcessor;
+import org.apache.sling.scripting.gql.api.SchemaProvider;
 import org.apache.sling.servlethelpers.MockSlingHttpServletRequest;
 import org.apache.sling.servlethelpers.MockSlingHttpServletResponse;
 import org.osgi.framework.Constants;
@@ -32,29 +35,18 @@ import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 
 /** Provides a Resource-specific GraphQL Schema, as text */
-@Component(service = GraphQLSchemaProvider.class, immediate = true, property = {
+@Component(service = SchemaProvider.class, immediate = true, property = {
         Constants.SERVICE_DESCRIPTION + "=Apache Sling Scripting GraphQL SchemaProvider",
         Constants.SERVICE_VENDOR + "=The Apache Software Foundation" })
-public class GraphQLSchemaProvider {
+public class DefaultSchemaProvider implements SchemaProvider {
 
     public static final String SCHEMA_EXTENSION = ".GQLschema";
 
     @Reference
     protected SlingRequestProcessor requestProcessor;
 
-    public static class SchemaProviderException extends IOException {
-        private static final long serialVersionUID = 1L;
-
-        SchemaProviderException(String reason) {
-            super(reason);
-        }
-
-        SchemaProviderException(String reason, Throwable cause) {
-            super(reason, cause);
-        }
-    }
-
-    public String getSchema(Resource r) throws Exception {
+    @Override
+    public String getSchema(Resource r, String [] selectors) throws SchemaProviderException {
         final ResourceResolver resourceResolver = r.getResourceResolver();
         if(r == null) {
             throw new SchemaProviderException("Resource.getResourceResolver() is null");
@@ -67,7 +59,12 @@ public class GraphQLSchemaProvider {
         if(status != 200) {
             throw new SchemaProviderException("Request to " + path + " returns HTTP status " + status);
         }
-        requestProcessor.processRequest(request, response, resourceResolver);
-        return response.getOutputAsString();
+
+        try {
+            requestProcessor.processRequest(request, response, resourceResolver);
+            return response.getOutputAsString();
+        } catch(Exception e) {
+            throw new SchemaProviderException("Schema request failed", e);
+        }
     }
 }
diff --git a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/servlet/GraphQLServlet.java b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/servlet/GraphQLServlet.java
index ea4bb38..939590d 100644
--- a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/servlet/GraphQLServlet.java
+++ b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/servlet/GraphQLServlet.java
@@ -31,9 +31,9 @@ import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.servlets.SlingAllMethodsServlet;
+import org.apache.sling.scripting.gql.api.SchemaProvider;
 import org.apache.sling.scripting.gql.engine.GraphQLResourceQuery;
 import org.apache.sling.scripting.gql.schema.DataFetcherSelector;
-import org.apache.sling.scripting.gql.schema.GraphQLSchemaProvider;
 import org.apache.sling.scripting.gql.engine.GraphQLScriptEngine;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.ConfigurationPolicy;
@@ -98,7 +98,7 @@ public class GraphQLServlet extends SlingAllMethodsServlet {
     }
 
     @Reference
-    private GraphQLSchemaProvider schemaProvider;
+    private SchemaProvider schemaProvider;
 
     @Reference
     private DataFetcherSelector fetchers;
diff --git a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQueryTest.java b/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQueryTest.java
index 2c839ba..0d4e3fe 100644
--- a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQueryTest.java
+++ b/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/GraphQLResourceQueryTest.java
@@ -32,15 +32,15 @@ import com.google.gson.Gson;
 
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.scripting.gql.schema.DataFetcherSelector;
-import org.apache.sling.scripting.gql.schema.GraphQLSchemaProvider;
 import org.apache.sling.scripting.gql.schema.MockDataFetcherSelector;
+import org.apache.sling.scripting.gql.api.SchemaProvider;
 import org.junit.Test;
 import org.mockito.Mockito;
 
 import graphql.ExecutionResult;
 
 public class GraphQLResourceQueryTest {
-    private final GraphQLSchemaProvider schemaProvider = new MockSchemaProvider();
+    private final SchemaProvider schemaProvider = new MockSchemaProvider();
     private final DataFetcherSelector fetchers = new MockDataFetcherSelector();
 
     @Test
diff --git a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/MockSchemaProvider.java b/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/MockSchemaProvider.java
index 3d18fe2..1eadc78 100644
--- a/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/MockSchemaProvider.java
+++ b/graphql-scripting/src/test/java/org/apache/sling/scripting/gql/engine/MockSchemaProvider.java
@@ -19,9 +19,9 @@
 package org.apache.sling.scripting.gql.engine;
 
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.scripting.gql.schema.GraphQLSchemaProvider;
+import org.apache.sling.scripting.gql.api.SchemaProvider;
 
-class MockSchemaProvider extends GraphQLSchemaProvider {
+class MockSchemaProvider implements SchemaProvider {
 
     private static final String MOCK_SCHEMA = 
         "type Query {\n"
@@ -34,7 +34,8 @@ class MockSchemaProvider extends GraphQLSchemaProvider {
         + "type Test { test: Boolean }";
 
     @Override
-    public String getSchema(Resource r) throws Exception {
+    public String getSchema(Resource r, String[] selectors) throws SchemaProviderException {
         return MOCK_SCHEMA;
     }
+
 }