2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.mso.adapters.sdnc.impl;
23 import javax.annotation.PostConstruct;
24 import javax.jws.WebService;
25 import javax.servlet.http.HttpServletResponse;
27 import org.openecomp.mso.adapters.sdnc.SDNCAdapterPortType;
28 import org.openecomp.mso.adapters.sdnc.SDNCAdapterRequest;
29 import org.openecomp.mso.adapters.sdnc.SDNCAdapterResponse;
30 import org.openecomp.mso.adapters.sdnc.util.SDNCRequestIdUtil;
31 import org.openecomp.mso.logger.MessageEnum;
32 import org.openecomp.mso.logger.MsoAlarmLogger;
33 import org.openecomp.mso.logger.MsoLogger;
34 import org.openecomp.mso.properties.MsoPropertiesException;
35 import org.openecomp.mso.properties.MsoPropertiesFactory;
37 //BPEL SDNCAdapter SOAP Web Service implementation
38 @WebService(serviceName = "SDNCAdapterService", endpointInterface = "org.openecomp.mso.adapters.sdnc.SDNCAdapterPortType", targetNamespace = "http://org.openecomp/workflow/sdnc/adapter/wsdl/v1")
39 public class SDNCAdapterPortTypeImpl implements SDNCAdapterPortType {
41 private MsoPropertiesFactory msoPropertiesFactory=new MsoPropertiesFactory();
43 private static MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA);
44 private static MsoAlarmLogger alarmLogger = new MsoAlarmLogger();
45 public static final String MSO_PROP_SDNC_ADAPTER="MSO_PROP_SDNC_ADAPTER";
49 msoLogger.info(MessageEnum.RA_INIT_SDNC_ADAPTER, "SDNC", "SDNCAdapterPortType");
53 * Health Check web method. Does nothing but return to show the adapter is deployed.
56 public void healthCheck ()
58 msoLogger.debug("Health check call in SDNC Adapter");
61 public static String getProperty(String key, String defaultValue, MsoPropertiesFactory msoPropertiesFactoryp) {
64 value = msoPropertiesFactoryp.getMsoJavaProperties(MSO_PROP_SDNC_ADAPTER).getProperty(key, defaultValue);
65 } catch (MsoPropertiesException e) {
66 msoLogger.error (MessageEnum.NO_PROPERTIES, "Unknown. Mso Properties ID not found in cache: " + MSO_PROP_SDNC_ADAPTER, "SDNC", "", MsoLogger.ErrorCode.DataError, "Exception - Mso Properties ID not found in cache", e);
69 msoLogger.debug("Config read for " + MSO_PROP_SDNC_ADAPTER + " - key:" + key + " value:" + value);
74 public SDNCAdapterResponse sdncAdapter(SDNCAdapterRequest bpelRequest) {
75 String bpelReqId = bpelRequest.getRequestHeader().getRequestId();
76 String callbackUrl = bpelRequest.getRequestHeader().getCallbackUrl();
77 long startTime = System.currentTimeMillis ();
78 MsoLogger.setLogContext(SDNCRequestIdUtil.getSDNCOriginalRequestId (bpelReqId), bpelRequest.getRequestHeader().getSvcInstanceId());
79 MsoLogger.setServiceName (bpelRequest.getRequestHeader().getSvcAction());
80 msoLogger.info(MessageEnum.RA_RECEIVE_BPEL_REQUEST, bpelReqId, callbackUrl, "SDNC", "");
82 SDNCRestClient sdncClient = new SDNCRestClient(bpelRequest,msoPropertiesFactory);
84 Thread sdncClientThread = new Thread(sdncClient);
85 sdncClientThread.start();
88 String respMsg = "Error sending request to SDNC. Failed to start SDNC Client thread " + e.getMessage();
89 msoLogger.error(MessageEnum.RA_SEND_REQUEST_SDNC_ERR, "SDNC", "", MsoLogger.ErrorCode.DataError, "Exception sending request to SDNC. Failed to start SDNC Client thread", e);
90 alarmLogger.sendAlarm("MsoInternalError", MsoAlarmLogger.CRITICAL, respMsg);
91 SDNCResponse sdncResp = new SDNCResponse(bpelReqId);
92 sdncResp.setRespCode(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
93 sdncResp.setRespMsg(respMsg);
94 SDNCRestClient.sendRespToBpel(callbackUrl, sdncResp, msoPropertiesFactory);
97 msoLogger.debug("Sending synchronous response to BPEL");
98 SDNCAdapterResponse wsResp = new SDNCAdapterResponse();
99 msoLogger.recordAuditEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successful");