Skip to content

[WIP] Convert single-module pom.xml to multi-module Maven reactor - #2155

Merged
edburns merged 1 commit into
edburns/1917-java-embed-rust-cli-runtime-dd-3039145from
copilot/edburns1917-java-embed-rust-cli-runtime-dd-3039145
Jul 30, 2026
Merged

edburns merged 1 commit into
edburns/1917-java-embed-rust-cli-runtime-dd-3039145from
copilot/edburns1917-java-embed-rust-cli-runtime-dd-3039145

Conversation

Copilot AI commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Thanks for asking me to work on this. I will get started on it and keep this PR's description up to date as I form a plan and make progress.


This section details on the original issue you should resolve

<issue_title>[Java] Embed Rust CLI runtime 4.1: Parent POM restructure to multi-module reactor</issue_title>
<issue_description>## Overview

Convert the single-module java/pom.xml into a multi-module Maven reactor. Move the existing SDK code into a sdk/ subdirectory while preserving its GAV (com.github:copilot-sdk-java).

This is task 4.1 of 9 in the implementation plan. Tasks are assigned, completed, and merged serially in this listed order.

Branch: edburns/1917-java-embed-rust-cli-runtime-dd-3039145 on upstream

Plan and supporting resources

On the edburns/1917-java-embed-rust-cli-runtime-dd-3039145 branch, the directory 1917-java-embed-rust-cli-runtime-remove-before-merge contains the plan (1917-embed-cli-runtime-ignorance-reduction-plan.md) and supporting resources (spikes, prototypes, diagrams).

Read the entire plan before working.

Relevant plan sections to carefully re-read

  • Section 3.1 — Maven module structure for per-platform classifier JARs — Resolution: Option B — hybrid multi-module reactor. The reactor structure is:
    java/
    ├── pom.xml                          (parent, packaging=pom, new GAV: com.github:copilot-sdk-java-parent)
    ├── sdk/
    │   └── pom.xml                      (existing SDK, KEEPS GAV: com.github:copilot-sdk-java)
    ├── copilot-native/
    │   └── pom.xml                      (new GAV: com.github:copilot-sdk-java-runtime)
    ├── copilot-native-all/
    │   └── pom.xml                      (optional monolithic: com.github:copilot-sdk-java-runtime-all)
    
    Key decisions: the existing copilot-sdk-java GAV is preserved (no breaking change); the parent POM is packaging=pom and internal-only; no dependency from copilot-sdk-java to copilot-sdk-java-runtime.
  • Section 4.1 — Parent POM restructure (the primary task description)
  • TDD discipline for all implementation steps — every step must follow test-driven workflow: write tests first, implement until green, refactor, gate before proceeding.

Deliverables

Files to create

  1. java/pom.xml — New parent POM (com.github:copilot-sdk-java-parent, packaging=pom). Declares <modules> for sdk, copilot-native, and copilot-native-all. Centralizes shared properties, plugin versions, and copilot.sdk.root path. The copilot-native and copilot-native-all modules do NOT need to exist yet — they are created in later tasks. Include them in <modules> commented out or in a profile, so the reactor builds with just sdk for now.

Files to move

  1. Existing java/pom.xml → java/sdk/pom.xml — Add <parent> pointing to copilot-sdk-java-parent. Preserve existing GAV com.github:copilot-sdk-java. All existing source, test, and resource paths must resolve correctly from the new java/sdk/ location.
  2. Existing java/src/ → java/sdk/src/
  3. Existing java/config/ → java/sdk/config/ (or keep at java/config/ and reference via ${project.parent.basedir}/config/ — choose whichever keeps paths simpler)

Files to update

  1. justfile — Update java/ paths to java/sdk/ where needed.
  2. .github/workflows/java-sdk-tests.yml — Update working directory references from java/ to java/sdk/ or java/ as appropriate for the reactor.
  3. Any other workflows referencing java/pom.xml — search .github/workflows/ for references to java/pom.xml or java/ build commands and update them.

Gating tests and criteria

All of the following must pass before this task is considered complete:

  1. Reactor build: mvn clean verify from java/ runs the full reactor successfully.
  2. SDK-only build: mvn -pl sdk clean verify from java/ builds and tests the SDK exactly as before the restructure.
  3. All existing tests pass: Every existing unit test and integration test passes without modification (unless path changes require adjustment).
  4. CI workflows work: The updated workflow YAML files reference the correct directories and would run correctly.
  5. GAV preservation: The SDK artifact's GAV remains com.github:copilot-sdk-java — no consumer-visible change.
  6. Spotless compliance: mvn spotless:check passes.

Out of scope

Comments on the Issue (you are @copilot in this section)

@edburns
edburns marked this pull request as ready for review July 30, 2026 02:05
Copilot AI review requested due to automatic review settings July 30, 2026 02:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot wasn't able to review any files in this pull request.

@edburns
edburns merged commit 16f32e6 into edburns/1917-java-embed-rust-cli-runtime-dd-3039145 Jul 30, 2026
28 of 29 checks passed
@edburns
edburns deleted the copilot/edburns1917-java-embed-rust-cli-runtime-dd-3039145 branch July 30, 2026 02:06
Copilot stopped work on behalf of edburns due to an error July 30, 2026 02:07
Copilot AI requested a review from edburns July 30, 2026 02:07
edburns pushed a commit that referenced this pull request Jul 30, 2026
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
edburns pushed a commit that referenced this pull request Aug 4, 2026
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
edburns pushed a commit that referenced this pull request Aug 4, 2026
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
edburns pushed a commit that referenced this pull request Aug 4, 2026
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ABORTED [Java] Embed Rust CLI runtime 4.1: Parent POM restructure to multi-module reactor

3 participants