Annotation 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
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 ElementsModifier and TypeOptional ElementDescriptionPrefix to prepend to method names to generate activity types.
-
Element Details
-
namePrefix
String namePrefixPrefix 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:
""
-