Skip to content

[Task] Complete the Motan plugin migration and restore cross-repository compatibility #7295

Open

Description

@Aias00

Background

Motan runtime code and its Spring Boot starter were copied to apache/shenyu-plugin-store in PRs #1 and #3. The main repository later removed Motan support in commit 338ea9adaf, but the store copy still depends on Motan-specific classes removed from ShenYu core, including PluginEnum.MOTAN, RpcTypeEnum.MOTAN, Motan DTOs/constants, and result codes.

The migration is therefore present as source code but is not yet a buildable, releasable, or E2E-verified external plugin.

Depends on #7294.

Scope

plugin-store

  • Rebase the Motan plugin and starter onto the supported ShenYu external-plugin API.
  • Move Motan-owned identifiers, configuration DTOs, result mapping, and protocol constants out of ShenYu core dependencies or replace them with the agreed generic extension contract.
  • Retain Spring Boot 2/3 auto-configuration metadata only where it matches the supported compatibility matrix.
  • Restore and expand unit tests for plugin execution, metadata/config refresh, proxy/cache lifecycle, and starter loading.
  • Add a real E2E scenario with a Motan provider, gateway, admin/config setup, successful invocation, invalid metadata/body handling, and config refresh.
  • Document Motan and JDK/framework compatibility and mark the plugin maintenance status clearly.

apache/shenyu and companion repositories

  • Remove stale Motan dependency-governance and distribution LICENSE entries that were reintroduced after the source removal; retain historical release notes and upgrade SQL.
  • Decide whether client registration remains supported. If yes, maintain it in the authoritative client repository and cover registration-to-invocation E2E; if no, document manual metadata registration.
  • Ensure no current distribution or default bootstrap contains Motan artifacts.

Acceptance Criteria

  • Motan plugin and starter build against the declared ShenYu release without restored Motan-specific core enums/DTOs.
  • Unit tests run in CI and cover success, failure, metadata refresh, and resource cleanup.
  • E2E starts a real Motan provider and proves gateway invocation and dynamic config update.
  • The produced artifacts can be consumed by a minimal ShenYu bootstrap.
  • Main-repository stale docs/licenses are cleaned without rewriting historical migrations.
  • Support/deprecation status and rollback instructions are documented.

Activity

  1. github-actions commented on Sep 26, 2026

    @github-actions
    Contributor

    👋 Hello @Aias00

    A new issue has been opened by @Aias00:

    Please review when you have time. Thank you! 🙏

  2. cloudbase-ai commented on Oct 8, 2026

    @cloudbase-ai
    Contributor

    Prepared as cloudbase-ai:

    • Receiving plugin-store PR: [type:refactor] complete motan store migration assets shenyu-plugin-store#8

    • Main-repository draft cutover: [type:refactor] enable external ingress adapters for Motan asset handoff #7498

    • Full store reactor: ./mvnw -B -ntp clean verify -Dapi.version=1.44 passed, with Checkstyle and RAT enabled.

    • Current cutover API: ./mvnw -B -ntp -pl shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-motan,shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-motan -am verify -Dshenyu.version=2.7.2-SNAPSHOT -Dapi.version=1.44 passed.

    • Both ShenYu API lines, 2.7.0 and 2.7.2-SNAPSHOT, run 19 Motan plugin tests (including actual provider-to-HTTP-gateway scenarios) and 5 starter tests. No skipped tests.

    • Minimal starter consumer class-loading check passed after all four vendor libraries were made transitive runtime dependencies.

    • Main cleanup only removes four obsolete distribution LICENSE references plus the unused Motan license document; git diff --check passed. No gateway implementation is removed in this main PR.

    • Logs: motan/final-full-verify.log, motan/final-cutover-verify.log, and motan/final-* in the local migration evidence directory.

    The main PR stays draft until receiving CI/E2E and artifact-publication gates pass. This issue remains open; the changes are prepared for review, not an already released cutover.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions