AC Compatibility with Spring Boot 3

I’m trying to use your Atlassian Connect Java framework 3.0.2 together with the latest version of atlassian-connect-spring-boot-starter, which at the time of writing is also 3.0.2.

However, upon application launch, the following exception is thrown:

2023-03-06T16:03:15.292+01:00  WARN 25078 --- [           main] o.s.boot.SpringApplication               : Unable to close ApplicationContext

java.lang.IllegalStateException: Failed to introspect Class [org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@251a69d7]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:483) ~[spring-core-6.0.5.jar:6.0.5]
	at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:360) ~[spring-core-6.0.5.jar:6.0.5]
	at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:417) ~[spring-core-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.lambda$getTypeForFactoryMethod$1(AbstractAutowireCapableBeanFactory.java:750) ~[spring-beans-6.0.5.jar:6.0.5]
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1740) ~[na:na]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:749) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:682) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:653) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1632) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:559) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:531) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:658) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:650) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1278) ~[spring-context-6.0.5.jar:6.0.5]
	at org.springframework.boot.SpringApplication.getExitCodeFromMappedException(SpringApplication.java:865) ~[spring-boot-3.0.3.jar:3.0.3]
	at org.springframework.boot.SpringApplication.getExitCodeFromException(SpringApplication.java:853) ~[spring-boot-3.0.3.jar:3.0.3]
	at org.springframework.boot.SpringApplication.handleExitCode(SpringApplication.java:840) ~[spring-boot-3.0.3.jar:3.0.3]
	at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:780) ~[spring-boot-3.0.3.jar:3.0.3]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-3.0.3.jar:3.0.3]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1304) ~[spring-boot-3.0.3.jar:3.0.3]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1293) ~[spring-boot-3.0.3.jar:3.0.3]
	at engineering.divine.ApplicationServer.main(ApplicationServer.java:21) ~[classes/:na]
Caused by: java.lang.NoClassDefFoundError: javax/servlet/Filter
	at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[na:na]
	at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[na:na]
	at java.base/java.lang.Class.getDeclaredMethods(Class.java:2504) ~[na:na]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465) ~[spring-core-6.0.5.jar:6.0.5]
	... 21 common frames omitted
**Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter**
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na]
	... 25 common frames omitted

Spring Boot 3 moved from JEE (javax.) to Jakarta EE 9 (jakarta.), but your library still seems to rely on JEE. Please advise.

1 Like

Dear @divineengineering

I assume @epehrson can provide more details on the time plan. From what I saw in the commits they are working on it but compatibility with Spring 3 is not yet there.

Best regards

Andreas

Hi @andreas1 @divineengineering, thanks for reaching out!

Yes, we did a spike on Atlassian Connect Spring Boot(ACSB)'s upgrade with SpringBoot 3.0, and currently we are planning for this upgrade. More detailed comms will be posted shortly after we work out a timeline : )

Cheers,
Min

1 Like

That sounds excellent, thank you! Maybe you could state that in the documentation as well, I spent quite a few hours trying to get it to work together.

Thank you for your clarification, is it possible to share an estimate for compatibility with spring boot release date