Skip to content

feat(SevenDirectProvider): alternative BpmProvider implementation without REST#673

Merged
patrickCIB merged 25 commits into
mainfrom
cibseven-CIB7-792-prepare-BpmProvider-alternative
May 22, 2026
Merged

feat(SevenDirectProvider): alternative BpmProvider implementation without REST#673
patrickCIB merged 25 commits into
mainfrom
cibseven-CIB7-792-prepare-BpmProvider-alternative

Conversation

@os-cib
Copy link
Copy Markdown
Contributor

@os-cib os-cib commented Nov 24, 2025

CIB7-792

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 sevenProvider field (lines 87, 259), which will cause NullPointerException at runtime
  • Multiple service classes declare unused sevenProvider fields that should be removed for code cleanliness

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cibseven-webclient-core/src/main/java/org/cibseven/webapp/rest/TenantService.java Outdated
Comment thread cibseven-webclient-core/src/main/java/org/cibseven/webapp/rest/TaskService.java Outdated
@os-cib os-cib force-pushed the cibseven-CIB7-792-prepare-BpmProvider-alternative branch from be8ca27 to 03f5e21 Compare November 24, 2025 19:07
Comment thread cibseven-webclient-core/src/main/java/org/cibseven/webapp/rest/JobService.java Outdated
@os-cib os-cib force-pushed the cibseven-CIB7-792-prepare-BpmProvider-alternative branch from 03f5e21 to e1ee094 Compare November 25, 2025 10:27
@patrickCIB patrickCIB requested a review from Copilot November 27, 2025 08:58
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

    @Autowired private ISystemProvider systemProvider;

cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:39

    @Autowired private IBatchProvider batchProvider;

cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:38

    @Autowired private IJobProvider jobProvider;

cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:37

    @Autowired private IDecisionProvider decisionProvider;

cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:36

    @Autowired private IUserProvider userProvider;

cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:35

    @Autowired private IJobDefinitionProvider jobDefinitionProvider;

cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:34

    @Autowired private IIncidentProvider incidentProvider;

cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:33

    @Autowired private IUtilsProvider utilsProvider;

cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:32

    @Autowired private IFilterProvider filterProvider;

cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:31

    @Autowired private IActivityProvider activityProvider;

cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:30

    @Autowired private IProcessProvider processProvider;

cibseven-webclient-core/src/main/java/org/cibseven/webapp/providers/SevenProvider.java:29

    @Autowired private ITaskProvider taskProvider;

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@os-cib os-cib changed the title chore(): prepare for alternative BpmProvider implementation chore(): alternative BpmProvider implementation without REST Dec 9, 2025
@dmitrymalk dmitrymalk changed the title chore(): alternative BpmProvider implementation without REST chore(SevenDirectProvider): alternative BpmProvider implementation without REST Jan 14, 2026
@dmitrymalk dmitrymalk self-requested a review January 14, 2026 13:16
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 60 out of 158 changed files in this pull request and generated 1 comment.

Comment thread cibseven-webclient-core/pom.xml
@patrickCIB patrickCIB changed the title chore(SevenDirectProvider): alternative BpmProvider implementation without REST feat(SevenDirectProvider): alternative BpmProvider implementation without REST Apr 15, 2026
@OlegCIB OlegCIB marked this pull request as draft April 15, 2026 15:33
@OlegCIB
Copy link
Copy Markdown
Member

OlegCIB commented Apr 15, 2026

Waiting to test with modeler, license endpoints and Spring Boot 4 integration

@patrickCIB patrickCIB marked this pull request as ready for review May 22, 2026 18:43
@patrickCIB patrickCIB merged commit aa61438 into main May 22, 2026
1 check passed
@patrickCIB patrickCIB deleted the cibseven-CIB7-792-prepare-BpmProvider-alternative branch May 22, 2026 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants