Class InternalUtils

java.lang.Object
io.temporal.internal.common.InternalUtils

public final class InternalUtils extends Object
Utility functions shared by the implementation code.
  • Field Details

  • Method Details

    • createStickyTaskQueue

      public static io.temporal.api.taskqueue.v1.TaskQueue createStickyTaskQueue(String stickyTaskQueueName, String normalTaskQueueName)
    • createNormalTaskQueue

      public static io.temporal.api.taskqueue.v1.TaskQueue createNormalTaskQueue(String taskQueueName)
    • getValueOrDefault

      public static Object getValueOrDefault(Object value, Class<?> valueClass)
    • createNexusBoundStub

      public static NexusWorkflowStarter createNexusBoundStub(WorkflowStub stub, NexusStartWorkflowRequest request)
      Creates a new stub that is bound to the same workflow as the given stub, but with the Nexus callback URL and headers set.
      Parameters:
      stub - the stub to create a new stub from
      request - the request containing the Nexus callback URL and headers
      Returns:
      a new stub bound to the same workflow as the given stub, but with the Nexus callback URL and headers set
    • isWorkflowStreamReservedName

      public static boolean isWorkflowStreamReservedName(String name)
      Returns true if the given name is in the __temporal_workflow_stream_ sub-namespace, which is reserved for the workflow streams contrib module and permitted for signal, update, and query handler registration.
    • buildNexusCallback

      public static io.temporal.api.common.v1.Callback buildNexusCallback(String callbackUrl, Map<String,String> callbackHeaders, String operationToken, List<io.temporal.api.common.v1.Link> protoLinks)
      Builds a Callback for use as a Nexus completion callback. Injects both the legacy Nexus-Operation-Id and the newer Nexus-Operation-Token headers (case-insensitive lookup) when not already present so the server can fabricate operation-started events if the completion is received before the response to a StartOperation request.

      Shared by the workflow start path (createNexusBoundStub(io.temporal.client.WorkflowStub, io.temporal.internal.client.NexusStartWorkflowRequest)) and the activity start path (RootActivityClientInvoker.startActivity). The dual OPERATION_ID + OPERATION_TOKEN headers must be injected before the start RPC is issued.

    • checkMethodName

      public static void checkMethodName(POJOWorkflowMethodMetadata methodMetadata)
      Check the method name for reserved prefixes or names.
    • checkMethodName

      public static void checkMethodName(POJOActivityMethodMetadata methodMetadata)
    • checkMethodName

      public static void checkMethodName(io.nexusrpc.handler.ServiceImplInstance instance)