ruanwenjun opened a new pull request, #18230:
URL: https://github.com/apache/dolphinscheduler/pull/18230
<!--Thanks very much for contributing to Apache DolphinScheduler, we are
happy that you want to help us improve DolphinScheduler! -->
## Was this PR generated or assisted by AI?
YES, ops 4.7
## Purpose of the pull request
<!--(For example: This pull request adds checkstyle plugin).-->
## Brief change log
Batch-migrate seven Map<String, Object> methods across five small services
to typed return / void + ServiceException, with cascading updates to the
controllers, PythonGateway and unit tests:
TenantService
- queryByTenantCode(String): Tenant (nullable; only consumed by
PythonGateway)
TaskGroupQueueService
- queryTasksByGroupId(...): PageInfo<TaskGroupQueue>
ProjectWorkerGroupRelationService
- queryAssignedWorkerGroupsByProject(User, Long): List<ProjectWorkerGroup>
UiPluginService
- queryUiPluginsByType(PluginType): List<PluginDefine>
- queryUiPluginDetailById(int): PluginDefine
EnvironmentWorkerGroupRelationService
- queryEnvironmentWorkerGroupRelation(Long):
List<EnvironmentWorkerGroupRelation>
- queryAllEnvironmentWorkerGroupRelationList():
List<EnvironmentWorkerGroupRelation>
HTTP wire format is preserved:
* Standard endpoints (TaskGroup, UiPlugin) now wrap the typed return in
Result.success(data); ApiExceptionHandler converts ServiceException to the same
Result(code, msg) shape that BaseController.returnDataList(map) produced.
* The non-standard ProjectWorkerGroupController.queryAssignedWorkerGroups
endpoint still returns a raw Map<String, Object>; the controller now builds the
{STATUS, MSG, DATA_LIST} map from the typed service return so the JSON body
remains byte-for-byte identical on success. Permission failures translate the
legacy hasProjectAndPerm(Map) status into a ServiceException, so the error path
now goes through ApiExceptionHandler (Result shape) instead of the raw Map.
Py4J boundary is preserved: PythonGateway.queryTenantByCode now returns the
Tenant directly from the service (still null on miss, matching the previous
behavior where DATA_LIST was unset).
ExecutorService.forceStartTaskInstance is intentionally deferred — its only
caller is TaskGroupServiceImpl.forceStartTask, which itself returns Map<String,
Object> and is part of the larger TaskGroupService migration. Migrating it now
would require a temporary Map-rebuild in TaskGroupServiceImpl that the next PR
would immediately undo.
Part of the migration series tracked by #18224.
## Verify this pull request
<!--*(Please pick either of the following options)*-->
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:
<!--*(example:)*
- *Added dolphinscheduler-dao tests for end-to-end.*
- *Added CronUtilsTest to verify the change.*
- *Manually verified the change by testing locally.* -->
(or)
## Pull Request Notice
[Pull Request
Notice](https://github.com/apache/dolphinscheduler/blob/dev/docs/docs/en/contribute/join/pull-request.md)
If your pull request contains incompatible change, you should also add it to
`docs/docs/en/guide/upgrade/incompatible.md`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]