You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
5
5
Spawn is a Java 25 framework for programmatically launching and controlling processes, JVMs, and Docker containers. It provides a unified abstraction (`Platform` / `Application` / `Process`) over different execution environments. The core pattern: define a `Specification`, call `platform.launch(spec)`, get back an `Application` with `CompletableFuture`-based lifecycle hooks.
6
6
7
-
**Stack**: Java 25, Maven, OkHttp3, Jackson, junixsocket, proprietary `build.base.*` and `build.typesystem.injection` libraries from Workday Artifactory
7
+
**Stack**: Java 25, Maven, Jackson, junixsocket, proprietary `build.base.*` and `build.codemodel.injection`
8
8
9
9
**Structure**: 8 Maven modules in a monorepo, each mapping to a JPMS module:
10
10
-`spawn-option` → shared option types
@@ -14,18 +14,18 @@ Spawn is a Java 25 framework for programmatically launching and controlling proc
14
14
-`spawn-local-platform` → local OS process launcher (`LocalMachine`)
For detailed architecture, see [docs/CODEBASE_MAP.md](docs/CODEBASE_MAP.md).
20
20
21
21
## Build
22
22
23
23
```bash
24
24
./mvnw clean install # build all modules + run tests
25
-
./mvnw clean install -pl spawn-docker-okhttp# build specific module
25
+
./mvnw clean install -pl spawn-docker-jdk# build specific module
26
26
```
27
27
28
-
Tests requiring Docker are gated by `@EnabledIf("isDockerAvailable")`. The `spawn-docker-okhttp` module requires `--enable-native-access=ALL-UNNAMED` (configured in surefire).
28
+
Tests requiring Docker are gated by `@EnabledIf("isDockerAvailable")`. The `spawn-docker-jdk` module requires `--enable-native-access=ALL-UNNAMED` (configured in surefire).
@@ -335,9 +335,9 @@ Server (listens on spawn:// URI)
335
335
336
336
---
337
337
338
-
### `spawn-docker-okhttp`
338
+
### `spawn-docker-jdk`
339
339
340
-
**Purpose:**OkHttp-based concrete implementation of `spawn-docker` interfaces.
340
+
**Purpose:**JDK-native concrete implementation of `spawn-docker` interfaces. Uses `java.net.http.HttpClient` for TCP and `java.nio.channels.SocketChannel` with `UnixDomainSocketAddress` for Unix domain sockets. No third-party HTTP dependencies.
341
341
**Entry point:** Four `Session.Factory` implementations discovered via `ServiceLoader`, in priority order:
342
342
1.`UnixDomainSocketBasedSession.Factory` — Unix socket (`/var/run/docker.sock` or Docker Desktop socket)
0 commit comments