summaryrefslogtreecommitdiffstats
path: root/bpmn/MSOCommonBPMN/src
diff options
context:
space:
mode:
authorBenjamin, Max (mb388a) <mb388a@us.att.com>2019-01-11 21:35:13 -0500
committerBenjamin, Max (mb388a) <mb388a@us.att.com>2019-01-11 21:37:03 -0500
commitc286ac0022ccef0ea4f7d74f8626fba6e3060b86 (patch)
tree16da38bb91a2d8c6030394480e00a85c1bce91ca /bpmn/MSOCommonBPMN/src
parent801cddd65cad0bd01ea8fec5d33f9e53e17aa62b (diff)
refactored validator to be more generic
removed overloaded method from class for JUEL changed test back to DelegateExecution added methods to allow validations with DelegateExecution refactored validator to be more generic Change-Id: I6c6d7a50e8b5470ffa5619cc83966f5ad68e66fe Issue-ID: SO-1383 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
Diffstat (limited to 'bpmn/MSOCommonBPMN/src')
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/BuildingBlockValidator.java44
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunner.java90
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/FlowValidator.java23
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/FlowValidatorRunner.java160
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PostBuildingBlockValidator.java2
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PostWorkflowValidator.java2
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PreBuildingBlockValidator.java2
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PreWorkflowValidator.java2
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/WorkflowValidator.java44
-rw-r--r--bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunner.java90
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunnerTest.java8
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorFour.java2
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorOne.java2
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorThree.java2
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorTwo.java2
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorOne.java6
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorTwo.java6
-rw-r--r--bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunnerTest.java7
18 files changed, 218 insertions, 276 deletions
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/BuildingBlockValidator.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/BuildingBlockValidator.java
deleted file mode 100644
index d4467b8270..0000000000
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/BuildingBlockValidator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.bpmn.common.validation;
-
-import java.util.Set;
-
-import org.onap.so.bpmn.common.BuildingBlockExecution;
-
-public interface BuildingBlockValidator {
-
-
- /**
- * Name of the building block to be validated
- * @return
- */
- public Set<String> forBuildingBlock();
-
- /**
- * Determines whether or not the building block should be executed
- *
- * @param execution
- * @return
- */
- public boolean validate(BuildingBlockExecution execution);
-
-}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunner.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunner.java
index d26ae7b92b..a5d871eeef 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunner.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunner.java
@@ -52,99 +52,23 @@ import org.springframework.stereotype.Component;
*
*/
@Component
-public class BuildingBlockValidatorRunner {
-
- private static Logger logger = LoggerFactory.getLogger(BuildingBlockValidatorRunner.class);
- @Autowired
- private ApplicationContext context;
-
- @Autowired
- private ExceptionBuilder exceptionBuilder;
-
- private List<PreBuildingBlockValidator> preBuildingBlockValidators;
- private List<PostBuildingBlockValidator> postBuildingBlockValidators;
-
+public class BuildingBlockValidatorRunner extends FlowValidatorRunner<PreBuildingBlockValidator, PostBuildingBlockValidator> {
@PostConstruct
protected void init() {
- preBuildingBlockValidators = new ArrayList<>(
+ preFlowValidators = new ArrayList<>(
Optional.ofNullable(context.getBeansOfType(PreBuildingBlockValidator.class)).orElse(new HashMap<>()).values());
- postBuildingBlockValidators = new ArrayList<>(
+ postFlowValidators = new ArrayList<>(
Optional.ofNullable(context.getBeansOfType(PostBuildingBlockValidator.class)).orElse(new HashMap<>()).values());
}
- public boolean preValidate(String bbName, BuildingBlockExecution execution) {
- return validate(preBuildingBlockValidators, bbName, execution);
- }
-
-
- public boolean postValidate(String bbName, BuildingBlockExecution execution) {
- return validate(postBuildingBlockValidators, bbName, execution);
- }
-
-
- protected boolean validate(List<? extends BuildingBlockValidator> validators, String bbName, BuildingBlockExecution execution) {
- List<Pair<String, Boolean>> results = runValidations(validators, bbName, execution);
-
- if (!results.isEmpty()) {
- exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
- "Failed Validations:\n" + results.stream().map(item -> item.getValue0()).collect(Collectors.joining("\n")));
- }
-
- return true;
-
- }
- protected List<Pair<String, Boolean>> runValidations(List<? extends BuildingBlockValidator> validators, String bbName, BuildingBlockExecution execution) {
-
- List<BuildingBlockValidator> filtered = filterValidators(validators, bbName);
-
- List<Pair<String,Boolean>> results = new ArrayList<>();
- filtered.forEach(item -> results.add(new Pair<>(item.getClass().getName(), item.validate(execution))));
-
- return results.stream().filter(item -> item.getValue1().equals(false)).collect(Collectors.toList());
- }
-
- protected List<BuildingBlockValidator> filterValidators(List<? extends BuildingBlockValidator> validators, String bbName) {
- return validators.stream()
- .filter(item -> {
- return item.forBuildingBlock().contains(bbName);
- })
- .sorted(Comparator.comparing(item -> {
- Priority p = Optional.ofNullable(item.getClass().getAnnotation(Priority.class)).orElse(new Priority() {
- public int value() {
- return 1000;
- }
-
- @Override
- public Class<? extends Annotation> annotationType() {
- return Priority.class;
- }
- });
- return p.value();
- })).collect(Collectors.toList());
- }
-
- protected <T> List<T> buildalidatorList(Reflections reflections, Class<T> clazz) {
- List<T> result = new ArrayList<>();
- try {
- for (Class<? extends T> klass : reflections.getSubTypesOf(clazz)) {
- result.add(klass.newInstance());
- }
- } catch (InstantiationException | IllegalAccessException e) {
- logger.error("failed to build validator list for " + clazz.getName(), e);
- throw new RuntimeException(e);
- }
-
- return result;
- }
-
- protected List<PreBuildingBlockValidator> getPreBuildingBlockValidators() {
- return this.preBuildingBlockValidators;
+ protected List<PreBuildingBlockValidator> getPreFlowValidators() {
+ return this.preFlowValidators;
}
- protected List<PostBuildingBlockValidator> getPostBuildingBlockValidators() {
- return this.postBuildingBlockValidators;
+ protected List<PostBuildingBlockValidator> getPostFlowValidators() {
+ return this.postFlowValidators;
}
}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/FlowValidator.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/FlowValidator.java
new file mode 100644
index 0000000000..9995b95c50
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/FlowValidator.java
@@ -0,0 +1,23 @@
+package org.onap.so.bpmn.common.validation;
+
+import java.util.Set;
+
+import org.onap.so.bpmn.common.BuildingBlockExecution;
+
+public interface FlowValidator {
+
+ /**
+ * Names of items to be validated
+ * @return
+ */
+ public Set<String> forItems();
+
+ /**
+ * Determines whether or not the workflow should be executed
+ *
+ * @param execution
+ * @return
+ */
+ public boolean validate(BuildingBlockExecution execution);
+
+}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/FlowValidatorRunner.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/FlowValidatorRunner.java
new file mode 100644
index 0000000000..c2e7d1f4d9
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/FlowValidatorRunner.java
@@ -0,0 +1,160 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.bpmn.common.validation;
+
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import javax.annotation.Priority;
+
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.javatuples.Pair;
+import org.onap.so.bpmn.common.BuildingBlockExecution;
+import org.onap.so.bpmn.common.DelegateExecutionImpl;
+import org.onap.so.client.exception.ExceptionBuilder;
+import org.reflections.Reflections;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * Controls running all pre and post validation for flows.
+ *
+ * To define a validation you must make it a spring bean and implement either {@link org.onap.so.bpmn.common.validation.PreFlowValidator} or
+ * {@link org.onap.so.bpmn.common.validation.PostFlowValidator} your validation will automatically be
+ * run by this class.
+ *
+ */
+@Component
+public abstract class FlowValidatorRunner<S extends FlowValidator, E extends FlowValidator> {
+
+ private static Logger logger = LoggerFactory.getLogger(FlowValidatorRunner.class);
+ @Autowired
+ protected ApplicationContext context;
+
+ @Autowired
+ protected ExceptionBuilder exceptionBuilder;
+
+ protected List<S> preFlowValidators;
+ protected List<E> postFlowValidators;
+
+
+
+ /**
+ * Changed to object because JUEL does not support overloaded methods
+ *
+ * @param bbName
+ * @param execution
+ * @return
+ */
+ public boolean preValidate(String bbName, Object execution) {
+ return validateHelper(bbName, preFlowValidators, execution);
+ }
+
+ /**
+ * Changed to object because JUEL does not support overloaded methods
+ *
+ * @param bbName
+ * @param execution
+ * @return
+ */
+ public boolean postValidate(String bbName, Object execution) {
+ return validateHelper(bbName, postFlowValidators, execution);
+ }
+
+ protected boolean validateHelper(String bbName, List<? extends FlowValidator> validators, Object obj) {
+
+ if (obj instanceof DelegateExecution) {
+ return validate(validators, bbName, new DelegateExecutionImpl((DelegateExecution)obj));
+ } else if (obj instanceof BuildingBlockExecution) {
+ return validate(validators, bbName, (BuildingBlockExecution)obj);
+ } else {
+ return false;
+ }
+ }
+
+ protected boolean validate(List<? extends FlowValidator> validators, String bbName, BuildingBlockExecution execution) {
+ List<Pair<String, Boolean>> results = runValidations(validators, bbName, execution);
+
+ if (!results.isEmpty()) {
+ exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
+ "Failed Validations:\n" + results.stream().map(item -> item.getValue0()).collect(Collectors.joining("\n")));
+ }
+
+ return true;
+
+ }
+ protected List<Pair<String, Boolean>> runValidations(List<? extends FlowValidator> validators, String bbName, BuildingBlockExecution execution) {
+
+ List<FlowValidator> filtered = filterValidators(validators, bbName);
+
+ List<Pair<String,Boolean>> results = new ArrayList<>();
+ filtered.forEach(item -> results.add(new Pair<>(item.getClass().getName(), item.validate(execution))));
+
+ return results.stream().filter(item -> item.getValue1().equals(false)).collect(Collectors.toList());
+ }
+
+ protected List<FlowValidator> filterValidators(List<? extends FlowValidator> validators, String bbName) {
+ return validators.stream()
+ .filter(item -> {
+ return item.forItems().contains(bbName);
+ })
+ .sorted(Comparator.comparing(item -> {
+ Priority p = Optional.ofNullable(item.getClass().getAnnotation(Priority.class)).orElse(new Priority() {
+ public int value() {
+ return 1000;
+ }
+
+ @Override
+ public Class<? extends Annotation> annotationType() {
+ return Priority.class;
+ }
+ });
+ return p.value();
+ })).collect(Collectors.toList());
+ }
+
+ protected <T> List<T> buildalidatorList(Reflections reflections, Class<T> clazz) {
+ List<T> result = new ArrayList<>();
+ try {
+ for (Class<? extends T> klass : reflections.getSubTypesOf(clazz)) {
+ result.add(klass.newInstance());
+ }
+ } catch (InstantiationException | IllegalAccessException e) {
+ logger.error("failed to build validator list for " + clazz.getName(), e);
+ throw new RuntimeException(e);
+ }
+
+ return result;
+ }
+
+ protected abstract List<S> getPreFlowValidators();
+
+ protected abstract List<E> getPostFlowValidators();
+
+}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PostBuildingBlockValidator.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PostBuildingBlockValidator.java
index 0b1ef5c6e1..f26a2ee479 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PostBuildingBlockValidator.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PostBuildingBlockValidator.java
@@ -21,6 +21,6 @@
package org.onap.so.bpmn.common.validation;
-public interface PostBuildingBlockValidator extends BuildingBlockValidator {
+public interface PostBuildingBlockValidator extends FlowValidator {
}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PostWorkflowValidator.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PostWorkflowValidator.java
index 46b3c571d5..9070615a7a 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PostWorkflowValidator.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PostWorkflowValidator.java
@@ -20,6 +20,6 @@
package org.onap.so.bpmn.common.validation;
-public interface PostWorkflowValidator extends WorkflowValidator {
+public interface PostWorkflowValidator extends FlowValidator {
}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PreBuildingBlockValidator.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PreBuildingBlockValidator.java
index 489ac483d0..fda687e072 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PreBuildingBlockValidator.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PreBuildingBlockValidator.java
@@ -20,6 +20,6 @@
package org.onap.so.bpmn.common.validation;
-public interface PreBuildingBlockValidator extends BuildingBlockValidator {
+public interface PreBuildingBlockValidator extends FlowValidator {
}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PreWorkflowValidator.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PreWorkflowValidator.java
index 4dad1eafc4..0bfbf5602f 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PreWorkflowValidator.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/PreWorkflowValidator.java
@@ -20,6 +20,6 @@
package org.onap.so.bpmn.common.validation;
-public interface PreWorkflowValidator extends WorkflowValidator {
+public interface PreWorkflowValidator extends FlowValidator {
}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/WorkflowValidator.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/WorkflowValidator.java
deleted file mode 100644
index 348f91321c..0000000000
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/WorkflowValidator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.bpmn.common.validation;
-
-import java.util.Set;
-
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-
-public interface WorkflowValidator {
-
-
- /**
- * Name of the workflow action to be validated
- * @return
- */
- public Set<String> forWorkflowAction();
-
- /**
- * Determines whether or not the workflow should be executed
- *
- * @param execution
- * @return
- */
- public boolean validate(DelegateExecution execution);
-
-}
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunner.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunner.java
index 44fbc6d629..d8c8601865 100644
--- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunner.java
+++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunner.java
@@ -51,99 +51,23 @@ import org.springframework.stereotype.Component;
*
*/
@Component
-public class WorkflowValidatorRunner {
+public class WorkflowValidatorRunner extends FlowValidatorRunner<PreWorkflowValidator, PostWorkflowValidator> {
- private static Logger logger = LoggerFactory.getLogger(WorkflowValidatorRunner.class);
- @Autowired
- private ApplicationContext context;
-
- @Autowired
- private ExceptionBuilder exceptionBuilder;
-
- private List<PreWorkflowValidator> preWorkflowValidators;
- private List<PostWorkflowValidator> postWorkflowValidators;
-
-
@PostConstruct
protected void init() {
- preWorkflowValidators = new ArrayList<>(
+ preFlowValidators = new ArrayList<>(
Optional.ofNullable(context.getBeansOfType(PreWorkflowValidator.class)).orElse(new HashMap<>()).values());
- postWorkflowValidators = new ArrayList<>(
+ postFlowValidators = new ArrayList<>(
Optional.ofNullable(context.getBeansOfType(PostWorkflowValidator.class)).orElse(new HashMap<>()).values());
}
-
- public boolean preValidate(String workflow, DelegateExecution execution) {
- return validate(preWorkflowValidators, workflow, execution);
- }
-
-
- public boolean postValidate(String workflow, DelegateExecution execution) {
- return validate(postWorkflowValidators, workflow, execution);
- }
-
-
- protected boolean validate(List<? extends WorkflowValidator> validators, String workflow, DelegateExecution execution) {
- List<Pair<String, Boolean>> results = runValidations(validators, workflow, execution);
-
- if (!results.isEmpty()) {
- exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
- "Failed Validations:\n" + results.stream().map(item -> item.getValue0()).collect(Collectors.joining("\n")));
- }
-
- return true;
-
- }
- protected List<Pair<String, Boolean>> runValidations(List<? extends WorkflowValidator> validators, String workflow, DelegateExecution execution) {
-
- List<WorkflowValidator> filtered = filterValidators(validators, workflow);
-
- List<Pair<String,Boolean>> results = new ArrayList<>();
- filtered.forEach(item -> results.add(new Pair<>(item.getClass().getName(), item.validate(execution))));
-
- return results.stream().filter(item -> item.getValue1().equals(false)).collect(Collectors.toList());
- }
-
- protected List<WorkflowValidator> filterValidators(List<? extends WorkflowValidator> validators, String workflow) {
- return validators.stream()
- .filter(item -> {
- return item.forWorkflowAction().contains(workflow);
- })
- .sorted(Comparator.comparing(item -> {
- Priority p = Optional.ofNullable(item.getClass().getAnnotation(Priority.class)).orElse(new Priority() {
- public int value() {
- return 1000;
- }
- @Override
- public Class<? extends Annotation> annotationType() {
- return Priority.class;
- }
- });
- return p.value();
- })).collect(Collectors.toList());
- }
-
- protected <T> List<T> buildalidatorList(Reflections reflections, Class<T> clazz) {
- List<T> result = new ArrayList<>();
- try {
- for (Class<? extends T> klass : reflections.getSubTypesOf(clazz)) {
- result.add(klass.newInstance());
- }
- } catch (InstantiationException | IllegalAccessException e) {
- logger.error("failed to build validator list for " + clazz.getName(), e);
- throw new RuntimeException(e);
- }
-
- return result;
- }
-
- protected List<PreWorkflowValidator> getPreWorkflowValidators() {
- return this.preWorkflowValidators;
+ protected List<PreWorkflowValidator> getPreFlowValidators() {
+ return this.preFlowValidators;
}
- protected List<PostWorkflowValidator> getPostWorkflowValidators() {
- return this.postWorkflowValidators;
+ protected List<PostWorkflowValidator> getPostFlowValidators() {
+ return this.postFlowValidators;
}
}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunnerTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunnerTest.java
index 9478b8f1f6..7246af0cb5 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunnerTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunnerTest.java
@@ -57,11 +57,11 @@ public class BuildingBlockValidatorRunnerTest {
MyPreValidatorOne one = new MyPreValidatorOne();
MyPreValidatorTwo two = new MyPreValidatorTwo();
MyPreValidatorThree three = new MyPreValidatorThree();
- List<BuildingBlockValidator> validators = Arrays.asList(one, two, three);
+ List<FlowValidator> validators = Arrays.asList(one, two, three);
- List<BuildingBlockValidator> result = runner.filterValidators(validators, "test");
+ List<FlowValidator> result = runner.filterValidators(validators, "test");
- List<BuildingBlockValidator> expected = Arrays.asList(two, one);
+ List<FlowValidator> expected = Arrays.asList(two, one);
assertEquals(expected, result);
}
@@ -75,7 +75,7 @@ public class BuildingBlockValidatorRunnerTest {
runner.preValidate("test", execution);
fail("exception not thrown");
} catch (BpmnError e) {
- WorkflowException workflowException = execution.getVariable("WorkflowException");
+ WorkflowException workflowException = (WorkflowException)execution.getVariable("WorkflowException");
assertEquals("Failed Validations:\norg.onap.so.bpmn.common.validation.MyPreValidatorTwo\norg.onap.so.bpmn.common.validation.MyPreValidatorOne", workflowException.getErrorMessage());
}
runner.preValidate("test2", mock(BuildingBlockExecution.class));
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorFour.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorFour.java
index 1b52f049b3..7aa42248ac 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorFour.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorFour.java
@@ -30,7 +30,7 @@ import org.springframework.stereotype.Component;
public class MyPreValidatorFour implements PreBuildingBlockValidator {
@Override
- public Set<String> forBuildingBlock() {
+ public Set<String> forItems() {
return Collections.singleton("test2");
}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorOne.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorOne.java
index d6afea9b19..302bb2b023 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorOne.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorOne.java
@@ -30,7 +30,7 @@ import org.springframework.stereotype.Component;
public class MyPreValidatorOne implements PreBuildingBlockValidator {
@Override
- public Set<String> forBuildingBlock() {
+ public Set<String> forItems() {
return Collections.singleton("test");
}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorThree.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorThree.java
index f7e93d5bd2..ca1a959104 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorThree.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorThree.java
@@ -30,7 +30,7 @@ import org.springframework.stereotype.Component;
public class MyPreValidatorThree implements PreBuildingBlockValidator {
@Override
- public Set<String> forBuildingBlock() {
+ public Set<String> forItems() {
return Collections.singleton("test2");
}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorTwo.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorTwo.java
index 0c15fd8589..b74c91433f 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorTwo.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorTwo.java
@@ -33,7 +33,7 @@ import org.springframework.stereotype.Component;
public class MyPreValidatorTwo implements PreBuildingBlockValidator {
@Override
- public Set<String> forBuildingBlock() {
+ public Set<String> forItems() {
return Collections.singleton("test");
}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorOne.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorOne.java
index 9ad87b5aeb..6538fe5378 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorOne.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorOne.java
@@ -23,20 +23,20 @@ package org.onap.so.bpmn.common.validation;
import java.util.Collections;
import java.util.Set;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.onap.so.bpmn.common.BuildingBlockExecution;
import org.springframework.stereotype.Component;
@Component
public class WorkflowPreValidatorOne implements PreWorkflowValidator {
@Override
- public Set<String> forWorkflowAction() {
+ public Set<String> forItems() {
return Collections.singleton("test");
}
@Override
- public boolean validate(DelegateExecution exeuction) {
+ public boolean validate(BuildingBlockExecution exeuction) {
return false;
}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorTwo.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorTwo.java
index 2157c673dc..e20f0f2b0e 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorTwo.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorTwo.java
@@ -25,7 +25,7 @@ import java.util.Set;
import javax.annotation.Priority;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.onap.so.bpmn.common.BuildingBlockExecution;
import org.springframework.stereotype.Component;
@Priority(1)
@@ -33,12 +33,12 @@ import org.springframework.stereotype.Component;
public class WorkflowPreValidatorTwo implements PreWorkflowValidator {
@Override
- public Set<String> forWorkflowAction() {
+ public Set<String> forItems() {
return Collections.singleton("test");
}
@Override
- public boolean validate(DelegateExecution execution) {
+ public boolean validate(BuildingBlockExecution execution) {
return false;
}
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunnerTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunnerTest.java
index 313fe6b0c3..0dd2f410f3 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunnerTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunnerTest.java
@@ -36,7 +36,6 @@ import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.onap.so.bpmn.common.BuildingBlockExecution;
-import org.onap.so.bpmn.common.DelegateExecutionImpl;
import org.onap.so.bpmn.core.WorkflowException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
@@ -57,11 +56,11 @@ public class WorkflowValidatorRunnerTest {
WorkflowPreValidatorOne one = new WorkflowPreValidatorOne();
WorkflowPreValidatorTwo two = new WorkflowPreValidatorTwo();
- List<WorkflowValidator> validators = Arrays.asList(one, two);
+ List<FlowValidator> validators = Arrays.asList(one, two);
- List<WorkflowValidator> result = runner.filterValidators(validators, "test");
+ List<FlowValidator> result = runner.filterValidators(validators, "test");
- List<WorkflowValidator> expected = Arrays.asList(two, one);
+ List<FlowValidator> expected = Arrays.asList(two, one);
assertEquals(expected, result);
}