You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2022/01/23 11:16:05 UTC

[isis] branch ISIS-2947 updated: ISIS-2947: springboot graphql now called from demo app (and so fails, as no schemas defined).

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

danhaywood pushed a commit to branch ISIS-2947
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/ISIS-2947 by this push:
     new 23accbb  ISIS-2947: springboot graphql now called from demo app (and so fails, as no schemas defined).
23accbb is described below

commit 23accbb5f81ecaa9c88aae51dd7b467b7c7671f0
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Jan 23 11:15:36 2022 +0000

    ISIS-2947: springboot graphql now called from demo app (and so fails, as no schemas defined).
---
 core/pom.xml                                       | 25 ++++++++++++++++----
 examples/demo/web/pom.xml                          |  1 +
 .../java/demoapp/web/DemoAppManifestCommon.java    |  4 ++++
 .../adoc/modules/graphql/pages/devnotes.adoc       |  2 ++
 .../viewer/IsisModuleIncViewerGraphqlViewer.java   | 11 +++++----
 .../GraphQlAutoConfiguration.java                  |  6 ++---
 .../GraphQlCorsProperties.java                     |  2 +-
 .../{webmodule => spring}/GraphQlProperties.java   |  2 +-
 .../GraphQlSourceBuilderCustomizer.java            |  2 +-
 .../GraphQlWebMvcAutoConfiguration.java            |  2 +-
 .../InvalidSchemaLocationsException.java           |  2 +-
 .../graphql/viewer/webmodule/MyGraphQlSource.java  | 27 ----------------------
 .../graphql/viewer/webmodule/MyWebInterceptor.java | 23 ------------------
 mavendeps/webapp/pom.xml                           |  7 +++++-
 14 files changed, 47 insertions(+), 69 deletions(-)

diff --git a/core/pom.xml b/core/pom.xml
index fbe73f5..07884ba 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -90,7 +90,7 @@
 		<assertj-guava.version>3.4.0</assertj-guava.version>
 
 		<camel.version>3.14.0</camel.version>
-		
+
 		<commons-email.version>1.5</commons-email.version>
 		<commons-httpclient.version>4.5.12</commons-httpclient.version>
 		<commons-io.version>2.11.0</commons-io.version>
@@ -836,6 +836,21 @@
 				<version>2.0.0-SNAPSHOT</version>
 			</dependency>
 			<dependency>
+				<groupId>org.apache.isis.incubator.viewer</groupId>
+				<artifactId>isis-viewer-graphql-applib</artifactId>
+				<version>2.0.0-SNAPSHOT</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.incubator.viewer</groupId>
+				<artifactId>isis-viewer-graphql-model</artifactId>
+				<version>2.0.0-SNAPSHOT</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.incubator.viewer</groupId>
+				<artifactId>isis-viewer-graphql-viewer</artifactId>
+				<version>2.0.0-SNAPSHOT</version>
+			</dependency>
+			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-unittests</artifactId>
 				<version>2.0.0-SNAPSHOT</version>
@@ -855,13 +870,13 @@
 			</dependency>
 
 			<!-- THIRD PARTY DEPENDENCIES -->
-			
+
 			<dependency>
 				<groupId>org.ow2.asm</groupId>
 				<artifactId>asm</artifactId>
 				<version>${asm.version}</version>
 			</dependency>
-			
+
 			<dependency>
 				<groupId>org.ow2.asm</groupId>
 				<artifactId>asm-util</artifactId>
@@ -1050,7 +1065,7 @@
 				<version>${javax-servlet.version}</version>
 			</dependency>
 
-			<!-- 3.2 not available yet, instead use org.datanucleus:javax.jdo 
+			<!-- 3.2 not available yet, instead use org.datanucleus:javax.jdo
 			<dependency>
 				<groupId>javax.jdo</groupId>
 				<artifactId>jdo-api</artifactId>
@@ -1407,7 +1422,7 @@
 				<artifactId>objenesis</artifactId>
 				<version>${objenesis.version}</version>
 			</dependency>
-			
+
 			<dependency>
 			    <groupId>org.osgi</groupId>
 			    <artifactId>osgi.core</artifactId>
diff --git a/examples/demo/web/pom.xml b/examples/demo/web/pom.xml
index 2837c30..251ef75 100644
--- a/examples/demo/web/pom.xml
+++ b/examples/demo/web/pom.xml
@@ -87,6 +87,7 @@
 			<artifactId>spring-boot-starter-log4j2</artifactId>
 		</dependency>
 
+
 	</dependencies>
 
 </project>
diff --git a/examples/demo/web/src/main/java/demoapp/web/DemoAppManifestCommon.java b/examples/demo/web/src/main/java/demoapp/web/DemoAppManifestCommon.java
index a674afc..3f3f5af 100644
--- a/examples/demo/web/src/main/java/demoapp/web/DemoAppManifestCommon.java
+++ b/examples/demo/web/src/main/java/demoapp/web/DemoAppManifestCommon.java
@@ -33,6 +33,7 @@ import org.apache.isis.extensions.secman.encryption.spring.IsisModuleExtSecmanEn
 import org.apache.isis.extensions.secman.integration.IsisModuleExtSecmanIntegration;
 import org.apache.isis.extensions.viewer.wicket.exceldownload.ui.IsisModuleExtExcelDownloadUi;
 import org.apache.isis.testing.h2console.ui.IsisModuleTestingH2ConsoleUi;
+import org.apache.isis.viewer.graphql.viewer.IsisModuleIncViewerGraphqlViewer;
 import org.apache.isis.viewer.restfulobjects.jaxrsresteasy4.IsisModuleViewerRestfulObjectsJaxrsResteasy4;
 import org.apache.isis.viewer.restfulobjects.viewer.IsisModuleViewerRestfulObjectsViewer;
 
@@ -62,6 +63,9 @@ import demoapp.web.security.PrototypeActionsVisibilityAdvisor;
     IsisModuleViewerRestfulObjectsViewer.class,
     IsisModuleViewerRestfulObjectsJaxrsResteasy4.class,
 
+    // GraphQL
+    IsisModuleIncViewerGraphqlViewer.class,
+
     // CORS
     IsisModuleExtCors.class,
 
diff --git a/incubator/viewers/graphql/adoc/modules/graphql/pages/devnotes.adoc b/incubator/viewers/graphql/adoc/modules/graphql/pages/devnotes.adoc
index 035e9a0..fa31e36 100644
--- a/incubator/viewers/graphql/adoc/modules/graphql/pages/devnotes.adoc
+++ b/incubator/viewers/graphql/adoc/modules/graphql/pages/devnotes.adoc
@@ -33,6 +33,8 @@ I find that IntelliJ can mess up with compiling applib as it depends on DTO clas
 
 * include `isis-parent`
 
+* include `mavendeps/webapp`
+
 * include `commons`
 
 * include all of `core`
diff --git a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/IsisModuleIncViewerGraphqlViewer.java b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/IsisModuleIncViewerGraphqlViewer.java
index db5a71f..df0b9e2 100644
--- a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/IsisModuleIncViewerGraphqlViewer.java
+++ b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/IsisModuleIncViewerGraphqlViewer.java
@@ -1,15 +1,15 @@
 package org.apache.isis.viewer.graphql.viewer;
 
-import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 import org.apache.isis.viewer.graphql.model.IsisModuleIncViewerGraphqlModel;
-import org.apache.isis.viewer.graphql.viewer.webmodule.GraphQlAutoConfiguration;
-import org.apache.isis.viewer.graphql.viewer.webmodule.GraphQlCorsProperties;
-import org.apache.isis.viewer.graphql.viewer.webmodule.GraphQlProperties;
+import org.apache.isis.viewer.graphql.viewer.spring.GraphQlAutoConfiguration;
+import org.apache.isis.viewer.graphql.viewer.spring.GraphQlCorsProperties;
+import org.apache.isis.viewer.graphql.viewer.spring.GraphQlProperties;
+import org.apache.isis.viewer.graphql.viewer.spring.GraphQlWebMvcAutoConfiguration;
 import org.apache.isis.viewer.graphql.viewer.webmodule.WebModuleGraphql;
 
 @Configuration
@@ -21,7 +21,8 @@ import org.apache.isis.viewer.graphql.viewer.webmodule.WebModuleGraphql;
         IsisModuleIncViewerGraphqlModel.class,
 
         // autoconfigurations
-        GraphQlAutoConfiguration.class
+        GraphQlAutoConfiguration.class,
+        GraphQlWebMvcAutoConfiguration.class
 })
 @EnableConfigurationProperties({
         GraphQlProperties.class, GraphQlCorsProperties.class
diff --git a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlAutoConfiguration.java b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlAutoConfiguration.java
similarity index 97%
rename from incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlAutoConfiguration.java
rename to incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlAutoConfiguration.java
index 9f43703..e070078 100644
--- a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlAutoConfiguration.java
+++ b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlAutoConfiguration.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.apache.isis.viewer.graphql.viewer.webmodule;
+package org.apache.isis.viewer.graphql.viewer.spring;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -56,7 +56,7 @@ import org.springframework.graphql.execution.RuntimeWiringConfigurer;
  * @since 2.7.0
  */
 @Configuration(proxyBeanMethods = false)
-@ConditionalOnClass({ GraphQL.class, GraphQlSource.class })
+ @ConditionalOnClass({ GraphQL.class, GraphQlSource.class })
 @EnableConfigurationProperties(GraphQlProperties.class)
 public class GraphQlAutoConfiguration {
 
@@ -65,7 +65,7 @@ public class GraphQlAutoConfiguration {
 	private final BatchLoaderRegistry batchLoaderRegistry = new DefaultBatchLoaderRegistry();
 
 	@Bean
-	@ConditionalOnMissingBean
+	 @ConditionalOnMissingBean
 	public GraphQlSource graphQlSource(ResourcePatternResolver resourcePatternResolver, GraphQlProperties properties,
 			ObjectProvider<DataFetcherExceptionResolver> exceptionResolversProvider,
 			ObjectProvider<Instrumentation> instrumentationsProvider,
diff --git a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlCorsProperties.java b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlCorsProperties.java
similarity index 98%
rename from incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlCorsProperties.java
rename to incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlCorsProperties.java
index 5213a8e..6c34d3e 100644
--- a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlCorsProperties.java
+++ b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlCorsProperties.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.apache.isis.viewer.graphql.viewer.webmodule;
+package org.apache.isis.viewer.graphql.viewer.spring;
 
 import java.time.Duration;
 import java.time.temporal.ChronoUnit;
diff --git a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlProperties.java b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlProperties.java
similarity index 98%
rename from incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlProperties.java
rename to incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlProperties.java
index 6634aea..04cb92d 100644
--- a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlProperties.java
+++ b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlProperties.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.apache.isis.viewer.graphql.viewer.webmodule;
+package org.apache.isis.viewer.graphql.viewer.spring;
 
 import java.time.Duration;
 import java.util.Arrays;
diff --git a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlSourceBuilderCustomizer.java b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlSourceBuilderCustomizer.java
similarity index 95%
rename from incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlSourceBuilderCustomizer.java
rename to incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlSourceBuilderCustomizer.java
index fb5e206..0c5f3e6 100644
--- a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlSourceBuilderCustomizer.java
+++ b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlSourceBuilderCustomizer.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.apache.isis.viewer.graphql.viewer.webmodule;
+package org.apache.isis.viewer.graphql.viewer.spring;
 
 import org.springframework.graphql.execution.GraphQlSource;
 
diff --git a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlWebMvcAutoConfiguration.java b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlWebMvcAutoConfiguration.java
similarity index 99%
rename from incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlWebMvcAutoConfiguration.java
rename to incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlWebMvcAutoConfiguration.java
index 828fdf4..da1a348 100644
--- a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/GraphQlWebMvcAutoConfiguration.java
+++ b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/GraphQlWebMvcAutoConfiguration.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.apache.isis.viewer.graphql.viewer.webmodule;
+package org.apache.isis.viewer.graphql.viewer.spring;
 
 import java.util.Collections;
 import java.util.Map;
diff --git a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/InvalidSchemaLocationsException.java b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/InvalidSchemaLocationsException.java
similarity index 98%
rename from incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/InvalidSchemaLocationsException.java
rename to incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/InvalidSchemaLocationsException.java
index 0e87606..182c282 100644
--- a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/InvalidSchemaLocationsException.java
+++ b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/spring/InvalidSchemaLocationsException.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.apache.isis.viewer.graphql.viewer.webmodule;
+package org.apache.isis.viewer.graphql.viewer.spring;
 
 import java.io.IOException;
 import java.util.ArrayList;
diff --git a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/MyGraphQlSource.java b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/MyGraphQlSource.java
deleted file mode 100644
index 1051c18..0000000
--- a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/MyGraphQlSource.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.isis.viewer.graphql.viewer.webmodule;
-
-import org.springframework.graphql.execution.GraphQlSource;
-import org.springframework.graphql.web.WebInput;
-import org.springframework.graphql.web.WebInterceptor;
-import org.springframework.graphql.web.WebInterceptorChain;
-import org.springframework.graphql.web.WebOutput;
-import org.springframework.stereotype.Service;
-
-import graphql.GraphQL;
-import graphql.schema.GraphQLSchema;
-import reactor.core.publisher.Mono;
-
-@Service
-public class MyGraphQlSource implements GraphQlSource {
-
-    @Override
-    public GraphQL graphQl() {
-        return GraphQL.newGraphQL(schema()).build();
-    }
-
-    @Override
-    public GraphQLSchema schema() {
-        return GraphQLSchema.newSchema()
-                .build();
-    }
-}
diff --git a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/MyWebInterceptor.java b/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/MyWebInterceptor.java
deleted file mode 100644
index 4bc0bf9..0000000
--- a/incubator/viewers/graphql/viewer/src/main/java/org/apache/isis/viewer/graphql/viewer/webmodule/MyWebInterceptor.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.apache.isis.viewer.graphql.viewer.webmodule;
-
-import org.springframework.graphql.web.WebInput;
-import org.springframework.graphql.web.WebInterceptor;
-import org.springframework.graphql.web.WebInterceptorChain;
-import org.springframework.graphql.web.WebOutput;
-import org.springframework.stereotype.Service;
-
-import reactor.core.publisher.Mono;
-
-@Service
-public class MyWebInterceptor implements WebInterceptor {
-
-    @Override
-    public Mono<WebOutput> intercept(WebInput webInput, WebInterceptorChain chain) {
-        return null;
-    }
-
-    @Override
-    public WebInterceptor andThen(WebInterceptor interceptor) {
-        return WebInterceptor.super.andThen(interceptor);
-    }
-}
diff --git a/mavendeps/webapp/pom.xml b/mavendeps/webapp/pom.xml
index 14ce0cb..6b3706c 100644
--- a/mavendeps/webapp/pom.xml
+++ b/mavendeps/webapp/pom.xml
@@ -28,7 +28,7 @@
 	<name>Apache Isis Maven Deps - Webapp</name>
 	<description>
         Defines a module that can be almost used as a single dependency for running
-        an Apache Isis webapp (Wicket, Restful Objects and Shiro security).
+        an Apache Isis webapp (Wicket, Restful Objects, GraphQL and Shiro security).
 
         Note: Also requires a persistence provider.
     </description>
@@ -83,6 +83,11 @@
 		</dependency>
 
 		<dependency>
+			<groupId>org.apache.isis.incubator.viewer</groupId>
+			<artifactId>isis-viewer-graphql-viewer</artifactId>
+		</dependency>
+
+		<dependency>
 			<groupId>org.apache.isis.core</groupId>
 			<artifactId>isis-core-security</artifactId>
 		</dependency>