diff --git a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeCustomHeaders.java b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/CustomHeaders.java similarity index 64% rename from client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeCustomHeaders.java rename to client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/CustomHeaders.java index 7c3b35244..6e45ed2d3 100644 --- a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeCustomHeaders.java +++ b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/CustomHeaders.java @@ -5,4 +5,8 @@ @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) @Documented -public @interface ZeebeCustomHeaders {} +public @interface CustomHeaders { + + // Double check what will happen with Properties? + +} diff --git a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeDeployment.java b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/Deployment.java similarity index 68% rename from client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeDeployment.java rename to client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/Deployment.java index a6d323fac..92397b377 100644 --- a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeDeployment.java +++ b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/Deployment.java @@ -11,10 +11,13 @@ @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited // has to be inherited to work on spring aop beans -public @interface ZeebeDeployment { +public @interface Deployment { - @Deprecated - String[] classPathResources() default {}; + // Are there other @Deployment annotations in the JAva Spring Boot space so this could create confusion? + // Alternative naming ideas: + // @ZeebeDeployment + // @CamundaDeployment String[] resources() default {}; + } diff --git a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeWorker.java b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/JobWorker.java similarity index 88% rename from client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeWorker.java rename to client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/JobWorker.java index 078e27bd9..bacca1efa 100644 --- a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeWorker.java +++ b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/JobWorker.java @@ -9,7 +9,10 @@ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented -public @interface ZeebeWorker { +public @interface JobWorker { + // Alternative naming ideas: + // JobSubscription + // JobListener String type() default ""; // set to empty string which leads to method name being used (if not ${zeebe.client.worker.default-type}" is configured) Implemented in ZeebeWorkerAnnotationProcessor @@ -29,7 +32,7 @@ * Set to true, all variables are fetched independent of any other configuration * via fetchVariables or @ZeebeVariable. */ - boolean forceFetchAllVariables() default false; + boolean fetchAllVariables() default false; /** * If set to true, the job is automatically completed after the worker code has finished. @@ -38,7 +41,7 @@ * You can still throw exceptions if you want to raise a problem instead of job completion. * You could also raise a BPMN problem throwing a {@link io.camunda.zeebe.spring.client.exception.ZeebeBpmnError} */ - boolean autoComplete() default false; + boolean autoComplete() default true; boolean enabled() default true; } diff --git a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeVariable.java b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/Variable.java similarity index 82% rename from client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeVariable.java rename to client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/Variable.java index bc3ba9fd5..a27897307 100644 --- a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeVariable.java +++ b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/Variable.java @@ -5,6 +5,5 @@ @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) @Documented -public @interface ZeebeVariable { - +public @interface Variable { } diff --git a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeVariablesAsType.java b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/VariablesAsType.java similarity index 55% rename from client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeVariablesAsType.java rename to client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/VariablesAsType.java index 06b7a803e..4beb619dd 100644 --- a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/ZeebeVariablesAsType.java +++ b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/VariablesAsType.java @@ -5,4 +5,9 @@ @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) @Documented -public @interface ZeebeVariablesAsType {} +public @interface VariablesAsType { + // Alternative naming ideas: + // @Variables + // @VariablesObject + // @VariablesAsObject +} diff --git a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/processor/ZeebeDeploymentAnnotationProcessor.java b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/processor/ZeebeDeploymentAnnotationProcessor.java index e0d770e28..a309b970b 100644 --- a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/processor/ZeebeDeploymentAnnotationProcessor.java +++ b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/processor/ZeebeDeploymentAnnotationProcessor.java @@ -3,7 +3,7 @@ import io.camunda.zeebe.client.ZeebeClient; import io.camunda.zeebe.client.api.command.DeployResourceCommandStep1; import io.camunda.zeebe.client.api.response.DeploymentEvent; -import io.camunda.zeebe.spring.client.annotation.ZeebeDeployment; +import io.camunda.zeebe.spring.client.annotation.Deployment; import io.camunda.zeebe.spring.client.bean.ClassInfo; import io.camunda.zeebe.spring.client.annotation.value.ZeebeDeploymentValue; import io.camunda.zeebe.spring.client.annotation.value.factory.ReadZeebeDeploymentValue; @@ -25,7 +25,7 @@ /** * Always created by {@link AnnotationProcessorConfiguration} * - * Loop throgh @{@link ZeebeDeployment} annotations to deploy resources to Zeebe + * Loop throgh @{@link Deployment} annotations to deploy resources to Zeebe * once the {@link io.camunda.zeebe.spring.client.lifecycle.ZeebeClientLifecycle} was initialized. */ public class ZeebeDeploymentAnnotationProcessor extends AbstractZeebeAnnotationProcessor { @@ -44,7 +44,7 @@ public ZeebeDeploymentAnnotationProcessor(ReadZeebeDeploymentValue reader) { @Override public boolean isApplicableFor(ClassInfo beanInfo) { - return beanInfo.hasClassAnnotation(ZeebeDeployment.class); + return beanInfo.hasClassAnnotation(Deployment.class); } @Override diff --git a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/value/ZeebeWorkerValue.java b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/value/ZeebeWorkerValue.java index a9b63f6dd..85725c1d3 100644 --- a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/value/ZeebeWorkerValue.java +++ b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/value/ZeebeWorkerValue.java @@ -1,6 +1,6 @@ package io.camunda.zeebe.spring.client.annotation.value; -import io.camunda.zeebe.spring.client.annotation.ZeebeVariable; +import io.camunda.zeebe.spring.client.annotation.Variable; import io.camunda.zeebe.spring.client.bean.CopyNotNullBeanUtilsBean; import io.camunda.zeebe.spring.client.bean.MethodInfo; import io.camunda.zeebe.spring.client.bean.ParameterInfo; @@ -240,7 +240,7 @@ public ZeebeWorkerValue initializeFetchVariables(boolean forceFetchAllVariables, } private List readZeebeVariableParameters(MethodInfo methodInfo) { - return methodInfo.getParametersFilteredByAnnotation(ZeebeVariable.class); + return methodInfo.getParametersFilteredByAnnotation(Variable.class); } public ZeebeWorkerValue initializeJobType(String jobType, MethodInfo methodInfo, String defaultWorkerType) { diff --git a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/value/factory/ReadZeebeDeploymentValue.java b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/value/factory/ReadZeebeDeploymentValue.java index bafaec0e2..313e37bd3 100644 --- a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/value/factory/ReadZeebeDeploymentValue.java +++ b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/annotation/value/factory/ReadZeebeDeploymentValue.java @@ -1,6 +1,6 @@ package io.camunda.zeebe.spring.client.annotation.value.factory; -import io.camunda.zeebe.spring.client.annotation.ZeebeDeployment; +import io.camunda.zeebe.spring.client.annotation.Deployment; import io.camunda.zeebe.spring.client.annotation.value.ZeebeDeploymentValue; import io.camunda.zeebe.spring.client.bean.ClassInfo; @@ -9,12 +9,12 @@ import java.util.Optional; import java.util.stream.Collectors; -public class ReadZeebeDeploymentValue extends ReadAnnotationValue { +public class ReadZeebeDeploymentValue extends ReadAnnotationValue { private static final String CLASSPATH_ALL_URL_PREFIX = "classpath*:"; public ReadZeebeDeploymentValue() { - super(ZeebeDeployment.class); + super(Deployment.class); } @Override diff --git a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/jobhandling/JobHandlerInvokingSpringBeans.java b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/jobhandling/JobHandlerInvokingSpringBeans.java index 5a9ab5bc7..ad3330aa2 100644 --- a/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/jobhandling/JobHandlerInvokingSpringBeans.java +++ b/client/spring-zeebe/src/main/java/io/camunda/zeebe/spring/client/jobhandling/JobHandlerInvokingSpringBeans.java @@ -6,8 +6,8 @@ import io.camunda.zeebe.client.api.worker.JobClient; import io.camunda.zeebe.client.api.worker.JobHandler; import io.camunda.zeebe.client.impl.Loggers; -import io.camunda.zeebe.spring.client.annotation.ZeebeCustomHeaders; -import io.camunda.zeebe.spring.client.annotation.ZeebeVariable; +import io.camunda.zeebe.spring.client.annotation.CustomHeaders; +import io.camunda.zeebe.spring.client.annotation.Variable; import io.camunda.zeebe.spring.client.annotation.ZeebeVariablesAsType; import io.camunda.zeebe.spring.client.bean.ParameterInfo; import io.camunda.zeebe.spring.client.annotation.value.ZeebeWorkerValue; @@ -70,7 +70,7 @@ private List createParameters(JobClient jobClient, ActivatedJob job, Lis arg = jobClient; } else if (ActivatedJob.class.isAssignableFrom(clazz)) { arg = job; - } else if (param.getParameterInfo().isAnnotationPresent(ZeebeVariable.class)) { + } else if (param.getParameterInfo().isAnnotationPresent(Variable.class)) { try { // TODO make this work for complex types as well arg = clazz.cast(job.getVariablesAsMap().get(param.getParameterName())); @@ -84,7 +84,7 @@ private List createParameters(JobClient jobClient, ActivatedJob job, Lis } catch (RuntimeException e) { throw new RuntimeException("Cannot assign process variables to type '" + clazz.getName() + "' when executing job '"+job.getType()+"', cause is: " + e.getMessage(), e); } - } else if (param.getParameterInfo().isAnnotationPresent(ZeebeCustomHeaders.class)) { + } else if (param.getParameterInfo().isAnnotationPresent(CustomHeaders.class)) { try { arg = job.getCustomHeaders(); } catch (RuntimeException e) { diff --git a/client/spring-zeebe/src/test/java/io/camunda/zeebe/spring/client/bean/ClassInfoTest.java b/client/spring-zeebe/src/test/java/io/camunda/zeebe/spring/client/bean/ClassInfoTest.java index 2d4732a2f..87cffc743 100644 --- a/client/spring-zeebe/src/test/java/io/camunda/zeebe/spring/client/bean/ClassInfoTest.java +++ b/client/spring-zeebe/src/test/java/io/camunda/zeebe/spring/client/bean/ClassInfoTest.java @@ -2,8 +2,8 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.camunda.zeebe.spring.client.annotation.ZeebeDeployment; -import io.camunda.zeebe.spring.client.annotation.ZeebeVariable; +import io.camunda.zeebe.spring.client.annotation.Deployment; +import io.camunda.zeebe.spring.client.annotation.Variable; import io.camunda.zeebe.spring.client.annotation.ZeebeWorker; import org.junit.jupiter.api.Test; @@ -11,7 +11,7 @@ public class ClassInfoTest { - @ZeebeDeployment(classPathResources = "/1.bpmn") + @Deployment(classPathResources = "/1.bpmn") public static class WithDeploymentAnnotation { } @@ -36,13 +36,13 @@ public void handle() { public static class WithZeebeWorkerVariables { @ZeebeWorker(type = "bar", timeout = 100L, fetchVariables = "var3") - public void handle(@ZeebeVariable String var1, @ZeebeVariable int var2) { + public void handle(@Variable String var1, @Variable int var2) { } } public static class WithDisabledZeebeWorker { @ZeebeWorker(type = "bar", enabled = false) - public void handle(@ZeebeVariable String var1, @ZeebeVariable int var2) { + public void handle(@Variable String var1, @Variable int var2) { } } @@ -65,14 +65,14 @@ public void getBeanInfo() throws Exception { @Test public void hasZeebeeDeploymentAnnotation() throws Exception { - assertThat(beanInfo(new WithDeploymentAnnotation()).hasClassAnnotation(ZeebeDeployment.class)) + assertThat(beanInfo(new WithDeploymentAnnotation()).hasClassAnnotation(Deployment.class)) .isTrue(); } @Test public void hasNoZeebeeDeploymentAnnotation() throws Exception { assertThat( - beanInfo(new WithoutDeploymentAnnotation()).hasClassAnnotation(ZeebeDeployment.class)) + beanInfo(new WithoutDeploymentAnnotation()).hasClassAnnotation(Deployment.class)) .isFalse(); } diff --git a/client/spring-zeebe/src/test/java/io/camunda/zeebe/spring/client/bean/value/factory/ReadZeebeDeploymentValueTest.java b/client/spring-zeebe/src/test/java/io/camunda/zeebe/spring/client/bean/value/factory/ReadZeebeDeploymentValueTest.java index 2ee073b7d..fd7dbdd3c 100644 --- a/client/spring-zeebe/src/test/java/io/camunda/zeebe/spring/client/bean/value/factory/ReadZeebeDeploymentValueTest.java +++ b/client/spring-zeebe/src/test/java/io/camunda/zeebe/spring/client/bean/value/factory/ReadZeebeDeploymentValueTest.java @@ -1,6 +1,6 @@ package io.camunda.zeebe.spring.client.bean.value.factory; -import io.camunda.zeebe.spring.client.annotation.ZeebeDeployment; +import io.camunda.zeebe.spring.client.annotation.Deployment; import io.camunda.zeebe.spring.client.annotation.value.factory.ReadZeebeDeploymentValue; import io.camunda.zeebe.spring.client.bean.ClassInfo; import io.camunda.zeebe.spring.client.annotation.value.ZeebeDeploymentValue; @@ -79,12 +79,12 @@ public void shouldReadNoClassPathResourcesTest() { assertFalse(valueForClass.isPresent()); } - @ZeebeDeployment(classPathResources = "/1.bpmn") + @Deployment(classPathResources = "/1.bpmn") private static class WithSingleClassPathResource { } - @ZeebeDeployment(classPathResources = {"/1.bpmn", "/2.bpmn"}) + @Deployment(classPathResources = {"/1.bpmn", "/2.bpmn"}) private static class WithMultipleClassPathResource { } diff --git a/examples/starter/src/main/java/io/camunda/zeebe/spring/example/StarterApplication.java b/examples/starter/src/main/java/io/camunda/zeebe/spring/example/StarterApplication.java index 40265dafc..b96d90289 100644 --- a/examples/starter/src/main/java/io/camunda/zeebe/spring/example/StarterApplication.java +++ b/examples/starter/src/main/java/io/camunda/zeebe/spring/example/StarterApplication.java @@ -3,7 +3,7 @@ import io.camunda.zeebe.client.api.response.ProcessInstanceEvent; import io.camunda.zeebe.spring.client.EnableZeebeClient; import io.camunda.zeebe.spring.client.lifecycle.ZeebeClientLifecycle; -import io.camunda.zeebe.spring.client.annotation.ZeebeDeployment; +import io.camunda.zeebe.spring.client.annotation.Deployment; import java.util.Date; import java.util.UUID; @@ -19,7 +19,7 @@ @SpringBootApplication @EnableZeebeClient @EnableScheduling -@ZeebeDeployment(resources = "classpath:demoProcess.bpmn") +@Deployment(resources = "classpath:demoProcess.bpmn") public class StarterApplication { private static Logger log = LoggerFactory.getLogger(StarterApplication.class); diff --git a/examples/worker/src/main/java/io/camunda/zeebe/spring/example/WorkerApplication.java b/examples/worker/src/main/java/io/camunda/zeebe/spring/example/WorkerApplication.java index 8ac7530f3..6cbf04891 100644 --- a/examples/worker/src/main/java/io/camunda/zeebe/spring/example/WorkerApplication.java +++ b/examples/worker/src/main/java/io/camunda/zeebe/spring/example/WorkerApplication.java @@ -3,7 +3,7 @@ import io.camunda.zeebe.client.api.worker.JobClient; import io.camunda.zeebe.client.api.response.ActivatedJob; import io.camunda.zeebe.spring.client.EnableZeebeClient; -import io.camunda.zeebe.spring.client.annotation.ZeebeVariable; +import io.camunda.zeebe.spring.client.annotation.Variable; import io.camunda.zeebe.spring.client.annotation.ZeebeWorker; import java.time.Instant; import java.util.Collections; @@ -39,19 +39,19 @@ private static void logJob(final ActivatedJob job, Object parameterValue) { job.getVariables()); } - @ZeebeWorker(type = "foo", autoComplete = true) + @ZeebeWorker(type = "foo", autoComplete = true) public void handleFooJob(final ActivatedJob job) { logJob(job, null); } - @ZeebeWorker(type = "bar", autoComplete = true) - public Map handleBarJob(final JobClient client, final ActivatedJob job, @ZeebeVariable String a) { + @ZeebeWorker(type = "bar", autoComplete = true) + public Map handleBarJob(final JobClient client, final ActivatedJob job, @Variable String a) { logJob(job, a); return Collections.singletonMap("someResult", "42"); } @ZeebeWorker(type = "fail", autoComplete = true, forceFetchAllVariables = true) - public void handleFailingJob(final JobClient client, final ActivatedJob job, @ZeebeVariable String someResult) { + public void handleFailingJob(final JobClient client, final ActivatedJob job, @Variable String someResult) { logJob(job, someResult); throw new ZeebeBpmnError("DOESNT_WORK", "This will actually never work :-)"); }