Closed yanavasileva closed 1 year ago
Consider adding enforcer definition for jdk 17
If https://github.com/camunda/camunda-bpm-platform/issues/3439 is not merged when starting the implementation. The PR branch must be based on 3439-engine-spring-6
from PR #3485
RequestScopeIT: conflict of logging dependencies version
Solution: remove internal-dependencies
from dependencyManagement
in the pom.xml as our logback dependency version cause conflict with those coming from Spring Boot. And the test uses CapturedOutput
that is Spring Boot implementation using the dependencies with high version than the defined in internal-dependencies
.
Current failures:
Camunda Platform - Spring Boot Starter - QA - Webapps Runtime
java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager
at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402)
at java.base/java.lang.Class.getMethodsRecursive(Class.java:3543)
at java.base/java.lang.Class.getMethod0(Class.java:3529)
at java.base/java.lang.Class.getMethod(Class.java:2225)
at org.apache.maven.surefire.util.ReflectionUtils.tryGetMethod(ReflectionUtils.java:60)
at org.apache.maven.surefire.common.junit3.JUnit3TestChecker.isSuiteOnly(JUnit3TestChecker.java:66)
at org.apache.maven.surefire.common.junit3.JUnit3TestChecker.isValidJUnit3Test(JUnit3TestChecker.java:61)
at org.apache.maven.surefire.common.junit3.JUnit3TestChecker.accept(JUnit3TestChecker.java:56)
at org.apache.maven.surefire.common.junit4.JUnit4TestChecker.accept(JUnit4TestChecker.java:53)
at org.apache.maven.surefire.util.DefaultScanResult.applyFilter(DefaultScanResult.java:102)
at org.apache.maven.surefire.junit4.JUnit4Provider.scanClassPath(JUnit4Provider.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.setTestsToRun(JUnit4Provider.java:189)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:132)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
Caused by: java.lang.ClassNotFoundException: org.apache.http.conn.HttpClientConnectionManager
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 18 more
RestIT
- incorrect javax
dependency?
jakarta.ws.rs.core.MediaType
cannot be resolved as there is a second javax.ws.rs.core.MediaType
on the classpath that seems to be loaded first. Arranging the dependencies doesn't help to find the right classjavax.ws.rs.core.MediaType
.MediaType
specifics but only #getType()
string that can be obtained via APPLICATION_HAL_JSON
fieldtestTaskFilterResultContentType(org.camunda.bpm.rest.RestIT) Time elapsed: 5.494 s <<< ERROR!
java.lang.NoSuchFieldError: APPLICATION_HAL_JSON_TYPE
at org.camunda.bpm.rest.RestIT.assertMediaTypesOfResource(RestIT.java:308)
at org.camunda.bpm.rest.RestIT.testTaskFilterResultContentType(RestIT.java:174)
[ERROR] testSingleTaskContentType(org.camunda.bpm.rest.RestIT) Time elapsed: 5.245 s <<< ERROR!
java.lang.NoSuchFieldError: APPLICATION_HAL_JSON_TYPE
at org.camunda.bpm.rest.RestIT.assertMediaTypesOfResource(RestIT.java:308)
at org.camunda.bpm.rest.RestIT.testSingleTaskContentType(RestIT.java:150)
[ERROR] testTaskQueryContentType(org.camunda.bpm.rest.RestIT) Time elapsed: 5.178 s <<< ERROR!
java.lang.NoSuchFieldError: APPLICATION_HAL_JSON_TYPE
at org.camunda.bpm.rest.RestIT.assertMediaTypesOfResource(RestIT.java:308)
at org.camunda.bpm.rest.RestIT.testTaskQueryContentType(RestIT.java:140)
LoginIT
- <version.selenium>4.8.3+</version.selenium>
fixes the issue,WebappEeTest
MultiException
- missing jaxb dependency
```
2023-06-15T18:25:22.028+02:00 WARN 13480 --- [o-auto-1-exec-1] org.glassfish.jersey.internal.Errors : The following warnings have been detected: WARNING: Unknown HK2 failure detected:
MultiException stack 1 of 2
java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlElement
at com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector.
404 NOT_FOUND
- adjust to jakarta plugins depsThere is a warning when some of the test applications are started:
WARN 28528 --- [io-58080-exec-1] o.g.jersey.server.wadl.WadlFeature : JAXBContext implementation could not be found. WADL feature is disabled.
Camunda do not use WADL (Web Application Description Language), users must take care of adjusting their app in case they want to use the feature (adding jaxb dependency).
jersey.config.server.wadl.disableWadl
property can be used to disable the feature.
No action required from our side.
Most of the version updates can be found here: link or here.
EE: Added
commons-logging:commons-logging:jar:1.2: Apache 2
io.micrometer:micrometer-commons:jar:1.11.1: Apache 2
io.micrometer:micrometer-observation:jar:1.11.1: Apache 2
jakarta.activation:jakarta.activation-api:jar:2.1.2: EDL 1
jakarta.inject:jakarta.inject-api:jar:2.0.1: Apache 2
javax.activation:javax.activation-api:jar:1.2.0: CDDL 1.1 or GPL 2
javax.xml.bind:jaxb-api:jar:2.3.1: CDDL 1.1 or GPL 2
com.sun.xml.bind:jaxb-core:jar:4.0.3: EDL 1
com.sun.xml.bind:jaxb-impl:jar:4.0.3:EDL 1
org.eclipse.angus:angus-activation:jar:2.0.1: Apache 2
javax.xml.bind:jaxb-api
(CDDL 1.1)has been approved already for testing purposes: https://jira.camunda.com/browse/OB-25
In Assert, assertj version is resolved via the spring-boot-dependencies
defined in the dependencyManagement
section (CAM-14459). After bumping to Spring Boot 3, Assert had failures with JDK <17 due to Spring 6 dependency coming from spring-boot-dependencies
. To remove the restriction, I added spring-framework-bom
at the top of dependencyManagement
to resolve Spring 5 instead of Spring for the spring-bean
transitive dependency.
camunda-bpm-assert-qa
fails on JDK 11 with ClassNotFoundException: org.junit.platform.launcher.core.LauncherFactory
only after camunda-bpm-junit5
is built before that.
Issue can be reproduce with JDK 11 and the following command:
mvn8 clean install -pl 'test-utils/assert/,test-utils/assert/core,test-utils/assert/qa,test-utils/junit5-extension,test-utils/junit5-extension-dmn'
Adding the junit-platform-launcher
dependency resolves the ClassNotFoundException
. In addition, I bumped the assertj
and junit5
version in camunda-bpm-junit5
and camunda-dmn-junit5
modules aligned with the ones in Assert.
Standard regression testing of Spring Boot Starter after upgrade to Spring Boot 3.
Spring Boot Starter can be used only with Java 17.
Tested based on the Handover to QA and test regression.
Test run - herehttps://camunda.testrail.com/index.php?/plans/view/23108
Can i ask you why camunda-bpm-spring-boot-starter-external-task-client version 7.20 is using javax packages instead of jakarta ? For example in org.camunda.bpm.client.variable.impl.format.xml.DomXmlDataFormat When i am trying to start external task client with minimal setup Archive.zip I am getting error Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at org.camunda.bpm.client.variable.impl.format.xml.DomXmlDataFormatProvider.createInstance(DomXmlDataFormatProvider.java:31) ~[camunda-external-task-client-7.20.0.jar:7.20.0]
Why i should to use this dependency javax.xml.bind.jaxb-api as is in your example ? https://github.com/camunda/camunda-bpm-examples/blob/7.20/spring-boot-starter/external-task-client/loan-granting-spring-boot-webapp/pom.xml
@filyyyp,
Thank you for reaching out to us with this. I created https://github.com/camunda/camunda-bpm-platform/issues/3829 where you can track the progress of the issue.
Acceptance Criteria (Required on creation)
spring-boot-starter
modules are updated to Spring Boot 3.1 supportHints
Links
Breakdown
engine-spring-6
dependency (newly created module in #3439) (link)META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
for auto-configurations. (CE/EE) Hint: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#auto-configuration-filesspring.factories
files and removeorg.springframework.boot.autoconfigure.EnableAutoConfiguration
occurancesXXXAutoConfiguration
defintion to theorg.springframework.boot.autoconfigure.AutoConfiguration.imports
file insteadAbstractWebSocketMessageBrokerConfigurer
->WebSocketMessageBrokerConfigurer
(used in tests)org.springframework.boot.web.server.LocalServerPort
->org.springframework.boot.test.web.server.LocalServerPort
(used in tests)webapps-jakarta
artifacts in CE and EEwebapp-webjar
modulesjavax.annotation
,javax.ws
,javax.servlet
,javax.persistence
renamed imports (53 hits in 26 files)jakarta.transaction-api
(for tests)jakarta.interceptor-api
(for tests)-jakarta
modules forrest
,webapp
,invoice
dependenciesRequestScopeIT
- resolve duplicated logging dependenciesLiquibaseApplicationIT
- adjust the liquibase version to4.18.0
in case of file not found failure. Add a comment to remove the version pin when Spring Boot adopts a liquibase version where the bug is fixed.RestIT
- investigate no HAL media type failures.