Skip to content

Commit 1941d38

Browse files
Remove experimental tag from Nexus (#2454)
1 parent 26de251 commit 1941d38

11 files changed

+6
-31
lines changed

temporal-sdk/src/main/java/io/temporal/nexus/Nexus.java

-2
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,10 @@
2020

2121
package io.temporal.nexus;
2222

23-
import io.temporal.common.Experimental;
2423
import io.temporal.internal.nexus.NexusInternal;
2524
import io.temporal.internal.sync.WorkflowInternal;
2625

2726
/** This class contains methods exposing Temporal APIs for Nexus Operations */
28-
@Experimental
2927
public final class Nexus {
3028
/**
3129
* Can be used to get information about a Nexus Operation. This static method relies on a

temporal-sdk/src/main/java/io/temporal/nexus/NexusOperationContext.java

-2
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,12 @@
2222

2323
import com.uber.m3.tally.Scope;
2424
import io.temporal.client.WorkflowClient;
25-
import io.temporal.common.Experimental;
2625
import io.temporal.serviceclient.WorkflowServiceStubsOptions;
2726

2827
/**
2928
* Context object passed to a Nexus operation implementation. Use {@link
3029
* Nexus#getOperationContext()} from a Nexus Operation implementation to access.
3130
*/
32-
@Experimental
3331
public interface NexusOperationContext {
3432

3533
/**

temporal-sdk/src/main/java/io/temporal/nexus/WorkflowRunOperation.java

+6-5
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,21 @@
2222

2323
import io.nexusrpc.handler.*;
2424
import io.nexusrpc.handler.OperationHandler;
25+
import io.temporal.api.enums.v1.WorkflowIdConflictPolicy;
2526
import io.temporal.client.WorkflowOptions;
26-
import io.temporal.common.Experimental;
2727

2828
/**
2929
* WorkflowRunOperation can be used to map a workflow run to a Nexus operation
3030
*
31+
* <h3>Pre-release feature: Attaching multiple Nexus callers to an underlying handler Workflow:</h3>
32+
*
3133
* <p>{@link WorkflowOptions#getWorkflowIdConflictPolicy()} is by default set to fail if a workflow
3234
* is already running. That is, if a caller executes another operation that starts the same
3335
* workflow, it will fail. You can set it to {@link
34-
* io.temporal.api.enums.v1.WorkflowIdConflictPolicy#WORKFLOW_ID_CONFLICT_POLICY_USE_EXISTING} to
35-
* attach the caller's callback to the existing running workflow. This way, all attached callers
36-
* will be notified when the workflow completes.
36+
* WorkflowIdConflictPolicy#WORKFLOW_ID_CONFLICT_POLICY_USE_EXISTING} to attach the caller's
37+
* callback to the existing running workflow. This way, all attached callers will be notified when
38+
* the workflow completes.
3739
*/
38-
@Experimental
3940
public final class WorkflowRunOperation {
4041
/**
4142
* Maps a workflow method to an {@link io.nexusrpc.handler.OperationHandler}.

temporal-sdk/src/main/java/io/temporal/workflow/NexusOperationHandle.java

-3
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,10 @@
2020

2121
package io.temporal.workflow;
2222

23-
import io.temporal.common.Experimental;
24-
2523
/**
2624
* OperationHandle is used to interact with a scheduled nexus operation. Created through {@link
2725
* Workflow#startNexusOperation}.
2826
*/
29-
@Experimental
3027
public interface NexusOperationHandle<R> {
3128
/**
3229
* Returns a promise that is resolved when the operation reaches the STARTED state. For

temporal-sdk/src/main/java/io/temporal/workflow/NexusOperationOptions.java

-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
*
3131
* <p>Use {@link NexusOperationOptions#newBuilder()} to construct an instance.
3232
*/
33-
@Experimental
3433
public final class NexusOperationOptions {
3534
public static NexusOperationOptions.Builder newBuilder() {
3635
return new NexusOperationOptions.Builder();

temporal-sdk/src/main/java/io/temporal/workflow/NexusServiceOptions.java

-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
package io.temporal.workflow;
2222

2323
import com.google.common.base.Preconditions;
24-
import io.temporal.common.Experimental;
2524
import java.util.Collections;
2625
import java.util.Map;
2726
import java.util.Objects;
@@ -31,7 +30,6 @@
3130
*
3231
* <p>Use {@link NexusServiceOptions#newBuilder()} to construct an instance.
3332
*/
34-
@Experimental
3533
public final class NexusServiceOptions {
3634

3735
public static NexusServiceOptions.Builder newBuilder() {

temporal-sdk/src/main/java/io/temporal/workflow/NexusServiceStub.java

-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
package io.temporal.workflow;
2222

23-
import io.temporal.common.Experimental;
2423
import java.lang.reflect.Type;
2524

2625
/**
@@ -29,7 +28,6 @@
2928
* to execute operations implemented in other languages. Created through {@link
3029
* Workflow#newNexusServiceStub(Class)}.
3130
*/
32-
@Experimental
3331
public interface NexusServiceStub {
3432

3533
/**

temporal-sdk/src/main/java/io/temporal/workflow/Workflow.java

-5
Original file line numberDiff line numberDiff line change
@@ -1310,7 +1310,6 @@ public static boolean isEveryHandlerFinished() {
13101310
*
13111311
* @param service interface that given service implements.
13121312
*/
1313-
@Experimental
13141313
public static <T> T newNexusServiceStub(Class<T> service) {
13151314
return WorkflowInternal.newNexusServiceStub(service, null);
13161315
}
@@ -1322,7 +1321,6 @@ public static <T> T newNexusServiceStub(Class<T> service) {
13221321
* @param service interface that given service implements.
13231322
* @param options options passed to the Nexus service.
13241323
*/
1325-
@Experimental
13261324
public static <T> T newNexusServiceStub(Class<T> service, NexusServiceOptions options) {
13271325
return WorkflowInternal.newNexusServiceStub(service, options);
13281326
}
@@ -1333,7 +1331,6 @@ public static <T> T newNexusServiceStub(Class<T> service, NexusServiceOptions op
13331331
* @param service name of the service the operation is part of.
13341332
* @param options options passed to the Nexus service.
13351333
*/
1336-
@Experimental
13371334
public static NexusServiceStub newUntypedNexusServiceStub(
13381335
String service, NexusServiceOptions options) {
13391336
return WorkflowInternal.newUntypedNexusServiceStub(service, options);
@@ -1347,7 +1344,6 @@ public static NexusServiceStub newUntypedNexusServiceStub(
13471344
* @param arg operation argument
13481345
* @return OperationHandle a handle to the operation.
13491346
*/
1350-
@Experimental
13511347
public static <T, R> NexusOperationHandle<R> startNexusOperation(
13521348
Functions.Func1<T, R> operation, T arg) {
13531349
return WorkflowInternal.startNexusOperation(operation, arg);
@@ -1360,7 +1356,6 @@ public static <T, R> NexusOperationHandle<R> startNexusOperation(
13601356
* #newNexusServiceStub(Class)}.
13611357
* @return OperationHandle a handle to the operation.
13621358
*/
1363-
@Experimental
13641359
public static <R> NexusOperationHandle<R> startNexusOperation(Functions.Func<R> operation) {
13651360
return WorkflowInternal.startNexusOperation(operation);
13661361
}

temporal-testing/src/main/java/io/temporal/testing/TestWorkflowEnvironment.java

-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import io.temporal.api.enums.v1.IndexedValueType;
2525
import io.temporal.api.nexus.v1.Endpoint;
2626
import io.temporal.client.WorkflowClient;
27-
import io.temporal.common.Experimental;
2827
import io.temporal.common.WorkflowExecutionHistory;
2928
import io.temporal.serviceclient.OperatorServiceStubs;
3029
import io.temporal.serviceclient.WorkflowServiceStubs;
@@ -168,15 +167,13 @@ static TestWorkflowEnvironment newInstance(TestEnvironmentOptions options) {
168167
* @param taskQueue Task Queue to be used for the endpoint
169168
* @return Endpoint object
170169
*/
171-
@Experimental
172170
Endpoint createNexusEndpoint(String name, String taskQueue);
173171

174172
/**
175173
* Delete a Nexus Endpoint on the server.
176174
*
177175
* @param endpoint current endpoint to be deleted
178176
*/
179-
@Experimental
180177
void deleteNexusEndpoint(Endpoint endpoint);
181178

182179
/**

temporal-testing/src/main/java/io/temporal/testing/TestWorkflowExtension.java

-3
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import io.temporal.client.WorkflowClient;
2929
import io.temporal.client.WorkflowClientOptions;
3030
import io.temporal.client.WorkflowOptions;
31-
import io.temporal.common.Experimental;
3231
import io.temporal.common.metadata.POJOWorkflowImplMetadata;
3332
import io.temporal.common.metadata.POJOWorkflowInterfaceMetadata;
3433
import io.temporal.serviceclient.WorkflowServiceStubsOptions;
@@ -407,7 +406,6 @@ public Builder registerWorkflowImplementationTypes(
407406
*
408407
* @see Worker#registerNexusServiceImplementation(Object...)
409408
*/
410-
@Experimental
411409
public Builder setNexusServiceImplementation(Object... nexusServiceImplementations) {
412410
this.nexusServiceImplementations = nexusServiceImplementations;
413411
return this;
@@ -482,7 +480,6 @@ public Builder setDoNotStart(boolean doNotStart) {
482480
* When set to true the {@link TestWorkflowEnvironment} will not automatically create a Nexus
483481
* Endpoint. This is useful when you want to manually create a Nexus Endpoint for your test.
484482
*/
485-
@Experimental
486483
public Builder setDoNotSetupNexusEndpoint(boolean doNotSetupNexusEndpoint) {
487484
this.doNotSetupNexusEndpoint = doNotSetupNexusEndpoint;
488485
return this;

temporal-testing/src/main/java/io/temporal/testing/TestWorkflowRule.java

-3
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import io.temporal.client.WorkflowClientOptions;
3333
import io.temporal.client.WorkflowOptions;
3434
import io.temporal.client.WorkflowStub;
35-
import io.temporal.common.Experimental;
3635
import io.temporal.common.SearchAttributeKey;
3736
import io.temporal.common.interceptors.WorkerInterceptor;
3837
import io.temporal.internal.common.env.DebugModeUtils;
@@ -259,7 +258,6 @@ public Builder setWorkflowTypes(
259258
*
260259
* @see Worker#registerNexusServiceImplementation(Object...)
261260
*/
262-
@Experimental
263261
public Builder setNexusServiceImplementation(Object... nexusServiceImplementations) {
264262
this.nexusServiceImplementations = nexusServiceImplementations;
265263
return this;
@@ -348,7 +346,6 @@ public Builder setDoNotStart(boolean doNotStart) {
348346
* When set to true the {@link TestWorkflowEnvironment} will not automatically create a Nexus
349347
* Endpoint. This is useful when you want to manually create a Nexus Endpoint for your test.
350348
*/
351-
@Experimental
352349
public Builder setDoNotSetupNexusEndpoint(boolean doNotSetupNexusEndpoint) {
353350
this.doNotSetupNexusEndpoint = doNotSetupNexusEndpoint;
354351
return this;

0 commit comments

Comments
 (0)