Repository navigation
Commit fdedb3a
authored
Move the Conductor client out to dev.dbos:transact-enterprise (#632)
The Conductor client moves out of this module into the closed-source
`dev.dbos:transact-enterprise` artifact (dbos-inc/dbos-enterprise-java).
Core already finds its client through the `ConductorProvider` service
(#626). The enterprise artifact now registers the only implementation.
## What moves
- `conductor/Conductor.java` and the `conductor/protocol` package are
removed, along with `BundledConductorProvider` and its
`META-INF/services` registration.
- `ConductorTest`, `TestWebSocketServer` and the Java-WebSocket test
dependency go with the client.
- The deprecated admin server used two protocol classes,
`WorkflowsOutput` and `StringOrListDeserializer`. It now has
package-private copies in `dev.dbos.transact.admin`.
No public symbol, config key or on-disk write changes outside the
`conductor` packages. `ConductorProvider`, `ConductorConnection`,
`ConductorOptions` and `ConductorProviders` stay.
## When a provider is required
Launch requires exactly one provider only when the application will
connect, and otherwise fails naming the artifact and version to add. The
application connects when:
- a Conductor key is configured; or
- on DBOS Cloud (`DBOS__CLOUD=true`), when `DBOS__CONDUCTOR_APP_NAME`,
`DBOS__CONDUCTOR_KEY` and `DBOS__CONDUCTOR_URL` are all set.
Before this change, any `DBOS__CLOUD=true` launch required a provider,
even one that would never connect. The executor now works out its
Conductor options in the constructor and loads a provider only when
there are options. The `conductorKey` javadoc in `DBOSConfig` and the
Spring starter's `dbos.conductor.key` say the enterprise artifact is
needed.
## Tests
- Tests that launch with Conductor use `TestConductorProvider`, a
test-only provider that connects to nothing and records the options of
each connection.
- `cloudAutoStartsConductor` checks that the `DBOS__CONDUCTOR_*`
variables reach the provider.
- `cloudWithoutConductorSettingsDoesNotConnect` checks that a Cloud
launch without them needs no provider.
- `database/ImportExportRoundTripTest` keeps the export/import
round-trip tests in core and passes the exported records straight to
import:
- a debounced workflow comes back debounced;
- payloads in the old `workflow_status` columns import into the payload
tables;
- inputs, outputs and errors keep their Java types.
## Merging
The paired enterprise PR adds the client. Merge this first, then the
enterprise PR once this repo's `Publish` run has finished: enterprise's
publish compiles against the newest core build on GitHub Packages.
Between this publish and the enterprise one, an application that
resolves both artifacts with `+` has no Conductor client.
Applications that connect to Conductor, including DBOS Cloud apps with
Conductor settings, must add `dev.dbos:transact-enterprise` when they
upgrade. This belongs in the 1.3 release notes.
🤖 Generated with [Claude Code](https://claude.com/claude-code)1 parent 200117b commit fdedb3a
82 files changed
Lines changed: 144 additions & 8058 deletions
File tree
- gradle
- transact-spring-boot-starter/src/main/java/dev/dbos/transact/spring
- transact
- src
- main
- java/dev/dbos/transact
- admin
- conductor
- protocol
- config
- execution
- resources/META-INF/services
- test
- java/dev/dbos/transact
- conductor
- config
- database
- execution
- resources/META-INF/services
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | 8 | | |
10 | 9 | | |
11 | 10 | | |
| |||
42 | 41 | | |
43 | 42 | | |
44 | 43 | | |
45 | | - | |
46 | 44 | | |
47 | 45 | | |
48 | 46 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | | - | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
96 | 99 | | |
97 | 100 | | |
98 | 101 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
29 | 28 | | |
30 | 29 | | |
31 | 30 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | 3 | | |
5 | 4 | | |
6 | 5 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | 3 | | |
5 | 4 | | |
6 | 5 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | 3 | | |
5 | 4 | | |
6 | 5 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
This file was deleted.
0 commit comments