This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch docs
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/docs by this push:
new a639636f18 TODO-351 B-client-4: remove empty juneau-sc-client module
(10.0 breaking-change window)
a639636f18 is described below
commit a639636f18e9f136076f6aa7219b006d89f2fca3
Author: James Bognar <[email protected]>
AuthorDate: Wed Aug 12 16:07:08 2026 -0400
TODO-351 B-client-4: remove empty juneau-sc-client module (10.0
breaking-change window)
---
artifact-paths.json | 1 -
pages/topics/01.00.JuneauEcosystemOverview.md | 1 -
pages/topics/18.00.JuneauSc.md | 7 +-
pages/topics/18.01.ScServerOverview.md | 1 -
pages/topics/18.02.ScClientOverview.md | 100 --------------------------
sidebars.ts | 5 --
src/pages/about.md | 1 -
static/ai/juneau-knowledge.jsonl | 3 +-
static/ai/manifest.json | 8 +--
static/ai/taxonomy.json | 4 +-
10 files changed, 10 insertions(+), 121 deletions(-)
diff --git a/artifact-paths.json b/artifact-paths.json
index 0299d452ad..816e7fb1a1 100644
--- a/artifact-paths.json
+++ b/artifact-paths.json
@@ -74,7 +74,6 @@
"juneau-rest-server-view-mustache":
"juneau-rest/juneau-rest-server-view-mustache",
"juneau-rest-server-view-thymeleaf":
"juneau-rest/juneau-rest-server-view-thymeleaf",
"juneau-sc": "juneau-sc",
- "juneau-sc-client": "juneau-sc/juneau-sc-client",
"juneau-sc-server": "juneau-sc/juneau-sc-server",
"juneau-shaded": "juneau-shaded",
"juneau-shaded-all": "juneau-shaded/juneau-shaded-all",
diff --git a/pages/topics/01.00.JuneauEcosystemOverview.md
b/pages/topics/01.00.JuneauEcosystemOverview.md
index 673daa2bee..3be042f055 100644
--- a/pages/topics/01.00.JuneauEcosystemOverview.md
+++ b/pages/topics/01.00.JuneauEcosystemOverview.md
@@ -99,7 +99,6 @@ The Juneau ecosystem consists of the following parts:
|
[juneau‑microservice‑test](https://github.com/apache/juneau/tree/master/juneau-microservice/juneau-microservice-test)
| Microservice integration test harness | • *None* |
| **juneau-sc** | | |
|
[juneau‑sc‑server](https://github.com/apache/juneau/tree/master/juneau-sc/juneau-sc-server)
| Server Config Server API | • Servlet 5.0+ |
-|
[juneau‑sc‑client](https://github.com/apache/juneau/tree/master/juneau-sc/juneau-sc-client)
| Server Config Client API | • *None* |
| **juneau-bundles** | | |
|
[juneau‑microservice‑jetty‑bundle](https://github.com/apache/juneau/tree/master/juneau-bundles/juneau-microservice-jetty-bundle)
| All-in-one Jetty microservice bundle (shaded) | • Jetty 12 |
|
[juneau‑microservice‑tomcat‑bundle](https://github.com/apache/juneau/tree/master/juneau-bundles/juneau-microservice-tomcat-bundle)
| All-in-one Tomcat microservice bundle (shaded) | • Tomcat 10+ |
diff --git a/pages/topics/18.00.JuneauSc.md b/pages/topics/18.00.JuneauSc.md
index c0a2e21b9c..cbebafca79 100644
--- a/pages/topics/18.00.JuneauSc.md
+++ b/pages/topics/18.00.JuneauSc.md
@@ -4,14 +4,13 @@ title: "juneau-sc"
slug: JuneauSc
---
-The `juneau-sc` group provides a **Git-backed configuration server/client
pair** that exposes
+The `juneau-sc` group provides a **Git-backed configuration server** that
exposes
[juneau-config](/docs/topics/JuneauConfig) files stored in a remote Git
repository over REST, enabling
centralised configuration management across a fleet of microservices.
| Module | Role |
|--------|------|
| [juneau-sc-server](/docs/topics/ScServerOverview) | A standalone
Juneau/Jetty microservice that clones a remote Git repo and serves `.cfg` files
as JSON over a REST API. |
-| [juneau-sc-client](/docs/topics/ScClientOverview) | *(Preview — no
implementation yet)* Will provide a high-level client API for consuming the
`juneau-sc-server` REST endpoints. |
## Architecture
@@ -32,8 +31,8 @@ centralised configuration management across a fleet of
microservices.
▼
┌─────────────────────────────┐
│ Consuming microservice │
- │ (manual REST call or │
- │ future sc-client library) │
+ │ (manual REST call via │
+ │ juneau-rest-client) │
└─────────────────────────────┘
```
diff --git a/pages/topics/18.01.ScServerOverview.md
b/pages/topics/18.01.ScServerOverview.md
index 21bbe1ca63..1899584857 100644
--- a/pages/topics/18.01.ScServerOverview.md
+++ b/pages/topics/18.01.ScServerOverview.md
@@ -142,6 +142,5 @@ deployment.
## See Also
- [juneau-sc Overview](/docs/topics/JuneauSc) — architecture overview and repo
layout
-- [juneau-sc-client](/docs/topics/ScClientOverview) — companion client module
- [juneau-config](/docs/topics/JuneauConfig) — the underlying config API
- [juneau-microservice Basics](/docs/topics/JuneauMicroservice) — the
microservice framework used by the server
diff --git a/pages/topics/18.02.ScClientOverview.md
b/pages/topics/18.02.ScClientOverview.md
deleted file mode 100644
index 3c36a06213..0000000000
--- a/pages/topics/18.02.ScClientOverview.md
+++ /dev/null
@@ -1,100 +0,0 @@
----
-title: "juneau-sc-client"
-slug: ScClientOverview
----
-
-<DependencyInfo artifact="juneau-sc-client" />
-
-:::note
-**Preview module** — `juneau-sc-client` is declared as a Maven module in the
`juneau-sc` parent POM but
-contains no Java source yet. The dependency can be declared, but no client API
classes are available.
-This page documents the intended design and a manual workaround using
`juneau-rest-client`.
-:::
-
-## Intended Purpose
-
-`juneau-sc-client` will provide a high-level Java API for consuming the
-[juneau-sc-server](/docs/topics/ScServerOverview) REST endpoint, making it
easy to retrieve
-centralised configuration and surface it as a standard
-[juneau-config](/docs/topics/JuneauConfig) `Config` object. Application code
that already uses
-the `Config` API will not require changes to switch from a local file to a
remote config server.
-
-Planned capabilities (subject to change):
-
-- One-line bootstrap: connect to a server URL and get back a populated
`Config`.
-- Transparent layering of `APPLICATION` defaults with `PROJECT` overrides.
-- Configurable polling or change-notification support to keep the local cache
in sync.
-
-## Current Workaround — Using `juneau-rest-client` Directly
-
-Until the client library is implemented, you can consume `juneau-sc-server`
with a plain
-`RestClient` and parse the response manually:
-
-```xml
-<dependency>
- <groupId>org.apache.juneau</groupId>
- <artifactId>juneau-rest-client</artifactId>
- <version>${juneau.version}</version>
-</dependency>
-```
-
-```java
-import org.apache.juneau.config.*;
-import org.apache.juneau.config.store.*;
-import org.apache.juneau.marshall.collections.*;
-import org.apache.juneau.marshall.json.*;
-import org.apache.juneau.rest.client.*;
-
-public class ScClientExample {
-
- public static void main(String[] args) throws Exception {
-
- // Build a Juneau REST client targeting the sc-server (NG client —
explicit JSON serializer/parser)
- RestClient client = RestClient.builder()
- .rootUrl("http://config-host:10000")
- .serializer(JsonSerializer.DEFAULT)
- .parser(JsonParser.DEFAULT)
- .build();
-
- // Fetch config for project "my-service" on branch "main"
- // Response type mirrors the server's JSON structure:
- // { "APPLICATION": {"value": "..."}, "PROJECT": {"value": "..."} }
- JsonMap response = client
- .get("/configs/my-service/main")
- .run()
- .body()
- .as(JsonMap.class);
-
- String appCfgText = response.get("APPLICATION",
JsonMap.class).getString("value");
- String projectCfgText = response.get("PROJECT",
JsonMap.class).getString("value");
-
- // Parse the raw .cfg text into a Config object
- Config appConfig = Config.create()
- .store(MemoryStore.DEFAULT)
- .name("app")
- .build();
- appConfig.load(appCfgText, true);
-
- // Now use the Config normally
- String value = appConfig.get("Section/key").orElse("default");
- }
-}
-```
-
-## Response Structure
-
-The server returns a JSON object with up to two keys:
-
-| Key | Source file | Description |
-|-----|-------------|-------------|
-| `APPLICATION` | `application.cfg` | Shared defaults for all projects on the
same server. |
-| `PROJECT` | `{project}.cfg` | Project-specific values; typically override
`APPLICATION` entries. |
-
-Each value is an object `{ "value": "<raw .cfg text>" }`.
-
-## See Also
-
-- [juneau-sc Overview](/docs/topics/JuneauSc) — motivation and architecture
overview
-- [juneau-sc-server](/docs/topics/ScServerOverview) — companion server module
-- [juneau-config](/docs/topics/JuneauConfig) — the underlying config API
-- [juneau-rest-client Basics](/docs/topics/JuneauRestClient) — REST client API
used in the workaround
diff --git a/sidebars.ts b/sidebars.ts
index 5b26dcc82f..164d364220 100644
--- a/sidebars.ts
+++ b/sidebars.ts
@@ -2180,11 +2180,6 @@ const sidebars: SidebarsConfig = {
id:
'topics/18.01.ScServerOverview',
label: '18.1.
juneau-sc-server',
},
- {
- type: 'doc',
- id:
'topics/18.02.ScClientOverview',
- label: '18.2.
juneau-sc-client',
- },
],
link: {
type: 'doc',
diff --git a/src/pages/about.md b/src/pages/about.md
index 80efa58082..c2021ae5b5 100644
--- a/src/pages/about.md
+++ b/src/pages/about.md
@@ -90,7 +90,6 @@ The Juneau ecosystem consists of the following parts. A few
rows are **grouped f
| [juneau-microservice-tomcat](/docs/topics/JuneauMicroserviceTomcat) |
Tomcat-embedded microservice launcher. |
| **juneau-sc** | |
| [juneau-sc-server](/docs/topics/ScServerOverview) | Centralized
configuration server exposing juneau-config files over REST. |
-| [juneau-sc-client](/docs/topics/ScClientOverview) | Client for fetching
configuration from a juneau-sc-server instance. |
| **juneau-shaded** | |
| [juneau-shaded-core](/docs/topics/JuneauShadedCore) | Shaded uber-jar of the
juneau-core modules for zero-conflict dependency management. |
| [juneau-shaded-rest-client](/docs/topics/JuneauShadedRestClient) | Shaded
uber-jar of juneau-rest-client and its dependencies. |
diff --git a/static/ai/juneau-knowledge.jsonl b/static/ai/juneau-knowledge.jsonl
index b8e69f74e2..99931c3860 100644
--- a/static/ai/juneau-knowledge.jsonl
+++ b/static/ai/juneau-knowledge.jsonl
@@ -485,9 +485,8 @@
{"description": "> **See also:** [Health / Readiness / Liveness
Probes](/docs/topics/HealthProbes) \u2014 the probe surface (`/healthz`,
`/readyz`, `/livez`) this page gates during shutdown.\n\nStarting with
**10.0.0**, both embedded-server microservice flavors \u2014
`juneau-microservice-jetty` and `juneau-microservice-tomcat` \u2014 perform a
**zero-downtime graceful shutdown** suitable for rolling Kubernetes
deployments. The two servers share one identical shutdown contract.\n\nWhen a
[...]
{"description": "> **See also:** [Health / Readiness / Liveness
Probes](/docs/topics/HealthProbes) \u2014 the health half of the management
surface, and [REST Server \u2014 Mixins and Multi-Mount
Paths](/docs/topics/RestServerComposition) \u2014 the `@Rest(mixins=...)`
composition primitives this page builds on.\n\nStarting with **10.0.0**, Juneau
ships a coherent, discoverable **Actuator-style management surface** while
preserving Juneau's a-la-carte composability. Every endpoint exists [...]
{"description": "<DependencyInfo artifact=\"juneau-microservice-tomcat\"
bundle=\"org.apache.juneau.microservice.tomcat\" />\n\n###
Contents/Features\n\n`juneau-microservice-tomcat` is a Tomcat-embedded
microservice launcher that mirrors the developer experience
of\n[juneau-microservice-jetty](/docs/topics/JuneauMicroserviceJetty) but runs
Juneau REST resources inside an\nembedded Apache Tomcat servlet container
instead of Jetty. It is part of the [juneau-microservice](/docs/topics/Junea
[...]
-{"description": "The `juneau-sc` group provides a **Git-backed configuration
server/client pair** that exposes\n[juneau-config](/docs/topics/JuneauConfig)
files stored in a remote Git repository over REST, enabling\ncentralised
configuration management across a fleet of microservices.\n\n| Module | Role
|\n|--------|------|\n| [juneau-sc-server](/docs/topics/ScServerOverview) | A
standalone Juneau/Jetty microservice that clones a remote Git repo and serves
`.cfg` files as JSON over a RES [...]
+{"description": "The `juneau-sc` group provides a **Git-backed configuration
server** that exposes\n[juneau-config](/docs/topics/JuneauConfig) files stored
in a remote Git repository over REST, enabling\ncentralised configuration
management across a fleet of microservices.\n\n| Module | Role
|\n|--------|------|\n| [juneau-sc-server](/docs/topics/ScServerOverview) | A
standalone Juneau/Jetty microservice that clones a remote Git repo and serves
`.cfg` files as JSON over a REST API. |\n\n [...]
{"description": "<DependencyInfo artifact=\"juneau-sc-server\" />\n\n###
Contents/Features\n\n`juneau-sc-server` is the server component of the
[juneau-sc](/docs/topics/JuneauSc) configuration\nserver. It is a **standalone
Juneau microservice** built on `juneau-microservice-jetty` that:\n\n- Clones or
pulls a remote Git repository containing `.cfg` files.\n- Exposes those files
over a REST API at `GET /configs/{project}/{branch}`.\n- Returns a JSON map
containing up to two configuration [...]
-{"description": "<DependencyInfo artifact=\"juneau-sc-client\"
/>\n\n:::note\n**Preview module** \u2014 `juneau-sc-client` is declared as a
Maven module in the `juneau-sc` parent POM but\ncontains no Java source yet.
The dependency can be declared, but no client API classes are available.\nThis
page documents the intended design and a manual workaround using
`juneau-rest-client`.\n:::\n\n## Intended Purpose\n\n`juneau-sc-client` will
provide a high-level Java API for consuming the\n[june [...]
{"description": "The **juneau-petstore** family is the canonical Apache Juneau
showcase application. It packages a small, complete sample petstore (pets,
orders, users) and deploys it under two runtimes \u2014 Jetty/`Microservice`
and Spring Boot \u2014 using the *exact same* REST surface, demonstrating that
a Juneau service is just a `Servlet` and travels unchanged across deployment
containers.\n\n> **In-tree, no external repo.** The petstore lives directly in
the Juneau reactor under ` [...]
{"description": "The
[juneau-examples-core](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-core)
module is a collection of small, standalone `main()` programs that demonstrate
Apache Juneau's core marshalling APIs \u2014 serializing Plain Old Java Objects
(POJOs) to a format and parsing them back \u2014 plus a few extension points (a
custom serializer/parser and a custom config store). Each example is
self-contained: run it directly and read the inline comme [...]
{"description": "Apache Juneau ships two packaging aids that make it easy to
depend on a coherent, version-aligned slice\nof the framework without
hand-maintaining a long list of `<version>` tags:\n\n- A **Bill of Materials
(BOM)** \u2014 `org.apache.juneau:juneau-bom` \u2014 for version alignment.\n-
A small set of curated **dependency bundles** \u2014 one per deployment shape
\u2014 that transitively pull a\n coherent module set.\n\nBoth are
deliberately **dependency-only** aids. They [...]
diff --git a/static/ai/manifest.json b/static/ai/manifest.json
index 241de49b6e..3c9b7c6d9f 100644
--- a/static/ai/manifest.json
+++ b/static/ai/manifest.json
@@ -1,10 +1,10 @@
{
- "generated_at": "content-hash:720bbcb9cdf1",
- "record_count": 508,
+ "generated_at": "content-hash:c65620ff1941",
+ "record_count": 507,
"schema_version": "1.0.0",
"source_commit": {
- "juneau": "4588677ffbede7055a786f1b78f31aa6028ef9a1",
- "juneau_docs": "e656f144a0e226e38f97da2b4fecceba729af8aa"
+ "juneau": "a8ee40428f42e51de1d62cabe01b9d77261c2cc0",
+ "juneau_docs": "e7b3d653d49551c2c15e8630ad402b10ea00ab90"
},
"version": "10.0.0"
}
diff --git a/static/ai/taxonomy.json b/static/ai/taxonomy.json
index 43e0485fd0..6689de3425 100644
--- a/static/ai/taxonomy.json
+++ b/static/ai/taxonomy.json
@@ -2,7 +2,7 @@
"modules": {
"00": 19,
"01": 20,
- "02": 31,
+ "02": 30,
"03": 39,
"04": 19,
"05": 11,
@@ -78,6 +78,6 @@
"source_types": {
"api-metadata": 16,
"release-note": 85,
- "topic": 407
+ "topic": 406
}
}