This is an automated email from the ASF dual-hosted git repository. roryqi pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/gravitino.git
commit 266db26cbc9869240089fc59f576fbdf9884645d Author: remilu <[email protected]> AuthorDate: Mon Oct 26 10:27:44 2026 +0800 [#14222] refactor(tms): Rename plugins/tms to plugins/maintenance and add plugin ITs Add plugins/maintenance CI (TMS Test workflow + cron suite) modeled on idp-basic, and deepen the action-callback REST IT with a metrics/before → after?finish happy path (embedded). Fixes #14222. Co-authored-by: Cursor <[email protected]> --- .../workflows/backend-integration-test-action.yml | 1 + .github/workflows/cron-integration-test.yml | 17 +- .github/workflows/tms-test-action.yml | 72 ++++++ .github/workflows/tms-test.yml | 59 +++++ build.gradle.kts | 2 +- conf/gravitino.conf.template | 4 +- .../optimizer-configuration.md | 2 +- maintenance/maintenance-common/build.gradle.kts | 2 +- plugins/{tms => maintenance}/build.gradle.kts | 3 +- .../maintenance/MaintenanceMetricsService.java | 8 +- .../maintenance/TableMaintenanceConfig.java | 0 .../injob/AlwaysMaintainInJobRecommender.java | 0 .../injob/CompactionInJobRecommender.java | 0 .../maintenance/injob/InJobGateOutcome.java | 0 .../maintenance/injob/InJobRecommender.java | 0 .../gravitino/maintenance/injob/MetricsJson.java | 2 +- .../maintenance/injob/RecommendDecision.java | 0 .../gravitino/maintenance/injob/SnapshotHead.java | 0 .../injob/TableMaintenanceInJobPipeline.java | 0 .../injob/TableMaintenanceInJobSampler.java | 4 +- .../injob/TriggerExprInJobRecommender.java | 0 .../injob/TypeDispatchingInJobRecommender.java | 0 .../listener/PostCommitMaintenanceListener.java | 2 +- .../maintenance/occupancy/OccupancyGate.java | 0 .../policy/PolicyExpandLifecycleHook.java | 0 .../maintenance/policy/PolicyExpandReconciler.java | 2 +- .../maintenance/policy/PolicyExpandRegistrar.java | 0 .../scheduler/AutocommitDataSources.java | 0 .../maintenance/scheduler/MaintenanceJobSpec.java | 0 .../scheduler/MaintenanceJobSpecFactory.java | 0 .../scheduler/TableMaintenanceSchedulerPools.java | 9 +- .../scheduler/job/commit/CollectedCommitChain.java | 0 .../job/commit/CommitAuthConsistency.java | 0 .../scheduler/job/commit/CommitChainCollector.java | 0 .../scheduler/job/commit/CommitChainMember.java | 0 .../scheduler/job/commit/CommitJobScheduler.java | 0 .../scheduler/job/commit/CommitJobSpecFactory.java | 0 .../job/commit/CommitJobUpsertResult.java | 0 .../scheduler/job/commit/CommitOccupancyGate.java | 0 .../commit/MaintenanceCommitSubmitPipeline.java | 2 +- .../job/commit/RelationalCommitJobScheduler.java | 0 .../maintenance/scheduler/job/cron/CronJobIds.java | 0 .../scheduler/job/cron/CronJobScheduler.java | 0 .../scheduler/job/cron/CronSubmitGate.java | 0 .../job/cron/MaintenanceJobConfBuilder.java | 6 +- .../job/cron/MaintenanceJobSubmitter.java | 2 +- .../job/cron/MaintenanceJobTemplates.java | 17 +- .../job/cron/MaintenanceSparkSubmitPipeline.java | 2 +- .../scheduler/job/cron/MaintenanceTableRefs.java | 0 .../job/cron/PendingCronExpandOccupancyGate.java | 0 .../job/cron/RelationalCronJobScheduler.java | 0 .../policy/expand/ExpandOccupancyGate.java | 0 .../policy/expand/ExpandTableCandidate.java | 0 .../expand/NearestMaintenancePolicyResolver.java | 0 .../expand/NearestPolicyTableEnumerator.java | 1 - .../scheduler/policy/expand/PolicyExpandCrons.java | 0 .../policy/expand/PolicyExpandPipeline.java | 1 - .../policy/expand/PolicyTableEnumerator.java | 1 - .../maintenance/storage/MetalakeNames.java | 2 +- .../mapper/TableMaintenanceActionMapper.java | 0 .../TableMaintenanceActionSQLProviderFactory.java | 0 .../storage/mapper/TableSnapshotMetricsMapper.java | 0 .../TableSnapshotMetricsSQLProviderFactory.java | 0 .../MaintenanceMapperPackageProvider.java} | 4 +- .../TableMaintenanceActionBaseSQLProvider.java | 0 .../base/TableSnapshotMetricsBaseSQLProvider.java | 0 .../h2/TableMaintenanceActionH2Provider.java | 0 .../h2/TableSnapshotMetricsH2Provider.java | 0 .../TableMaintenanceActionPostgreSQLProvider.java | 0 .../TableSnapshotMetricsPostgreSQLProvider.java | 0 .../storage/po/TableMaintenanceActionPO.java | 0 .../storage/po/TableSnapshotMetricsPO.java | 0 .../storage/service/OccupancyClaim.java | 0 .../service/TableMaintenanceActionMetaService.java | 0 .../service/TableSnapshotMetricsMetaService.java | 0 .../maintenance/web/TableMaintenanceRESTUtils.java | 2 +- .../web/rest/TableMaintenanceActionOperations.java | 16 +- .../web/rest/TableMaintenanceBinder.java | 2 +- .../rest/feature/TableMaintenanceRESTFeature.java | 0 ...elational.mapper.provider.MapperPackageProvider | 2 +- .../injob/TestCompactionInJobRecommender.java | 0 .../maintenance/injob/TestMetricsJson.java | 0 .../injob/TestTableMaintenanceInJobPipeline.java | 0 .../injob/TestTableMaintenanceInJobSampler.java | 0 .../injob/TestTriggerExprInJobRecommender.java | 0 .../injob/TestTypeDispatchingInJobRecommender.java | 0 .../test/TableMaintenanceActionRESTIT.java | 241 +++++++++++++++++++++ .../TestPostCommitMaintenanceListener.java | 0 .../maintenance/occupancy/TestOccupancyGate.java | 25 ++- .../policy/TestPolicyExpandLifecycleHook.java | 0 .../policy/TestPolicyExpandReconciler.java | 0 .../policy/TestPolicyExpandRegistrar.java | 0 .../scheduler/TestMaintenanceJobSpecFactory.java | 0 .../TestTableMaintenanceSchedulerPools.java | 0 .../job/commit/TestCommitAuthConsistency.java | 0 .../job/commit/TestCommitJobSpecFactory.java | 0 .../TestMaintenanceCommitSubmitPipeline.java | 2 +- .../commit/TestRelationalCommitJobScheduler.java | 0 .../scheduler/job/cron/TestCronJobIds.java | 0 .../scheduler/job/cron/TestCronJobScheduler.java | 1 - .../job/cron/TestMaintenanceJobConfBuilder.java | 0 .../job/cron/TestMaintenanceJobTemplates.java | 7 +- .../cron/TestMaintenanceSparkSubmitPipeline.java | 12 +- .../TestNearestMaintenancePolicyResolver.java | 0 .../expand/TestNearestPolicyTableEnumerator.java | 1 - .../policy/expand/TestPolicyExpandCrons.java | 0 .../policy/expand/TestPolicyExpandPipeline.java | 1 - .../storage/TableMaintenanceActionTestUtils.java | 0 .../TestMaintenanceMapperPackageProvider.java} | 10 +- .../h2/TestTableMaintenanceActionH2Provider.java | 0 .../TestTableMaintenanceActionMetaService.java | 0 .../TestTableSnapshotMetricsMetaService.java | 0 .../rest/TestTableMaintenanceActionOperations.java | 0 .../feature/TestTableMaintenanceRESTFeature.java | 0 settings.gradle.kts | 2 +- 115 files changed, 474 insertions(+), 77 deletions(-) diff --git a/.github/workflows/backend-integration-test-action.yml b/.github/workflows/backend-integration-test-action.yml index 02dfc374b0..5ed5a92a69 100644 --- a/.github/workflows/backend-integration-test-action.yml +++ b/.github/workflows/backend-integration-test-action.yml @@ -113,6 +113,7 @@ jobs: -x :trino-connector:integration-test:test -x :trino-connector:trino-connector:test \ -x :iceberg:iceberg-rest-trino-it:test \ -x :plugins:idp-basic:test \ + -x :plugins:maintenance:test \ -x :authorizations:authorization-chain:test -x :authorizations:authorization-ranger:test \ -x :clients:cli:test -x :maintenance:jobs:test -x :maintenance:optimizer:test \ $EXCLUDE_CONTRIB_TESTS diff --git a/.github/workflows/cron-integration-test.yml b/.github/workflows/cron-integration-test.yml index f5f81e66c7..8f4fabb26b 100644 --- a/.github/workflows/cron-integration-test.yml +++ b/.github/workflows/cron-integration-test.yml @@ -6,7 +6,7 @@ name: Cron Integration Test # # Phase-1 suites (gvfs-fuse, web-ui, frontend, contrib-catalog are excluded): # backend, spark, flink, maintenance, python, trino, access-control, -# iceberg-rest-trino, mcp, idp, trino-multi-version, lance, multi-instance +# iceberg-rest-trino, mcp, idp, tms, trino-multi-version, lance, multi-instance run-name: OSS IT (${{ inputs.suites || 'all' }}) caller=${{ inputs.caller_run_id || 'manual' }} @@ -66,6 +66,7 @@ jobs: iceberg-rest-trino: ${{ steps.parse.outputs.iceberg-rest-trino }} mcp: ${{ steps.parse.outputs.mcp }} idp: ${{ steps.parse.outputs.idp }} + tms: ${{ steps.parse.outputs.tms }} trino-multi-version: ${{ steps.parse.outputs.trino-multi-version }} lance: ${{ steps.parse.outputs.lance }} multi-instance: ${{ steps.parse.outputs.multi-instance }} @@ -92,6 +93,7 @@ jobs: "iceberg-rest-trino", "mcp", "idp", + "tms", "trino-multi-version", "lance", "multi-instance", @@ -207,6 +209,14 @@ jobs: with: java-version: ${{ needs.select-suites.outputs.java-version }} + tms: + name: tms + needs: select-suites + if: needs.select-suites.outputs.tms == 'true' + uses: ./.github/workflows/tms-test-action.yml + with: + java-version: ${{ needs.select-suites.outputs.java-version }} + trino-multi-version: name: trino-multi-version needs: select-suites @@ -239,6 +249,7 @@ jobs: - iceberg-rest-trino - mcp - idp + - tms - trino-multi-version - lance - multi-instance @@ -258,6 +269,7 @@ jobs: ICEBERG_REST_TRINO: ${{ needs.iceberg-rest-trino.result }} MCP: ${{ needs.mcp.result }} IDP: ${{ needs.idp.result }} + TMS: ${{ needs.tms.result }} TRINO_MULTI_VERSION: ${{ needs.trino-multi-version.result }} LANCE: ${{ needs.lance.result }} MULTI_INSTANCE: ${{ needs.multi-instance.result }} @@ -284,6 +296,7 @@ jobs: | iceberg-rest-trino | ${ICEBERG_REST_TRINO} | | mcp | ${MCP} | | idp | ${IDP} | + | tms | ${TMS} | | trino-multi-version | ${TRINO_MULTI_VERSION} | | lance | ${LANCE} | | multi-instance | ${MULTI_INSTANCE} | @@ -294,7 +307,7 @@ jobs: failed=1 fi for result in "$BACKEND" "$SPARK" "$FLINK" "$MAINTENANCE" "$PYTHON" "$TRINO" \ - "$ACCESS_CONTROL" "$ICEBERG_REST_TRINO" "$MCP" "$IDP" \ + "$ACCESS_CONTROL" "$ICEBERG_REST_TRINO" "$MCP" "$IDP" "$TMS" \ "$TRINO_MULTI_VERSION" "$LANCE" "$MULTI_INSTANCE" do if [[ "$result" == "failure" || "$result" == "cancelled" ]]; then diff --git a/.github/workflows/tms-test-action.yml b/.github/workflows/tms-test-action.yml new file mode 100644 index 0000000000..ac81715d40 --- /dev/null +++ b/.github/workflows/tms-test-action.yml @@ -0,0 +1,72 @@ +name: TMS Test Action + +on: + workflow_call: + inputs: + java-version: + required: true + description: 'Java version' + type: string + +jobs: + tms-test: + name: JDK${{ inputs.java-version }} + runs-on: ubuntu-22.04 + timeout-minutes: 45 + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-java@v4 + with: + java-version: ${{ inputs.java-version }} + distribution: "temurin" + cache: "gradle" + + - name: Set up QEMU + uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0 + + - name: Check required command + run: | + dev/ci/check_commands.sh + + - name: Package Gravitino + run: | + ./gradlew compileDistribution -PskipWeb=true -x test + + - name: Free up disk space + run: | + dev/ci/util_free_space.sh + + - name: Run TMS plugin tests + id: tmsTest + env: + dockerTest: true + run: | + set -euo pipefail + + # Unit and in-process tests (no Docker, no REST IT). + ./gradlew :plugins:maintenance:test -PskipITs -PskipDockerTests=true + + # REST IT: embedded and deploy, each against h2 / MySQL / PostgreSQL. + for test_mode in embedded deploy; do + for backend in h2 mysql postgresql; do + ./gradlew :plugins:maintenance:test \ + -PtestMode="${test_mode}" \ + -PjdbcBackend="${backend}" \ + -PskipDockerTests=false \ + --tests "org.apache.gravitino.maintenance.integration.test.**" + done + done + + - name: Upload TMS plugin test reports + uses: actions/upload-artifact@v7 + if: ${{ (failure() && steps.tmsTest.outcome == 'failure') || contains(github.event.pull_request.labels.*.name, 'upload log') }} + with: + name: tms-test-reports + path: | + plugins/maintenance/build/reports + plugins/maintenance/build/test-results + distribution/package-all/logs/gravitino-server.out + distribution/package-all/logs/gravitino-server.log + distribution/package/logs/gravitino-server.out + distribution/package/logs/gravitino-server.log diff --git a/.github/workflows/tms-test.yml b/.github/workflows/tms-test.yml new file mode 100644 index 0000000000..fb4c9f3daf --- /dev/null +++ b/.github/workflows/tms-test.yml @@ -0,0 +1,59 @@ +name: TMS Test + +on: + push: + branches: ["main", "branch-*"] + pull_request: + branches: ["main", "branch-*"] + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + changes: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - name: Disable Git automatic maintenance + run: git config --local maintenance.auto false + - uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d + id: filter + with: + filters: | + source_changes: + - plugins/maintenance/** + - maintenance/maintenance-common/** + - clients/client-java/** + - clients/client-java-runtime/** + - integration-test-common/** + - core/** + - server/** + - server-common/** + - gradle/** + - gradlew + - dev/** + - build.gradle.kts + - gradle.properties + - settings.gradle.kts + - .github/workflows/tms-test.yml + - .github/workflows/tms-test-action.yml + - name: Detect plugins/maintenance module + id: module + run: | + if [ -f plugins/maintenance/build.gradle.kts ]; then + echo "exists=true" >> "$GITHUB_OUTPUT" + else + echo "exists=false" >> "$GITHUB_OUTPUT" + fi + outputs: + source_changes: ${{ steps.filter.outputs.source_changes }} + module_exists: ${{ steps.module.outputs.exists }} + + tms-test: + needs: changes + if: needs.changes.outputs.source_changes == 'true' && needs.changes.outputs.module_exists == 'true' + uses: ./.github/workflows/tms-test-action.yml + with: + java-version: '17' diff --git a/build.gradle.kts b/build.gradle.kts index c1201dfb18..b950c350a0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1188,7 +1188,7 @@ tasks { ":lance:lance-rest-server:copyLibAndConfigs", ":maintenance:optimizer:copyLibAndConfigs", ":plugins:idp-basic:copyLibAndConfigs", - ":plugins:tms:copyLibAndConfigs", + ":plugins:maintenance:copyLibAndConfigs", ":plugins:k8s-job-executor:copyLibAndConfigs" ) if (!skipWeb) { diff --git a/conf/gravitino.conf.template b/conf/gravitino.conf.template index f465f72f21..e7beebafec 100644 --- a/conf/gravitino.conf.template +++ b/conf/gravitino.conf.template @@ -154,11 +154,11 @@ gravitino.lance-rest.namespace-backend = gravitino # gravitino.maintenance.snapshot-expiry.minIntervalMs = 3600000 # gravitino.maintenance.orphan-cleanup.minIntervalMs = 86400000 -# Base URI Spark jobs use for TMS sample/finish callbacks (updater_options.gravitino_uri). +# Base URI Spark jobs use for maintenance sample/finish callbacks (updater_options.gravitino_uri). # Required for cron Spark submit when the policy does not set updaterOptions.gravitino_uri. # gravitino.maintenance.gravitinoUri = http://localhost:8090 -# IRC → post-commit maintenance listener (§5.2.3). Requires colocated iceberg-rest aux service and TMS Feature. +# IRC → post-commit maintenance listener (§5.2.3). Requires colocated iceberg-rest aux service and TableMaintenanceRESTFeature. # gravitino.eventListener.names = post-commit-maintenance-listener # gravitino.eventListener.post-commit-maintenance-listener.class = org.apache.gravitino.maintenance.listener.PostCommitMaintenanceListener diff --git a/docs/table-maintenance-service/optimizer-configuration.md b/docs/table-maintenance-service/optimizer-configuration.md index 7c6e8c54b4..226a21578d 100644 --- a/docs/table-maintenance-service/optimizer-configuration.md +++ b/docs/table-maintenance-service/optimizer-configuration.md @@ -66,7 +66,7 @@ type is still in-flight it deletes the row and stops; otherwise it claims a soft gravitino.server.rest.extensionPackages = org.apache.gravitino.maintenance.web.rest.feature gravitino.auxService.names = iceberg-rest gravitino.eventListener.names = post-commit-maintenance-listener -gravitino.eventListener.post-commit-maintenance-listener.class = org.apache.gravitino.maintenance.listener.IcebergUpdateTableEventListener +gravitino.eventListener.post-commit-maintenance-listener.class = org.apache.gravitino.maintenance.listener.PostCommitMaintenanceListener ``` Without the listener, the crontab (`timeTrigger` → expand → cron-job) path still works; commit-triggered diff --git a/maintenance/maintenance-common/build.gradle.kts b/maintenance/maintenance-common/build.gradle.kts index 9bcab80a90..28d0e0a664 100644 --- a/maintenance/maintenance-common/build.gradle.kts +++ b/maintenance/maintenance-common/build.gradle.kts @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -description = "Gravitino Maintenance shared common (TMS wire types)" +description = "Gravitino Maintenance shared common (wire types)" plugins { `maven-publish` diff --git a/plugins/tms/build.gradle.kts b/plugins/maintenance/build.gradle.kts similarity index 95% rename from plugins/tms/build.gradle.kts rename to plugins/maintenance/build.gradle.kts index 3f81af0a69..8a238ceb36 100644 --- a/plugins/tms/build.gradle.kts +++ b/plugins/maintenance/build.gradle.kts @@ -49,6 +49,7 @@ dependencies { testImplementation(project(":integration-test-common", "testArtifacts")) testImplementation(project(":server")) testImplementation(project(":server-common")) + testImplementation(libs.awaitility) testImplementation(libs.junit.jupiter.api) testImplementation(libs.junit.jupiter.params) testImplementation(libs.mockito.core) @@ -81,7 +82,7 @@ tasks { register("copyLibAndConfigs", Copy::class) { group = "gravitino distribution" - description = "Copy tms plugin jar and runtime dependencies into distribution package libs" + description = "Copy maintenance plugin jar and runtime dependencies into distribution package libs" dependsOn(copyLibs) } diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/MaintenanceMetricsService.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/MaintenanceMetricsService.java similarity index 95% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/MaintenanceMetricsService.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/MaintenanceMetricsService.java index 94d60a8b1b..8cd620b345 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/MaintenanceMetricsService.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/MaintenanceMetricsService.java @@ -51,7 +51,7 @@ public class MaintenanceMetricsService { /** * Production wiring. * - * @return service bound into the TMS Jersey feature + * @return service bound into the Jersey feature */ public static MaintenanceMetricsService create() { return new MaintenanceMetricsService( @@ -140,7 +140,7 @@ public class MaintenanceMetricsService { request.getAfterSnapshotId(), System.currentTimeMillis()); LOG.info( - "TMS action finished for job {} metalake {} table {} policy {} afterSnapshotId={}", + "action finished for job {} metalake {} table {} policy {} afterSnapshotId={}", jobId, metalake, action.tableId(), @@ -158,7 +158,7 @@ public class MaintenanceMetricsService { long snapshotId) { if (!finish) { LOG.info( - "TMS {} metrics reported for job {} metalake {} table {} policy {} snapshot {}", + "{} metrics reported for job {} metalake {} table {} policy {} snapshot {}", phase, jobId, metalake, @@ -170,7 +170,7 @@ public class MaintenanceMetricsService { actionMetaService.markFinished( jobId, action.tableId(), action.policyId(), afterSnapshotId, System.currentTimeMillis()); LOG.info( - "TMS {} metrics reported and action finished for job {} metalake {} table {} policy {} snapshot {}", + "{} metrics reported and action finished for job {} metalake {} table {} policy {} snapshot {}", phase, jobId, metalake, diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/TableMaintenanceConfig.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/TableMaintenanceConfig.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/TableMaintenanceConfig.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/TableMaintenanceConfig.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/AlwaysMaintainInJobRecommender.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/AlwaysMaintainInJobRecommender.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/AlwaysMaintainInJobRecommender.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/AlwaysMaintainInJobRecommender.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/CompactionInJobRecommender.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/CompactionInJobRecommender.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/CompactionInJobRecommender.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/CompactionInJobRecommender.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/InJobGateOutcome.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/InJobGateOutcome.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/InJobGateOutcome.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/InJobGateOutcome.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/InJobRecommender.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/InJobRecommender.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/InJobRecommender.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/InJobRecommender.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/MetricsJson.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/MetricsJson.java similarity index 97% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/MetricsJson.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/MetricsJson.java index 9fd61fb487..98530be898 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/MetricsJson.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/MetricsJson.java @@ -29,7 +29,7 @@ import org.apache.gravitino.json.JsonUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** Parses numeric fields from TMS in-job metrics JSON payloads. */ +/** Parses numeric fields from in-job metrics JSON payloads. */ final class MetricsJson { private static final Logger LOG = LoggerFactory.getLogger(MetricsJson.class); diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/RecommendDecision.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/RecommendDecision.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/RecommendDecision.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/RecommendDecision.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/SnapshotHead.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/SnapshotHead.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/SnapshotHead.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/SnapshotHead.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobPipeline.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobPipeline.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobPipeline.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobPipeline.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobSampler.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobSampler.java similarity index 95% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobSampler.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobSampler.java index c6ad0995c1..59f187392f 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobSampler.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/TableMaintenanceInJobSampler.java @@ -23,8 +23,8 @@ import org.apache.gravitino.maintenance.storage.service.TableMaintenanceActionMe import org.apache.gravitino.maintenance.storage.service.TableSnapshotMetricsMetaService; /** - * In-Spark sampling path for TMS cron jobs (§5.2.2): sample once at {@code S0}, persist metrics, - * record {@code before_snapshot_id}, then gate on snapshot drift without re-sampling. + * In-Spark sampling path for cron jobs (§5.2.2): sample once at {@code S0}, persist metrics, record + * {@code before_snapshot_id}, then gate on snapshot drift without re-sampling. */ public class TableMaintenanceInJobSampler { diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/TriggerExprInJobRecommender.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/TriggerExprInJobRecommender.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/TriggerExprInJobRecommender.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/TriggerExprInJobRecommender.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/TypeDispatchingInJobRecommender.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/TypeDispatchingInJobRecommender.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/injob/TypeDispatchingInJobRecommender.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/injob/TypeDispatchingInJobRecommender.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/listener/PostCommitMaintenanceListener.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/listener/PostCommitMaintenanceListener.java similarity index 98% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/listener/PostCommitMaintenanceListener.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/listener/PostCommitMaintenanceListener.java index 904dc99839..facf3d3ec8 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/listener/PostCommitMaintenanceListener.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/listener/PostCommitMaintenanceListener.java @@ -72,7 +72,7 @@ public class PostCommitMaintenanceListener implements EventListenerPlugin { throw new IllegalStateException("GravitinoEnv config is not available"); } this.commitJobScheduler = new RelationalCommitJobScheduler(dataSource, gravitinoConfig); - LOG.info("TMS PostCommitMaintenanceListener started (commit-job upsert with spec)"); + LOG.info("PostCommitMaintenanceListener started (commit-job upsert with spec)"); } @Override diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/occupancy/OccupancyGate.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/occupancy/OccupancyGate.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/occupancy/OccupancyGate.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/occupancy/OccupancyGate.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandLifecycleHook.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandLifecycleHook.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandLifecycleHook.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandLifecycleHook.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandReconciler.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandReconciler.java similarity index 98% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandReconciler.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandReconciler.java index 21b5e68b58..fe8bbb5fa0 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandReconciler.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandReconciler.java @@ -30,7 +30,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Reconciles {@code policy-expand} tasks when TMS starts. + * Reconciles {@code policy-expand} tasks when starts. * * <p>Only {@code scheduled_expand_tasks} rows are touched — never policy rows or other scheduler * tables. Lifecycle hooks cover later writes; startup must still converge existing state: diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandRegistrar.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandRegistrar.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandRegistrar.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/policy/PolicyExpandRegistrar.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/AutocommitDataSources.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/AutocommitDataSources.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/AutocommitDataSources.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/AutocommitDataSources.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/MaintenanceJobSpec.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/MaintenanceJobSpec.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/MaintenanceJobSpec.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/MaintenanceJobSpec.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/MaintenanceJobSpecFactory.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/MaintenanceJobSpecFactory.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/MaintenanceJobSpecFactory.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/MaintenanceJobSpecFactory.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/TableMaintenanceSchedulerPools.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/TableMaintenanceSchedulerPools.java similarity index 98% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/TableMaintenanceSchedulerPools.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/TableMaintenanceSchedulerPools.java index 104ef7e81e..1714706e82 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/TableMaintenanceSchedulerPools.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/TableMaintenanceSchedulerPools.java @@ -43,12 +43,12 @@ import org.apache.gravitino.maintenance.scheduler.job.cron.MaintenanceJobSubmitt import org.apache.gravitino.maintenance.scheduler.job.cron.MaintenanceSparkSubmitPipeline; import org.apache.gravitino.maintenance.scheduler.job.cron.PendingCronExpandOccupancyGate; import org.apache.gravitino.maintenance.scheduler.job.cron.RelationalCronJobScheduler; +import org.apache.gravitino.maintenance.scheduler.policy.expand.ExpandOccupancyGate; import org.apache.gravitino.maintenance.scheduler.policy.expand.NearestPolicyTableEnumerator; import org.apache.gravitino.maintenance.scheduler.policy.expand.PolicyExpandPipeline; import org.apache.gravitino.maintenance.storage.service.TableMaintenanceActionMetaService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.gravitino.maintenance.scheduler.policy.expand.ExpandOccupancyGate; /** * Starts and stops three isolated db-scheduler pools (§5.2, §7.2), each with its own task table @@ -258,8 +258,6 @@ public class TableMaintenanceSchedulerPools implements AutoCloseable { }); } - - /** * Commit-pool task definition. Consumes the enqueue-time chain spec, claims a soft slot, submits * Spark, then removes the one-shot row. @@ -282,4 +280,9 @@ public class TableMaintenanceSchedulerPools implements AutoCloseable { }); } + private static BiConsumer<String, MaintenanceJobSpec> unconfiguredSubmit(String pool) { + return (instanceId, spec) -> { + throw new IllegalStateException(pool + " submit pipeline is not configured"); + }; + } } diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CollectedCommitChain.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CollectedCommitChain.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CollectedCommitChain.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CollectedCommitChain.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitAuthConsistency.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitAuthConsistency.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitAuthConsistency.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitAuthConsistency.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitChainCollector.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitChainCollector.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitChainCollector.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitChainCollector.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitChainMember.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitChainMember.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitChainMember.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitChainMember.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobScheduler.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobScheduler.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobScheduler.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobScheduler.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobSpecFactory.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobSpecFactory.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobSpecFactory.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobSpecFactory.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobUpsertResult.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobUpsertResult.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobUpsertResult.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitJobUpsertResult.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitOccupancyGate.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitOccupancyGate.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitOccupancyGate.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/CommitOccupancyGate.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/MaintenanceCommitSubmitPipeline.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/MaintenanceCommitSubmitPipeline.java similarity index 98% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/MaintenanceCommitSubmitPipeline.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/MaintenanceCommitSubmitPipeline.java index 91a7d5df1d..42136cc14d 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/MaintenanceCommitSubmitPipeline.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/MaintenanceCommitSubmitPipeline.java @@ -155,7 +155,7 @@ public final class MaintenanceCommitSubmitPipeline { try { jobId = jobSubmitter.runJob( - metalake, MaintenanceJobTemplates.TMS_ICEBERG_MAINTENANCE_TEMPLATE, jobConf); + metalake, MaintenanceJobTemplates.ICEBERG_MAINTENANCE_TEMPLATE, jobConf); actionMetaService.bindJobIds(claims, jobId); LOG.info( "Submitted commit-job for table {} as job {} (chain={}, policies={})", diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/RelationalCommitJobScheduler.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/RelationalCommitJobScheduler.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/RelationalCommitJobScheduler.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/commit/RelationalCommitJobScheduler.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronJobIds.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronJobIds.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronJobIds.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronJobIds.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronJobScheduler.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronJobScheduler.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronJobScheduler.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronJobScheduler.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronSubmitGate.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronSubmitGate.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronSubmitGate.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/CronSubmitGate.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobConfBuilder.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobConfBuilder.java similarity index 98% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobConfBuilder.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobConfBuilder.java index 1fc53dd5b9..b5dcb43532 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobConfBuilder.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobConfBuilder.java @@ -44,7 +44,7 @@ import org.apache.gravitino.policy.PolicyContent; import org.apache.gravitino.policy.PolicyExecutionSpec; /** - * Builds the {@code runJob} configuration map for TMS Spark submits. + * Builds the {@code runJob} configuration map for Spark submits. * * <p>Shape matches Iceberg update-stats submit: flatten template placeholders into the top-level * map, pack {@code updater_options} as one JSON string, and pack extra Spark / IRC settings into @@ -65,7 +65,7 @@ public final class MaintenanceJobConfBuilder { private static final String SPARK_SQL_CATALOG_PREFIX = "spark.sql.catalog."; - /** Top-level {@code runJob} placeholders consumed by Iceberg / TMS Spark templates. */ + /** Top-level {@code runJob} placeholders consumed by Iceberg / Spark templates. */ private static final Set<String> FLAT_PLACEHOLDER_KEYS = ImmutableSet.of( "catalog_name", @@ -300,7 +300,7 @@ public final class MaintenanceJobConfBuilder { String gravitinoUri = updaterOptions.get("gravitino_uri"); if (gravitinoUri == null || gravitinoUri.trim().isEmpty()) { throw new IllegalArgumentException( - "updater_options.gravitino_uri is required for TMS Spark submit; set policy " + "updater_options.gravitino_uri is required for Spark submit; set policy " + "updaterOptions.gravitino_uri or gravitino.maintenance.gravitinoAuth.uri"); } return updaterOptions; diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobSubmitter.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobSubmitter.java similarity index 97% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobSubmitter.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobSubmitter.java index 54525187cb..4b87316f62 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobSubmitter.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobSubmitter.java @@ -24,7 +24,7 @@ import org.apache.gravitino.job.JobHandle; import org.apache.gravitino.meta.JobEntity; /** - * Submits a Gravitino Job for a TMS cron-job callback (§5.2.2). + * Submits a Gravitino Job for a cron-job callback (§5.2.2). * * <p>Production wiring uses {@link GravitinoEnv#jobOperationDispatcher()}; tests inject a fake. */ diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobTemplates.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobTemplates.java similarity index 82% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobTemplates.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobTemplates.java index 07d116cef6..79d0d3bfe7 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobTemplates.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceJobTemplates.java @@ -23,24 +23,23 @@ import org.apache.gravitino.job.JobTemplateProvider; import org.apache.gravitino.policy.Policy; /** - * Maps maintenance {@link Policy.BuiltInType} to the TMS cron Spark job template and procedure - * kind. + * Maps maintenance {@link Policy.BuiltInType} to the cron Spark job template and procedure kind. * - * <p>Cron always submits {@link #TMS_ICEBERG_MAINTENANCE_TEMPLATE}; standalone {@code + * <p>Cron always submits {@link #ICEBERG_MAINTENANCE_TEMPLATE}; standalone {@code * builtin-iceberg-*} templates remain for CLI / optimizer. */ public final class MaintenanceJobTemplates { /** - * Built-in template name for the TMS Iceberg maintenance Spark job. Must match {@code + * Built-in template name for the Iceberg maintenance Spark job. Must match {@code * IcebergMaintenanceJob.NAME} ({@code builtin-iceberg-maintenance-task}). */ - public static final String TMS_ICEBERG_MAINTENANCE_TEMPLATE = + public static final String ICEBERG_MAINTENANCE_TEMPLATE = JobTemplateProvider.BUILTIN_NAME_PREFIX + "iceberg-maintenance-task"; /** - * JobConf key for procedure dispatch inside the TMS template. One wire name, or a comma-separated - * commit chain. Required by {@link #TMS_ICEBERG_MAINTENANCE_TEMPLATE}. + * JobConf key for procedure dispatch inside the maintenance template. One wire name, or a + * comma-separated commit chain. Required by {@link #ICEBERG_MAINTENANCE_TEMPLATE}. */ public static final String MAINTENANCE_TYPES_KEY = "maintenance_types"; @@ -63,13 +62,13 @@ public final class MaintenanceJobTemplates { /** * @param builtInType maintenance policy type - * @return TMS cron job template name when known + * @return cron job template name when known */ public static Optional<String> templateName(Policy.BuiltInType builtInType) { if (maintenanceType(builtInType).isEmpty()) { return Optional.empty(); } - return Optional.of(TMS_ICEBERG_MAINTENANCE_TEMPLATE); + return Optional.of(ICEBERG_MAINTENANCE_TEMPLATE); } /** diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceSparkSubmitPipeline.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceSparkSubmitPipeline.java similarity index 98% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceSparkSubmitPipeline.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceSparkSubmitPipeline.java index 10eabbb8b9..fd1a790ab9 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceSparkSubmitPipeline.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceSparkSubmitPipeline.java @@ -172,7 +172,7 @@ public final class MaintenanceSparkSubmitPipeline { try { jobId = jobSubmitter.runJob( - metalake, MaintenanceJobTemplates.TMS_ICEBERG_MAINTENANCE_TEMPLATE, jobConf); + metalake, MaintenanceJobTemplates.ICEBERG_MAINTENANCE_TEMPLATE, jobConf); actionMetaService.bindJobId(claim, jobId); LOG.info("Submitted cron-job for table {} policy {} as job {}", tableId, policyId, jobId); } catch (RuntimeException e) { diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceTableRefs.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceTableRefs.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceTableRefs.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/MaintenanceTableRefs.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/PendingCronExpandOccupancyGate.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/PendingCronExpandOccupancyGate.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/PendingCronExpandOccupancyGate.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/PendingCronExpandOccupancyGate.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/RelationalCronJobScheduler.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/RelationalCronJobScheduler.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/RelationalCronJobScheduler.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/job/cron/RelationalCronJobScheduler.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/ExpandOccupancyGate.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/ExpandOccupancyGate.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/ExpandOccupancyGate.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/ExpandOccupancyGate.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/ExpandTableCandidate.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/ExpandTableCandidate.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/ExpandTableCandidate.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/ExpandTableCandidate.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/NearestMaintenancePolicyResolver.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/NearestMaintenancePolicyResolver.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/NearestMaintenancePolicyResolver.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/NearestMaintenancePolicyResolver.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/NearestPolicyTableEnumerator.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/NearestPolicyTableEnumerator.java similarity index 99% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/NearestPolicyTableEnumerator.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/NearestPolicyTableEnumerator.java index ae503ec6a0..35b5ee2d12 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/NearestPolicyTableEnumerator.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/NearestPolicyTableEnumerator.java @@ -33,7 +33,6 @@ import org.apache.gravitino.MetadataObject; import org.apache.gravitino.MetadataObjects; import org.apache.gravitino.NameIdentifier; import org.apache.gravitino.RelationalEntity; -import org.apache.gravitino.maintenance.scheduler.policy.expand.ExpandOccupancyGate; import org.apache.gravitino.meta.GenericEntity; import org.apache.gravitino.meta.PolicyEntity; import org.apache.gravitino.meta.SchemaEntity; diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyExpandCrons.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyExpandCrons.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyExpandCrons.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyExpandCrons.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyExpandPipeline.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyExpandPipeline.java similarity index 98% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyExpandPipeline.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyExpandPipeline.java index 58dbcedc06..bc879a71ac 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyExpandPipeline.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyExpandPipeline.java @@ -27,7 +27,6 @@ import javax.annotation.Nullable; import org.apache.gravitino.Config; import org.apache.gravitino.maintenance.policy.MaintenanceMinIntervalConfigs; import org.apache.gravitino.maintenance.policy.MaintenancePolicyDefinitions; -import org.apache.gravitino.maintenance.scheduler.policy.expand.ExpandOccupancyGate; import org.apache.gravitino.maintenance.scheduler.job.cron.CronJobScheduler; import org.apache.gravitino.meta.PolicyEntity; import org.apache.gravitino.policy.ExecutablePolicyContent; diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyTableEnumerator.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyTableEnumerator.java similarity index 96% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyTableEnumerator.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyTableEnumerator.java index 372068686b..11f1f742d4 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyTableEnumerator.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/scheduler/policy/expand/PolicyTableEnumerator.java @@ -19,7 +19,6 @@ package org.apache.gravitino.maintenance.scheduler.policy.expand; import java.util.List; -import org.apache.gravitino.maintenance.scheduler.policy.expand.ExpandOccupancyGate; import org.apache.gravitino.meta.PolicyEntity; /** diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/MetalakeNames.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/MetalakeNames.java similarity index 97% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/MetalakeNames.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/MetalakeNames.java index a45a6fc71d..c01cfa4a18 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/MetalakeNames.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/MetalakeNames.java @@ -27,7 +27,7 @@ import org.apache.gravitino.storage.relational.po.MetalakePO; import org.apache.gravitino.storage.relational.po.TablePO; import org.apache.gravitino.storage.relational.utils.SessionUtils; -/** Resolves metalake names for TMS entity ids. */ +/** Resolves metalake names for maintenance entity ids. */ public final class MetalakeNames { private MetalakeNames() {} diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionMapper.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionMapper.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionMapper.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionMapper.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionSQLProviderFactory.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionSQLProviderFactory.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionSQLProviderFactory.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableMaintenanceActionSQLProviderFactory.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsMapper.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsMapper.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsMapper.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsMapper.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsSQLProviderFactory.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsSQLProviderFactory.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsSQLProviderFactory.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/TableSnapshotMetricsSQLProviderFactory.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/TmsMapperPackageProvider.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/MaintenanceMapperPackageProvider.java similarity index 89% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/TmsMapperPackageProvider.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/MaintenanceMapperPackageProvider.java index bafb8ce6e3..aa7072bde4 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/TmsMapperPackageProvider.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/MaintenanceMapperPackageProvider.java @@ -24,8 +24,8 @@ import org.apache.gravitino.maintenance.storage.mapper.TableMaintenanceActionMap import org.apache.gravitino.maintenance.storage.mapper.TableSnapshotMetricsMapper; import org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider; -/** Supplies TMS mapper classes from the {@code tms} plugin. */ -public class TmsMapperPackageProvider implements MapperPackageProvider { +/** Supplies table-maintenance mapper classes from the {@code maintenance} plugin. */ +public class MaintenanceMapperPackageProvider implements MapperPackageProvider { @Override public List<Class<?>> getMapperClasses() { diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableMaintenanceActionBaseSQLProvider.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableMaintenanceActionBaseSQLProvider.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableMaintenanceActionBaseSQLProvider.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableMaintenanceActionBaseSQLProvider.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableSnapshotMetricsBaseSQLProvider.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableSnapshotMetricsBaseSQLProvider.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableSnapshotMetricsBaseSQLProvider.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/base/TableSnapshotMetricsBaseSQLProvider.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableMaintenanceActionH2Provider.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableMaintenanceActionH2Provider.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableMaintenanceActionH2Provider.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableMaintenanceActionH2Provider.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableSnapshotMetricsH2Provider.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableSnapshotMetricsH2Provider.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableSnapshotMetricsH2Provider.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TableSnapshotMetricsH2Provider.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableMaintenanceActionPostgreSQLProvider.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableMaintenanceActionPostgreSQLProvider.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableMaintenanceActionPostgreSQLProvider.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableMaintenanceActionPostgreSQLProvider.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableSnapshotMetricsPostgreSQLProvider.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableSnapshotMetricsPostgreSQLProvider.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableSnapshotMetricsPostgreSQLProvider.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/mapper/provider/postgresql/TableSnapshotMetricsPostgreSQLProvider.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/po/TableMaintenanceActionPO.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/po/TableMaintenanceActionPO.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/po/TableMaintenanceActionPO.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/po/TableMaintenanceActionPO.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/po/TableSnapshotMetricsPO.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/po/TableSnapshotMetricsPO.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/po/TableSnapshotMetricsPO.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/po/TableSnapshotMetricsPO.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/service/OccupancyClaim.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/service/OccupancyClaim.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/service/OccupancyClaim.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/service/OccupancyClaim.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/service/TableMaintenanceActionMetaService.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/service/TableMaintenanceActionMetaService.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/service/TableMaintenanceActionMetaService.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/service/TableMaintenanceActionMetaService.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/service/TableSnapshotMetricsMetaService.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/service/TableSnapshotMetricsMetaService.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/storage/service/TableSnapshotMetricsMetaService.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/storage/service/TableSnapshotMetricsMetaService.java diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/web/TableMaintenanceRESTUtils.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/web/TableMaintenanceRESTUtils.java similarity index 98% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/web/TableMaintenanceRESTUtils.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/web/TableMaintenanceRESTUtils.java index 669912deaa..e6080f5087 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/web/TableMaintenanceRESTUtils.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/web/TableMaintenanceRESTUtils.java @@ -34,7 +34,7 @@ import org.apache.gravitino.utils.PrincipalUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** REST helpers for table-maintenance resources in the TMS plugin. */ +/** REST helpers for table-maintenance resources in the plugin. */ public final class TableMaintenanceRESTUtils { private static final Logger LOG = LoggerFactory.getLogger(TableMaintenanceRESTUtils.class); diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceActionOperations.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceActionOperations.java similarity index 92% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceActionOperations.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceActionOperations.java index a2130e0267..c069d22dad 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceActionOperations.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceActionOperations.java @@ -86,8 +86,10 @@ public class TableMaintenanceActionOperations { */ @POST @Path("{jobId}/metrics/before") - @Timed(name = "tms-action-metrics-before." + MetricNames.HTTP_PROCESS_DURATION, absolute = true) - @ResponseMetered(name = "tms-action-metrics-before", absolute = true) + @Timed( + name = "maintenance-action-metrics-before." + MetricNames.HTTP_PROCESS_DURATION, + absolute = true) + @ResponseMetered(name = "maintenance-action-metrics-before", absolute = true) @AuthorizationExpression(expression = "METALAKE::OWNER || METALAKE::RUN_JOB") public Response reportBeforeMetrics( @PathParam("metalake") @AuthorizationMetadata(type = Entity.EntityType.METALAKE) @@ -118,8 +120,10 @@ public class TableMaintenanceActionOperations { */ @POST @Path("{jobId}/metrics/after") - @Timed(name = "tms-action-metrics-after." + MetricNames.HTTP_PROCESS_DURATION, absolute = true) - @ResponseMetered(name = "tms-action-metrics-after", absolute = true) + @Timed( + name = "maintenance-action-metrics-after." + MetricNames.HTTP_PROCESS_DURATION, + absolute = true) + @ResponseMetered(name = "maintenance-action-metrics-after", absolute = true) @AuthorizationExpression(expression = "METALAKE::OWNER || METALAKE::RUN_JOB") public Response reportAfterMetrics( @PathParam("metalake") @AuthorizationMetadata(type = Entity.EntityType.METALAKE) @@ -149,8 +153,8 @@ public class TableMaintenanceActionOperations { */ @POST @Path("{jobId}/finish") - @Timed(name = "tms-action-finish." + MetricNames.HTTP_PROCESS_DURATION, absolute = true) - @ResponseMetered(name = "tms-action-finish", absolute = true) + @Timed(name = "maintenance-action-finish." + MetricNames.HTTP_PROCESS_DURATION, absolute = true) + @ResponseMetered(name = "maintenance-action-finish", absolute = true) @AuthorizationExpression(expression = "METALAKE::OWNER || METALAKE::RUN_JOB") public Response finishAction( @PathParam("metalake") @AuthorizationMetadata(type = Entity.EntityType.METALAKE) diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceBinder.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceBinder.java similarity index 93% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceBinder.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceBinder.java index 61edd478ff..7125caadf8 100644 --- a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceBinder.java +++ b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/web/rest/TableMaintenanceBinder.java @@ -21,7 +21,7 @@ package org.apache.gravitino.maintenance.web.rest; import org.apache.gravitino.maintenance.MaintenanceMetricsService; import org.glassfish.hk2.utilities.binding.AbstractBinder; -/** Registers TMS maintenance metrics REST dependencies for Jersey/HK2 injection. */ +/** Registers table maintenance metrics REST dependencies for Jersey/HK2 injection. */ public class TableMaintenanceBinder extends AbstractBinder { @Override diff --git a/plugins/tms/src/main/java/org/apache/gravitino/maintenance/web/rest/feature/TableMaintenanceRESTFeature.java b/plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/web/rest/feature/TableMaintenanceRESTFeature.java similarity index 100% rename from plugins/tms/src/main/java/org/apache/gravitino/maintenance/web/rest/feature/TableMaintenanceRESTFeature.java rename to plugins/maintenance/src/main/java/org/apache/gravitino/maintenance/web/rest/feature/TableMaintenanceRESTFeature.java diff --git a/plugins/tms/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider b/plugins/maintenance/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider similarity index 89% rename from plugins/tms/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider rename to plugins/maintenance/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider index a130adea4e..3be4cf00e3 100644 --- a/plugins/tms/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider +++ b/plugins/maintenance/src/main/resources/META-INF/services/org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider @@ -15,4 +15,4 @@ # specific language governing permissions and limitations # under the License. -org.apache.gravitino.maintenance.storage.mapper.provider.TmsMapperPackageProvider +org.apache.gravitino.maintenance.storage.mapper.provider.MaintenanceMapperPackageProvider diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestCompactionInJobRecommender.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestCompactionInJobRecommender.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestCompactionInJobRecommender.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestCompactionInJobRecommender.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestMetricsJson.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestMetricsJson.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestMetricsJson.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestMetricsJson.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestTableMaintenanceInJobPipeline.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestTableMaintenanceInJobPipeline.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestTableMaintenanceInJobPipeline.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestTableMaintenanceInJobPipeline.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestTableMaintenanceInJobSampler.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestTableMaintenanceInJobSampler.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestTableMaintenanceInJobSampler.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestTableMaintenanceInJobSampler.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestTriggerExprInJobRecommender.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestTriggerExprInJobRecommender.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestTriggerExprInJobRecommender.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestTriggerExprInJobRecommender.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestTypeDispatchingInJobRecommender.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestTypeDispatchingInJobRecommender.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/injob/TestTypeDispatchingInJobRecommender.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/injob/TestTypeDispatchingInJobRecommender.java diff --git a/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/integration/test/TableMaintenanceActionRESTIT.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/integration/test/TableMaintenanceActionRESTIT.java new file mode 100644 index 0000000000..a28a20a240 --- /dev/null +++ b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/integration/test/TableMaintenanceActionRESTIT.java @@ -0,0 +1,241 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.gravitino.maintenance.integration.test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assumptions.assumeTrue; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Maps; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import java.time.Instant; +import java.util.Map; +import java.util.ServiceLoader; +import java.util.UUID; +import org.apache.gravitino.Catalog; +import org.apache.gravitino.Configs; +import org.apache.gravitino.EntityStore; +import org.apache.gravitino.GravitinoEnv; +import org.apache.gravitino.Namespace; +import org.apache.gravitino.integration.test.util.BaseIT; +import org.apache.gravitino.integration.test.util.ITUtils; +import org.apache.gravitino.maintenance.TableMaintenanceConfig; +import org.apache.gravitino.maintenance.storage.mapper.provider.MaintenanceMapperPackageProvider; +import org.apache.gravitino.maintenance.storage.po.TableMaintenanceActionPO; +import org.apache.gravitino.maintenance.storage.service.OccupancyClaim; +import org.apache.gravitino.maintenance.storage.service.TableMaintenanceActionMetaService; +import org.apache.gravitino.maintenance.storage.service.TableSnapshotMetricsMetaService; +import org.apache.gravitino.maintenance.web.rest.feature.TableMaintenanceRESTFeature; +import org.apache.gravitino.meta.AuditInfo; +import org.apache.gravitino.meta.CatalogEntity; +import org.apache.gravitino.meta.SchemaEntity; +import org.apache.gravitino.meta.TableEntity; +import org.apache.gravitino.storage.RandomIdGenerator; +import org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +/** + * Boots Gravitino with {@link TableMaintenanceRESTFeature} and exercises maintenance-action + * callback REST wiring. + * + * <p>Run with {@code -PskipITs} omitted (and optionally {@code -PjdbcBackend=h2|mysql|postgresql}). + * The happy-path seeds occupancy rows via MetaService and therefore runs in embedded mode only. + */ +public class TableMaintenanceActionRESTIT extends BaseIT { + + private static final HttpClient HTTP = HttpClient.newHttpClient(); + private static final String ACCEPT = "application/vnd.gravitino.v1+json"; + private static final AuditInfo AUDIT = + AuditInfo.builder().withCreator("it").withCreateTime(Instant.EPOCH).build(); + + private static String metalake; + private static String apiBase; + + @BeforeAll + public void startIntegrationTest() throws Exception { + Map<String, String> configs = Maps.newHashMap(); + configs.put(Configs.ENABLE_AUTHORIZATION.getKey(), String.valueOf(false)); + configs.put(Configs.CACHE_ENABLED.getKey(), String.valueOf(false)); + configs.put( + Configs.REST_API_EXTENSION_PACKAGES.getKey(), + TableMaintenanceRESTFeature.EXTENSION_PACKAGE); + registerCustomConfigs(configs); + super.startIntegrationTest(); + + metalake = "ml_maint_" + UUID.randomUUID().toString().replace("-", "").substring(0, 8); + client.createMetalake(metalake, "maintenance plugin IT", ImmutableMap.of()); + apiBase = serverUri + "/api"; + } + + @Test + void testMapperPackageProviderOnClasspath() { + long count = + ServiceLoader.load(MapperPackageProvider.class).stream() + .map(ServiceLoader.Provider::get) + .filter(MaintenanceMapperPackageProvider.class::isInstance) + .count(); + assertEquals(1L, count); + } + + @Test + void testFinishUnknownActionReturnsNotFound() throws Exception { + String body = "{\"tableId\":1,\"policyId\":1}"; + HttpResponse<String> response = postJson(actionPath(999999L, "finish"), body); + assertEquals(404, response.statusCode(), response.body()); + assertTrue( + response.body().contains("NotFound") + || response.body().contains("not found") + || response.body().toLowerCase().contains("no maintenance action") + || response.body().contains("NoSuchEntity"), + response.body()); + } + + @Test + void testReportBeforeUnknownActionReturnsNotFound() throws Exception { + String body = "{\"tableId\":1,\"policyId\":1,\"snapshotId\":10,\"metricsJson\":\"{}\"}"; + HttpResponse<String> response = postJson(actionPath(999999L, "metrics/before"), body); + assertEquals(404, response.statusCode(), response.body()); + } + + @Test + void testMetricsBeforeAfterFinishHappyPath() throws Exception { + assumeTrue( + ITUtils.EMBEDDED_TEST_MODE.equals(testMode), + "Happy-path seeds table_maintenance_action via MetaService in the server JVM"); + + long tableId = seedTableUnderMetalake(metalake); + long policyId = RandomIdGenerator.INSTANCE.nextId(); + long jobId = 88001L; + + TableMaintenanceActionMetaService actions = TableMaintenanceActionMetaService.getInstance(); + OccupancyClaim claim = + actions.insertInFlight( + tableId, policyId, TableMaintenanceConfig.forTest(1, 1, 1, 500L, 1_000L, 4, 10)); + assertNotNull(claim); + + String beforeBody = + "{\"tableId\":" + + tableId + + ",\"policyId\":" + + policyId + + ",\"snapshotId\":100,\"metricsJson\":\"{\\\"mse\\\":1}\"}"; + HttpResponse<String> before = postJson(actionPath(jobId, "metrics/before"), beforeBody); + assertEquals(200, before.statusCode(), before.body()); + + TableMaintenanceActionPO afterBefore = + actions.getByJobIdAndTableIdAndPolicyId(jobId, tableId, policyId); + assertNotNull(afterBefore); + assertEquals(jobId, afterBefore.jobId()); + assertEquals(100L, afterBefore.beforeSnapshotId()); + assertEquals(0L, afterBefore.finishedAt()); + assertEquals( + "{\"mse\":1}", + TableSnapshotMetricsMetaService.getInstance() + .getMetrics(tableId, policyId, 100L) + .metricsValue()); + + String afterBody = + "{\"tableId\":" + + tableId + + ",\"policyId\":" + + policyId + + ",\"snapshotId\":200,\"metricsJson\":\"{\\\"mse\\\":2}\"}"; + HttpResponse<String> after = + postJson(actionPath(jobId, "metrics/after") + "?finish=true", afterBody); + assertEquals(200, after.statusCode(), after.body()); + + TableMaintenanceActionPO finished = + actions.getByJobIdAndTableIdAndPolicyId(jobId, tableId, policyId); + assertNotNull(finished); + assertEquals(200L, finished.afterSnapshotId()); + assertTrue(finished.finishedAt() > 0L); + assertEquals( + "{\"mse\":2}", + TableSnapshotMetricsMetaService.getInstance() + .getMetrics(tableId, policyId, 200L) + .metricsValue()); + } + + private static String actionPath(long jobId, String suffix) { + return apiBase + "/metalakes/" + metalake + "/maintenance/actions/" + jobId + "/" + suffix; + } + + private static HttpResponse<String> postJson(String url, String body) throws Exception { + HttpRequest request = + HttpRequest.newBuilder() + .uri(URI.create(url)) + .header("Accept", ACCEPT) + .header("Content-Type", "application/json") + .POST(HttpRequest.BodyPublishers.ofString(body, StandardCharsets.UTF_8)) + .build(); + return HTTP.send(request, HttpResponse.BodyHandlers.ofString()); + } + + /** + * Inserts catalog/schema/table rows under the client-created metalake so metalake lookup succeeds + * for callback authorization of the action's table id. + */ + private static long seedTableUnderMetalake(String metalakeName) throws Exception { + EntityStore store = GravitinoEnv.getInstance().entityStore(); + String catalogName = "cat_" + UUID.randomUUID().toString().substring(0, 6); + String schemaName = "sch"; + String tableName = "tbl"; + + CatalogEntity catalog = + CatalogEntity.builder() + .withId(RandomIdGenerator.INSTANCE.nextId()) + .withName(catalogName) + .withNamespace(Namespace.of(metalakeName)) + .withType(Catalog.Type.RELATIONAL) + .withProvider("test") + .withComment("") + .withProperties(null) + .withAuditInfo(AUDIT) + .build(); + store.put(catalog, false); + + SchemaEntity schema = + SchemaEntity.builder() + .withId(RandomIdGenerator.INSTANCE.nextId()) + .withName(schemaName) + .withNamespace(Namespace.of(metalakeName, catalogName)) + .withComment("") + .withProperties(null) + .withAuditInfo(AUDIT) + .build(); + store.put(schema, false); + + TableEntity table = + TableEntity.builder() + .withId(RandomIdGenerator.INSTANCE.nextId()) + .withName(tableName) + .withNamespace(Namespace.of(metalakeName, catalogName, schemaName)) + .withAuditInfo(AUDIT) + .build(); + store.put(table, false); + return table.id(); + } +} diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/listener/TestPostCommitMaintenanceListener.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/listener/TestPostCommitMaintenanceListener.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/listener/TestPostCommitMaintenanceListener.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/listener/TestPostCommitMaintenanceListener.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/occupancy/TestOccupancyGate.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/occupancy/TestOccupancyGate.java similarity index 82% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/occupancy/TestOccupancyGate.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/occupancy/TestOccupancyGate.java index d522652fd6..def7654432 100644 --- a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/occupancy/TestOccupancyGate.java +++ b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/occupancy/TestOccupancyGate.java @@ -18,6 +18,8 @@ */ package org.apache.gravitino.maintenance.occupancy; +import static org.apache.gravitino.maintenance.storage.TableMaintenanceActionTestUtils.expireClaim; + import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import java.io.IOException; @@ -37,7 +39,7 @@ class TestOccupancyGate extends TestJDBCBackend { @TestTemplate void testUnboundClaimAndBoundSlotOccupyUntilMarkFinished() throws IOException { - String metalakeName = "tms_occ_ml"; + String metalakeName = "maint_occ_ml"; createAndInsertMakeLake(metalakeName); createAndInsertCatalog(metalakeName, "cat"); createAndInsertSchema(metalakeName, "cat", "sch"); @@ -68,7 +70,7 @@ class TestOccupancyGate extends TestJDBCBackend { @TestTemplate void testMinIntervalUsesActionFinishedAtOnly() throws IOException { - String metalakeName = "tms_occ_ml2"; + String metalakeName = "maint_occ_ml2"; createAndInsertMakeLake(metalakeName); createAndInsertCatalog(metalakeName, "cat"); createAndInsertSchema(metalakeName, "cat", "sch"); @@ -94,21 +96,30 @@ class TestOccupancyGate extends TestJDBCBackend { @TestTemplate void testExpiredUnboundClaimDoesNotBlock() throws Exception { - String metalakeName = "tms_occ_ml3"; + String metalakeName = "maint_occ_ml3"; createAndInsertMakeLake(metalakeName); createAndInsertCatalog(metalakeName, "cat"); createAndInsertSchema(metalakeName, "cat", "sch"); TableEntity table = createAndInsertTableEntity(Namespace.of(metalakeName, "cat", "sch"), "tbl"); TableMaintenanceActionMetaService actions = TableMaintenanceActionMetaService.getInstance(); - long timeoutMs = 200L; - OccupancyGate gate = new OccupancyGate(actions, timeoutMs); + long claimTimeoutMs = TableMaintenanceConfig.DEFAULT_CLAIM_TIMEOUT_MS; + OccupancyGate gate = new OccupancyGate(actions, claimTimeoutMs); long policyId = insertPolicy(metalakeName, "occ-policy-3").id(); - actions.insertInFlight(table.id(), policyId, timeoutMs); + OccupancyClaim claim = actions.insertInFlight(table.id(), policyId, claimTimeoutMs); + Assertions.assertTrue(actions.hasLiveUnboundClaim(table.id(), policyId, claimTimeoutMs)); Assertions.assertTrue(gate.isInFlight(table.id(), policyId)); - Thread.sleep(timeoutMs + 50L); + + expireClaim(claim, claimTimeoutMs); + + // Unbound TTL is evaluated in the DAO against the database clock, so OccupancyGate agrees with + // acquire/reclaim even when the JVM clock would disagree (multi-node skew). + Assertions.assertFalse(actions.hasLiveUnboundClaim(table.id(), policyId, claimTimeoutMs)); Assertions.assertFalse(gate.isInFlight(table.id(), policyId)); + Assertions.assertTrue( + actions.tryAcquireInFlight(table.id(), policyId, claimTimeoutMs).isPresent()); + Assertions.assertEquals(claim.id(), actions.getById(claim.id()).id()); } private PolicyEntity insertPolicy(String metalakeName, String policyName) throws IOException { diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandLifecycleHook.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandLifecycleHook.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandLifecycleHook.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandLifecycleHook.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandReconciler.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandReconciler.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandReconciler.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandReconciler.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandRegistrar.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandRegistrar.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandRegistrar.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/policy/TestPolicyExpandRegistrar.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/TestMaintenanceJobSpecFactory.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/TestMaintenanceJobSpecFactory.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/TestMaintenanceJobSpecFactory.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/TestMaintenanceJobSpecFactory.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/TestTableMaintenanceSchedulerPools.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/TestTableMaintenanceSchedulerPools.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/TestTableMaintenanceSchedulerPools.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/TestTableMaintenanceSchedulerPools.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestCommitAuthConsistency.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestCommitAuthConsistency.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestCommitAuthConsistency.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestCommitAuthConsistency.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestCommitJobSpecFactory.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestCommitJobSpecFactory.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestCommitJobSpecFactory.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestCommitJobSpecFactory.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestMaintenanceCommitSubmitPipeline.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestMaintenanceCommitSubmitPipeline.java similarity index 99% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestMaintenanceCommitSubmitPipeline.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestMaintenanceCommitSubmitPipeline.java index 296e129d7c..b6efefad75 100644 --- a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestMaintenanceCommitSubmitPipeline.java +++ b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestMaintenanceCommitSubmitPipeline.java @@ -110,7 +110,7 @@ class TestMaintenanceCommitSubmitPipeline { verify(submitter) .runJob( eq("ml"), - eq(MaintenanceJobTemplates.TMS_ICEBERG_MAINTENANCE_TEMPLATE), + eq(MaintenanceJobTemplates.ICEBERG_MAINTENANCE_TEMPLATE), confCaptor.capture()); verify(actions).bindJobIds(claims, 999L); verify(actions, never()).bindJobId(org.mockito.ArgumentMatchers.any(), anyLong()); diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestRelationalCommitJobScheduler.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestRelationalCommitJobScheduler.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestRelationalCommitJobScheduler.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/commit/TestRelationalCommitJobScheduler.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestCronJobIds.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestCronJobIds.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestCronJobIds.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestCronJobIds.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestCronJobScheduler.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestCronJobScheduler.java similarity index 99% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestCronJobScheduler.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestCronJobScheduler.java index 57a4c17596..417a3cefcb 100644 --- a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestCronJobScheduler.java +++ b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestCronJobScheduler.java @@ -47,7 +47,6 @@ import org.apache.gravitino.storage.relational.session.SqlSessionFactoryHelper; import org.apache.gravitino.utils.NamespaceUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.TestTemplate; -import org.apache.gravitino.maintenance.scheduler.policy.expand.ExpandOccupancyGate; class TestCronJobScheduler extends TestJDBCBackend { diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceJobConfBuilder.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceJobConfBuilder.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceJobConfBuilder.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceJobConfBuilder.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceJobTemplates.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceJobTemplates.java similarity index 89% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceJobTemplates.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceJobTemplates.java index 123124f004..fe951b975f 100644 --- a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceJobTemplates.java +++ b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceJobTemplates.java @@ -26,10 +26,9 @@ import org.junit.jupiter.api.Test; class TestMaintenanceJobTemplates { @Test - void testAllFourTypesMapToSingleTmsTemplate() { + void testAllFourTypesMapToSingleMaintenanceTemplate() { Assertions.assertEquals( - "builtin-iceberg-maintenance-task", - MaintenanceJobTemplates.TMS_ICEBERG_MAINTENANCE_TEMPLATE); + "builtin-iceberg-maintenance-task", MaintenanceJobTemplates.ICEBERG_MAINTENANCE_TEMPLATE); for (Policy.BuiltInType type : new Policy.BuiltInType[] { Policy.BuiltInType.ICEBERG_COMPACTION, @@ -38,7 +37,7 @@ class TestMaintenanceJobTemplates { Policy.BuiltInType.ICEBERG_ORPHAN_FILE_REMOVAL }) { Assertions.assertEquals( - MaintenanceJobTemplates.TMS_ICEBERG_MAINTENANCE_TEMPLATE, + MaintenanceJobTemplates.ICEBERG_MAINTENANCE_TEMPLATE, MaintenanceJobTemplates.templateName(type).orElseThrow()); Assertions.assertTrue(MaintenanceJobTemplates.maintenanceType(type).isPresent()); } diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceSparkSubmitPipeline.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceSparkSubmitPipeline.java similarity index 96% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceSparkSubmitPipeline.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceSparkSubmitPipeline.java index ff9867772e..0c2d19ab7c 100644 --- a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceSparkSubmitPipeline.java +++ b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/job/cron/TestMaintenanceSparkSubmitPipeline.java @@ -116,7 +116,7 @@ class TestMaintenanceSparkSubmitPipeline { void testSuccessfulSubmitBindsJobId() { MaintenanceJobSubmitter submitter = mock(MaintenanceJobSubmitter.class); when(submitter.runJob( - eq("metalake"), eq(MaintenanceJobTemplates.TMS_ICEBERG_MAINTENANCE_TEMPLATE), anyMap())) + eq("metalake"), eq(MaintenanceJobTemplates.ICEBERG_MAINTENANCE_TEMPLATE), anyMap())) .thenReturn(999L); TableMaintenanceActionMetaService actions = mock(TableMaintenanceActionMetaService.class); OccupancyClaim claim = new OccupancyClaim(7L, 1_000L); @@ -152,7 +152,7 @@ class TestMaintenanceSparkSubmitPipeline { void testBindFailureCancelsJobAndReleasesClaim() { MaintenanceJobSubmitter submitter = mock(MaintenanceJobSubmitter.class); when(submitter.runJob( - eq("metalake"), eq(MaintenanceJobTemplates.TMS_ICEBERG_MAINTENANCE_TEMPLATE), anyMap())) + eq("metalake"), eq(MaintenanceJobTemplates.ICEBERG_MAINTENANCE_TEMPLATE), anyMap())) .thenReturn(777L); TableMaintenanceActionMetaService actions = mock(TableMaintenanceActionMetaService.class); OccupancyClaim claim = new OccupancyClaim(9L, 3_000L); @@ -172,7 +172,7 @@ class TestMaintenanceSparkSubmitPipeline { void testBindFailureSkipsReleaseWhenClaimAlreadyReclaimed() { MaintenanceJobSubmitter submitter = mock(MaintenanceJobSubmitter.class); when(submitter.runJob( - eq("metalake"), eq(MaintenanceJobTemplates.TMS_ICEBERG_MAINTENANCE_TEMPLATE), anyMap())) + eq("metalake"), eq(MaintenanceJobTemplates.ICEBERG_MAINTENANCE_TEMPLATE), anyMap())) .thenReturn(778L); TableMaintenanceActionMetaService actions = mock(TableMaintenanceActionMetaService.class); OccupancyClaim staleClaim = new OccupancyClaim(10L, 4_000L); @@ -194,7 +194,7 @@ class TestMaintenanceSparkSubmitPipeline { void testBatchSubmitOneSparkJobPerTable() { MaintenanceJobSubmitter submitter = mock(MaintenanceJobSubmitter.class); when(submitter.runJob( - eq("metalake"), eq(MaintenanceJobTemplates.TMS_ICEBERG_MAINTENANCE_TEMPLATE), anyMap())) + eq("metalake"), eq(MaintenanceJobTemplates.ICEBERG_MAINTENANCE_TEMPLATE), anyMap())) .thenReturn(555L, 556L); TableMaintenanceActionMetaService actions = mock(TableMaintenanceActionMetaService.class); OccupancyClaim claimA = new OccupancyClaim(1L, 10L); @@ -223,7 +223,7 @@ class TestMaintenanceSparkSubmitPipeline { verify(submitter, times(2)) .runJob( eq("metalake"), - eq(MaintenanceJobTemplates.TMS_ICEBERG_MAINTENANCE_TEMPLATE), + eq(MaintenanceJobTemplates.ICEBERG_MAINTENANCE_TEMPLATE), confCaptor.capture()); List<Map<String, String>> confs = confCaptor.getAllValues(); Assertions.assertEquals("iceberg", confs.get(0).get("catalog_name")); @@ -265,7 +265,7 @@ class TestMaintenanceSparkSubmitPipeline { verify(submitter) .runJob( eq("metalake"), - eq(MaintenanceJobTemplates.TMS_ICEBERG_MAINTENANCE_TEMPLATE), + eq(MaintenanceJobTemplates.ICEBERG_MAINTENANCE_TEMPLATE), confCaptor.capture()); Map<String, String> conf = confCaptor.getValue(); Assertions.assertEquals("iceberg", conf.get("catalog_name")); diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestNearestMaintenancePolicyResolver.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestNearestMaintenancePolicyResolver.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestNearestMaintenancePolicyResolver.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestNearestMaintenancePolicyResolver.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestNearestPolicyTableEnumerator.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestNearestPolicyTableEnumerator.java similarity index 99% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestNearestPolicyTableEnumerator.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestNearestPolicyTableEnumerator.java index 19a7ba394e..f2ef37d454 100644 --- a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestNearestPolicyTableEnumerator.java +++ b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestNearestPolicyTableEnumerator.java @@ -30,7 +30,6 @@ import org.apache.gravitino.MetadataObject; import org.apache.gravitino.MetadataObjects; import org.apache.gravitino.RelationalEntity; import org.apache.gravitino.SupportsRelationOperations; -import org.apache.gravitino.maintenance.scheduler.policy.expand.ExpandOccupancyGate; import org.apache.gravitino.meta.AuditInfo; import org.apache.gravitino.meta.GenericEntity; import org.apache.gravitino.meta.PolicyEntity; diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestPolicyExpandCrons.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestPolicyExpandCrons.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestPolicyExpandCrons.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestPolicyExpandCrons.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestPolicyExpandPipeline.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestPolicyExpandPipeline.java similarity index 99% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestPolicyExpandPipeline.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestPolicyExpandPipeline.java index b5027c34f2..bd5e7509a1 100644 --- a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestPolicyExpandPipeline.java +++ b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/scheduler/policy/expand/TestPolicyExpandPipeline.java @@ -35,7 +35,6 @@ import org.apache.gravitino.Config; import org.apache.gravitino.MetadataObject; import org.apache.gravitino.Namespace; import org.apache.gravitino.maintenance.policy.MaintenanceMinIntervalConfigs; -import org.apache.gravitino.maintenance.scheduler.policy.expand.ExpandOccupancyGate; import org.apache.gravitino.maintenance.scheduler.job.cron.CronJobScheduler; import org.apache.gravitino.meta.AuditInfo; import org.apache.gravitino.meta.PolicyEntity; diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/TableMaintenanceActionTestUtils.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/TableMaintenanceActionTestUtils.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/TableMaintenanceActionTestUtils.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/TableMaintenanceActionTestUtils.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/mapper/TestTmsMapperPackageProvider.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/mapper/TestMaintenanceMapperPackageProvider.java similarity index 84% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/mapper/TestTmsMapperPackageProvider.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/mapper/TestMaintenanceMapperPackageProvider.java index f0afbe27fb..6e86ae3cc7 100644 --- a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/mapper/TestTmsMapperPackageProvider.java +++ b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/mapper/TestMaintenanceMapperPackageProvider.java @@ -24,15 +24,15 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; import java.util.ServiceLoader; -import org.apache.gravitino.maintenance.storage.mapper.provider.TmsMapperPackageProvider; +import org.apache.gravitino.maintenance.storage.mapper.provider.MaintenanceMapperPackageProvider; import org.apache.gravitino.storage.relational.mapper.provider.MapperPackageProvider; import org.junit.jupiter.api.Test; -class TestTmsMapperPackageProvider { +class TestMaintenanceMapperPackageProvider { @Test void testMapperClasses() { - MapperPackageProvider provider = new TmsMapperPackageProvider(); + MapperPackageProvider provider = new MaintenanceMapperPackageProvider(); assertEquals(2, provider.getMapperClasses().size()); assertTrue(provider.getMapperClasses().contains(TableMaintenanceActionMapper.class)); assertTrue(provider.getMapperClasses().contains(TableSnapshotMetricsMapper.class)); @@ -43,9 +43,9 @@ class TestTmsMapperPackageProvider { List<MapperPackageProvider> providers = ServiceLoader.load(MapperPackageProvider.class).stream() .map(ServiceLoader.Provider::get) - .filter(provider -> provider instanceof TmsMapperPackageProvider) + .filter(provider -> provider instanceof MaintenanceMapperPackageProvider) .toList(); assertEquals(1, providers.size()); - assertTrue(providers.get(0) instanceof TmsMapperPackageProvider); + assertTrue(providers.get(0) instanceof MaintenanceMapperPackageProvider); } } diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TestTableMaintenanceActionH2Provider.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TestTableMaintenanceActionH2Provider.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TestTableMaintenanceActionH2Provider.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/mapper/provider/h2/TestTableMaintenanceActionH2Provider.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableMaintenanceActionMetaService.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableMaintenanceActionMetaService.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableMaintenanceActionMetaService.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableMaintenanceActionMetaService.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableSnapshotMetricsMetaService.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableSnapshotMetricsMetaService.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableSnapshotMetricsMetaService.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/storage/service/TestTableSnapshotMetricsMetaService.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/web/rest/TestTableMaintenanceActionOperations.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/web/rest/TestTableMaintenanceActionOperations.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/web/rest/TestTableMaintenanceActionOperations.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/web/rest/TestTableMaintenanceActionOperations.java diff --git a/plugins/tms/src/test/java/org/apache/gravitino/maintenance/web/rest/feature/TestTableMaintenanceRESTFeature.java b/plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/web/rest/feature/TestTableMaintenanceRESTFeature.java similarity index 100% rename from plugins/tms/src/test/java/org/apache/gravitino/maintenance/web/rest/feature/TestTableMaintenanceRESTFeature.java rename to plugins/maintenance/src/test/java/org/apache/gravitino/maintenance/web/rest/feature/TestTableMaintenanceRESTFeature.java diff --git a/settings.gradle.kts b/settings.gradle.kts index 0076ce9d82..7f1759282c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -134,7 +134,7 @@ include(":lineage") include(":mcp-server") include(":plugins:idp-basic") include(":plugins:k8s-job-executor") -include(":plugins:tms") +include(":plugins:maintenance") include( ":maintenance:maintenance-common", ":maintenance:optimizer-api",
