camunda / camunda-bpm-platform

Flexible framework for workflow and decision automation with BPMN and DMN. Integration with Quarkus, Spring, Spring Boot, CDI.
https://camunda.com/
Apache License 2.0
4.12k stars 1.56k forks source link

Support for WildFly 29 #3368

Closed mkomko closed 1 year ago

mkomko commented 1 year ago

User Story (Required on creation)

I can deploy the Camunda BPM platform on WildFly 28 (already released) and WildFly 29 (scheduled for July 13, 2023).

Functional Requirements (Required before implementation)

Limitations of Scope

Hints

Currently, Camunda 7.19 and WildFly 28 are incompatible, because Camunda uses a lot of JBoss Modular Service Container and WildFly functionality that had been deprecated since 2016 and no longer exists in WildFly 28. See https://github.com/camunda/camunda-bpm-platform/issues/3368#issuecomment-1522956846 for a list.

Here is just the first example where deployment fails: ``` [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0002: Error booting the container: java.lang.NoSuchMethodError: 'org.jboss.as.controller.AbstractAttributeDefinitionBuilder org.jboss.as.controller.AbstractAttributeDefinitionBuilder.setAllowNull(boolean)' at org.camunda.bpm.wildfly.camunda-wildfly-subsystem@7.19.0//org.camunda.bpm.container.impl.jboss.util.FixedObjectTypeAttributeDefinition$Builder.setAllowNull(FixedObjectTypeAttributeDefinition.java:127) at org.camunda.bpm.wildfly.camunda-wildfly-subsystem@7.19.0//org.camunda.bpm.container.impl.jboss.extension.SubsystemAttributeDefinitons.(SubsystemAttributeDefinitons.java:142) at org.camunda.bpm.wildfly.camunda-wildfly-subsystem@7.19.0//org.camunda.bpm.container.impl.jboss.extension.Attribute.(Attribute.java:35) at org.camunda.bpm.wildfly.camunda-wildfly-subsystem@7.19.0//org.camunda.bpm.container.impl.jboss.extension.BpmPlatformParser1_1$1.(BpmPlatformParser1_1.java:93) at org.camunda.bpm.wildfly.camunda-wildfly-subsystem@7.19.0//org.camunda.bpm.container.impl.jboss.extension.BpmPlatformParser1_1.parse(BpmPlatformParser1_1.java:51) at org.camunda.bpm.wildfly.camunda-wildfly-subsystem@7.19.0//org.camunda.bpm.container.impl.jboss.extension.BpmPlatformParser1_1$BpmPlatformSubsystemParser.readElement(BpmPlatformParser1_1.java:404) at org.camunda.bpm.wildfly.camunda-wildfly-subsystem@7.19.0//org.camunda.bpm.container.impl.jboss.extension.BpmPlatformParser1_1$BpmPlatformSubsystemParser.readElement(BpmPlatformParser1_1.java:377) at org.jboss.staxmapper@1.4.0.Final//org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:122) at org.jboss.staxmapper@1.4.0.Final//org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69) at org.jboss.as.server@20.0.1.Final//org.jboss.as.server.parsing.StandaloneXml_18.parseServerProfile(StandaloneXml_18.java:660) at org.jboss.as.server@20.0.1.Final//org.jboss.as.server.parsing.StandaloneXml_18.readServerElement(StandaloneXml_18.java:238) at org.jboss.as.server@20.0.1.Final//org.jboss.as.server.parsing.StandaloneXml_18.readElement(StandaloneXml_18.java:139) at org.jboss.as.server@20.0.1.Final//org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:132) at org.jboss.as.server@20.0.1.Final//org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:52) at org.jboss.staxmapper@1.4.0.Final//org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:122) at org.jboss.staxmapper@1.4.0.Final//org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:76) at org.jboss.as.controller@20.0.1.Final//org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:126) at org.jboss.as.server@20.0.1.Final//org.jboss.as.server.ServerService.boot(ServerService.java:399) at org.jboss.as.controller@20.0.1.Final//org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:471) at java.base/java.lang.Thread.run(Thread.java:833) ```

Links

Breakdown

### Tasks
- [ ] https://github.com/camunda/camunda-bpm-platform/issues/3584
- [ ] https://github.com/camunda/camunda-bpm-platform/issues/3585
- [ ] https://github.com/camunda/camunda-bpm-platform/issues/3586
- [ ] https://github.com/camunda/camunda-bpm-platform/issues/3587

Dev2QA handover

ThorbenLindhauer commented 1 year ago

Related forum post: https://forum.camunda.io/t/feature-request-for-7-20-support-wildfly-28/44149/

yanavasileva commented 1 year ago

Hi @mkomko,

Thank you for reaching out to us with this. I will assign the ticket for a decision so Product management can evaluate and prioritize it. This might take a bit due to the team's other responsibilities. Nevertheless, as pointed by Thorben, any contribution on the topic will be helpful to bring this forward.

Best regards, Yana

yanavasileva commented 1 year ago

@toco-cam, assigning for a decision on this community feature request about WildFly. I didn't find any open tickets on the topic.

mkomko commented 1 year ago

@ThorbenLindhauer @toco-cam

I took a closer look and sadly it seems that a lot of components you are using had been deprecated for a long time and have now been removed. The following classes no longer exist:

The following methods have a different signature:

The following classes are already deprecated:

The following methods are already deprecated:

The list is probably incomplete.

It seems a lot of that code needs to be rewritten, so sadly I'm not going to be able to provide a pull request.

We would very much appreciate if you could accept this feature request and handle it sooner than later, because then we would be able to create a custom build of the wildfly distro to use with WildFly 28 prior to the Camunda 7.20 release. But of course that is up to you and you might have other priorities.

Thank you very much!

ThorbenLindhauer commented 1 year ago

Thanks for sharing your findings. I was kind of waiting for this time to come for a couple of years now :).

We would very much appreciate if you could accept this feature request and handle it sooner than later, because then we would be able to create a custom build of the wildfly distro to use with WildFly 28 prior to the Camunda 7.20 release. But of course that is up to you and you might have other priorities.

Indeed we have other priorities right now, e.g. moving to Spring Boot 3. But sooner or later we will get back to this.

toco-cam commented 1 year ago

Hello @mkomko,

FYI - We will work on this topic this quarter with the target of supporting Wildfly 28+ in the near future.

Regards Tobias

mkomko commented 1 year ago

That sounds great, we're looking forward to it! Thank you very much for the information @toco-cam.

yanavasileva commented 1 year ago

Handover to QA:

Environments

With different databases

Docs

https://docs.camunda.org/manual/develop/installation/full/jboss/manual/

gbetances089 commented 1 year ago

Tested on camunda 7.20 minor release candidate.