Refactor Status to be immutable 15/3215/3
authorGary Wu <gary.i.wu@huawei.com>
Sat, 8 Apr 2017 21:36:17 +0000 (14:36 -0700)
committerGary Wu <gary.i.wu@huawei.com>
Wed, 19 Apr 2017 01:20:39 +0000 (01:20 +0000)
Change Status class to be immutable.
Add convenience method to convert from a LCMCommandStatus to
a Status object.

Change-Id: I9e47750d15b5ee0f5649b2fabf6387aa12ff9c9d
Signed-off-by: Gary Wu <gary.i.wu@huawei.com>
12 files changed:
appc-dispatcher/appc-command-executor/appc-command-executor-api/src/main/java/org/openecomp/appc/executor/objects/LCMCommandStatus.java
appc-dispatcher/appc-command-executor/appc-command-executor-core/src/main/java/org/openecomp/appc/executor/impl/CommandTask.java
appc-dispatcher/appc-command-executor/appc-command-executor-core/src/main/java/org/openecomp/appc/executor/impl/LCMCommandTask.java
appc-dispatcher/appc-command-executor/appc-command-executor-core/src/main/java/org/openecomp/appc/executor/impl/LCMReadonlyCommandTask.java
appc-dispatcher/appc-command-executor/appc-command-executor-core/src/test/java/org/openecomp/appc/executor/TestCommandExecutionTask.java
appc-dispatcher/appc-dispatcher-common/domain-model-lib/src/main/java/org/openecomp/appc/domainmodel/lcm/Status.java
appc-dispatcher/appc-request-handler/appc-request-handler-core/src/main/java/org/openecomp/appc/requesthandler/impl/RequestHandlerImpl.java
appc-dispatcher/appc-request-handler/appc-request-handler-core/src/test/java/org/openecomp/appc/requesthandler/TestConverter.java
appc-dispatcher/appc-request-handler/appc-request-handler-core/src/test/java/org/openecomp/appc/requesthandler/TestRequestHandler.java
appc-dispatcher/appc-request-handler/appc-request-handler-core/src/test/java/org/openecomp/appc/requesthandler/TestRequestValidator.java
appc-dispatcher/appc-workflow-management/appc-workflow-management-core/src/main/java/org/openecomp/appc/workflow/impl/WorkFlowManagerImpl.java
appc-provider/appc-provider-bundle/src/main/java/org/openecomp/appc/provider/AppcProviderLcm.java

index 4e3a40e..14bd815 100644 (file)
@@ -23,6 +23,7 @@ package org.openecomp.appc.executor.objects;
 
 
 import org.apache.commons.lang3.StringUtils;
+import org.openecomp.appc.domainmodel.lcm.Status;
 import org.openecomp.appc.util.MessageFormatter;
 
 import java.util.Map;
@@ -108,5 +109,9 @@ public enum LCMCommandStatus {
                 ", responseMessage='" + responseMessage + '\'' +
                 '}';
     }
+
+    public Status toStatus(Params params) {
+        return new Status(responseCode, getFormattedMessage(params));
+    }
 }
 
index 6418002..0037434 100644 (file)
@@ -119,8 +119,4 @@ public abstract class CommandTask<M> implements Runnable {
         this.onRequestCompletion(commandRequest,commandResponse);
     }
 
-    public static void fillStatus(Status status, LCMCommandStatus lcmCommandStatus, Params params) {
-        status.setCode(lcmCommandStatus.getResponseCode());
-        status.setMessage(lcmCommandStatus.getFormattedMessage(params));
-    }
 }
index 6e64a54..9f7c135 100644 (file)
@@ -147,22 +147,19 @@ public class LCMCommandTask extends CommandTask<LCMCommandRequest> {
                        isAAIUpdated= postVnfdata(vnfId, nextState,"onRequestExecutionStart",ctx);
                } catch (NoTransitionDefinedException e) {
                        logger.error("Error getting Next State for AAI Update:  " + e.getMessage(), e);
-                       Status status = request.getCommandExecutorInput().getRuntimeContext().getResponseContext().getStatus();
                        Params params = new Params().addParam("actionName",e.event).addParam("currentState",e.currentState);
-                       fillStatus(status, LCMCommandStatus.NO_TRANSITION_DEFINE_FAILURE, params);
+                       request.getCommandExecutorInput().getRuntimeContext().getResponseContext().setStatus(LCMCommandStatus.NO_TRANSITION_DEFINE_FAILURE.toStatus(params));
                        isAAIUpdated = false;
                } catch (UnstableVNFException e) {
                        logger.error(e.getMessage(), e);
-                       Status status = request.getCommandExecutorInput().getRuntimeContext().getResponseContext().getStatus();
                        Params params = new Params().addParam("vnfId",vnfId);
-                       fillStatus(status, LCMCommandStatus.UNSTABLE_VNF_FAILURE, params);
+                       request.getCommandExecutorInput().getRuntimeContext().getResponseContext().setStatus(LCMCommandStatus.UNSTABLE_VNF_FAILURE.toStatus(params));
                        isAAIUpdated = false;
                }catch (Exception e) {
                        logger.error("Error before Request Execution starts.", e);
-                       Status status = request.getCommandExecutorInput().getRuntimeContext().getResponseContext().getStatus();
                        String errorMsg = StringUtils.isEmpty(e.getMessage()) ? e.toString() : e.getMessage();
                        Params params = new Params().addParam("errorMsg",errorMsg);
-                       fillStatus(status, LCMCommandStatus.UNEXPECTED_FAILURE, params);
+                       request.getCommandExecutorInput().getRuntimeContext().getResponseContext().setStatus(LCMCommandStatus.UNEXPECTED_FAILURE.toStatus(params));
                        isAAIUpdated =  false;
                }
 
index 137a2e4..201662a 100644 (file)
@@ -67,15 +67,13 @@ public class LCMReadonlyCommandTask extends CommandTask<LCMReadOnlyCommandReques
             super.execute();
         } catch (UnstableVNFException e) {
             logger.error(e.getMessage(), e);
-            Status status = request.getCommandExecutorInput().getRuntimeContext().getResponseContext().getStatus();
             Params params = new Params().addParam("vnfId",vnfId);
-            fillStatus(status, LCMCommandStatus.UNSTABLE_VNF_FAILURE, params);
+            request.getCommandExecutorInput().getRuntimeContext().getResponseContext().setStatus(LCMCommandStatus.UNSTABLE_VNF_FAILURE.toStatus(params));
         }catch (Exception e) {
             logger.error("Error during runing LCMReadonlyCommandTask.", e);
-            Status status = request.getCommandExecutorInput().getRuntimeContext().getResponseContext().getStatus();
             String errorMsg = StringUtils.isEmpty(e.getMessage()) ? e.toString() : e.getMessage();
             Params params = new Params().addParam("errorMsg",errorMsg);
-            fillStatus(status, LCMCommandStatus.UNEXPECTED_FAILURE, params);
+            request.getCommandExecutorInput().getRuntimeContext().getResponseContext().setStatus(LCMCommandStatus.UNEXPECTED_FAILURE.toStatus(params));
         }
     }
 }
index 0504c39..d1adb21 100644 (file)
@@ -192,9 +192,7 @@ public class TestCommandExecutionTask {
                requestContext.setAction(action);
                runtimeContext.setRpcName(action.name().toLowerCase());
                commonHeader.setApiVer(API_VERSION);
-               Status status = new Status();
-               status.setCode(100);
-               responseContext.setStatus(status);
+               responseContext.setStatus(new Status(100, null));
                commonHeader.setRequestId(responseId);
                responseContext.setPayload(payload);
                commonHeader.setTimestamp(new Date());
@@ -247,7 +245,7 @@ public class TestCommandExecutionTask {
                ResponseContext responseContext = createResponseContextWithSuObjects();
                wfResponse.setResponseContext(responseContext);
                responseContext.setPayload("");
-               wfResponse.getResponseContext().getStatus().setCode(100);
+               wfResponse.getResponseContext().setStatus(new Status(100, null));
                return wfResponse;
        }
 
@@ -301,9 +299,8 @@ public class TestCommandExecutionTask {
                ResponseContext responseContext = new ResponseContext();
                CommonHeader commonHeader = new CommonHeader();
                Flags flags = new Flags();
-               Status status = new Status();
                responseContext.setCommonHeader(commonHeader);
-               responseContext.setStatus(status);
+               responseContext.setStatus(new Status(0, null));
                commonHeader.setFlags(flags);
                return responseContext;
        }
index a5fbefa..978e570 100644 (file)
@@ -24,25 +24,22 @@ package org.openecomp.appc.domainmodel.lcm;
 
 public class Status {
 
-    private int code;
-    private String message;
+    private final int code;
+    private final String message;
 
-    public int getCode() {
-        return code;
+    public Status(int code, String message) {
+        this.code = code;
+        this.message = message;
     }
 
-    public void setCode(int code) {
-        this.code = code;
+    public int getCode() {
+        return code;
     }
 
     public String getMessage() {
         return message;
     }
 
-    public void setMessage(String value) {
-        this.message = value;
-    }
-
     @Override
     public String toString() {
         return "Status{" +
index d130360..0259ec4 100644 (file)
@@ -175,11 +175,11 @@ public class RequestHandlerImpl implements RequestHandler {
         runtimeContext.setRpcName(input.getRpcName());
 
         final ResponseContext responseContext = new ResponseContext();
-        responseContext.setStatus(new Status());
+        responseContext.setStatus(new Status(0, null));
         responseContext.setAdditionalContext(new HashMap<String, String>(4));
         responseContext.setCommonHeader(input.getRequestContext().getCommonHeader());
         runtimeContext.setResponseContext(responseContext);
-        runtimeContext.getResponseContext().setStatus(new Status());
+        runtimeContext.getResponseContext().setStatus(new Status(0, null));
 
         vnfId = runtimeContext.getRequestContext().getActionIdentifiers().getVnfId();
 
@@ -402,8 +402,7 @@ public class RequestHandlerImpl implements RequestHandler {
     }
 
     private void fillStatus(RuntimeContext runtimeContext, LCMCommandStatus lcmCommandStatus, Params params) {
-        runtimeContext.getResponseContext().getStatus().setCode(lcmCommandStatus.getResponseCode());
-        runtimeContext.getResponseContext().getStatus().setMessage(lcmCommandStatus.getFormattedMessage(params));
+        runtimeContext.getResponseContext().setStatus(lcmCommandStatus.toStatus(params));
     }
 
     /*
@@ -414,7 +413,7 @@ public class RequestHandlerImpl implements RequestHandler {
         RuntimeContext other = new RuntimeContext();
         other.setRequestContext(runtimeContext.getRequestContext());
         other.setResponseContext(new ResponseContext());
-        other.getResponseContext().setStatus(new Status());
+        other.getResponseContext().setStatus(new Status(0, null));
         other.getResponseContext().setCommonHeader(runtimeContext.getRequestContext().getCommonHeader());
         other.setVnfContext(runtimeContext.getVnfContext());
         other.setRpcName(runtimeContext.getRpcName());
@@ -569,10 +568,7 @@ public class RequestHandlerImpl implements RequestHandler {
     private static RequestHandlerOutput buildRequestHandlerOutput(LCMCommandStatus response, Params params) {
         RequestHandlerOutput output = new RequestHandlerOutput();
         ResponseContext responseContext = new ResponseContext();
-        org.openecomp.appc.domainmodel.lcm.Status status = new org.openecomp.appc.domainmodel.lcm.Status();
-        status.setCode(response.getResponseCode());
-        status.setMessage(response.getFormattedMessage(params));
-        responseContext.setStatus(status);
+        responseContext.setStatus(response.toStatus(params));
         output.setResponseContext(responseContext);
         return output;
     }
index 46875a2..aaf17fb 100644 (file)
@@ -324,8 +324,7 @@ public class TestConverter {
 
        private ResponseContext buildAsyncResponse() {
                ResponseContext asyncResponse = createResponseContextWithSubObjects();
-               asyncResponse.getStatus().setCode(LCMCommandStatus.SUCCESS.getResponseCode());
-               asyncResponse.getStatus().setMessage(LCMCommandStatus.SUCCESS.getResponseMessage());
+               asyncResponse.setStatus(LCMCommandStatus.SUCCESS.toStatus(null));
                asyncResponse.getCommonHeader().setOriginatorId("oid");
                asyncResponse.getCommonHeader().setApiVer("2.0.0");
                asyncResponse.getCommonHeader().setRequestId("reqid");
@@ -339,9 +338,8 @@ public class TestConverter {
                ResponseContext responseContext = new ResponseContext();
                CommonHeader commonHeader = new CommonHeader();
                Flags flags = new Flags();
-               Status status = new Status();
                responseContext.setCommonHeader(commonHeader);
-               responseContext.setStatus(status);
+               responseContext.setStatus(new Status(0, null));
                commonHeader.setFlags(flags);
                return responseContext;
        }
index e4c1e92..e060775 100644 (file)
@@ -302,12 +302,12 @@ public class TestRequestHandler {
 
 
                ResponseContext responseContext = new ResponseContext();
-               responseContext.setStatus(new Status());
+               responseContext.setStatus(new Status(0, null));
                responseContext.setAdditionalContext(new HashMap<String, String>(4));
                responseContext.setCommonHeader(input1.getRequestContext().getCommonHeader());
                runtimeContext.setResponseContext(responseContext);
                when(runtimeContext.getResponseContext()).thenReturn(responseContext);
-               responseContext.setStatus(new Status());
+               responseContext.setStatus(new Status(0, null));
                runtimeContext.setResponseContext(responseContext);
                PowerMockito.whenNew(RuntimeContext.class).withAnyArguments().thenReturn(runtimeContext);
 
@@ -451,7 +451,7 @@ public class TestRequestHandler {
                output.getVnfContext().setId(vnfId);
                output.getResponseContext().getCommonHeader().setApiVer("2.0.0");
                output.getResponseContext().getCommonHeader().setTimestamp(new Date());
-               output.getResponseContext().getStatus().setCode(LCMCommandStatus.SUCCESS.getResponseCode());
+               output.getResponseContext().setStatus(LCMCommandStatus.SUCCESS.toStatus(null));
                output.setTimeStart(new Date());
                output.getResponseContext().getCommonHeader().setOriginatorId(originatorId);
                output.getResponseContext().getCommonHeader().setRequestId(requestId);
@@ -566,9 +566,8 @@ public class TestRequestHandler {
                ResponseContext responseContext = new ResponseContext();
                CommonHeader commonHeader = new CommonHeader();
                Flags flags = new Flags();
-               Status status = new Status();
                responseContext.setCommonHeader(commonHeader);
-               responseContext.setStatus(status);
+               responseContext.setStatus(new Status(0, null));
                commonHeader.setFlags(flags);
                return responseContext;
        }
index 344f204..becd95d 100644 (file)
@@ -601,9 +601,8 @@ public class TestRequestValidator {
         ResponseContext responseContext = new ResponseContext();
         CommonHeader commonHeader = new CommonHeader();
         Flags flags = new Flags();
-        Status status = new Status();
         responseContext.setCommonHeader(commonHeader);
-        responseContext.setStatus(status);
+        responseContext.setStatus(new Status(0, null));
         commonHeader.setFlags(flags);
         return responseContext;
     }
index 6b197ef..4ed5755 100644 (file)
@@ -33,6 +33,7 @@ import org.openecomp.appc.configuration.Configuration;
 import org.openecomp.appc.configuration.ConfigurationFactory;
 import org.openecomp.appc.domainmodel.lcm.RequestContext;
 import org.openecomp.appc.domainmodel.lcm.ResponseContext;
+import org.openecomp.appc.domainmodel.lcm.Status;
 import org.openecomp.appc.util.ObjectMapper;
 import org.openecomp.appc.workflow.WorkFlowManager;
 import org.openecomp.appc.workflow.objects.WorkflowExistsOutput;
@@ -335,9 +336,7 @@ public class WorkFlowManagerImpl implements WorkFlowManager{
      * @param responceContext response context which will be store status code and status message
      */
     private void fillStatus(int code, String message, ResponseContext responceContext) {
-        responceContext.getStatus().setCode(code);
-        responceContext.getStatus().setMessage(message);
+        responceContext.setStatus(new Status(code, message));
     }
 
-
 }
index 5fe174e..6d186ab 100644 (file)
@@ -462,14 +462,10 @@ public class AppcProviderLcm implements AutoCloseable, AppcProviderLcmService {
             requestHandlerOutput = new RequestHandlerOutput();
             requestHandlerOutput.setResponseContext(responseContext);
             responseContext.setCommonHeader(request.getRequestContext().getCommonHeader());
-            final org.openecomp.appc.domainmodel.lcm.Status status = new org.openecomp.appc.domainmodel.lcm.Status();
-
-            responseContext.setStatus(status);
-
             String errorMessage = e.getMessage() != null ? e.getMessage() : e.toString();
             Params params = new Params().addParam("errorMsg", errorMessage);
-            status.setCode(LCMCommandStatus.UNEXPECTED_ERROR.getResponseCode());
-            status.setMessage(LCMCommandStatus.UNEXPECTED_ERROR.getFormattedMessage(params));
+            responseContext.setStatus(LCMCommandStatus.UNEXPECTED_ERROR.toStatus(params));
+
             LoggingUtils.logErrorMessage(
                     LoggingConstants.TargetNames.APPC_PROVIDER,
                     reason,