Skip to content

Move java to monorepo. Phase 05: Cross-Cutting Updates#1441

Open
edburns wants to merge 15 commits into
mainfrom
edburns/80-java-monorepo-phase-05-seeking-review
Open

Move java to monorepo. Phase 05: Cross-Cutting Updates#1441
edburns wants to merge 15 commits into
mainfrom
edburns/80-java-monorepo-phase-05-seeking-review

Conversation

@edburns
Copy link
Copy Markdown
Collaborator

@edburns edburns commented May 26, 2026

⚠PR #1434 must be merged first. ⚠

This PR currently contains commits from that PR. When #1434 is merged, this PR must be re-re-based on top of main so those commits do not show up in this PR.

⌛ Phase 05: Cross-Cutting Updates

  1. ✅ Update monorepo copilot-instructions.md to include Java section. See Proposal: more context for Java in copilot-instructions. #1390 .
  2. ✅ Update monorepo README.md to list Java as a supported language. See Prepare for archiving of copilot-sdk-java repo in favor of java directory in copilot-sdk awesome-copilot#1811
  3. ✅ Update scenario-builds.yml to include Java scenarios (if applicable).
  4. ⌛ Handle the package rename requested by Steve Sanderson See Fixes #1434 Repackaging. #1437
  5. ✅ Update docs-validation.yml to include Java code snippets.
  6. ⌛ Update lsp.json to add Java LSP config (optional). See Consider adding Java to lsp.json #1439
  7. ⌛ Add Java to docs/ getting-started and feature pages. See https://github.com/github/copilot-sdk-partners/issues/94
  8. ✅ Update sdk-protocol-version.json if Java needs it.

edburns and others added 14 commits May 26, 2026 17:23
Add Java scenario build verification job that:
- Sets up JDK 17 with Maven cache
- Installs the SDK to local repo
- Compiles all Java scenarios under test/scenarios/

Also adds java/src/** to the path triggers.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add 16 Java scenario implementations covering:
- modes: default, minimal
- prompts: system-message, reasoning-effort
- sessions: streaming, infinite-sessions
- tools: no-tools, tool-filtering
- transport: stdio, tcp
- callbacks: user-input
- auth: byok-openai, byok-azure, byok-anthropic
- bundling: fully-bundled, app-direct-server

All scenarios compile successfully with mvn compile.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add 10 Java scenario implementations covering:
- callbacks: hooks (pre/post tool use, session start/end), permissions
- prompts: attachments
- sessions: concurrent-sessions, session-resume
- tools: custom-agents, tool-overrides, mcp-servers, skills
- auth: gh-app (OAuth device flow)

All scenarios compile successfully with mvn compile.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@edburns edburns force-pushed the edburns/80-java-monorepo-phase-05-seeking-review branch from 3db61e5 to d49e68c Compare May 27, 2026 00:25
@edburns edburns marked this pull request as ready for review May 27, 2026 01:24
@edburns edburns requested a review from a team as a code owner May 27, 2026 01:24
Copilot AI review requested due to automatic review settings May 27, 2026 01:24
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds Java coverage to cross-cutting monorepo workflows, documentation validation, docs snippets, and scenario builds as part of moving the Java SDK into this repository.

Changes:

  • Adds Java scenario projects across auth, bundling, callbacks, modes, prompts, sessions, tools, and transport.
  • Extends docs validation and workflows to extract/compile Java snippets.
  • Updates README/docs imports and workflow triggers for the Java package rename and monorepo layout.
Show a summary per file
File Description
.github/workflows/codegen-check.yml Adds Java protocol-version consistency check.
.github/workflows/docs-validation.yml Adds Java docs validation job.
.github/workflows/scenario-builds.yml Adds Java scenario compilation job.
.vscode/settings.json Enables automatic Java build configuration updates.
README.md Updates Java SDK location and CLI bundling notes.
docs/auth/authenticate.md Updates Java imports.
docs/auth/byok.md Updates Java imports.
docs/features/custom-agents.md Updates Java imports and validation skips.
docs/features/hooks.md Updates Java imports.
docs/features/image-input.md Updates Java imports.
docs/features/skills.md Updates Java imports and validation skips.
docs/features/steering-and-queueing.md Updates Java imports.
docs/features/streaming-events.md Adds Java validation skip.
docs/getting-started.md Updates Java examples/imports and validation skips.
docs/hooks/error-handling.md Updates Java hook docs.
docs/hooks/hooks-overview.md Updates Java imports.
docs/hooks/post-tool-use.md Updates Java handler signature docs.
docs/hooks/pre-tool-use.md Updates Java handler signature docs.
docs/hooks/session-lifecycle.md Updates Java lifecycle handler signature docs.
docs/hooks/user-prompt-submitted.md Updates Java user prompt handler signature docs.
docs/integrations/microsoft-agent-framework.md Updates Java imports and skips.
docs/observability/opentelemetry.md Updates Java imports.
docs/setup/backend-services.md Updates Java imports.
docs/setup/bundled-cli.md Updates Java imports.
docs/setup/github-oauth.md Updates Java imports and skip.
docs/troubleshooting/debugging.md Updates Java imports and skip.
scripts/docs-validation/extract.ts Adds Java extraction/wrapping support.
scripts/docs-validation/package.json Adds Java validation script.
scripts/docs-validation/validate.ts Adds Java Maven validation.
test/scenarios/auth/byok-anthropic/java/pom.xml Adds Java BYOK Anthropic scenario project.
test/scenarios/auth/byok-anthropic/java/src/main/java/Main.java Adds Java BYOK Anthropic scenario.
test/scenarios/auth/byok-azure/java/pom.xml Adds Java BYOK Azure scenario project.
test/scenarios/auth/byok-azure/java/src/main/java/Main.java Adds Java BYOK Azure scenario.
test/scenarios/auth/byok-openai/java/pom.xml Adds Java BYOK OpenAI scenario project.
test/scenarios/auth/byok-openai/java/src/main/java/Main.java Adds Java BYOK OpenAI scenario.
test/scenarios/auth/gh-app/java/pom.xml Adds Java GitHub OAuth scenario project.
test/scenarios/auth/gh-app/java/src/main/java/Main.java Adds Java GitHub OAuth scenario.
test/scenarios/bundling/app-direct-server/java/pom.xml Adds Java app-direct-server scenario project.
test/scenarios/bundling/app-direct-server/java/src/main/java/Main.java Adds Java app-direct-server scenario.
test/scenarios/bundling/fully-bundled/java/pom.xml Adds Java bundled scenario project.
test/scenarios/bundling/fully-bundled/java/src/main/java/Main.java Adds Java bundled scenario.
test/scenarios/callbacks/hooks/java/pom.xml Adds Java hooks callback scenario project.
test/scenarios/callbacks/hooks/java/src/main/java/Main.java Adds Java hooks callback scenario.
test/scenarios/callbacks/permissions/java/pom.xml Adds Java permissions callback scenario project.
test/scenarios/callbacks/permissions/java/src/main/java/Main.java Adds Java permissions callback scenario.
test/scenarios/callbacks/user-input/java/pom.xml Adds Java user-input callback scenario project.
test/scenarios/callbacks/user-input/java/src/main/java/Main.java Adds Java user-input callback scenario.
test/scenarios/modes/default/java/pom.xml Adds Java default mode scenario project.
test/scenarios/modes/default/java/src/main/java/Main.java Adds Java default mode scenario.
test/scenarios/modes/minimal/java/pom.xml Adds Java minimal mode scenario project.
test/scenarios/modes/minimal/java/src/main/java/Main.java Adds Java minimal mode scenario.
test/scenarios/prompts/attachments/java/pom.xml Adds Java attachments scenario project.
test/scenarios/prompts/attachments/java/src/main/java/Main.java Adds Java attachments scenario.
test/scenarios/prompts/reasoning-effort/java/pom.xml Adds Java reasoning-effort scenario project.
test/scenarios/prompts/reasoning-effort/java/src/main/java/Main.java Adds Java reasoning-effort scenario.
test/scenarios/prompts/system-message/java/pom.xml Adds Java system-message scenario project.
test/scenarios/prompts/system-message/java/src/main/java/Main.java Adds Java system-message scenario.
test/scenarios/sessions/concurrent-sessions/java/pom.xml Adds Java concurrent-sessions scenario project.
test/scenarios/sessions/concurrent-sessions/java/src/main/java/Main.java Adds Java concurrent-sessions scenario.
test/scenarios/sessions/infinite-sessions/java/pom.xml Adds Java infinite-sessions scenario project.
test/scenarios/sessions/infinite-sessions/java/src/main/java/Main.java Adds Java infinite-sessions scenario.
test/scenarios/sessions/session-resume/java/pom.xml Adds Java session-resume scenario project.
test/scenarios/sessions/session-resume/java/src/main/java/Main.java Adds Java session-resume scenario.
test/scenarios/sessions/streaming/java/pom.xml Adds Java streaming scenario project.
test/scenarios/sessions/streaming/java/src/main/java/Main.java Adds Java streaming scenario.
test/scenarios/tools/custom-agents/java/pom.xml Adds Java custom-agents scenario project.
test/scenarios/tools/custom-agents/java/src/main/java/Main.java Adds Java custom-agents scenario.
test/scenarios/tools/mcp-servers/java/pom.xml Adds Java MCP servers scenario project.
test/scenarios/tools/mcp-servers/java/src/main/java/Main.java Adds Java MCP servers scenario.
test/scenarios/tools/no-tools/java/pom.xml Adds Java no-tools scenario project.
test/scenarios/tools/no-tools/java/src/main/java/Main.java Adds Java no-tools scenario.
test/scenarios/tools/skills/java/pom.xml Adds Java skills scenario project.
test/scenarios/tools/skills/java/src/main/java/Main.java Adds Java skills scenario.
test/scenarios/tools/tool-filtering/java/pom.xml Adds Java tool-filtering scenario project.
test/scenarios/tools/tool-filtering/java/src/main/java/Main.java Adds Java tool-filtering scenario.
test/scenarios/tools/tool-overrides/java/pom.xml Adds Java tool-overrides scenario project.
test/scenarios/tools/tool-overrides/java/src/main/java/Main.java Adds Java tool-overrides scenario.
test/scenarios/transport/stdio/java/pom.xml Adds Java stdio transport scenario project.
test/scenarios/transport/stdio/java/src/main/java/Main.java Adds Java stdio transport scenario.
test/scenarios/transport/tcp/java/pom.xml Adds Java TCP transport scenario project.
test/scenarios/transport/tcp/java/src/main/java/Main.java Adds Java TCP transport scenario.

Copilot's findings

  • Files reviewed: 81/81 changed files
  • Comments generated: 24

Comment on lines +16 to +17
new SessionConfig()
.setModel("claude-haiku-4.5"))
Comment on lines +17 to +18
new SessionConfig()
.setModel("claude-haiku-4.5"))
Comment on lines +15 to +20
.setModel("claude-haiku-4.5")
.setSystemMessage(new SystemMessageConfig()
.setMode(SystemMessageMode.REPLACE)
.setContent("You are a helpful assistant. You have access to a limited set of tools. "
+ "When asked about your tools, list exactly which tools you have available."))
.setAvailableTools(List.of("grep", "glob", "view")))
Comment on lines +22 to +26
.setModel("claude-haiku-4.5")
.setSystemMessage(new SystemMessageConfig()
.setMode(SystemMessageMode.REPLACE)
.setContent(systemPrompt))
.setAvailableTools(List.of()))
Comment on lines +27 to +32
var config = new SessionConfig()
.setModel("claude-haiku-4.5")
.setAvailableTools(List.of())
.setSystemMessage(new SystemMessageConfig()
.setMode(SystemMessageMode.REPLACE)
.setContent("You are a helpful assistant. Answer questions concisely."));
Comment on lines +27 to +31
.setModel(model)
.setProvider(new ProviderConfig()
.setType("anthropic")
.setBaseUrl(baseUrl)
.setApiKey(apiKey))
Comment on lines +380 to +385
fs.mkdirSync(srcDir, { recursive: true });

// Move all .java files into src/main/java/
const files = await glob("*.java", { cwd: javaDir });
for (const file of files) {
fs.renameSync(path.join(javaDir, file), path.join(srcDir, file));
- "dotnet/src/**"
- "rust/src/**"
- "rust/Cargo.toml"
- "java/src/**"
- 'python/copilot/**'
- 'go/**/*.go'
- 'dotnet/src/**'
- 'java/src/**'
Comment thread README.md
| **.NET** | [`dotnet/`](./dotnet/) | [Cookbook](https://github.com/github/awesome-copilot/blob/main/cookbook/copilot-sdk/dotnet/README.md) | `dotnet add package GitHub.Copilot.SDK` |
| **Rust** | [`rust/`](./rust/) | — | `cargo add github-copilot-sdk` |
| **Java** | [`github/copilot-sdk-java`](https://github.com/github/copilot-sdk-java) | [Cookbook](https://github.com/github/awesome-copilot/blob/main/cookbook/copilot-sdk/java/README.md) | Maven coordinates<br>`com.github:copilot-sdk-java`<br>See instructions for [Maven](https://github.com/github/copilot-sdk-java?tab=readme-ov-file#maven) and [Gradle](https://github.com/github/copilot-sdk-java?tab=readme-ov-file#gradle) |
| **Java** | [`java/`](./java/) | [Cookbook](https://github.com/github/awesome-copilot/blob/main/cookbook/copilot-sdk/java/README.md) | Maven coordinates<br>`com.github:copilot-sdk-java`<br>See instructions for [Maven](https://github.com/github/copilot-sdk-java?tab=readme-ov-file#maven) and [Gradle](https://github.com/github/copilot-sdk-java?tab=readme-ov-file#gradle) |
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.

2 participants