Clean up Process Engine selection logic
[so.git] / bpmn / MSOCommonBPMN / src / main / java / org / openecomp / mso / bpmn / common / workflow / service / SDNCAdapterCallbackServiceImpl.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * ONAP - SO\r
4  * ================================================================================\r
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END=========================================================\r
19  */\r
20 \r
21 package org.openecomp.mso.bpmn.common.workflow.service;\r
22 \r
23 import javax.jws.WebMethod;\r
24 import javax.jws.WebParam;\r
25 import javax.jws.WebResult;\r
26 import javax.jws.WebService;\r
27 import javax.ws.rs.core.Context;\r
28 import javax.xml.ws.WebServiceContext;\r
29 \r
30 import org.openecomp.mso.bpmn.common.adapter.sdnc.SDNCAdapterCallbackRequest;\r
31 import org.openecomp.mso.bpmn.common.adapter.sdnc.SDNCAdapterResponse;\r
32 import org.openecomp.mso.bpmn.common.adapter.sdnc.SDNCCallbackAdapterPortType;\r
33 import org.openecomp.mso.logger.MsoLogger;\r
34 \r
35 /**\r
36  * Implementation of SDNCAdapterCallbackService.\r
37  */\r
38 @WebService(serviceName="SDNCAdapterCallbackService", targetNamespace="http://org.openecomp/workflow/sdnc/adapter/schema/v1")\r
39 public class SDNCAdapterCallbackServiceImpl extends AbstractCallbackService implements SDNCCallbackAdapterPortType {\r
40 \r
41         private final String logMarker = "[SDNC-CALLBACK]";\r
42 \r
43         @Context WebServiceContext wsContext;\r
44 \r
45         @WebMethod(operationName = "SDNCAdapterCallback")\r
46     @WebResult(name = "SDNCAdapterResponse", targetNamespace = "http://org.openecomp/workflow/sdnc/adapter/schema/v1", partName = "SDNCAdapterCallbackResponse")\r
47     public SDNCAdapterResponse sdncAdapterCallback(\r
48             @WebParam(name = "SDNCAdapterCallbackRequest", targetNamespace = "http://org.openecomp/workflow/sdnc/adapter/schema/v1", partName = "SDNCAdapterCallbackRequest")\r
49             SDNCAdapterCallbackRequest sdncAdapterCallbackRequest) {\r
50 \r
51                 String method = "sdncAdapterCallback";\r
52                 Object message = sdncAdapterCallbackRequest;\r
53                 String messageEventName = "sdncAdapterCallbackRequest";\r
54                 String messageVariable = "sdncAdapterCallbackRequest";\r
55                 String correlationVariable = "SDNCA_requestId";\r
56                 String correlationValue = sdncAdapterCallbackRequest.getCallbackHeader().getRequestId();\r
57 \r
58                 MsoLogger.setServiceName("MSO." + method);\r
59                 MsoLogger.setLogContext(correlationValue, "N/A");\r
60 \r
61                 CallbackResult result = handleCallback(method, message, messageEventName,\r
62                         messageVariable, correlationVariable, correlationValue, logMarker);\r
63 \r
64                 if (result instanceof CallbackError) {\r
65                         return new SDNCAdapterErrorResponse(((CallbackError)result).getErrorMessage());\r
66                 } else {\r
67                         return new SDNCAdapterResponse();\r
68                 }\r
69         }\r
70 \r
71         // This subclass allows unit tests to extract the error\r
72         public class SDNCAdapterErrorResponse extends SDNCAdapterResponse {\r
73                 private String error;\r
74 \r
75                 public SDNCAdapterErrorResponse(String error) {\r
76                         this.error = error;\r
77                 }\r
78 \r
79                 public String getError() {\r
80                         return error;\r
81                 }\r
82         }\r
83 }