dgs-framework icon indicating copy to clipboard operation
dgs-framework copied to clipboard

documentation: Document the compatibility between DGS and the different versions of Spring Boot

Open berngp opened this issue 4 years ago • 4 comments

What are you missing in the docs

A compatibility matrix/list/blurb that describes that DGS is compatible with Spring Boot 2.3, 2.4, and 2.5. It should also point to our examples that run 2.4 but probably should be upgraded to 2.5.

berngp avatar Nov 30 '21 00:11 berngp

@berngp Could you point me to the examples that run spring 2.4?

In my project, I'm using:

Spring-boot: 2.4.12 graphql-dgs-client: 4.9.10

and running into some issues while using WebClientGraphQLClient.

java.lang.IllegalStateException: Failed to introspect Class [<MY class that uses MonoGraphQLClient.createWithWebClient(webClient)>] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@9e89d68]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:481) ~[spring-core-5.3.12.jar:5.3.12]
	at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:358) ~[spring-core-5.3.12.jar:5.3.12]
	at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:414) ~[spring-core-5.3.12.jar:5.3.12]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.lambda$getTypeForFactoryMethod$2(AbstractAutowireCapableBeanFactory.java:765) ~[spring-beans-5.3.12.jar:5.3.12]
	at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) ~[?:?]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:764) ~[spring-beans-5.3.12.jar:5.3.12]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:703) ~[spring-beans-5.3.12.jar:5.3.12]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:674) ~[spring-beans-5.3.12.jar:5.3.12]
	at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1670) ~[spring-beans-5.3.12.jar:5.3.12]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:570) ~[spring-beans-5.3.12.jar:5.3.12]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:542) ~[spring-beans-5.3.12.jar:5.3.12]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:667) ~[spring-beans-5.3.12.jar:5.3.12]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:659) ~[spring-beans-5.3.12.jar:5.3.12]
	at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1300) ~[spring-context-5.3.12.jar:5.3.12]
	at org.springframework.boot.SpringApplication.getExitCodeFromMappedException(SpringApplication.java:903) ~[spring-boot-2.4.12.jar:2.4.12]
	at org.springframework.boot.SpringApplication.getExitCodeFromException(SpringApplication.java:891) ~[spring-boot-2.4.12.jar:2.4.12]
	at org.springframework.boot.SpringApplication.handleExitCode(SpringApplication.java:878) ~[spring-boot-2.4.12.jar:2.4.12]
	at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:819) [spring-boot-2.4.12.jar:2.4.12]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:349) [spring-boot-2.4.12.jar:2.4.12]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) [spring-boot-2.4.12.jar:2.4.12]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1318) [spring-boot-2.4.12.jar:2.4.12]
	at com.intuit.identity.manage.camsapp.CamsApplicationKt.main(CamsApplication.kt:18) [classes/:?]
	at com.intuit.identity.manage.camsapp.CamsApplicationKt.main(CamsApplication.kt) [classes/:?]
Caused by: java.lang.NoClassDefFoundError: com/netflix/graphql/dgs/client/WebClientGraphQLClient
	at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
	at java.lang.Class.privateGetDeclaredMethods(Class.java:3166) ~[?:?]
	at java.lang.Class.getDeclaredMethods(Class.java:2309) ~[?:?]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:463) ~[spring-core-5.3.12.jar:5.3.12]
	... 22 more
Caused by: java.lang.ClassNotFoundException: com.netflix.graphql.dgs.client.WebClientGraphQLClient
	at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[?:?]
	at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
	at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
	at java.lang.Class.privateGetDeclaredMethods(Class.java:3166) ~[?:?]
	at java.lang.Class.getDeclaredMethods(Class.java:2309) ~[?:?]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:463) ~[spring-core-5.3.12.jar:5.3.12]
	... 22 more

rachanamamillapalli avatar Nov 30 '21 19:11 rachanamamillapalli

@rachanamamillapalli This is unrelated to Spring. The error shows java.lang.ClassNotFoundException: com.netflix.graphql.dgs.client.WebClientGraphQLClient, so you're likely just missing the dgs-client dependency on your (runtime) classpath.

paulbakker avatar Nov 30 '21 19:11 paulbakker

@berngp @paulbakker Can contributors help confirm which Spring Boot version is support with the latest versions of DGS?

Is Spring Boot 2.4 compatible? What about 2.6.x?

glacier avatar Jan 12 '22 19:01 glacier

In general we expect to be compatible with 2.3 and later versions. Internally we use 2.3 and 2.5, we don't test against 2.6.x but we don't expect it to be incompatible.

berngp avatar Jan 12 '22 20:01 berngp