diff --git a/temporal-sdk/src/main/java/io/temporal/worker/MetricsType.java b/temporal-sdk/src/main/java/io/temporal/worker/MetricsType.java index 734e2a7c6..6d217e510 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/MetricsType.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/MetricsType.java @@ -125,7 +125,6 @@ private MetricsType() {} public static final String WORKER_TASK_SLOTS_AVAILABLE = TEMPORAL_METRICS_PREFIX + "worker_task_slots_available"; - @Experimental public static final String WORKER_TASK_SLOTS_USED = TEMPORAL_METRICS_PREFIX + "worker_task_slots_used"; diff --git a/temporal-sdk/src/main/java/io/temporal/worker/WorkerOptions.java b/temporal-sdk/src/main/java/io/temporal/worker/WorkerOptions.java index 1d3f9f2ed..8ef14e6cd 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/WorkerOptions.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/WorkerOptions.java @@ -417,7 +417,6 @@ public Builder setStickyTaskQueueDrainTimeout(Duration stickyTaskQueueDrainTimeo * Set a {@link WorkerTuner} to determine how slots will be allocated for different types of * tasks. */ - @Experimental public Builder setWorkerTuner(WorkerTuner workerTuner) { this.workerTuner = workerTuner; return this; diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/ActivitySlotInfo.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/ActivitySlotInfo.java index d1fd80087..861a88fa7 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/ActivitySlotInfo.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/ActivitySlotInfo.java @@ -1,11 +1,9 @@ package io.temporal.worker.tuning; import io.temporal.activity.ActivityInfo; -import io.temporal.common.Experimental; import java.util.Objects; /** Contains information about a slot that is being used to execute an activity task. */ -@Experimental public class ActivitySlotInfo extends SlotInfo { private final ActivityInfo activityInfo; private final String workerIdentity; diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/CompositeTuner.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/CompositeTuner.java index 0bdb3e576..447138925 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/CompositeTuner.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/CompositeTuner.java @@ -1,6 +1,5 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; import java.util.Objects; import javax.annotation.Nonnull; @@ -8,7 +7,6 @@ * Can be used to create a {@link WorkerTuner} which uses specific {@link SlotSupplier}s for each * type of slot. */ -@Experimental public class CompositeTuner implements WorkerTuner { private final @Nonnull SlotSupplier workflowTaskSlotSupplier; private final @Nonnull SlotSupplier activityTaskSlotSupplier; diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/JVMSystemResourceInfo.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/JVMSystemResourceInfo.java index ae686cac0..fd9199e64 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/JVMSystemResourceInfo.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/JVMSystemResourceInfo.java @@ -1,14 +1,12 @@ package io.temporal.worker.tuning; import com.sun.management.OperatingSystemMXBean; -import io.temporal.common.Experimental; import java.lang.management.ManagementFactory; import java.time.Instant; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** {@link SystemResourceInfo} implementation that uses JVM-specific APIs to get resource usage. */ -@Experimental public class JVMSystemResourceInfo implements SystemResourceInfo { // As of relatively recent Java versions (including backports), this class will properly deal with // containerized environments as well as running on bare metal. diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/LocalActivitySlotInfo.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/LocalActivitySlotInfo.java index fb673e01f..c7980a63b 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/LocalActivitySlotInfo.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/LocalActivitySlotInfo.java @@ -1,11 +1,9 @@ package io.temporal.worker.tuning; import io.temporal.activity.ActivityInfo; -import io.temporal.common.Experimental; import java.util.Objects; /** Contains information about a slot that is being used to execute a local activity. */ -@Experimental public class LocalActivitySlotInfo extends SlotInfo { private final ActivityInfo activityInfo; private final String workerIdentity; diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/NexusSlotInfo.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/NexusSlotInfo.java index 6e51b844f..e0e9a46c1 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/NexusSlotInfo.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/NexusSlotInfo.java @@ -1,10 +1,8 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; import java.util.Objects; /** Contains information about a slot that is being used to execute a nexus task. */ -@Experimental public class NexusSlotInfo extends SlotInfo { private final String service; private final String operation; diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/PollerBehavior.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/PollerBehavior.java index 7b821a733..6c9083617 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/PollerBehavior.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/PollerBehavior.java @@ -1,7 +1,5 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; - /** * Defines the behavior of a poller. * @@ -10,5 +8,4 @@ * PollerBehaviorSimpleMaximum}. For all intents and purpose this interface should be considered * sealed. */ -@Experimental public interface PollerBehavior {} diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/PollerBehaviorAutoscaling.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/PollerBehaviorAutoscaling.java index a5112f151..f9ce0a3e7 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/PollerBehaviorAutoscaling.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/PollerBehaviorAutoscaling.java @@ -1,6 +1,5 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; import java.util.Objects; import javax.annotation.Nullable; @@ -11,7 +10,6 @@ *

If the server does not support autoscaling, then the number of pollers will stay at the * initial number of pollers. */ -@Experimental public final class PollerBehaviorAutoscaling implements PollerBehavior { private final int minConcurrentTaskPollers; private final int maxConcurrentTaskPollers; diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/PollerBehaviorSimpleMaximum.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/PollerBehaviorSimpleMaximum.java index 8d721dd38..7868eeb20 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/PollerBehaviorSimpleMaximum.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/PollerBehaviorSimpleMaximum.java @@ -1,13 +1,11 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; import java.util.Objects; /** * A poller behavior that will attempt to poll as long as a slot is available, up to the provided * maximum. Cannot be less than two for workflow tasks, or one for other tasks. */ -@Experimental public class PollerBehaviorSimpleMaximum implements PollerBehavior { private final int maxConcurrentTaskPollers; diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedController.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedController.java index cc481da96..92efc2d47 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedController.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedController.java @@ -2,7 +2,6 @@ import com.uber.m3.tally.Gauge; import com.uber.m3.tally.Scope; -import io.temporal.common.Experimental; import io.temporal.worker.MetricsType; import java.time.Instant; import java.util.concurrent.atomic.AtomicReference; @@ -12,7 +11,6 @@ * Is used by {@link ResourceBasedSlotSupplier} and {@link ResourceBasedTuner} to make decisions * about whether slots should be handed out based on system resource usage. */ -@Experimental public class ResourceBasedController { public final ResourceBasedControllerOptions options; diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedControllerOptions.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedControllerOptions.java index 29161a322..0079ddf1c 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedControllerOptions.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedControllerOptions.java @@ -1,10 +1,8 @@ package io.temporal.worker.tuning; import com.google.common.base.Preconditions; -import io.temporal.common.Experimental; /** Options for a {@link ResourceBasedController} */ -@Experimental public class ResourceBasedControllerOptions { public static ResourceBasedControllerOptions.Builder newBuilder( diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedSlotOptions.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedSlotOptions.java index 6fa29d9bf..ec4f81c9c 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedSlotOptions.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedSlotOptions.java @@ -1,11 +1,9 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; import java.time.Duration; import java.util.Objects; /** Options resource-based slot suppliers */ -@Experimental public class ResourceBasedSlotOptions { private final int minimumSlots; private final int maximumSlots; diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedSlotSupplier.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedSlotSupplier.java index fded740eb..226e0ef61 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedSlotSupplier.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedSlotSupplier.java @@ -1,13 +1,11 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; import java.time.Duration; import java.time.Instant; import java.util.Optional; import java.util.concurrent.*; /** Implements a {@link SlotSupplier} based on resource usage for a particular slot type. */ -@Experimental public class ResourceBasedSlotSupplier implements SlotSupplier { private final ResourceBasedController resourceController; diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedTuner.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedTuner.java index 08333943b..b850d80e3 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedTuner.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/ResourceBasedTuner.java @@ -1,12 +1,10 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; import java.time.Duration; import java.util.concurrent.ScheduledExecutorService; import javax.annotation.Nonnull; /** A {@link WorkerTuner} that attempts to allocate slots based on available system resources. */ -@Experimental public class ResourceBasedTuner implements WorkerTuner { public static final ResourceBasedSlotOptions DEFAULT_WORKFLOW_SLOT_OPTIONS = ResourceBasedSlotOptions.newBuilder() diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotInfo.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotInfo.java index d9a66a5a3..a8c625966 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotInfo.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotInfo.java @@ -1,9 +1,6 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; - /** The base class that all slot info types used by {@link SlotSupplier} extend. */ -@Experimental public abstract class SlotInfo { SlotInfo() {} } diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotMarkUsedContext.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotMarkUsedContext.java index 858ece984..51a592e8a 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotMarkUsedContext.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotMarkUsedContext.java @@ -1,8 +1,5 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; - -@Experimental public interface SlotMarkUsedContext { /** * @return The information associated with the slot that is being marked as used. diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotPermit.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotPermit.java index c11163042..4a97e4c5e 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotPermit.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotPermit.java @@ -1,7 +1,5 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; - /** * This class is handed out by implementations of {@link SlotSupplier}. Permits are held until the * tasks they are associated with (if any) are finished processing, or if the reservation is no @@ -10,7 +8,6 @@ *

When {@link SlotSupplier#releaseSlot(SlotReleaseContext)} is called, the exact same instance * of the permit is passed back to the supplier. */ -@Experimental public final class SlotPermit { public final Object userData; diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotReleaseContext.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotReleaseContext.java index ac66456fb..16f8a861d 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotReleaseContext.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotReleaseContext.java @@ -1,9 +1,7 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; import javax.annotation.Nullable; -@Experimental public interface SlotReleaseContext { /** * @return The reason the slot is being released. diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotReleaseReason.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotReleaseReason.java index 55ee746ad..6e4195c79 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotReleaseReason.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotReleaseReason.java @@ -1,9 +1,7 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; import javax.annotation.Nullable; -@Experimental public abstract class SlotReleaseReason { SlotReleaseReason() {} diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotReserveContext.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotReserveContext.java index 2917fa400..5c8f39e58 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotReserveContext.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotReserveContext.java @@ -1,9 +1,7 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; import java.util.Map; -@Experimental public interface SlotReserveContext { /** * @return the Task Queue for which this reservation request is associated. diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotSupplier.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotSupplier.java index b7e6af2bd..4a63325ba 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotSupplier.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SlotSupplier.java @@ -1,6 +1,5 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; import java.util.Optional; /** @@ -13,7 +12,6 @@ * {@link WorkflowSlotInfo}, {@link ActivitySlotInfo}, {@link LocalActivitySlotInfo}, and {@link * NexusSlotInfo}. */ -@Experimental public interface SlotSupplier { /** * This function is called before polling for new tasks. Your implementation should return a diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SystemResourceInfo.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SystemResourceInfo.java index 1a0125d25..4dad91bee 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/SystemResourceInfo.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/SystemResourceInfo.java @@ -1,9 +1,6 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; - /** Implementors determine how resource usage is measured. */ -@Experimental public interface SystemResourceInfo { /** * @return System-wide CPU usage as a percentage [0.0, 1.0] diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/WorkerTuner.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/WorkerTuner.java index 18634dee1..f3b304f67 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/WorkerTuner.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/WorkerTuner.java @@ -1,10 +1,8 @@ package io.temporal.worker.tuning; -import io.temporal.common.Experimental; import javax.annotation.Nonnull; /** WorkerTuners allow for the dynamic customization of some aspects of worker configuration. */ -@Experimental public interface WorkerTuner { /** * @return A {@link SlotSupplier} for workflow tasks. diff --git a/temporal-sdk/src/main/java/io/temporal/worker/tuning/WorkflowSlotInfo.java b/temporal-sdk/src/main/java/io/temporal/worker/tuning/WorkflowSlotInfo.java index e224a5aa4..9310bc64c 100644 --- a/temporal-sdk/src/main/java/io/temporal/worker/tuning/WorkflowSlotInfo.java +++ b/temporal-sdk/src/main/java/io/temporal/worker/tuning/WorkflowSlotInfo.java @@ -3,12 +3,10 @@ import io.temporal.api.enums.v1.TaskQueueKind; import io.temporal.api.workflowservice.v1.PollWorkflowTaskQueueRequest; import io.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse; -import io.temporal.common.Experimental; import java.util.Objects; import javax.annotation.Nonnull; /** Contains information about a slot that is being used to execute a workflow task. */ -@Experimental public class WorkflowSlotInfo extends SlotInfo { private final String workflowType; private final String taskQueue;