From 181c6f1a99e55846d8f6f5f85d0fae249a1b3a3c Mon Sep 17 00:00:00 2001 From: Drifter <177202094+Drifter-yh@users.noreply.github.com> Date: Fri, 21 Aug 2026 13:48:51 +0800 Subject: [PATCH] examples: add planning and connectors examples Signed-off-by: Drifter <177202094+Drifter-yh@users.noreply.github.com> --- examples/connectors/pom.xml | 42 +++++++++++++++ .../com/getaxonflow/examples/Connectors.java | 49 +++++++++++++++++ examples/planning/pom.xml | 42 +++++++++++++++ .../com/getaxonflow/examples/Planning.java | 54 +++++++++++++++++++ 4 files changed, 187 insertions(+) create mode 100644 examples/connectors/pom.xml create mode 100644 examples/connectors/src/main/java/com/getaxonflow/examples/Connectors.java create mode 100644 examples/planning/pom.xml create mode 100644 examples/planning/src/main/java/com/getaxonflow/examples/Planning.java diff --git a/examples/connectors/pom.xml b/examples/connectors/pom.xml new file mode 100644 index 0000000..8859f46 --- /dev/null +++ b/examples/connectors/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + com.getaxonflow.examples + connectors + 1.0-SNAPSHOT + jar + + AxonFlow Java SDK — Connectors Example + + Minimal read-only example exercising listConnectors() against + a running AxonFlow agent. + + + + 11 + 11 + UTF-8 + + + + + com.getaxonflow + axonflow-sdk + 9.0.0 + + + + + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + com.getaxonflow.examples.Connectors + + + + + diff --git a/examples/connectors/src/main/java/com/getaxonflow/examples/Connectors.java b/examples/connectors/src/main/java/com/getaxonflow/examples/Connectors.java new file mode 100644 index 0000000..e17d547 --- /dev/null +++ b/examples/connectors/src/main/java/com/getaxonflow/examples/Connectors.java @@ -0,0 +1,49 @@ +// Copyright 2026 AxonFlow +// SPDX-License-Identifier: Apache-2.0 +// +// Minimal read-only AxonFlow Java SDK connectors example. +// +// Run from this directory: +// +// mvn -q compile exec:java +package com.getaxonflow.examples; + +import com.getaxonflow.sdk.AxonFlow; +import com.getaxonflow.sdk.AxonFlowConfig; +import com.getaxonflow.sdk.types.ConnectorInfo; + +import java.util.List; + +public class Connectors { + + public static void main(String[] args) { + String endpoint = envOrDefault("AXONFLOW_AGENT_URL", "http://localhost:8080"); + String clientId = envOrDefault("AXONFLOW_CLIENT_ID", "community"); + String clientSecret = envOrDefault("AXONFLOW_CLIENT_SECRET", ""); + + try (AxonFlow client = + AxonFlow.create( + AxonFlowConfig.builder() + .endpoint(endpoint) + .clientId(clientId) + .clientSecret(clientSecret) + .build())) { + List connectors = client.listConnectors(); + System.out.printf("Found %d connectors%n", connectors.size()); + for (ConnectorInfo connector : connectors) { + System.out.printf( + "- id=%s name=%s type=%s version=%s installed=%s%n", + connector.getId(), + connector.getName(), + connector.getType(), + connector.getVersion(), + connector.isInstalled()); + } + } + } + + private static String envOrDefault(String name, String fallback) { + String value = System.getenv(name); + return value == null || value.isEmpty() ? fallback : value; + } +} diff --git a/examples/planning/pom.xml b/examples/planning/pom.xml new file mode 100644 index 0000000..cb2855a --- /dev/null +++ b/examples/planning/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + com.getaxonflow.examples + planning + 1.0-SNAPSHOT + jar + + AxonFlow Java SDK — Planning Example + + Minimal example exercising generatePlan() + executePlan() against + a running AxonFlow agent. + + + + 11 + 11 + UTF-8 + + + + + com.getaxonflow + axonflow-sdk + 9.0.0 + + + + + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + com.getaxonflow.examples.Planning + + + + + diff --git a/examples/planning/src/main/java/com/getaxonflow/examples/Planning.java b/examples/planning/src/main/java/com/getaxonflow/examples/Planning.java new file mode 100644 index 0000000..ca0d8a0 --- /dev/null +++ b/examples/planning/src/main/java/com/getaxonflow/examples/Planning.java @@ -0,0 +1,54 @@ +// Copyright 2026 AxonFlow +// SPDX-License-Identifier: Apache-2.0 +// +// Minimal AxonFlow Java SDK planning example. +// +// This example requires a local AxonFlow stack with an LLM provider configured. +// +// Run from this directory: +// +// mvn -q compile exec:java +package com.getaxonflow.examples; + +import com.getaxonflow.sdk.AxonFlow; +import com.getaxonflow.sdk.AxonFlowConfig; +import com.getaxonflow.sdk.types.PlanRequest; +import com.getaxonflow.sdk.types.PlanResponse; + +public class Planning { + + public static void main(String[] args) { + String endpoint = envOrDefault("AXONFLOW_AGENT_URL", "http://localhost:8080"); + String clientId = envOrDefault("AXONFLOW_CLIENT_ID", "community"); + String clientSecret = envOrDefault("AXONFLOW_CLIENT_SECRET", ""); + + try (AxonFlow client = + AxonFlow.create( + AxonFlowConfig.builder() + .endpoint(endpoint) + .clientId(clientId) + .clientSecret(clientSecret) + .build())) { + PlanRequest request = + PlanRequest.builder() + .objective("Research a topic and summarize the key findings") + .build(); + + System.out.println("Generating plan..."); + PlanResponse plan = client.generatePlan(request); + System.out.println("Plan generated: " + plan.getPlanId()); + + System.out.println("Executing plan..."); + PlanResponse result = client.executePlan(plan.getPlanId()); + System.out.println("Plan execution status: " + result.getStatus()); + if (result.getResult() != null) { + System.out.println("Result: " + result.getResult()); + } + } + } + + private static String envOrDefault(String name, String fallback) { + String value = System.getenv(name); + return value == null || value.isEmpty() ? fallback : value; + } +}