Closed danielkelemen closed 1 year ago
#isNillable()
is not available in WFLY27, #isAllowNull()
not available in WFLY28 - linkInjectedValue
has been replaced by Supplier
and also serviceBuilder.addDependency()
replaced by serviceBuilder.requires()
(link to commit). It seems the first exception related to the change.:green_circle: the CI is green for Wildfly 29 :green_circle: the server with the webapps starts successfully as well 🟡 warning thrown on server stop :red_circle: the backwards compatibility for WildFly 27 is broken at the moment
ServiceTarget#addService()
is not available in WildFly 27 - try to use ServiceTarget#addService(ServiceName)
#isNillable()
- I was not able to confirm if we can remove the FixedObjectTypeAttributeDefinition
classMy initial idea was to remove the FixedObjectTypeAttributeDefinition
class and leave the ReflectionCompatibilityTest
to test it with ObjectTypeAttributeDefinition
. (For reference: the logic was introduced in CAM-5737.) However, the used methods are not public so it's not possible to achieve this out-of-the-box. Therefore I run locally the test with the default implementation and it passed successfully.
Alternative: hard code true
value, the value we set that value during the initialization in org.camunda.bpm.container.impl.jboss.extension.SubsystemAttributeDefinitons.PLUGIN
Decision: Remove the class and the test (incl. test resources).
java.lang.IllegalStateException: Process application 'InvoiceProcessApplication' is not unavailable.
- 🔴 no idea yetjava.lang.IllegalStateException: Process application 'InvoiceProcessApplication' is not unavailable.
- stacktrace - check the previous comment#postProcessApplicationUndeploy()
logic won't be executed for custom BpmPlatformPlugin
s
The warning was not thrown before as it was used a stored value from the Injector. There's no such concept for "stored" values with Suppliers.
Why the application is not available at this point (only for stop)? Code for registering the process application service: https://github.com/camunda/camunda-bpm-platform/blob/57f0a570b262659fe19440c12eb938656887aa7d/distro/wildfly/subsystem/src/main/java/org/camunda/bpm/container/impl/jboss/service/ProcessApplicationStartService.java#L173-L177 On shutdown the order is:
ProcessApplicationStartService
and along with MscManagedProcessApplication
=> the application is goneProcessApplicationDeploymentService
ProcessApplicationStopService
where the warning is thrown due to process application reference not available anymoreFurther: it uses the #getChildTarget()
from the ProcessApplicationStartService
Get a service target which may be used to add child services. Child services have an implicit dependency on their parent, and are automatically removed when the parent service stops (or if the parent service fails during startup).
Where the order of service start/stop is defined? - dependencies/requires
Can we initialize MscManagedProcessApplication
in ProcessApplicationDeploymentProcessor
? - no, as we can adjust the existing dependencies of the services, it can create a cycle.
The process application is cleaned up in ProcessApplicationReferenceImpl#clear()
during the servlet destroy that is called before the #stop()
of ProcessApplicationStopService
where the application is needed to executed #postProcessApplicationUndeploy()
🟢 Add skipClear
flag to ProcessApplicationReferenceImpl
to ensure the process application is available when the ProcessApplicationStopService
is stopped. Clear the process application reference in NoViewProcessApplicationStartService instead.
Detected warning in the tests:
WARN [org.jboss.as.arquillian] (MSC service thread 1-2) Cannot find composite annotation index in: deployment "XXX.war"
- the warning appeared with the arquillian version update, not related to the WildFly 29 changes. I didn't find much details about it, I suggest to ignore it.Further notes on warning during stop service and process application not available:
We decided to revert the made changes for #addDependencies
(and the Injectors) so that we don't implement a workaround for stop service and the missing process application.
Argument: the risk is higher with the workaround and we don't fully see the complete picture yet. (secondary: code will be more consistent; we can update to the new API later)
Tested locally with latest approved changes and rebase to master (with reverted PD feature):
Closing as done. Feature testing will be done in the parent ticket.
Reopen to note the license change
License update:
< org.jboss.invocation:jboss-invocation-jakarta:jar:1.7.0.Final:provided:/root/.m2/repository/org/jboss/invocation/jboss-invocation-jakarta/1.7.0.Final/jboss-invocation-jakarta-1.7.0.Final.jar
< org.jboss.ironjacamar:ironjacamar-common-api-jakarta:jar:1.5.9.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-common-api-jakarta/1.5.9.Final/ironjacamar-common-api-jakarta-1.5.9.Final.jar
< org.jboss.ironjacamar:ironjacamar-common-impl-jakarta:jar:1.5.9.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-common-impl-jakarta/1.5.9.Final/ironjacamar-common-impl-jakarta-1.5.9.Final.jar
< org.jboss.ironjacamar:ironjacamar-common-spi-jakarta:jar:1.5.9.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-common-spi-jakarta/1.5.9.Final/ironjacamar-common-spi-jakarta-1.5.9.Final.jar
< org.jboss.ironjacamar:ironjacamar-core-api-jakarta:jar:1.5.9.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-core-api-jakarta/1.5.9.Final/ironjacamar-core-api-jakarta-1.5.9.Final.jar
< org.jboss.ironjacamar:ironjacamar-core-impl-jakarta:jar:1.5.9.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-core-impl-jakarta/1.5.9.Final/ironjacamar-core-impl-jakarta-1.5.9.Final.jar
< org.jboss.ironjacamar:ironjacamar-deployers-common-jakarta:jar:1.5.9.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-deployers-common-jakarta/1.5.9.Final/ironjacamar-deployers-common-jakarta-1.5.9.Final.jar
< org.jboss.ironjacamar:ironjacamar-jdbc-jakarta:jar:1.5.9.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-jdbc-jakarta/1.5.9.Final/ironjacamar-jdbc-jakarta-1.5.9.Final.jar
< org.jboss.ironjacamar:ironjacamar-validator-jakarta:jar:1.5.9.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-validator-jakarta/1.5.9.Final/ironjacamar-validator-jakarta-1.5.9.Final.jar
< org.jboss.metadata:jboss-metadata-common-jakarta:jar:15.2.0.Final:provided:/root/.m2/repository/org/jboss/metadata/jboss-metadata-common-jakarta/15.2.0.Final/jboss-metadata-common-jakarta-15.2.0.Final.jar
< org.jboss.narayana.jts:narayana-jts-integration-jakarta:jar:5.13.0.Final:provided:/root/.m2/repository/org/jboss/narayana/jts/narayana-jts-integration-jakarta/5.13.0.Final/narayana-jts-integration-jakarta-5.13.0.Final.jar
< org.jboss:jboss-iiop-client-jakarta:jar:1.0.2.Final:provided:/root/.m2/repository/org/jboss/jboss-iiop-client-jakarta/1.0.2.Final/jboss-iiop-client-jakarta-1.0.2.Final.jar
< org.jboss:jboss-transaction-spi-jakarta:jar:7.6.1.Final:provided:/root/.m2/repository/org/jboss/jboss-transaction-spi-jakarta/7.6.1.Final/jboss-transaction-spi-jakarta-7.6.1.Final.jar
org.jboss.invocation:jboss-invocation:jar:2.0.0.Final:provided:/root/.m2/repository/org/jboss/invocation/jboss-invocation/2.0.0.Final/jboss-invocation-2.0.0.Final.jar org.jboss.ironjacamar:ironjacamar-common-api:jar:3.0.3.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-common-api/3.0.3.Final/ironjacamar-common-api-3.0.3.Final.jar org.jboss.ironjacamar:ironjacamar-common-impl:jar:3.0.3.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-common-impl/3.0.3.Final/ironjacamar-common-impl-3.0.3.Final.jar org.jboss.ironjacamar:ironjacamar-common-spi:jar:3.0.3.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-common-spi/3.0.3.Final/ironjacamar-common-spi-3.0.3.Final.jar org.jboss.ironjacamar:ironjacamar-core-api:jar:3.0.3.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-core-api/3.0.3.Final/ironjacamar-core-api-3.0.3.Final.jar org.jboss.ironjacamar:ironjacamar-core-impl:jar:3.0.3.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-core-impl/3.0.3.Final/ironjacamar-core-impl-3.0.3.Final.jar org.jboss.ironjacamar:ironjacamar-deployers-common:jar:3.0.3.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-deployers-common/3.0.3.Final/ironjacamar-deployers-common-3.0.3.Final.jar org.jboss.ironjacamar:ironjacamar-jdbc:jar:3.0.3.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-jdbc/3.0.3.Final/ironjacamar-jdbc-3.0.3.Final.jar org.jboss.ironjacamar:ironjacamar-validator:jar:3.0.3.Final:provided:/root/.m2/repository/org/jboss/ironjacamar/ironjacamar-validator/3.0.3.Final/ironjacamar-validator-3.0.3.Final.jar org.jboss.metadata:jboss-metadata-common:jar:16.0.0.Final:provided:/root/.m2/repository/org/jboss/metadata/jboss-metadata-common/16.0.0.Final/jboss-metadata-common-16.0.0.Final.jar org.jboss.narayana.jts:narayana-jts-integration:jar:6.0.1.Final:provided:/root/.m2/repository/org/jboss/narayana/jts/narayana-jts-integration/6.0.1.Final/narayana-jts-integration-6.0.1.Final.jar org.jboss:jboss-iiop-client:jar:2.0.1.Final:provided:/root/.m2/repository/org/jboss/jboss-iiop-client/2.0.1.Final/jboss-iiop-client-2.0.1.Final.jar org.jboss:jboss-transaction-spi:jar:8.0.0.Final:provided:/root/.m2/repository/org/jboss/jboss-transaction-spi/8.0.0.Final/jboss-transaction-spi-8.0.0.Final.jar
narayana is GNU Lesser General Public License v2.1 (not part of distro and already approved in https://jira.camunda.com/browse/OB-27)
openjdk-orb
license changed and it's on the stop list => clarify usage with Legal.
< org.jboss.openjdk-orb:openjdk-orb-jakarta:jar:8.1.9.Final:provided:/root/.m2/repository/org/jboss/openjdk-orb/openjdk-orb-jakarta/8.1.9.Final/openjdk-orb-jakarta-8.1.9.Final.jar
( GNU Lesser General Public License version 2.1)
> org.jboss.openjdk-orb:openjdk-orb:jar:9.0.2.Final:provided:/root/.m2/repository/org/jboss/openjdk-orb/openjdk-orb/9.0.2.Final/openjdk-orb-9.0.2.Final.jar
( GNU General Public License v2.0 only, with Classpath exception)
Raised ticket for openjdk-orb
: https://jira.camunda.com/browse/OB-33
We need to clarify further if this is the first case for a transitive dependency with GPL 2.0 in WildFly. For now, we will exclude the transitive dependency before building the alpha.
Closing this ticket as done, I will create a separate ticket if necessary while processing https://jira.camunda.com/browse/OB-33.
Acceptance Criteria (Required on creation)
Hints
addDependency
calls withrequires()
but left theInjector
usages in the service.ExtensionContext.registerSubsystem
signature changeModelVersion.create()
AttributeDefinition.getAttributeMarshaller
has been removedgetMarshaller()
ObjectTypeAttributeDefinition.addValueTypeDescription
signature changeServiceBuilder.addDependency()
is removedrequires()
instead and use the returnedSupplier
instead ofInjector
s in the service. This requires a little change as these suppliers need to be passed to the service.AttributeDefinition.isAllowNull
removedisRequired()
orisNillable()
.isNillable
is not available for Wildfly 27. Subsystem has to be compatible with 27 too.AbstractServiceListener
class removed.LifecycleListener
insteadCANCELLED
is missing. Shouldn't be a problem, we still know if it's UP or FAILED, otherwise it could be considered cancelled.Links
Breakdown