Skip to content

[Improvement-18224][API] Migrate WorkerGroupService Map<String,Object> returns to typed returns#18228

Merged
SbloodyS merged 1 commit into
apache:devfrom
ruanwenjun:chore/api-worker-group-service-typed-returns
May 10, 2026
Merged

[Improvement-18224][API] Migrate WorkerGroupService Map<String,Object> returns to typed returns#18228
SbloodyS merged 1 commit into
apache:devfrom
ruanwenjun:chore/api-worker-group-service-typed-returns

Conversation

@ruanwenjun
Copy link
Copy Markdown
Member

Was this PR generated or assisted by AI?

YES, ops 4.7

Purpose of the pull request

Brief change log

Refactor 3 WorkerGroupService methods from Map<String, Object> to typed return / void + ServiceException, with cascading updates to the controller and unit test:

  • queryAllGroup(User): List
  • deleteWorkerGroupById(User, Integer): void
  • getWorkerAddressList(): Set

The private checkWorkerGroupDependencies(WorkerGroup, Map) helper now throws ServiceException with WORKER_GROUP_DEPENDENT_TASK/SCHEDULER/ ENVIRONMENT_EXISTS instead of mutating a result map and returning a boolean. The orphaned no-op invocation in saveWorkerGroup (which mutated a local map that was never read) is removed to preserve byte-for-byte behavior — its rename-with-dependencies guard was already inert.

HTTP wire format is preserved: ApiExceptionHandler converts ServiceException to the same Result(code, msg) shape that BaseController.returnDataList(map) produced; success paths use Result.success(data) matching the prior JSON body byte-for-byte.

No Py4J impact: WorkerGroupService is not exposed via PythonGateway.

Part of the migration series tracked by #18224.

Verify this pull request

This pull request is code cleanup without any test coverage.

(or)

This pull request is already covered by existing tests, such as (please describe tests).

(or)

This change added tests and can be verified as follows:

(or)

Pull Request Notice

Pull Request Notice

If your pull request contains incompatible change, you should also add it to docs/docs/en/guide/upgrade/incompatible.md

public Result queryWorkerAddressList(@Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
Map<String, Object> result = workerGroupService.getWorkerAddressList();
return returnDataList(result);
public Result<Set<String>> queryWorkerAddressList(@Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser) {
@ruanwenjun ruanwenjun added improvement make more easy to user or prompt friendly refactor labels May 8, 2026
@ruanwenjun ruanwenjun added this to the 3.4.2 milestone May 8, 2026
@ruanwenjun ruanwenjun force-pushed the chore/api-worker-group-service-typed-returns branch 2 times, most recently from b5e2b18 to b033f00 Compare May 10, 2026 00:23
…> returns to typed returns

Refactor 3 WorkerGroupService methods from Map<String, Object> to typed
return / void + ServiceException, with cascading updates to the controller
and unit test:

- queryAllGroup(User): List<String>
- deleteWorkerGroupById(User, Integer): void
- getWorkerAddressList(): Set<String>

The private checkWorkerGroupDependencies(WorkerGroup, Map) helper now
throws ServiceException with WORKER_GROUP_DEPENDENT_TASK/SCHEDULER/
ENVIRONMENT_EXISTS instead of mutating a result map and returning a
boolean. The orphaned no-op invocation in saveWorkerGroup (which mutated
a local map that was never read) is removed to preserve byte-for-byte
behavior — its rename-with-dependencies guard was already inert.

HTTP wire format is preserved: ApiExceptionHandler converts ServiceException
to the same Result(code, msg) shape that BaseController.returnDataList(map)
produced; success paths use Result.success(data) matching the prior JSON
body byte-for-byte.

No Py4J impact: WorkerGroupService is not exposed via PythonGateway.

Part of the migration series tracked by apache#18224.
@ruanwenjun ruanwenjun force-pushed the chore/api-worker-group-service-typed-returns branch from b033f00 to 2b4cea3 Compare May 10, 2026 05:31
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
0.0% Coverage on New Code (required ≥ 60%)

See analysis details on SonarQube Cloud

Copy link
Copy Markdown
Member

@SbloodyS SbloodyS left a comment

Choose a reason for hiding this comment

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

LGTM

@SbloodyS SbloodyS merged commit 8ff3558 into apache:dev May 10, 2026
169 of 173 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend improvement make more easy to user or prompt friendly refactor test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants