[jboss-jira] [JBoss JIRA] (WFLY-10784) WeldStartCompletionService failed when optional components not installed
Brian Stansberry (JIRA)
issues at jboss.org
Fri Aug 24 11:35:00 EDT 2018
[ https://issues.jboss.org/browse/WFLY-10784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13624037#comment-13624037 ]
Brian Stansberry commented on WFLY-10784:
-----------------------------------------
[~manovotn]
Here's an example of subsystem installing a CLEANUP deployment processor:
https://github.com/wildfly/wildfly/blob/master/batch-jberet/src/main/java/org/wildfly/extension/batch/jberet/BatchSubsystemDefinition.java#L202
The analogous class in Weld:
https://github.com/wildfly/wildfly/blob/master/weld/subsystem/src/main/java/org/jboss/as/weld/WeldSubsystemAdd.java#L90
>From those you can look at various processors to see what they look like.
Each Phase runs in a separate MSC service that depends on the service for the previous Phase and therefore doesn't run until all active services in that previous phase are in a rest state. So anything you do in CLEANUP will happen after all the stuff done in INSTALL is done.
https://github.com/wildfly/wildfly/pull/10795 changed the Phase.INSTALL WeldDeploymentProcessor to have it add a service that depended upon others:
https://github.com/wildfly/wildfly/pull/10795/files#diff-5437e2864026abc7549cfb4be4871565
The same thing could be done by a Phase.CLEANUP processor, but instead of having WeldStartCompletionService depend on a bunch of other services, the fact that it's installed in CLEANUP means it runs after all those others are done. So those dependencies are not needed
There may be other slightly more elegant ways to call endInitialization in CLEANUP but this seems like a simple one that changes the least amount of code.
> WeldStartCompletionService failed when optional components not installed
> ------------------------------------------------------------------------
>
> Key: WFLY-10784
> URL: https://issues.jboss.org/browse/WFLY-10784
> Project: WildFly
> Issue Type: Bug
> Components: CDI / Weld
> Affects Versions: 12.0.0.Final, 13.0.0.Final
> Reporter: Alexander Kudrevatykh
> Assignee: Matej Novotny
> Attachments: arq-test.tar.xz
>
>
> WebComponents are optional and fail in initialising it not causes fail of deployment, but when starting EAR application with included WAR fail in deployment since Wildfly 12 because WeldStartCompletionService depends on all components regardless of their type
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the jboss-jira
mailing list