feat(SevenDirectProvider): alternative BpmProvider implementation without REST#673
Conversation
There was a problem hiding this comment.
Pull request overview
This PR refactors the BpmProvider architecture to prepare for alternative implementations by converting SevenProvider from a concrete class with method implementations to a delegating wrapper that exposes sub-providers. The BpmProvider interface is updated with default methods that delegate to specialized provider interfaces (ITaskProvider, IProcessProvider, etc.).
Key changes:
- SevenProvider methods replaced with getter methods that return specialized providers
- BpmProvider interface converted to use default methods with delegation pattern
- Service layer afterPropertiesSet() validation logic removed
- Helper methods changed from protected to public static for reusability
- SevenUserProvider simplified to use BpmProvider interface directly
Reviewed changes
Copilot reviewed 20 out of 21 changed files in this pull request and generated 35 comments.
Show a summary per file
| File | Description |
|---|---|
| SevenProvider.java | Removed 1000+ lines of method implementations, replaced with provider getters |
| BpmProvider.java | Converted to interface with default delegation methods calling getters |
| ProcessProvider.java | Extracted groupProcessStatisticsByKeyAndTenant to public static helper |
| SevenProviderBase.java | Changed filterResources visibility to public static |
| VariableProvider.java | Changed mergeVariablesValues visibility to public static |
| SevenUserProvider.java | Simplified to use BpmProvider interface instead of casting |
| Multiple Service classes | Removed SevenProvider validation in afterPropertiesSet() |
Critical Issue Found:
- TaskService.java still references and uses the uninitialized
sevenProviderfield (lines 87, 259), which will cause NullPointerException at runtime - Multiple service classes declare unused
sevenProviderfields that should be removed for code cleanliness
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
be8ca27 to
03f5e21
Compare
03f5e21 to
e1ee094
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 21 changed files in this pull request and generated 23 comments.
Comments suppressed due to low confidence (12)
cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:40
- This method overrides BpmProvider.getSystemProvider; it is advisable to add an Override annotation.
@Autowired private ISystemProvider systemProvider;
cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:39
- This method overrides BpmProvider.getBatchProvider; it is advisable to add an Override annotation.
@Autowired private IBatchProvider batchProvider;
cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:38
- This method overrides BpmProvider.getJobProvider; it is advisable to add an Override annotation.
@Autowired private IJobProvider jobProvider;
cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:37
- This method overrides BpmProvider.getDecisionProvider; it is advisable to add an Override annotation.
@Autowired private IDecisionProvider decisionProvider;
cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:36
- This method overrides BpmProvider.getUserProvider; it is advisable to add an Override annotation.
@Autowired private IUserProvider userProvider;
cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:35
- This method overrides BpmProvider.getJobDefinitionProvider; it is advisable to add an Override annotation.
@Autowired private IJobDefinitionProvider jobDefinitionProvider;
cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:34
- This method overrides BpmProvider.getIncidentProvider; it is advisable to add an Override annotation.
@Autowired private IIncidentProvider incidentProvider;
cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:33
- This method overrides BpmProvider.getUtilsProvider; it is advisable to add an Override annotation.
@Autowired private IUtilsProvider utilsProvider;
cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:32
- This method overrides BpmProvider.getFilterProvider; it is advisable to add an Override annotation.
@Autowired private IFilterProvider filterProvider;
cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:31
- This method overrides BpmProvider.getActivityProvider; it is advisable to add an Override annotation.
@Autowired private IActivityProvider activityProvider;
cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:30
- This method overrides BpmProvider.getProcessProvider; it is advisable to add an Override annotation.
@Autowired private IProcessProvider processProvider;
cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:29
- This method overrides BpmProvider.getTaskProvider; it is advisable to add an Override annotation.
@Autowired private ITaskProvider taskProvider;
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Waiting to test with modeler, license endpoints and Spring Boot 4 integration |
…bseven-CIB7-792-prepare-BpmProvider-alternative
CIB7-792