Move java to monorepo. Phase 05: Cross-Cutting Updates#1441
Open
edburns wants to merge 15 commits into
Open
Conversation
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
3db61e5 to
d49e68c
Compare
…opilot.sdk -> com.github.copilot)
Contributor
There was a problem hiding this comment.
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/**' |
| | **.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) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
⚠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
mainso those commits do not show up in this PR.⌛ Phase 05: Cross-Cutting Updates
copilot-instructions.mdto include Java section. See Proposal: more context for Java incopilot-instructions. #1390 .README.mdto 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#1811scenario-builds.ymlto include Java scenarios (if applicable).docs-validation.ymlto include Java code snippets.lsp.jsonto add Java LSP config (optional). See Consider adding Java tolsp.json#1439docs/getting-started and feature pages. See https://github.com/github/copilot-sdk-partners/issues/94sdk-protocol-version.jsonif Java needs it.