Context / Problem
In DSF, Camunda does not instantiate delegate/listener classes directly. Resolution happens through Spring-managed beans provided by plugin configurations.
A frequent runtime failure occurs when BPMN camunda:class references are not resolvable from the plugin’s registered Spring context. This can lead to errors such as BeanCreationException or class resolution failures during deployment/runtime.
The linter should detect these wiring problems early.
Goal
Validate that all relevant BPMN class references are resolvable via Spring beans from configurations registered by the plugin definition.
Scope
This rule validates:
- Spring configuration classes returned by
ProcessPluginDefinition#getSpringConfigurations()
- BPMN
camunda:class references (delegates/listeners)
- Bean coverage based on
@Bean method return types in registered Spring configurations
Validation Logic
- Load the plugin definition (
ProcessPluginDefinition) via existing linter/plugin adapter flow.
- Invoke
getSpringConfigurations() and collect all returned configuration classes.
- Scan BPMN files for relevant
camunda:class usages (e.g., service/send tasks, execution listeners, task listeners, message-related usages where applicable).
- For each registered configuration class, inspect methods annotated with
@Bean and collect their return types as available bean types.
- Cross-check BPMN-referenced classes against the available bean types (including assignable type compatibility if applicable).
- Report unresolved references.
Expected Linter Output
- ERROR: If a BPMN-referenced class is not provided by any bean from the registered spring configurations.
- SUCCESS: If all relevant BPMN references are resolvable (or no relevant references exist).
Context / Problem
In DSF, Camunda does not instantiate delegate/listener classes directly. Resolution happens through Spring-managed beans provided by plugin configurations.
A frequent runtime failure occurs when BPMN
camunda:classreferences are not resolvable from the plugin’s registered Spring context. This can lead to errors such asBeanCreationExceptionor class resolution failures during deployment/runtime.The linter should detect these wiring problems early.
Goal
Validate that all relevant BPMN class references are resolvable via Spring beans from configurations registered by the plugin definition.
Scope
This rule validates:
ProcessPluginDefinition#getSpringConfigurations()camunda:classreferences (delegates/listeners)@Beanmethod return types in registered Spring configurationsValidation Logic
ProcessPluginDefinition) via existing linter/plugin adapter flow.getSpringConfigurations()and collect all returned configuration classes.camunda:classusages (e.g., service/send tasks, execution listeners, task listeners, message-related usages where applicable).@Beanand collect their return types as available bean types.Expected Linter Output