mirror of
https://github.com/github/awesome-copilot.git
synced 2026-04-11 02:35:55 +00:00
Add Java SDK cookbook with 7 recipes
Add complete Java cookbook matching the pattern of existing .NET, Go, Node.js, and Python cookbooks. All 7 recipes included: - Ralph Loop: Autonomous AI task loops with JBang - Error Handling: try-with-resources, ExecutionException, timeouts - Multiple Sessions: Parallel sessions with CompletableFuture - Managing Local Files: AI-powered file organization - PR Visualization: Interactive PR age charts - Persisting Sessions: Save/resume with custom IDs - Accessibility Report: WCAG reports via Playwright MCP Each recipe includes both markdown documentation and a standalone JBang-runnable Java file in recipe/.
This commit is contained in:
37
cookbook/copilot-sdk/java/recipe/MultipleSessions.java
Normal file
37
cookbook/copilot-sdk/java/recipe/MultipleSessions.java
Normal file
@@ -0,0 +1,37 @@
|
||||
///usr/bin/env jbang "$0" "$@" ; exit $?
|
||||
//DEPS com.github:copilot-sdk-java:0.2.1-java.1
|
||||
|
||||
import com.github.copilot.sdk.*;
|
||||
import com.github.copilot.sdk.json.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class MultipleSessions {
|
||||
public static void main(String[] args) throws Exception {
|
||||
try (var client = new CopilotClient()) {
|
||||
client.start().get();
|
||||
|
||||
var config = new SessionConfig()
|
||||
.setModel("gpt-5")
|
||||
.setOnPermissionRequest(PermissionHandler.APPROVE_ALL);
|
||||
|
||||
// Create 3 sessions in parallel
|
||||
var f1 = client.createSession(config);
|
||||
var f2 = client.createSession(config);
|
||||
var f3 = client.createSession(new SessionConfig()
|
||||
.setModel("claude-sonnet-4.5")
|
||||
.setOnPermissionRequest(PermissionHandler.APPROVE_ALL));
|
||||
CompletableFuture.allOf(f1, f2, f3).get();
|
||||
|
||||
var s1 = f1.get(); var s2 = f2.get(); var s3 = f3.get();
|
||||
|
||||
// Send a message to each session
|
||||
System.out.println("S1: " + s1.sendAndWait(new MessageOptions().setPrompt("Explain Java records")).get().getMessage());
|
||||
System.out.println("S2: " + s2.sendAndWait(new MessageOptions().setPrompt("Explain sealed classes")).get().getMessage());
|
||||
System.out.println("S3: " + s3.sendAndWait(new MessageOptions().setPrompt("Explain pattern matching")).get().getMessage());
|
||||
|
||||
// Clean up
|
||||
s1.destroy().get(); s2.destroy().get(); s3.destroy().get();
|
||||
client.stop().get();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user