diff options
author | liamfallon <liam.fallon@ericsson.com> | 2018-09-22 21:07:43 +0100 |
---|---|---|
committer | liamfallon <liam.fallon@ericsson.com> | 2018-09-22 21:15:22 +0100 |
commit | 6973ec9109fd2651e2284663b6c8039bd830a677 (patch) | |
tree | f1f02ef9e5400805e6c2179dc539ad15c3ce5334 /core/core-engine | |
parent | a02548ec2e98a8a13cd76ecc83379b13cd26030b (diff) |
Fix sonar problems in Apex
Fixed some easy to resolve Sonar issues.
Issue-ID: POLICY-1034
Change-Id: Ia8e4606bd4307daca499b4a74c96135211e572fd
Signed-off-by: liamfallon <liam.fallon@ericsson.com>
Diffstat (limited to 'core/core-engine')
5 files changed, 78 insertions, 32 deletions
diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/ApexEngine.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/ApexEngine.java index b2978a0c0..2c5167d1b 100644 --- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/ApexEngine.java +++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/ApexEngine.java @@ -43,15 +43,6 @@ import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel; */ public interface ApexEngine { /** - * The amount of milliseconds to wait for the current Apex engine to timeout on engine stop - * requests. If the timeout is exceeded, the stop aborts. - */ - int STOP_EXECUTION_WAIT_TIMEOUT = 3000; - - /** The wait increment (or pause time) when waiting for the Apex engine to stop. */ - int APEX_ENGINE_STOP_EXECUTION_WAIT_INCREMENT = 100; - - /** * Update the Apex model to be used by the Apex engine. The engine must be in state "STOPPED" * when the model is updated. The engine will replace the current model with the incoming model * if the model of the engine was previously updated and the value of common context is diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineConstants.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineConstants.java new file mode 100644 index 000000000..e01feb730 --- /dev/null +++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineConstants.java @@ -0,0 +1,43 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.apex.core.engine.engine.impl; + +/** + * Constants for the Apex engine. + * + */ +public abstract class ApexEngineConstants { + /** + * The amount of milliseconds to wait for the current Apex engine to timeout on engine stop + * requests. If the timeout is exceeded, the stop aborts. + */ + public static final int STOP_EXECUTION_WAIT_TIMEOUT = 3000; + + /** The wait increment (or pause time) when waiting for the Apex engine to stop. */ + public static final int APEX_ENGINE_STOP_EXECUTION_WAIT_INCREMENT = 100; + + /** + * Private constructor to prevent subclassing. + */ + private ApexEngineConstants() { + // Constructor to avoid subclassing + } +} diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineImpl.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineImpl.java index 6f2bab0b9..022617864 100644 --- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineImpl.java +++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineImpl.java @@ -161,8 +161,7 @@ public class ApexEngineImpl implements ApexEngine { LOGGER.entry("start()" + key); if (state != AxEngineState.STOPPED) { - String message = START + key.getId() + "," + state - + ", cannot start engine, engine not in state STOPPED"; + String message = START + key.getId() + "," + state + ", cannot start engine, engine not in state STOPPED"; LOGGER.warn(message); throw new ApexException(message); } @@ -203,7 +202,9 @@ public class ApexEngineImpl implements ApexEngine { LOGGER.entry("stop()->" + key); // Stop the engine if it is in state READY, if it is in state EXECUTING, wait for execution to finish - for (int increment = STOP_EXECUTION_WAIT_TIMEOUT; increment > 0; increment = STOP_EXECUTION_WAIT_TIMEOUT) { + for (int increment = ApexEngineConstants.STOP_EXECUTION_WAIT_TIMEOUT; + increment > 0; + increment = ApexEngineConstants.STOP_EXECUTION_WAIT_TIMEOUT) { synchronized (state) { switch (state) { // Already stopped diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/Executor.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/Executor.java index 9941c6de8..22a23d062 100644 --- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/Executor.java +++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/Executor.java @@ -23,6 +23,7 @@ package org.onap.policy.apex.core.engine.executor; import org.onap.policy.apex.context.ContextException; import org.onap.policy.apex.core.engine.ExecutorParameters; import org.onap.policy.apex.core.engine.executor.exception.StateMachineException; +import org.onap.policy.apex.model.basicmodel.concepts.ApexException; import org.onap.policy.apex.model.basicmodel.concepts.AxConcept; /** @@ -70,7 +71,7 @@ public interface Executor<I, O, S, C> { * @throws StateMachineException on an execution error * @throws ContextException on context errors */ - O execute(long executionId, I incomingEntity) throws StateMachineException, ContextException; + O execute(long executionId, I incomingEntity) throws ApexException; /** * Carry out the preparatory work for execution. @@ -80,7 +81,7 @@ public interface Executor<I, O, S, C> { * @throws StateMachineException on an execution error * @throws ContextException on context errors */ - void executePre(long executionId, I incomingEntity) throws StateMachineException, ContextException; + void executePre(long executionId, I incomingEntity) throws ApexException; /** * Carry out the post work for execution, the returning entity should be set by the child @@ -91,7 +92,7 @@ public interface Executor<I, O, S, C> { * @throws StateMachineException on an execution error * @throws ContextException On context errors */ - void executePost(boolean returnValue) throws StateMachineException, ContextException; + void executePost(boolean returnValue) throws ApexException; /** * Cleans up after processing. diff --git a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskExecutor.java b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskExecutor.java index 814f257f7..2a62f3ae2 100644 --- a/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskExecutor.java +++ b/core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskExecutor.java @@ -181,23 +181,7 @@ public abstract class TaskExecutor // Copy any unset fields from the input to the output if their data type and names are // identical for (final String field : axTask.getOutputFields().keySet()) { - // Check if the field exists and is not set on the output - if (!getOutgoing().containsKey(field) || getOutgoing().get(field) != null) { - continue; - } - - // This field is not in the output, check if it's on the input and is the same type - // (Note here, the output - // field definition has to exist so it's not - // null checked) - final AxInputField inputFieldDef = axTask.getInputFields().get(field); - final AxOutputField outputFieldDef = axTask.getOutputFields().get(field); - if (inputFieldDef == null || !inputFieldDef.getSchema().equals(outputFieldDef.getSchema())) { - continue; - } - - // We have an input field that matches our output field, copy the value across - getOutgoing().put(field, getIncoming().get(field)); + copyInputField2Output(field); } // Finally, check that the outgoing fields have all the output fields defined for this state @@ -233,6 +217,32 @@ public abstract class TaskExecutor LOGGER.debug(message); } + /** + * If the input field exists on the output and it is not set in the task, then it should + * be copied to the output. + * + * @param field the input field + */ + private void copyInputField2Output(String field) { + // Check if the field exists and is not set on the output + if (!getOutgoing().containsKey(field) || getOutgoing().get(field) != null) { + return; + } + + // This field is not in the output, check if it's on the input and is the same type + // (Note here, the output + // field definition has to exist so it's not + // null checked) + final AxInputField inputFieldDef = axTask.getInputFields().get(field); + final AxOutputField outputFieldDef = axTask.getOutputFields().get(field); + if (inputFieldDef == null || !inputFieldDef.getSchema().equals(outputFieldDef.getSchema())) { + return; + } + + // We have an input field that matches our output field, copy the value across + getOutgoing().put(field, getIncoming().get(field)); + } + /* * (non-Javadoc) * |