Skip to content

Converge into single Spring Boot wallet service (remove task/xxl-job/RabbitMQ; add runtime config and DB models)#26

Merged
GalaxySciTech merged 1 commit intomasterfrom
codex/refactor-java-wallet-to-monolithic-spring-boot-mw8b6j
Apr 30, 2026
Merged

Converge into single Spring Boot wallet service (remove task/xxl-job/RabbitMQ; add runtime config and DB models)#26
GalaxySciTech merged 1 commit intomasterfrom
codex/refactor-java-wallet-to-monolithic-spring-boot-mw8b6j

Conversation

@GalaxySciTech
Copy link
Copy Markdown
Owner

Motivation

  • Convert the project from a multi-process topology (webapi + task + hsm) into a single Spring Boot runtime to simplify deployment and operations.
  • Remove external scheduler/message queue dependencies (xxl-job, RabbitMQ) and run scheduled work in-process behind DB-driven flags.
  • Centralize HSM functionality as an in-process service to avoid remote HSM HTTP calls and simplify signing integration.
  • Introduce runtime configuration entities and admin APIs to manage RPC/scheduler/chain/sweep/withdraw/fee/security settings and audit changes.

Description

  • README and README_CN updated to document the new single-service model, removal of RabbitMQ/xxl-job, new tokencore dependency (com.github.galaxyscitech:tokencore:2.0.0), Docker Compose and port changes (app on port 8080).
  • Removed the wallet-task module and associated xxl-job SQL and RabbitMQ/Docker Compose configuration, and stopped publishing task images; simplified settings.gradle and Docker Compose to a single app service.
  • Build changes: removed AMQP and xxl-job dependencies from the root build.gradle and added the unified tokencore 2.0.0; wallet-webapi and wallet-common now depend on wallet-hsm where required.
  • HSM integration refactor: HsmRequest now delegates to an in-process HsmXService instead of making HTTP requests, and PushComponent removed AMQP usage and posts deposit notifications directly to configured endpoints.
  • New dynamic scheduling: added DynamicTaskScheduler and RuntimeConfigService to run deposit/chain-sync/sweep/fee tasks in-process, driven by sys_config and new DB scheduler tables.
  • Database and JPA: added SQL schema updates and new JPA entity classes and Spring Data repositories for runtime configuration and audit tables (wallet_admin_audit_log, wallet_rpc_config, wallet_scheduler_config, wallet_chain_config, wallet_sweep_config, wallet_withdraw_config, wallet_fee_supply_config, wallet_security_config), and corresponding Kotlin/Java domain and repository code.
  • Admin API extended: AdminController gained CRUD endpoints for RPC/scheduler/chain/sweep/withdraw/fee/security configs, audit logging and masking of sensitive values, and persistence through the new repositories.
  • Various application YAML and build tweaks: unified application name, keystore config, logging and scheduler enablement, changed default ports and container configuration in Jib/Jar settings.

Testing

  • Project compilation was validated with a local Gradle build (./gradlew build -x test) to ensure the code compiles after dependency and module changes.
  • No automated unit/integration tests were executed as part of this change set.

Codex Task

@GalaxySciTech GalaxySciTech merged commit d2c594e into master Apr 30, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant