diff --git a/transact/src/main/java/dev/dbos/transact/conductor/Conductor.java b/transact/src/main/java/dev/dbos/transact/conductor/Conductor.java index a379bea1..32bb6af4 100644 --- a/transact/src/main/java/dev/dbos/transact/conductor/Conductor.java +++ b/transact/src/main/java/dev/dbos/transact/conductor/Conductor.java @@ -155,31 +155,21 @@ private Conductor(Builder builder) { String appName = dbosExecutor.appName(); Objects.requireNonNull(appName, "App Name must not be null to use Conductor"); - var hostname = builder.domain; - if (hostname == null) { + String domain = builder.domain; + if (domain == null) { String dbosDomain = System.getenv("DBOS_DOMAIN"); if (dbosDomain == null || dbosDomain.trim().isEmpty()) { - hostname = "cloud.dbos.dev"; + domain = "wss://cloud.dbos.dev"; } else { - hostname = dbosDomain.trim(); + domain = "wss://" + dbosDomain.trim(); } + domain += "/conductor/v1alpha1"; } else { // ensure there is no trailing slash - hostname = hostname.replaceAll("/$", ""); + domain = domain.replaceAll("/$", ""); } - // Determine protocol based on hostname (use ws for localhost, wss for others) - boolean isLocalHost = - "localhost".equals(hostname) - || hostname.startsWith("localhost:") - || "127.0.0.1".equals(hostname) - || hostname.startsWith("127.0.0.1:"); - var protocol = isLocalHost ? "ws" : "wss"; - - this.url = - String.format( - "%s://%s/conductor/v1alpha1/websocket/%s/%s", - protocol, hostname, appName, builder.conductorKey); + this.url = domain + "/websocket/" + appName + "/" + builder.conductorKey; this.pingPeriodMs = builder.pingPeriodMs; this.pingTimeoutMs = builder.pingTimeoutMs; diff --git a/transact/src/test/java/dev/dbos/transact/conductor/ConductorTest.java b/transact/src/test/java/dev/dbos/transact/conductor/ConductorTest.java index ba374eef..c3273d51 100644 --- a/transact/src/test/java/dev/dbos/transact/conductor/ConductorTest.java +++ b/transact/src/test/java/dev/dbos/transact/conductor/ConductorTest.java @@ -91,7 +91,7 @@ void beforeEach() throws Exception { int port = testServer.getPort(); assertTrue(port != 0, "Invalid Web Socket Server port"); - String domain = String.format("localhost:%d", port); + String domain = String.format("ws://localhost:%d", port); mockDB = mock(SystemDatabase.class); mockExec = mock(DBOSExecutor.class); @@ -126,8 +126,7 @@ public void onOpen(WebSocket conn, ClientHandshake handshake) { try (Conductor conductor = builder.build()) { conductor.start(); assertTrue(listener.latch.await(10, TimeUnit.SECONDS), "latch timed out"); - assertEquals( - "/conductor/v1alpha1/websocket/test-app-name/conductor-key", listener.resourceDescriptor); + assertEquals("/websocket/test-app-name/conductor-key", listener.resourceDescriptor); } }