Annotation Type ActivityInterface


  • @Retention(RUNTIME)
    @Target(TYPE)
    public @interface ActivityInterface
    Indicates that an interface is an activity interface. Only interfaces annotated with this annotation can be used as parameters to Workflow.newActivityStub(Class) methods.

    Each method of the interface annotated with ActivityInterface including inherited from interfaces is a separate activity. By default, the name of an activity type is its method name with the first letter capitalized. Use namePrefix() or {ActivityMethod.name()} to make sure that activity type names are distinct.

    Example:

    
      public interface A {
          a();
      }
    
     @ActivityInterface(namePrefix = "B_")
      public interface B extends A {
         b();
      }
    
     @ActivityInterface(namePrefix = "C_")
      public interface C extends B {
         c();
      }
    
      public class CImpl implements C {
          public void a() {}
          public void b() {}
          public void c() {}
      }
     
    When CImpl instance is registered with the Worker the following activities are registered:

    • B_a
    • B_b
    • C_c
    The workflow code can call activities through stubs to B and C interfaces. A call to crate stub to A interface will fail as A is not annotated with ActivityInterface.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      java.lang.String namePrefix
      Prefix to prepend to method names to generate activity types.
    • Element Detail

      • namePrefix

        java.lang.String namePrefix
        Prefix to prepend to method names to generate activity types. Default is empty string which means that method names are used as activity types.

        Note that this value is ignored if a name of an activity is specified explicitly through ActivityMethod.name().

        Be careful about names that contain special characters. These names can be used as metric tags. And systems like prometheus ignore metrics which have tags with unsupported characters.

        Default:
        ""