summaryrefslogtreecommitdiffstats
path: root/common/src
diff options
context:
space:
mode:
Diffstat (limited to 'common/src')
-rw-r--r--common/src/main/java/org/openecomp/mso/entity/MsoRequest.java61
-rw-r--r--common/src/main/java/org/openecomp/mso/entity/package-info.java26
-rw-r--r--common/src/main/java/org/openecomp/mso/logger/LogFilter.java63
-rw-r--r--common/src/main/java/org/openecomp/mso/logger/MessageEnum.java229
-rw-r--r--common/src/main/java/org/openecomp/mso/logger/MsoAlarmLogger.java181
-rw-r--r--common/src/main/java/org/openecomp/mso/logger/MsoLogInitializer.java108
-rw-r--r--common/src/main/java/org/openecomp/mso/logger/MsoLogger.java973
-rw-r--r--common/src/main/java/org/openecomp/mso/logger/MsoLoggingServlet.java155
-rw-r--r--common/src/main/java/org/openecomp/mso/properties/AbstractMsoProperties.java75
-rw-r--r--common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java181
-rw-r--r--common/src/main/java/org/openecomp/mso/properties/MsoJsonProperties.java172
-rw-r--r--common/src/main/java/org/openecomp/mso/properties/MsoPropertiesException.java51
-rw-r--r--common/src/main/java/org/openecomp/mso/properties/MsoPropertiesFactory.java395
-rw-r--r--common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java33
-rw-r--r--common/src/main/java/org/openecomp/mso/properties/MsoPropertyInitializer.java87
-rw-r--r--common/src/main/java/org/openecomp/mso/utils/CheckResults.java118
-rw-r--r--common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java95
-rw-r--r--common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java76
-rw-r--r--common/src/main/resources/ASDC.properties210
-rw-r--r--common/src/main/resources/ApiHandler.properties255
-rw-r--r--common/src/main/resources/BPMN.properties94
-rw-r--r--common/src/main/resources/GenericMessages.properties139
-rw-r--r--common/src/main/resources/ResourceAdapter.properties489
-rw-r--r--common/src/test/java/org/openecomp/mso/adapter_utils/tests/CryptoTest.java79
-rw-r--r--common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoAlarmLoggerTest.java131
-rw-r--r--common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoLoggerTest.java339
-rw-r--r--common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryConcurrencyTest.java174
-rw-r--r--common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryTest.java611
-rw-r--r--common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertyInitializerTest.java88
-rw-r--r--common/src/test/java/org/openecomp/mso/entity/MsoRequestESTest.java65
-rw-r--r--common/src/test/java/org/openecomp/mso/entity/MsoRequestESTestscaffolding.java78
-rw-r--r--common/src/test/java/org/openecomp/mso/logger/LogFilterESTest.java191
-rw-r--r--common/src/test/java/org/openecomp/mso/logger/LogFilterESTestscaffolding.java78
-rw-r--r--common/src/test/java/org/openecomp/mso/logger/MsoAlarmLoggerESTestscaffolding.java90
-rw-r--r--common/src/test/java/org/openecomp/mso/logger/MsoLogInitializerESTest.java37
-rw-r--r--common/src/test/java/org/openecomp/mso/logger/MsoLogInitializerESTestscaffolding.java145
-rw-r--r--common/src/test/java/org/openecomp/mso/logger/MsoLoggingServletESTest.java34
-rw-r--r--common/src/test/java/org/openecomp/mso/logger/MsoLoggingServletESTestscaffolding.java337
-rw-r--r--common/src/test/java/org/openecomp/mso/properties/AbstractMsoPropertiesESTest.java151
-rw-r--r--common/src/test/java/org/openecomp/mso/properties/AbstractMsoPropertiesESTestscaffolding.java120
-rw-r--r--common/src/test/java/org/openecomp/mso/properties/MsoJavaPropertiesESTest.java358
-rw-r--r--common/src/test/java/org/openecomp/mso/properties/MsoJavaPropertiesESTestscaffolding.java110
-rw-r--r--common/src/test/java/org/openecomp/mso/properties/MsoJsonPropertiesESTest.java35
-rw-r--r--common/src/test/java/org/openecomp/mso/properties/MsoPropertiesExceptionESTest.java24
-rw-r--r--common/src/test/java/org/openecomp/mso/properties/MsoPropertiesExceptionESTestscaffolding.java83
-rw-r--r--common/src/test/java/org/openecomp/mso/properties/MsoPropertiesFactoryESTest.java71
-rw-r--r--common/src/test/java/org/openecomp/mso/properties/MsoPropertiesParametersESTest.java20
-rw-r--r--common/src/test/java/org/openecomp/mso/properties/MsoPropertiesParametersESTestscaffolding.java129
-rw-r--r--common/src/test/java/org/openecomp/mso/properties/MsoPropertyInitializerESTest.java20
-rw-r--r--common/src/test/java/org/openecomp/mso/properties/MsoPropertyInitializerESTestscaffolding.java284
-rw-r--r--common/src/test/java/org/openecomp/mso/utils/CheckResultsESTest.java124
-rw-r--r--common/src/test/java/org/openecomp/mso/utils/CheckResultsESTestscaffolding.java79
-rw-r--r--common/src/test/java/org/openecomp/mso/utils/CheckResultsTest.java56
-rw-r--r--common/src/test/java/org/openecomp/mso/utils/CryptoUtilsESTest.java175
-rw-r--r--common/src/test/java/org/openecomp/mso/utils/CryptoUtilsESTestscaffolding.java83
-rw-r--r--common/src/test/java/org/openecomp/mso/utils/UUIDCheckerESTest.java34
-rw-r--r--common/src/test/java/org/openecomp/mso/utils/UUIDCheckerESTestscaffolding.java94
-rw-r--r--common/src/test/resources/logback-test.xml171
-rw-r--r--common/src/test/resources/mso-bad.json40
-rw-r--r--common/src/test/resources/mso.json21
-rw-r--r--common/src/test/resources/mso.nrdp-alarms.properties23
-rw-r--r--common/src/test/resources/mso.properties28
-rw-r--r--common/src/test/resources/mso2.json41
-rw-r--r--common/src/test/resources/mso2.properties22
64 files changed, 9139 insertions, 0 deletions
diff --git a/common/src/main/java/org/openecomp/mso/entity/MsoRequest.java b/common/src/main/java/org/openecomp/mso/entity/MsoRequest.java
new file mode 100644
index 0000000000..4f3a4ab9de
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/entity/MsoRequest.java
@@ -0,0 +1,61 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.entity;
+
+
+
+/**
+ * This simple bean holds tracking information for MSO requests within
+ * the adapters. This tracking information should be added to logs,
+ * metrics, alarms as appropriate.
+ *
+ *
+ */
+public class MsoRequest
+{
+ private String requestId;
+ private String serviceInstanceId;
+
+ public MsoRequest() {
+ this.requestId = null;
+ this.serviceInstanceId = null;
+ }
+ public MsoRequest(String r, String s) {
+ this.requestId = r;
+ this.serviceInstanceId = s;
+ }
+
+ public String getRequestId() {
+ return requestId;
+ }
+
+ public void setRequestId(String requestId) {
+ this.requestId = requestId;
+ }
+
+ public String getServiceInstanceId() {
+ return serviceInstanceId;
+ }
+
+ public void setServiceInstanceId(String serviceInstanceId) {
+ this.serviceInstanceId = serviceInstanceId;
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/entity/package-info.java b/common/src/main/java/org/openecomp/mso/entity/package-info.java
new file mode 100644
index 0000000000..e97a588e32
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/entity/package-info.java
@@ -0,0 +1,26 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
+
+/**
+ * Entities used for logging.
+ */
+
+package org.openecomp.mso.entity;
+
diff --git a/common/src/main/java/org/openecomp/mso/logger/LogFilter.java b/common/src/main/java/org/openecomp/mso/logger/LogFilter.java
new file mode 100644
index 0000000000..ca25ad2e22
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/logger/LogFilter.java
@@ -0,0 +1,63 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.logger;
+
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.MDC;
+
+import java.io.IOException;
+import java.security.Principal;
+
+public class LogFilter implements Filter {
+ @Override
+ public void destroy() {
+ // Nothing to do.
+ }
+
+ @Override
+ public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
+ final HttpServletRequest httpRequest = (HttpServletRequest) request;
+ final HttpServletResponse httpResponse = (HttpServletResponse) response;
+
+ MDC.clear ();
+ MDC.put (MsoLogger.REMOTE_HOST, httpRequest.getRemoteAddr());
+
+ Principal userPrincipal = httpRequest.getUserPrincipal();
+ if (null != userPrincipal) {
+ MDC.put (MsoLogger.PARTNERNAME, userPrincipal.getName ());
+ }
+ chain.doFilter(httpRequest, httpResponse);
+ }
+
+ @Override
+ public void init(final FilterConfig config) throws ServletException {
+ // Nothing to do
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/logger/MessageEnum.java b/common/src/main/java/org/openecomp/mso/logger/MessageEnum.java
new file mode 100644
index 0000000000..89f6df93b7
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/logger/MessageEnum.java
@@ -0,0 +1,229 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.logger;
+
+
+import com.att.eelf.i18n.EELFResolvableErrorEnum;
+import com.att.eelf.i18n.EELFResourceManager;
+
+public enum MessageEnum implements EELFResolvableErrorEnum{
+ // Api Handler Messages
+ APIH_REQUEST_NULL,
+ APIH_QUERY_FOUND,
+ APIH_QUERY_NOT_FOUND,
+ APIH_QUERY_PARAM_WRONG,
+ APIH_DB_ACCESS_EXC,
+ APIH_DB_ACCESS_EXC_REASON,
+ APIH_VALIDATION_ERROR,
+ APIH_REQUEST_VALIDATION_ERROR,
+ APIH_SERVICE_VALIDATION_ERROR,
+ APIH_GENERAL_EXCEPTION_ARG,
+ APIH_GENERAL_EXCEPTION,
+ APIH_GENERAL_WARNING,
+ APIH_AUDIT_EXEC,
+ APIH_GENERAL_METRICS,
+ APIH_DUPLICATE_CHECK_EXC,
+ APIH_DUPLICATE_FOUND,
+ APIH_BAD_ORDER,
+ APIH_DB_ATTRIBUTE_NOT_FOUND,
+ APIH_BPEL_COMMUNICATE_ERROR,
+ APIH_BPEL_RESPONSE_ERROR,
+ APIH_WARP_REQUEST,
+ APIH_ERROR_FROM_BPEL_SERVER,
+ APIH_DB_INSERT_EXC,
+ APIH_DB_UPDATE_EXC,
+ APIH_NO_PROPERTIES,
+ APIH_PROPERTY_LOAD_SUC,
+ APIH_LOAD_PROPERTIES_FAIL,
+ APIH_SDNC_COMMUNICATE_ERROR,
+ APIH_SDNC_RESPONSE_ERROR,
+ APIH_CANNOT_READ_SCHEMA,
+ APIH_HEALTH_CHECK_EXCEPTION,
+ APIH_REQUEST_VALIDATION_ERROR_REASON,
+ APIH_JAXB_MARSH_ERROR,
+ APIH_JAXB_UNMARSH_ERROR,
+ APIH_VNFREQUEST_VALIDATION_ERROR,
+ APIH_DOM2STR_ERROR,
+ APIH_READ_VNFOUTPUT_CLOB_EXCEPTION,
+ APIH_DUPLICATE_CHECK_EXC_ATT,
+ APIH_GENERATED_REQUEST_ID,
+ APIH_GENERATED_SERVICE_INSTANCE_ID,
+ APIH_REPLACE_REQUEST_ID,
+ // Resource Adapter Messages
+ RA_GENERAL_EXCEPTION_ARG,
+ RA_GENERAL_EXCEPTION,
+ RA_GENERAL_WARNING,
+ RA_MISSING_PARAM,
+ RA_AUDIT_EXEC,
+ RA_GENERAL_METRICS,
+ RA_CREATE_STACK_TIMEOUT,
+ RA_DELETE_STACK_TIMEOUT,
+ RA_UPDATE_STACK_TIMEOUT,
+ RA_CONNECTION_EXCEPTION,
+ RA_PARSING_ERROR,
+ RA_PROPERTIES_NOT_FOUND,
+ RA_LOAD_PROPERTIES_SUC,
+ RA_NETWORK_ALREADY_EXIST,
+ RA_UPDATE_NETWORK_ERR,
+ RA_CREATE_STACK_ERR,
+ RA_UPDATE_STACK_ERR,
+ RA_CREATE_TENANT_ERR,
+ RA_NETWORK_NOT_FOUND,
+ RA_NETWORK_ORCHE_MODE_NOT_SUPPORT,
+ RA_CREATE_NETWORK_EXC,
+ RA_PARAM_NOT_FOUND,
+ RA_CONFIG_EXC,
+ RA_UNKOWN_PARAM,
+ RA_VLAN_PARSE,
+ RA_DELETE_NETWORK_EXC,
+ RA_ROLLBACK_NULL,
+ RA_TENANT_NOT_FOUND,
+ RA_QUERY_NETWORK_EXC,
+ RA_CREATE_NETWORK_NOTIF_EXC,
+ RA_ASYNC_ROLLBACK,
+ RA_WSDL_NOT_FOUND,
+ RA_WSDL_URL_CONVENTION_EXC,
+ RA_INIT_NOTIF_EXC,
+ RA_SET_CALLBACK_AUTH_EXC,
+ RA_FAULT_INFO_EXC,
+ RA_MARSHING_ERROR,
+ RA_PARSING_REQUEST_ERROR,
+ RA_SEND_REQUEST_SDNC,
+ RA_RESPONSE_FROM_SDNC,
+ RA_EXCEPTION_COMMUNICATE_SDNC,
+ RA_EVALUATE_XPATH_ERROR,
+ RA_ANALYZE_ERROR_EXC,
+ RA_ERROR_GET_RESPONSE_SDNC,
+ RA_CALLBACK_BPEL,
+ RA_INIT_CALLBACK_WSDL_ERR,
+ RA_CALLBACK_BPEL_EXC,
+ RA_CALLBACK_BPEL_COMPLETE,
+ RA_SDNC_MISS_CONFIG_PARAM,
+ RA_SDNC_INVALID_CONFIG,
+ RA_PRINT_URL,
+ RA_ERROR_CREATE_SDNC_REQUEST,
+ RA_ERROR_CREATE_SDNC_RESPONSE,
+ RA_ERROR_CONVERT_XML2STR,
+ RA_RECEIVE_SDNC_NOTIF,
+ RA_INIT_SDNC_ADAPTER,
+ RA_SEND_REQUEST_APPC_ERR,
+ RA_SEND_REQUEST_SDNC_ERR,
+ RA_RECEIVE_BPEL_REQUEST,
+ RA_TENANT_ALREADY_EXIST,
+ RA_UPDATE_TENANT_ERR,
+ RA_DELETE_TEMAMT_ERR,
+ RA_ROLLBACK_TENANT_ERR,
+ RA_QUERY_VNF_ERR,
+ RA_VNF_ALREADY_EXIST,
+ RA_VNF_UNKNOWN_PARAM,
+ RA_VNF_EXTRA_PARAM,
+ RA_CREATE_VNF_ERR,
+ RA_VNF_NOT_EXIST,
+ RA_UPDATE_VNF_ERR,
+ RA_DELETE_VNF_ERR,
+ RA_ASYNC_CREATE_VNF,
+ RA_SEND_VNF_NOTIF_ERR,
+ RA_ASYNC_CREATE_VNF_COMPLETE,
+ RA_ASYNC_UPDATE_VNF,
+ RA_ASYNC_UPDATE_VNF_COMPLETE,
+ RA_ASYNC_QUERY_VNF,
+ RA_ASYNC_QUERY_VNF_COMPLETE,
+ RA_ASYNC_DELETE_VNF,
+ RA_ASYNC_DELETE_VNF_COMPLETE,
+ RA_ASYNC_ROLLBACK_VNF,
+ RA_ASYNC_ROLLBACK_VNF_COMPLETE,
+ RA_ROLLBACK_VNF_ERR,
+ RA_DB_INVALID_STATUS,
+ RA_CANT_UPDATE_REQUEST,
+ RA_DB_REQUEST_NOT_EXIST,
+ RA_CONFIG_NOT_FOUND,
+ RA_CONFIG_LOAD,
+ // BPEL engine Messages
+ BPMN_GENERAL_INFO,
+ BPMN_GENERAL_EXCEPTION_ARG,
+ BPMN_GENERAL_EXCEPTION,
+ BPMN_GENERAL_WARNING,
+ BPMN_AUDIT_EXEC,
+ BPMN_GENERAL_METRICS,
+ BPMN_URN_MAPPING_FAIL,
+ BPMN_VARIABLE_NULL,
+ BPMN_SDNC_CALLBACK_EXCEPTION,
+ // ASDC Messages
+ ASDC_GENERAL_EXCEPTION_ARG,
+ ASDC_GENERAL_EXCEPTION,
+ ASDC_GENERAL_WARNING,
+ ASDC_AUDIT_EXEC,
+ ASDC_GENERAL_METRICS,
+ ASDC_CREATE_SERVICE,
+ ASDC_ARTIFACT_ALREADY_DEPLOYED,
+ ASDC_CREATE_ARTIFACT,
+ ASDC_ARTIFACT_INSTALL_EXC,
+ ASDC_ARTIFACT_ALREADY_DEPLOYED_DETAIL,
+ ASDC_ARTIFACT_NOT_DEPLOYED_DETAIL,
+ ASDC_ARTIFACT_CHECK_EXC,
+ ASDC_INIT_ASDC_CLIENT_EXC,
+ ASDC_INIT_ASDC_CLIENT_SUC,
+ ASDC_LOAD_ASDC_CLIENT_EXC,
+ ASDC_SINGLETON_CHECKT_EXC,
+ ASDC_SHUTDOWN_ASDC_CLIENT_EXC,
+ ASDC_CHECK_HEAT_TEMPLATE,
+ ASDC_START_INSTALL_ARTIFACT,
+ ASDC_ARTIFACT_TYPE_NOT_SUPPORT,
+ ASDC_ARTIFACT_ALREADY_EXIST,
+ ASDC_ARTIFACT_DOWNLOAD_SUC,
+ ASDC_ARTIFACT_DOWNLOAD_FAIL,
+ ASDC_START_DEPLOY_ARTIFACT,
+ ASDC_SEND_NOTIF_ASDC,
+ ASDC_SEND_NOTIF_ASDC_EXEC,
+ ASDC_RECEIVE_CALLBACK_NOTIF,
+ ASDC_RECEIVE_SERVICE_NOTIF,
+ ASDC_ARTIFACT_NULL,
+ ASDC_SERVICE_NOT_SUPPORT,
+ ASDC_ARTIFACT_DEPLOY_SUC,
+ ASDC_PROPERTIES_NOT_FOUND,
+ // Default Messages, in case Log catalog is not defined
+ GENERAL_EXCEPTION_ARG,
+ GENERAL_EXCEPTION,
+ GENERAL_WARNING,
+ AUDIT_EXEC,
+ GENERAL_METRICS,
+ LOGGER_SETUP,
+ LOGGER_NOT_FOUND,
+ LOGGER_UPDATE_SUC,
+ LOGGER_UPDATE_DEBUG,
+ LOGGER_UPDATE_DEBUG_SUC,
+ LOAD_PROPERTIES_SUC,
+ NO_PROPERTIES,
+ MADATORY_PARAM_MISSING,
+ LOAD_PROPERTIES_FAIL,
+ INIT_LOGGER,
+ INIT_LOGGER_FAIL,
+ JAXB_EXCEPTION,
+ IDENTITY_SERVICE_NOT_FOUND;
+
+ static {
+ EELFResourceManager.loadMessageBundle("GenericMessages");
+ EELFResourceManager.loadMessageBundle("ApiHandler");
+ EELFResourceManager.loadMessageBundle("BPMN");
+ EELFResourceManager.loadMessageBundle("ResourceAdapter");
+ EELFResourceManager.loadMessageBundle("ASDC");
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoAlarmLogger.java b/common/src/main/java/org/openecomp/mso/logger/MsoAlarmLogger.java
new file mode 100644
index 0000000000..147c1ad4f1
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/logger/MsoAlarmLogger.java
@@ -0,0 +1,181 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.logger;
+
+
+import java.io.File;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import org.slf4j.LoggerFactory;
+
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.rolling.RollingFileAppender;
+import ch.qos.logback.core.rolling.TimeBasedRollingPolicy;
+
+/**
+ * Wrapper around log4j and Nagios NRDP passive alarming for MSO.
+ *
+ * For local alarm logging, this class will look for an alarm log file name
+ * in the servlet context parameter "mso.alarms.file". If none is found,
+ * it will look for an MsoProperty of the same name. As a last resort,
+ * it will use the default path "/var/log/ecomp/MSO/alarms/alarm.log".
+ * It is expected that all alarms within an application will use the same
+ * alarm file, so there is no way to dynamically add other alarm files.
+ *
+ * Alarms are logged as a simple pipe-delimited string of the format:
+ * <dateTime>|<alarmType>|<state>|<detailMessage>
+ *
+ * This class also supports real-time Nagios NRDP alarming. If enabled via
+ * MsoProperties, all alarms generated and logged to the local alarm file will
+ * also be transmitted to a Nagios NRDP instance. NRDP requires 4 parameters
+ * in service alarm events (all Mso Alarms will be Service Alarms):
+ * hostname, servicename, state, detail
+ *
+ * The log file format is also intended to be compatible with Nagios NRDP for
+ * non-real-time reporting. The command-line tool for sending alarms is
+ * is "send_nrdp.php", which takes the same 4 parameters as input.
+ * It will be easy enough to translate entries from an alarm.log file to
+ * NRDP if real-time NRDP alarming is not enabled.
+ *
+ * For Nagios integration, the alarmTypes should all match "service names"
+ * configured in the receiving Nagios server. Also, the alarm state will
+ * be limited to the 4 values defined by Nagios:
+ * 0 = OK, 1 = Warning, 2 = Critical, 3 = Unknown
+ *
+ *
+ */
+public class MsoAlarmLogger implements ServletContextListener {
+
+ private Logger alarmLogger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(MSO_ALARM_CONTEXT);
+ private static RollingFileAppender<ILoggingEvent> fileAppender = null;
+ public static final String DEFAULT_MSO_ALARM_FILE = "/var/log/ecomp/MSO/alarms/alarm.log";
+ public static final String MSO_ALARM_CONTEXT = "mso.alarms";
+
+ public static final int OK = 0;
+ public static final int WARNING = 1;
+ public static final int CRITICAL = 2;
+ public static final int UNKNOWN = 3;
+
+ /**
+ * Get the default MSO Alarm Logger
+ */
+ public MsoAlarmLogger () {
+
+ initializeAlarmLogger(null);
+
+ }
+
+ public MsoAlarmLogger (String alarmFile) {
+ initializeAlarmLogger(alarmFile);
+
+ }
+
+ /**
+ * Method to record an alarm.
+ *
+ * @param alarm - the alarm identifier (Nagios "service")
+ * @param state - the alarm state/severity, based on Nagios service
+ * state values: 0 = OK, 1 = Warning, 2 = Critical, 3 = Unknown
+ * @param detail - detail message (may contain additional internal
+ * structure per alarm type)
+ */
+ public void sendAlarm (String alarm, int state, String detail) {
+ // Write the alarm to Log file
+ if (alarmLogger != null) {
+ String output = alarm + "|" + state + "|" + detail;
+ alarmLogger.info (output);
+ }
+
+ }
+
+ @Override
+ public void contextDestroyed (ServletContextEvent event) {
+ // Nothing to do...
+ }
+
+ @Override
+ public void contextInitialized (ServletContextEvent event) {
+ String msoAlarmFile = event.getServletContext ().getInitParameter ("mso.alarm.file");
+ if (msoAlarmFile == null) {
+ msoAlarmFile = DEFAULT_MSO_ALARM_FILE;
+ }
+
+ initializeAlarmLogger (msoAlarmFile);
+ }
+
+ private void initializeAlarmLogger (String alarmFile) {
+ synchronized (MsoAlarmLogger.class) {
+ if (fileAppender == null) {
+ if (alarmFile != null) {
+ fileAppender = MsoAlarmLogger.getAppender (alarmFile);
+ } else {
+ fileAppender = MsoAlarmLogger.getAppender (DEFAULT_MSO_ALARM_FILE);
+ }
+ }
+ }
+ // The alarmLogger was static originally.
+ // The initialization of the alarmLogger was fine, but not sure why, it lost its appender info later
+ // Due to that issue, the alarmLogger is not static any more.
+ // Instead static attribute fileAppender is added and will be assigned to the alarmLogger every time new MsoAlarmLogger is created.
+ alarmLogger.setLevel (Level.INFO);
+ alarmLogger.addAppender (fileAppender);
+ alarmLogger.setAdditive (false);
+ }
+
+
+ private static RollingFileAppender<ILoggingEvent> getAppender (String msoAlarmFile) {
+ // Create a Logger for alarms. Just use a default Pattern that outputs
+ // a message. MsoAlarmLogger will handle the formatting.
+ File alarmFile = new File (msoAlarmFile);
+ File alarmDir = alarmFile.getParentFile ();
+ if (!alarmDir.exists ()) {
+ alarmDir.mkdirs ();
+ }
+
+ String logPattern = "%d{yyyy-MM-dd HH:mm:ss}|%m%n";
+
+ LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
+ PatternLayoutEncoder encoder=new PatternLayoutEncoder();
+ encoder.setPattern(logPattern);
+ encoder.setContext(context);
+ encoder.start();
+ RollingFileAppender<ILoggingEvent> fileAppender=new RollingFileAppender<ILoggingEvent>();
+ TimeBasedRollingPolicy<ILoggingEvent> rollingPolicy=new TimeBasedRollingPolicy<ILoggingEvent>();
+ rollingPolicy.setContext(context);
+ rollingPolicy.setFileNamePattern(msoAlarmFile + ".%d");
+ rollingPolicy.setParent(fileAppender);
+ rollingPolicy.start();
+ fileAppender.setFile(msoAlarmFile);
+ fileAppender.setAppend(true);
+ fileAppender.setEncoder(encoder);
+ fileAppender.setRollingPolicy(rollingPolicy);
+ fileAppender.setContext(context);
+ fileAppender.start();
+
+ return fileAppender;
+ }
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoLogInitializer.java b/common/src/main/java/org/openecomp/mso/logger/MsoLogInitializer.java
new file mode 100644
index 0000000000..0c96dabbea
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/logger/MsoLogInitializer.java
@@ -0,0 +1,108 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.logger;
+
+
+import java.io.File;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.annotation.WebListener;
+
+import org.slf4j.LoggerFactory;
+
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.joran.JoranConfigurator;
+
+
+/**
+ * This class will attempt to initialize MSO log4j when part of a web application.
+ * It will look for the logback configuration file logback.xml in the
+ * following order:
+ * 1. In an init-param "log.configuration" in web.xml
+ * 2. TODO: In a property "log.configuration" in an "application.properties" file
+ * 3. In the default location "/etc/ecomp/mso/config"
+ * 4. Using the log4j default (check system property log.configuration or
+ * just look on the classpath for logback.xml)
+ *
+ *
+ */
+@WebListener
+public class MsoLogInitializer implements ServletContextListener
+{
+ private static String DEFAULT_LOG4J_PROPERTIES_FILE = "/etc/ecomp/mso/config/logback.xml";
+ private static String prefixMsoPropertiesPath = System.getProperty("mso.config.path");
+ static {
+ if (prefixMsoPropertiesPath == null) {
+ prefixMsoPropertiesPath = "/";
+ } else if (!(prefixMsoPropertiesPath.charAt(prefixMsoPropertiesPath.length() - 1) == '/')) {
+ prefixMsoPropertiesPath = prefixMsoPropertiesPath + "/";
+ }
+ }
+
+ public MsoLogInitializer () {
+ }
+
+
+ @Override
+ public void contextDestroyed(ServletContextEvent event) {
+ // Nothing to do...
+ }
+
+ @Override
+ public void contextInitialized(ServletContextEvent event)
+ {
+ String logPropertiesFile = null;
+ try {
+ // Look first in the init-parameters
+ String initParam = event.getServletContext().getInitParameter("log.configuration");
+ if (initParam != null && fileIsReadable(prefixMsoPropertiesPath + initParam)) {
+ logPropertiesFile = prefixMsoPropertiesPath + initParam;
+ }
+ else if (fileIsReadable(DEFAULT_LOG4J_PROPERTIES_FILE)) {
+ logPropertiesFile = DEFAULT_LOG4J_PROPERTIES_FILE;
+ }
+
+ if (logPropertiesFile != null) {
+ // Initialize loggers with the specified file. If no such file was
+ // specified, will use the default Log4j resolution.
+ LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
+ JoranConfigurator jc = new JoranConfigurator();
+ jc.setContext(context);
+ context.reset();
+ jc.doConfigure(logPropertiesFile);
+ // Try it out
+ MsoLogger initLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
+ initLogger.info(MessageEnum.INIT_LOGGER, logPropertiesFile, "", "");
+ }
+ } catch (Exception e) {
+ MsoLogger initLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
+ initLogger.error (MessageEnum.INIT_LOGGER_FAIL, "", "", MsoLogger.ErrorCode.UnknownError, "", e);
+ }
+ }
+
+ private boolean fileIsReadable (String filePath) {
+ File f = new File(filePath);
+ if (f.exists() && f.canRead())
+ return true;
+ return false;
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java b/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java
new file mode 100644
index 0000000000..c53022734f
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java
@@ -0,0 +1,973 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.logger;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.UUID;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.slf4j.MDC;
+
+import org.openecomp.mso.entity.MsoRequest;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * Simple wrapper around the EELF Logger class for MSO usage.
+ * This class supports all of the normal logging functions (debug, info, etc.),
+ * prepending a string of format "[<requestId>|<serviceId]" to each message.
+ *
+ * MSO code should initialize with these IDs when available, so that individual
+ * requests and/or services can be tracked throughout the various MSO component
+ * logs (API Handler, BPEL, and Adapters).
+ *
+ *
+ */
+public class MsoLogger {
+ // MDC parameters
+ public static final String REQUEST_ID = "RequestId";
+ public static final String SERVICE_INSTANCE_ID = "ServiceInstanceId";
+ public static final String SERVICE_NAME = "ServiceName";
+ private static final String SERVICE_NAME_IS_METHOD_NAME = "ServiceNameIsMethodName";
+ private static final String INSTANCE_UUID = "InstanceUUID";
+ private static final String SERVER_IP = "ServerIPAddress";
+ private static final String FQDN = "ServerFQDN";
+ public static final String REMOTE_HOST = "RemoteHost";
+ public static final String ALERT_SEVERITY = "AlertSeverity";
+ public static final String TIMER = "Timer";
+ private static final String USER = "User";
+ private static final String DUMMY_VALUE = "trace-#";
+ public static final String UNKNOWN = "UNKNOWN";
+ // Audit/Metric log specigic
+ private static final String BEGINTIME = "BeginTimestamp";
+ private static final String ENDTIME = "EndTimestamp";
+ public static final String PARTNERNAME = "PartnerName";
+ private static final String STATUSCODE = "StatusCode";
+ private static final String RESPONSECODE = "ResponseCode";
+ private static final String RESPONSEDESC = "ResponseDesc";
+ // Metric log specigic
+ private static final String TARGETENTITY = "TargetEntity";
+ private static final String TARGETSERVICENAME = "TargetServiceName";
+ private static final String TARGETVIRTUALENTITY = "TargetVirtualEntity";
+
+ private static final String FATAL_LEVEL = "FATAL";
+ private static final String ERROR_LEVEL = "ERROR";
+ private static final String WARN_LEVEL = "WARN";
+ private static final String INFO_LEVEL = "INFO";
+ private static final String DEBUG_LEVEL = "DEBUG";
+
+ private static final String ERRORCODE = "ErrorCode";
+ private static final String ERRORDESC = "ErrorDesc";
+
+public enum Catalog {APIH, BPEL, RA, ASDC, GENERAL};
+ public enum StatusCode {COMPLETE, ERROR};
+ public enum ResponseCode {Suc(0), PermissionError(100),
+ DataError(300), DataNotFound(301), BadRequest (302),
+ SchemaError(400),
+ BusinessProcesssError(500), ServiceNotAvailable (501), InternalError (502), Conflict (503), DBAccessError(504), CommunicationError(505),
+ UnknownError(900);
+
+ private int value;
+ public int getValue () {
+ return this.value;
+ }
+ private ResponseCode (int value) {
+ this.value = value;
+ }
+ };
+
+ public enum ErrorCode {PermissionError(100), AvailabilityError(200),
+ DataError(300), SchemaError(400),
+ BusinessProcesssError(500),
+ UnknownError(900);
+
+ private int value;
+ public int getValue () {
+ return this.value;
+ }
+ private ErrorCode (int value) {
+ this.value = value;
+ }
+ };
+
+ private EELFLogger logger, auditLogger, metricsLogger;
+ private static final String CONFIG_FILE = System.getProperty ("jboss.home.dir") + "/mso-config/uuid/uuid_"
+ + System.getProperty ("jboss.server.name");
+ private static String instanceUUID, serverIP, serverName;
+ private MessageEnum exceptionArg, defaultException, defaultWarning, defaultAudit, defaultMetrics;
+
+ // For internal logging of the initialization of MSO logs
+ private static final Logger LOGGER = Logger.getLogger (MsoLogger.class.getName ());
+
+
+ private MsoLogger (MsoLogger.Catalog cat) {
+ this.logger = EELFManager.getInstance().getErrorLogger();
+ this.auditLogger = EELFManager.getInstance().getAuditLogger();
+ this.metricsLogger = EELFManager.getInstance().getMetricsLogger();
+ MsoLogger.initialization ();
+ setDefaultLogCatalog (cat);
+ }
+
+ private static synchronized void initialization () {
+ if (instanceUUID == null || ("").equals (instanceUUID)) {
+ instanceUUID = getInstanceUUID ();
+ }
+
+ if (serverIP == null || serverName == null || ("").equals (serverIP) || ("").equals (serverName)) {
+ try {
+ InetAddress server = InetAddress.getLocalHost ();
+ serverIP = server.getHostAddress ();
+ serverName = server.getHostName ();
+ } catch (UnknownHostException e) {
+ LOGGER.log (Level.SEVERE, "Could not get local hostname", e);
+ serverIP = "";
+ serverName = "";
+ }
+ }
+ }
+
+ /**
+ * Get the MsoLogger based on the catalog
+ * @param cat Catalog of the logger
+ * @return the MsoLogger
+ */
+ public static synchronized MsoLogger getMsoLogger (MsoLogger.Catalog cat) {
+ return new MsoLogger (cat);
+ }
+
+ /**
+ * Record the Metrics event with no argument
+ * @param startTime Transaction starting time in millieseconds
+ * @param statusCode StatusCode of the transaction, either COMPLETE or ERROR
+ * @param responseCode The response code returned by the sub-components
+ * @param responseDesc Human redable description of the response code
+ * @param targetEntity The component which is invoked for this sub-operation
+ * @param targetServiceName API invoked on the TargetEntity
+ * @param targetVEntity Target VNF or VM acted opon by the component, if available
+ */
+ public void recordMetricEvent (Long startTime, StatusCode statusCode, ResponseCode responseCode, String responseDesc, String targetEntity, String targetServiceName, String targetVEntity) {
+ prepareMetricMsg (startTime, statusCode, responseCode.getValue (), responseDesc, targetEntity, targetServiceName, targetVEntity);
+ metricsLogger.info ("");
+ MDC.remove(TIMER);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Audit event
+ *
+ * @param startTime Transaction starting time in millieseconds
+ * @param statusCode StatusCode of the transaction, either COMPLETE or ERROR
+ * @param responseCode The application specific response code
+ * @param responseDesc Human redable description of the application response code
+ */
+ public void recordAuditEvent (Long startTime, StatusCode statusCode, ResponseCode responseCode, String responseDesc) {
+ prepareAuditMsg (startTime, statusCode, responseCode.getValue (), responseDesc);
+ auditLogger.info ("");
+ MDC.remove(TIMER);
+ }
+
+ // Debug methods
+ /**
+ * Record the Debug event
+ *
+ * @param msg The log message to put
+ */
+ public void debug (String msg) {
+ prepareMsg (DEBUG_LEVEL);
+ logger.debug (msg);
+ }
+
+ /**
+ * Record the Debug event
+ *
+ * @param msg The log message to put
+ * @param t The exception to put
+ */
+ public void debug (String msg, Throwable t) {
+ prepareMsg (DEBUG_LEVEL);
+ logger.debug (msg, t);
+ }
+
+ // Info methods
+ /**
+ * Record the Info event
+ *
+ * @param msg The log message to put
+ */
+ public void info (MessageEnum msg, String targetEntity, String targetServiceName) {
+ prepareErrorMsg (INFO_LEVEL, targetEntity, targetServiceName, null, "");
+
+ logger.info (msg);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Info event with 1 argument
+ *
+ * @param msg The log message to put
+ * @param arg0 The argument used in the log message
+ */
+ public void info (MessageEnum msg, String arg0, String targetEntity, String targetServiceName) {
+ prepareErrorMsg (INFO_LEVEL, targetEntity, targetServiceName, null, "");
+
+ logger.info (msg, normalize(arg0));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Info event with 2 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1 The arguments used in the log message
+ */
+ public void info (MessageEnum msg, String arg0, String arg1, String targetEntity, String targetServiceName) {
+ prepareErrorMsg (INFO_LEVEL, targetEntity, targetServiceName, null, "");
+
+ logger.info (msg, normalize(arg0), normalize(arg1));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Info event with 3 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2 The arguments used in the log message
+ */
+ public void info (MessageEnum msg, String arg0, String arg1, String arg2, String targetEntity, String targetServiceName) {
+ prepareErrorMsg (INFO_LEVEL, targetEntity, targetServiceName, null, "");
+
+ logger.info (msg, normalize(arg0), normalize(arg1), normalize(arg2));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Info event with 4 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2,arg3 The arguments used in the log message
+ */
+ public void info (MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String targetEntity, String targetServiceName) {
+ prepareErrorMsg (INFO_LEVEL, targetEntity, targetServiceName, null, "");
+
+ logger.info (msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Info event with 5 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2,arg3,arg4 The arguments used in the log message
+ */
+ public void info (MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, String targetEntity, String targetServiceName) {
+ prepareErrorMsg (INFO_LEVEL, targetEntity, targetServiceName, null, "");
+
+ logger.info (msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Info event with 6 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2,arg3,arg4,arg5 The arguments used in the log message
+ */
+ public void info (MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, String arg5, String targetEntity, String targetServiceName) {
+ prepareErrorMsg (INFO_LEVEL, targetEntity, targetServiceName, null, "");
+
+ logger.info (msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4), normalize(arg5));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+ // Warning methods
+ /**
+ * Record the Warning event
+ *
+ * @param msg The log message to put
+ */
+ public void warn (MessageEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ prepareErrorMsg (WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+
+ logger.warn (msg);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Warning event
+ *
+ * @param msg The log message to put
+ * @param t The exception info
+ */
+ public void warn (MessageEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
+ prepareErrorMsg (WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.warn (msg);
+ logger.warn ("Exception raised: " + getNormalizedStackTrace (t));
+ logger.debug ("Exception raised", t);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Warn event with 1 argument
+ *
+ * @param msg The log message to put
+ * @param arg The argument used in the log message
+ */
+ public void warn (MessageEnum msg, String arg, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ prepareErrorMsg (WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.warn (msg, arg);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Warn event with 1 argument
+ *
+ * @param msg The log message to put
+ * @param arg The arguments used in the log message
+ * @param t The exception info
+ */
+ public void warn (MessageEnum msg, String arg, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
+ prepareErrorMsg (WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.warn (msg, arg);
+ logger.warn ("Exception raised: " + getNormalizedStackTrace (t));
+ logger.debug ("Exception raised", t);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Warn event with 2 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1 The arguments used in the log message
+ */
+ public void warn (MessageEnum msg, String arg0, String arg1, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ prepareErrorMsg (WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.warn (msg, normalize(arg0), normalize(arg1));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Warn event with 2 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1 The arguments used in the log message
+ * @param t The exception info
+ */
+ public void warn (MessageEnum msg, String arg0, String arg1, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
+ prepareErrorMsg (WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.warn (msg, normalize(arg0), normalize(arg1));
+ logger.warn ("Exception raised: " + getNormalizedStackTrace (t));
+ logger.debug ("Exception raised", t);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Warn event with 3 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2 The arguments used in the log message
+ */
+ public void warn (MessageEnum msg, String arg0, String arg1, String arg2, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ prepareErrorMsg (WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.warn (msg, normalize(arg0), normalize(arg1), normalize(arg2));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Warn event with 3 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2 The arguments used in the log message
+ * @param t The exception info
+ */
+ public void warn (MessageEnum msg, String arg0, String arg1, String arg2, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
+ prepareErrorMsg (WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.warn (msg, normalize(arg0), normalize(arg1), normalize(arg2));
+ logger.warn ("Exception raised: " + getNormalizedStackTrace (t));
+ logger.debug ("Exception raised", t);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Warn event with 4 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2,arg3 The arguments used in the log message
+ */
+ public void warn (MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ prepareErrorMsg (WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.warn (msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Warn event with 4 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2, arg3 The arguments used in the log message
+ * @param t The exception info
+ */
+ public void warn (MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
+ prepareErrorMsg (WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.warn (msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3));
+ logger.warn ("Exception raised: " + getNormalizedStackTrace (t));
+ logger.debug ("Exception raised", t);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Warn event with 5 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2,arg3,arg4 The arguments used in the log message
+ */
+ public void warn (MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ prepareErrorMsg (WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.warn (msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Warn event with 5 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2,arg3,arg4 The arguments used in the log message
+ * @param t The exception info
+ */
+ public void warn (MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
+ prepareErrorMsg (WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.warn (msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4));
+ logger.warn ("Exception raised: " + getNormalizedStackTrace (t));
+ logger.debug ("Exception raised", t);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+ // Error methods
+ /**
+ * Record the Error event
+ *
+ * @param msg The log message to put
+ */
+ public void error (MessageEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ prepareErrorMsg (ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.error (msg);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Error event
+ *
+ * @param msg The log message to put
+ * @param t The exception info
+ */
+ public void error (MessageEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
+ prepareErrorMsg (ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.error (msg);
+ logger.error (exceptionArg, getNormalizedStackTrace (t));
+ logger.debug ("Exception raised", t);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Error event with 1 argument
+ *
+ * @param msg The log message to put
+ * @param arg0 The arguments used in the log message
+ */
+ public void error (MessageEnum msg, String arg0, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ prepareErrorMsg (ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.error (msg, normalize(arg0));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Error event with 1 argument
+ *
+ * @param msg The log message to put
+ * @param arg0 The arguments used in the log message
+ * @param t The exception info
+ */
+ public void error (MessageEnum msg, String arg0, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
+ prepareErrorMsg (ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.error (msg, normalize(arg0));
+ logger.error (exceptionArg, getNormalizedStackTrace (t));
+ logger.debug ("Exception raised", t);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Error event with 2 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1 The arguments used in the log message
+ */
+ public void error (MessageEnum msg, String arg0, String arg1, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ prepareErrorMsg (ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.error (msg, normalize(arg0), normalize(arg1));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Error event with 2 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1 The arguments used in the log message
+ * @param t The exception info
+ */
+ public void error (MessageEnum msg, String arg0, String arg1, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
+ prepareErrorMsg (ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.error (msg, normalize(arg0), normalize(arg1));
+ logger.error (exceptionArg, getNormalizedStackTrace (t));
+ logger.debug ("Exception raised", t);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Error event with 3 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2 The arguments used in the log message
+ */
+ public void error (MessageEnum msg, String arg0, String arg1, String arg2, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ prepareErrorMsg (ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.error (msg, normalize(arg0), normalize(arg1), normalize(arg2));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Error event with 3 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2 The arguments used in the log message
+ * @param t The exception info
+ */
+ public void error (MessageEnum msg, String arg0, String arg1, String arg2, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
+ prepareErrorMsg (ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.error (msg, normalize(arg0), normalize(arg1), normalize(arg2));
+ logger.error (exceptionArg, getNormalizedStackTrace (t));
+ logger.debug ("Exception raised", t);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Error event with 4 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2,arg3 The arguments used in the log message
+ */
+ public void error (MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ prepareErrorMsg (ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.error (msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Error event with 4 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2,arg3 The arguments used in the log message
+ * @param t The exception info
+ */
+ public void error (MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
+ prepareErrorMsg (ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.error (msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3));
+ logger.error (exceptionArg, getNormalizedStackTrace (t));
+ logger.debug ("Exception raised", t);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Error event with 5 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2,arg3,arg4 The arguments used in the log message
+ */
+ public void error (MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ prepareErrorMsg (ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.error (msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4));
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+ /**
+ * Record the Error event with 5 arguments
+ *
+ * @param msg The log message to put
+ * @param arg0,arg1,arg2,arg3,arg4 The arguments used in the log message
+ * @param t The exception info
+ */
+ public void error (MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) {
+ prepareErrorMsg (ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc);
+ logger.error (msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4));
+ logger.error (exceptionArg, getNormalizedStackTrace (t));
+ logger.debug ("Exception raised", t);
+ MDC.remove(TARGETENTITY);
+ MDC.remove(TARGETSERVICENAME);
+ }
+
+
+
+ public boolean isDebugEnabled () {
+ return logger.isDebugEnabled();
+ }
+
+ private void prepareMsg (String loggingLevel) {
+ prepareMsg (loggingLevel, null, null);
+ }
+
+ private void prepareMsg (String loggingLevel, String serviceNamep, String timer) {
+ String reqId = MDC.get (REQUEST_ID);
+ String svcId = MDC.get (SERVICE_INSTANCE_ID);
+
+ // Based on the discussion with Adrian,
+ // if these 2 parameters is not available, using dummy value "trace-#"
+ if (reqId == null || reqId.isEmpty()) {
+ MDC.put (REQUEST_ID, DUMMY_VALUE);
+ }
+
+ if (svcId == null || svcId.isEmpty()) {
+ MDC.put (SERVICE_INSTANCE_ID, DUMMY_VALUE);
+ }
+
+ if (timer != null) {
+ MDC.put (TIMER, timer);
+ } else {
+ MDC.remove(TIMER);
+ }
+
+ MDC.put (SERVICE_NAME, getFinalServiceName (serviceNamep));
+ MDC.put (ALERT_SEVERITY, getSeverityLevel (loggingLevel));
+ MDC.put (INSTANCE_UUID, instanceUUID);
+ MDC.put (SERVER_IP, serverIP);
+ MDC.put (FQDN, serverName);
+ }
+
+ private void prepareAuditMsg ( long startTime, StatusCode statusCode, int responseCode, String responseDesc) {
+ long endTime = System.currentTimeMillis();
+ prepareMsg (INFO_LEVEL, null, String.valueOf(endTime - startTime));
+ prepareAuditMetricMsg (startTime, endTime, statusCode, responseCode, responseDesc);
+ }
+
+ private void prepareAuditMetricMsg ( long startTime, long endTime, StatusCode statusCode, int responseCode, String responseDesc) {
+ Date startDate = new Date(startTime);
+ Date endDate = new Date(endTime);
+ DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+
+ MDC.put (BEGINTIME, String.valueOf(formatter.format(startDate)));
+ MDC.put (ENDTIME, String.valueOf(formatter.format(endDate)));
+ MDC.put (STATUSCODE, statusCode.name());
+ MDC.put (RESPONSECODE, String.valueOf(responseCode));
+ MDC.put (RESPONSEDESC, responseDesc);
+ }
+
+ private void prepareErrorMsg (String loggingLevel, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) {
+ MDC.put (ALERT_SEVERITY, getSeverityLevel (loggingLevel));
+ MDC.put (ERRORCODE, String.valueOf(errorCode));
+ MDC.put (ERRORDESC, errorDesc);
+ MDC.put (TARGETENTITY, targetEntity);
+ MDC.put (TARGETSERVICENAME, targetServiceName);
+ MDC.put (SERVICE_NAME, getFinalServiceName (getServiceName()));
+ }
+
+ private void prepareMetricMsg ( long startTime, StatusCode statusCode, int responseCode, String responseDesc, String targetEntity, String targetServiceName, String targetVEntity) {
+ long endTime = System.currentTimeMillis();
+ prepareMsg (INFO_LEVEL, null, String.valueOf(endTime - startTime));
+ prepareAuditMetricMsg (startTime, endTime, statusCode, responseCode, responseDesc);
+
+ // Populate Metric log specific parameter
+ MDC.put (TARGETENTITY, targetEntity);
+ MDC.put (TARGETSERVICENAME, targetServiceName);
+
+ if (null != targetVEntity) {
+ MDC.put(TARGETVIRTUALENTITY, targetVEntity);
+ }
+ }
+
+ private String getSeverityLevel (String loggingLevel) {
+ String severity;
+ // According to the Nagios alerting: 0=OK; 1=WARNING; 2=UNKOWN; 3=CRITICAL
+ switch (loggingLevel) {
+ case ERROR_LEVEL:
+ severity = "2";
+ break;
+ case FATAL_LEVEL:
+ severity = "3";
+ break;
+ case WARN_LEVEL:
+ severity = "1";
+ break;
+ default:
+ severity = "0";
+ break;
+ }
+ return severity;
+ }
+
+ private String getFinalServiceName (String serviceNamep) {
+ // This step to set the serviceName should be put after the className is get,
+ // since the default serviceName is obtained during the method to get the className.
+ //
+ // There's 3 ways to set the serviceName. The first method has the most priority to set the value.
+ // a) If the serviceName is set within the log method, this value will be used first
+ // b) If serviceName is not set within the log method, the value defined in the MDC will be used
+ // c) If nothing is set specifically, then MsoLogger will assign a default(MSO.<method_name>) value to it
+ String serName = MDC.get (MsoLogger.SERVICE_NAME);
+
+ // Check if service name was already set as the method name by a previous call to this method.
+ String isMethodNameStr = MDC.get (MsoLogger.SERVICE_NAME_IS_METHOD_NAME);
+ boolean isMethodName = isMethodNameStr != null && isMethodNameStr.equals (Boolean.TRUE.toString ());
+ if (serviceNamep != null) {
+ return serviceNamep;
+ } else if (serName != null && !isMethodName) {
+ return serName;
+ }
+
+ MDC.put (MsoLogger.SERVICE_NAME_IS_METHOD_NAME, Boolean.TRUE.toString ());
+ int limit;
+ StackTraceElement[] classArr = new Exception ().getStackTrace ();
+ if (classArr.length >=6) {
+ limit = 7;
+ } else {
+ limit = classArr.length;
+ }
+ for (int i = 1; i < limit; i++) {
+ String className = classArr[i].getClassName ();
+ if (!className.equals (this.getClass ().getName ())) {
+ return classArr[i].getMethodName ();
+ }
+ }
+ return classArr[0].getMethodName ();
+ }
+
+ // Based on the discussion with Adrian, instanceUUID is used to identifiy the mso instance,
+ // it is generated during mso instance initialization period
+ // The same mso instnace will use the same instanceUUID value, even after restart
+ private static String getInstanceUUID () {
+ // Avoid creation during build and tests
+ if (System.getProperty ("jboss.server.name") == null) {
+ return "Test UUID as JBoss not found";
+ }
+ File configFile = new File (CONFIG_FILE);
+ String uuid = "";
+ BufferedReader in = null;
+ BufferedWriter bw = null;
+ try {
+ // Verify whether instanceUUID file exist,
+ // If yes, read the content; if not, generate the instanceUUID and write to the file
+ if (configFile.exists ()) {
+ // read the content of the file
+ in = new BufferedReader (new FileReader (CONFIG_FILE));
+ if ((uuid = in.readLine ()) == null) {
+ // the file is empty, regenerate the file
+ uuid = UUID.randomUUID ().toString ();
+ FileWriter fw = new FileWriter (configFile.getAbsoluteFile ());
+ bw = new BufferedWriter (fw);
+ bw.write (uuid);
+ bw.close ();
+ }
+ in.close ();
+ } else {
+ // file doesn't exist yet -> create the file and generate the instanceUUID
+ uuid = UUID.randomUUID ().toString ();
+ configFile.getParentFile ().mkdirs ();
+ configFile.createNewFile ();
+ FileWriter fw = new FileWriter (configFile.getAbsoluteFile ());
+ bw = new BufferedWriter (fw);
+ bw.write (uuid);
+ bw.close ();
+ }
+ } catch (IOException e) {
+ LOGGER.log (Level.SEVERE, "Error trying to read UUID file", e);
+ } finally {
+ try {
+ if (in != null) {
+ in.close ();
+ }
+ if (bw != null) {
+ bw.close ();
+ }
+ } catch (IOException ex) {
+ LOGGER.log (Level.SEVERE, "Error trying to close UUID file", ex);
+ }
+ }
+ return uuid;
+ }
+
+ /**
+ * Set the requestId and serviceInstanceId
+ * @param reqId The requestId
+ * @param svcId The serviceInstanceId
+ */
+ public static void setLogContext (String reqId, String svcId) {
+ if (null != reqId) {
+ MDC.put (REQUEST_ID, reqId);
+ }
+
+ if (null != svcId) {
+ MDC.put (SERVICE_INSTANCE_ID, svcId);
+ }
+ }
+
+ /**
+ * Set the remoteIp and the basic HTTP Authentication user
+ * @param remoteIpp The remote ip address
+ * @param userp The basic http authencitation user
+ */
+ public static void setLoggerParameters (String remoteIpp, String userp) {
+ if (null != remoteIpp) {
+ MDC.put (REMOTE_HOST, remoteIpp);
+ }
+ if (null != userp) {
+ MDC.put (USER, userp);
+ }
+ }
+
+ /**
+ * Set the serviceName
+ * @param serviceNamep The service name
+ */
+ public static void setServiceName (String serviceNamep) {
+ if (null != serviceNamep) {
+ MDC.put (SERVICE_NAME, serviceNamep);
+ MDC.remove (SERVICE_NAME_IS_METHOD_NAME);
+ }
+ }
+
+ /**
+ * Get the serviceName
+ * @return The service name
+ */
+ public static String getServiceName () {
+ return MDC.get (SERVICE_NAME);
+ }
+
+ /**
+ * Reset the serviceName
+ */
+ public static void resetServiceName () {
+ MDC.remove (SERVICE_NAME);
+ }
+
+ /**
+ * Set the requestId and serviceInstanceId based on the mso request
+ * @param msoRequest The mso request
+ */
+ public static void setLogContext (MsoRequest msoRequest) {
+ if (msoRequest != null) {
+ MDC.put (REQUEST_ID, msoRequest.getRequestId());
+ MDC.put (SERVICE_INSTANCE_ID, msoRequest.getServiceInstanceId());
+ }
+ else {
+ MDC.put (REQUEST_ID, DUMMY_VALUE);
+ MDC.put (SERVICE_INSTANCE_ID, DUMMY_VALUE);
+ }
+ }
+
+ private String normalize (String input) {
+ if (input == null) {
+ return null;
+ }
+ String result = input.replace ('|', '!');
+ result = result.replace ("\n", " - ");
+ return result;
+ }
+
+ private String getNormalizedStackTrace (Throwable t) {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ t.printStackTrace(pw);
+ return sw.toString().replace ('|', '!').replace ("\n", " - ");
+ }
+
+ private void setDefaultLogCatalog (MsoLogger.Catalog cat) {
+ if ("APIH".equals(cat.toString())) {
+ exceptionArg = MessageEnum.APIH_GENERAL_EXCEPTION_ARG;
+ defaultException = MessageEnum.APIH_GENERAL_EXCEPTION;
+ defaultWarning = MessageEnum.APIH_GENERAL_WARNING;
+ defaultAudit = MessageEnum.APIH_AUDIT_EXEC;
+ defaultMetrics = MessageEnum.APIH_GENERAL_METRICS;
+ } else if ("RA".equals(cat.toString())) {
+ exceptionArg = MessageEnum.RA_GENERAL_EXCEPTION_ARG;
+ defaultException = MessageEnum.RA_GENERAL_EXCEPTION;
+ defaultWarning = MessageEnum.RA_GENERAL_WARNING;
+ defaultAudit = MessageEnum.RA_AUDIT_EXEC;
+ defaultMetrics = MessageEnum.RA_GENERAL_METRICS;
+ } else if ("BPEL".equals(cat.toString())) {
+ exceptionArg = MessageEnum.BPMN_GENERAL_EXCEPTION_ARG;
+ defaultException = MessageEnum.BPMN_GENERAL_EXCEPTION;
+ defaultWarning = MessageEnum.BPMN_GENERAL_WARNING;
+ defaultAudit = MessageEnum.BPMN_AUDIT_EXEC;
+ defaultMetrics = MessageEnum.BPMN_GENERAL_METRICS;
+ } else if ("ASDC".equals(cat.toString())) {
+ exceptionArg = MessageEnum.ASDC_GENERAL_EXCEPTION_ARG;
+ defaultException = MessageEnum.ASDC_GENERAL_EXCEPTION;
+ defaultWarning = MessageEnum.ASDC_GENERAL_WARNING;
+ defaultAudit = MessageEnum.ASDC_AUDIT_EXEC;
+ defaultMetrics = MessageEnum.ASDC_GENERAL_METRICS;
+ } else {
+ exceptionArg = MessageEnum.GENERAL_EXCEPTION_ARG;
+ defaultException = MessageEnum.GENERAL_EXCEPTION;
+ defaultWarning = MessageEnum.GENERAL_WARNING;
+ defaultAudit = MessageEnum.AUDIT_EXEC;
+ defaultMetrics = MessageEnum.GENERAL_METRICS;
+ }
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoLoggingServlet.java b/common/src/main/java/org/openecomp/mso/logger/MsoLoggingServlet.java
new file mode 100644
index 0000000000..568ab22447
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/logger/MsoLoggingServlet.java
@@ -0,0 +1,155 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.logger;
+
+
+import java.util.List;
+
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Response;
+
+import org.slf4j.LoggerFactory;
+
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.core.Appender;
+
+@Path("/logging")
+public class MsoLoggingServlet {
+
+ private static final String DEBUGLOG = "asyncEELFDebug";
+ private MsoLogger logger = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);
+ private static final String GENERAL_LOGGER = "com.att.eelf.error";
+ private static final String AUDIT_LOGGER = "com.att.eelf.audit";
+ private static final String METRICS_LOGGER = "com.att.eelf.metrics";
+
+ @GET
+ @Path("/setLevel/{logContext}/{level}")
+ @Produces("text/plain")
+ public Response setLogLevel (@PathParam("logContext") String logContext, @PathParam("level") String level) {
+ logger.info (MessageEnum.LOGGER_SETUP, "", "");
+
+ LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
+ JoranConfigurator jc = new JoranConfigurator();
+ jc.setContext(context);
+ Logger updateLogger = context.getLogger (logContext);
+
+ if (updateLogger == null) {
+ logger.info (MessageEnum.LOGGER_NOT_FOUND, logContext, "", "");
+ String response = "Unknown logger: " + logContext;
+ return Response.status (200).entity (response).build ();
+ }
+
+ Level currentLevel = updateLogger.getLevel();
+ if (!currentLevel.equals(Level.toLevel(level))) {
+ Level newLevel = Level.toLevel (level);
+ updateLogger.setLevel (newLevel);
+ logger.info (MessageEnum.LOGGER_UPDATE_SUC, updateLogger.getName (), currentLevel.toString(), newLevel.toString());
+ }
+
+ String response = "Log level set to: " + level + " for " + updateLogger.getName ();
+ return Response.status (200).entity (response).build ();
+
+ }
+
+ @GET
+ @Path("/loggers")
+ @Produces("text/plain")
+ @SuppressWarnings("rawtypes")
+ public Response getLoggers () {
+ StringBuilder response = new StringBuilder ();
+ LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
+ JoranConfigurator jc = new JoranConfigurator();
+ jc.setContext(context);
+ List <Logger> loggerList = context.getLoggerList();
+ for (Logger logger:loggerList) {
+ //if (logger.getLevel() != null) {
+ response.append (logger.getName () + ":" + logger.getLevel () + " (" + logger.getEffectiveLevel () + ")\n");
+ //}
+ }
+ return Response.status (200).entity (response).build ();
+
+ }
+
+ @GET
+ @Path("/debug")
+ @Produces("text/plain")
+ @SuppressWarnings("rawtypes")
+ /*
+ * Debug log is used as a general log to store all the logs events, including events generated by MSO code or by
+ * components used by MSO.
+ * This method will only enable/disable the function to store MSO generated events into debug log,
+ * since those events will also be generated to error, audit, metrics log.
+ * The events generated by other components will not be affected by this interface.
+ */
+ public Response updateDebugAppender (@DefaultValue("true") @QueryParam("enable") Boolean enable) {
+ String response;
+
+ LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
+ JoranConfigurator jc = new JoranConfigurator();
+ jc.setContext(context);
+ List <Logger> loggerList = context.getLoggerList();
+ Logger rootLogger = context.getLogger("ROOT");
+ Appender appender = rootLogger.getAppender(DEBUGLOG);
+
+ if (null == appender) {
+ return Response.status (500).entity ("Not able to found Debug appender. Please verify to make sure the needed logback file is present in the config folder.").build ();
+ }
+
+ if (enable) {
+ logger.info (MessageEnum.LOGGER_UPDATE_DEBUG, "", "");
+
+ for (Logger logger: loggerList) {
+ if (isMsoLogger (logger.getName ()) && logger.getAppender (DEBUGLOG) == null && logger.getLevel () != null) {
+ logger.addAppender (appender);
+ logger.setAdditive(false);
+ }
+ }
+ logger.info (MessageEnum.LOGGER_UPDATE_DEBUG_SUC, "enabled", "", "");
+ response = "Debuglog successfully enabled.";
+ } else {
+ logger.info (MessageEnum.LOGGER_UPDATE_DEBUG, "", "");
+ for (Logger logger: loggerList) {
+ if (isMsoLogger (logger.getName ())) {
+ logger.detachAppender (appender);
+ }
+ }
+ logger.info (MessageEnum.LOGGER_UPDATE_DEBUG_SUC, "disabled", "", "");
+ response = "Debuglog successfully disabled.";
+ }
+ return Response.status (200).entity (response).build ();
+
+
+ }
+
+ private boolean isMsoLogger (String loggerName) {
+ return loggerName.contains (GENERAL_LOGGER) || loggerName.equals (AUDIT_LOGGER)
+ || loggerName.equals (METRICS_LOGGER);
+ }
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/properties/AbstractMsoProperties.java b/common/src/main/java/org/openecomp/mso/properties/AbstractMsoProperties.java
new file mode 100644
index 0000000000..69d2f98324
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/properties/AbstractMsoProperties.java
@@ -0,0 +1,75 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.properties;
+
+
+import java.io.IOException;
+import java.util.Properties;
+
+import org.openecomp.mso.logger.MsoLogger;
+
+public abstract class AbstractMsoProperties {
+
+ public static final int DEFAULT_RELOAD_TIME_MIN=1;
+
+ public static final String RELOAD_TIME_PROPERTY="mso.properties.reload.time.minutes";
+
+ protected static MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
+
+ protected String propertiesFileName;
+
+ protected int automaticRefreshInMinutes=0;
+
+ public String getPropertiesFileName() {
+ return propertiesFileName;
+ }
+
+ public int getAutomaticRefreshInMinutes() {
+ return automaticRefreshInMinutes;
+ }
+
+ protected synchronized void reloadPropertiesFile() throws IOException {
+ this.loadPropertiesFile(this.propertiesFileName);
+ }
+
+ /**
+ * This method load a properties file from a source path.
+ *
+ * @param propertiesPath The path to the file
+ * @throws IOException In case of issues during the opening
+ */
+
+ protected abstract void loadPropertiesFile(String propertiesPath) throws IOException;
+
+ @Override
+ protected abstract AbstractMsoProperties clone();
+
+ @Override
+ public abstract int hashCode();
+
+ @Override
+ public abstract boolean equals(Object obj);
+
+ @Override
+ public abstract String toString();
+
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java b/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java
new file mode 100644
index 0000000000..aa791f896e
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java
@@ -0,0 +1,181 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.properties;
+
+
+import java.io.FileReader;
+import java.io.IOException;
+import java.security.GeneralSecurityException;
+import java.util.Properties;
+import org.openecomp.mso.utils.CryptoUtils;
+
+public class MsoJavaProperties extends AbstractMsoProperties {
+
+
+ private Properties msoProperties = new Properties();
+
+
+ public MsoJavaProperties() {
+
+ }
+
+ public synchronized void setProperty(String key,String value) {
+ msoProperties.setProperty(key, value);
+ }
+
+ public synchronized String getProperty(String key, String defaultValue) {
+ if (msoProperties.containsKey(key)) {
+ return msoProperties.getProperty(key);
+ } else {
+ return defaultValue;
+ }
+ }
+
+ public synchronized int getIntProperty(String key, int defaultValue) {
+
+ int value = defaultValue;
+ if (msoProperties.containsKey(key)) {
+ try {
+ value = Integer.parseInt(msoProperties.getProperty(key));
+ } catch (NumberFormatException e) {
+ LOGGER.debug("Exception while parsing integer: " + msoProperties.getProperty(key), e);
+ }
+ }
+ return value;
+
+ }
+
+ public synchronized boolean getBooleanProperty(String key, boolean defaultValue) {
+
+ if (msoProperties.containsKey(key)) {
+ return Boolean.parseBoolean(msoProperties.getProperty(key));
+ } else {
+ return defaultValue;
+ }
+
+ }
+
+ public synchronized String getEncryptedProperty(String key, String defaultValue, String encryptionKey) {
+
+ if (msoProperties.containsKey(key)) {
+ try {
+ return CryptoUtils.decrypt(msoProperties.getProperty(key), encryptionKey);
+ } catch (GeneralSecurityException e) {
+ LOGGER.debug("Exception while decrypting property: " + msoProperties.getProperty(key), e);
+ }
+ }
+ return defaultValue;
+
+ }
+
+ public synchronized int size() {
+ return this.msoProperties.size();
+ }
+
+
+ @Override
+ protected synchronized void reloadPropertiesFile() throws IOException {
+ this.loadPropertiesFile(this.propertiesFileName);
+ }
+
+ /**
+ * This method load a properties file from a source path.
+ *
+ * @param propertiesPath The path to the file
+ * @throws IOException In case of issues during the opening
+ */
+ @Override
+ protected synchronized void loadPropertiesFile(String propertiesPath) throws IOException {
+
+ FileReader reader = null;
+
+ propertiesFileName = propertiesPath;
+ try {
+ msoProperties.clear();
+ reader = new FileReader(propertiesPath);
+ msoProperties.load(reader);
+
+ } finally {
+ this.automaticRefreshInMinutes = this.getIntProperty(RELOAD_TIME_PROPERTY, DEFAULT_RELOAD_TIME_MIN);
+ // Always close the file
+ try {
+ if (reader != null) {
+ reader.close();
+ }
+ } catch (IOException e) {
+ LOGGER.debug("Exception while closing reader for file:" + propertiesPath, e);
+ }
+ }
+ }
+
+ @Override
+ public synchronized MsoJavaProperties clone() {
+ MsoJavaProperties msoCopy = new MsoJavaProperties();
+ msoCopy.msoProperties.putAll(msoProperties);
+ msoCopy.propertiesFileName = this.propertiesFileName;
+ msoCopy.automaticRefreshInMinutes = this.automaticRefreshInMinutes;
+ return msoCopy;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((msoProperties == null) ? 0 : msoProperties.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ MsoJavaProperties other = (MsoJavaProperties) obj;
+ if (!msoProperties.equals(other.msoProperties)) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public String toString() {
+
+ StringBuffer response = new StringBuffer();
+ response.append("Config file " + propertiesFileName + "(Timer:" + automaticRefreshInMinutes + "mins):"
+ + System.getProperty("line.separator"));
+ for (Object key : this.msoProperties.keySet()) {
+ String propertyName = (String) key;
+ response.append(propertyName);
+ response.append("=");
+ response.append(this.msoProperties.getProperty(propertyName));
+ response.append(System.getProperty("line.separator"));
+ }
+ response.append(System.getProperty("line.separator"));
+ response.append(System.getProperty("line.separator"));
+ return response.toString();
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoJsonProperties.java b/common/src/main/java/org/openecomp/mso/properties/MsoJsonProperties.java
new file mode 100644
index 0000000000..323c4dbe99
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/properties/MsoJsonProperties.java
@@ -0,0 +1,172 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.properties;
+
+
+import java.io.FileReader;
+import java.io.IOException;
+import java.security.GeneralSecurityException;
+
+import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.JsonParseException;
+import org.codehaus.jackson.map.JsonMappingException;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.openecomp.mso.utils.CryptoUtils;
+
+
+public class MsoJsonProperties extends AbstractMsoProperties {
+
+ protected ObjectMapper mapper = new ObjectMapper();
+
+ protected JsonNode jsonRootNode = mapper.createObjectNode();
+
+ protected MsoJsonProperties() {
+
+ }
+
+ public synchronized JsonNode getJsonRootNode () {
+ return this.jsonRootNode;
+ }
+
+ /**
+ * This method is used to get the text encrypted in the string value of the node.
+ * @param jsonNode The JsonNode containing the strig to decode
+ * @param defaultValue The default value in case of issue
+ * @param encryptionKey The encryption Key in AES 128 bits
+ * @return the String decrypted
+ */
+ public synchronized String getEncryptedProperty(JsonNode jsonNode, String defaultValue, String encryptionKey) {
+
+ if (jsonNode.isTextual()) {
+ try {
+ return CryptoUtils.decrypt(jsonNode.asText(), encryptionKey);
+ } catch (GeneralSecurityException e) {
+ LOGGER.debug("Exception while decrypting property: " + jsonNode.asText(), e);
+ }
+ }
+
+ return defaultValue;
+ }
+
+ /**
+ * This method load a properties file from a source path.
+ *
+ * @param propertiesPath The path to the file
+ * @throws IOException In case of issues during the opening
+ */
+ @Override
+ protected synchronized void loadPropertiesFile(String propertiesPath) throws IOException {
+
+ FileReader reader = null;
+
+ this.propertiesFileName = propertiesPath;
+
+ try {
+ // Clean
+ this.jsonRootNode = mapper.createObjectNode();
+
+ reader = new FileReader(propertiesPath);
+
+ // Try a tree load
+ this.jsonRootNode = mapper.readValue(reader, JsonNode.class);
+
+
+ } finally {
+ JsonNode reloadJsonProp = this.jsonRootNode.get(RELOAD_TIME_PROPERTY);
+ if (reloadJsonProp != null) {
+ this.automaticRefreshInMinutes = reloadJsonProp.asInt(DEFAULT_RELOAD_TIME_MIN);
+ } else {
+ this.automaticRefreshInMinutes = DEFAULT_RELOAD_TIME_MIN;
+ }
+
+ // Always close the file
+ try {
+ if (reader != null) {
+ reader.close();
+ }
+ } catch (IOException e) {
+ LOGGER.debug("Exception while closing reader for file:" + propertiesFileName, e);
+ }
+ }
+ }
+
+ @Override
+ public synchronized MsoJsonProperties clone() {
+ MsoJsonProperties msoCopy = new MsoJsonProperties();
+
+ ObjectMapper mapper = new ObjectMapper();
+ try {
+ msoCopy.jsonRootNode = mapper.createObjectNode();
+ msoCopy.jsonRootNode = mapper.readValue(this.jsonRootNode.toString(), JsonNode.class);
+ } catch (JsonParseException e) {
+ LOGGER.debug("JsonParseException when cloning the object:" + this.propertiesFileName, e);
+ } catch (JsonMappingException e) {
+ LOGGER.debug("JsonMappingException when cloning the object:" + this.propertiesFileName, e);
+ } catch (IOException e) {
+ LOGGER.debug("IOException when cloning the object:" + this.propertiesFileName, e);
+ }
+
+ msoCopy.propertiesFileName = this.propertiesFileName;
+ msoCopy.automaticRefreshInMinutes = this.automaticRefreshInMinutes;
+ return msoCopy;
+ }
+
+
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((jsonRootNode == null) ? 0 : jsonRootNode.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ MsoJsonProperties other = (MsoJsonProperties) obj;
+ if (jsonRootNode == null) {
+ if (other.jsonRootNode != null)
+ return false;
+ } else if (!jsonRootNode.equals(other.jsonRootNode))
+ return false;
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ StringBuffer response = new StringBuffer();
+ response.append("Config file " + propertiesFileName + "(Timer:" + automaticRefreshInMinutes + "mins):"
+ + System.getProperty("line.separator"));
+ response.append(this.jsonRootNode.toString());
+ response.append(System.getProperty("line.separator"));
+ response.append(System.getProperty("line.separator"));
+ return response.toString();
+
+ }
+
+
+}
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesException.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesException.java
new file mode 100644
index 0000000000..caf0ffad46
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesException.java
@@ -0,0 +1,51 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.properties;
+
+
+/**
+ * Exception during artifact installation.
+ */
+public class MsoPropertiesException extends Exception {
+
+ /**
+ * serialization id.
+ */
+ private static final long serialVersionUID = 4095937499475915021L;
+
+ /**
+ * @param message The message to dump
+ * @param cause The Throwable cause object
+ */
+ public MsoPropertiesException (final String message) {
+ super (message);
+
+ }
+
+ /**
+ * @param message The message to dump
+ * @param cause The Throwable cause object
+ */
+ public MsoPropertiesException (final String message, final Throwable cause) {
+ super (message, cause);
+
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesFactory.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesFactory.java
new file mode 100644
index 0000000000..77676314bc
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesFactory.java
@@ -0,0 +1,395 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.properties;
+
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+
+import javax.ejb.ConcurrencyManagement;
+import javax.ejb.ConcurrencyManagementType;
+import javax.ejb.LocalBean;
+import javax.ejb.Schedule;
+import javax.ejb.Singleton;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Response;
+
+import org.openecomp.mso.logger.MessageEnum;
+import org.openecomp.mso.logger.MsoLogger;
+import org.openecomp.mso.utils.CryptoUtils;
+
+/**
+ * This EJB Singleton class returns an instance of the mso properties for a specified file.
+ * This class can handle many config at the same time and is thread safe.
+ * This instance is a copy of the one cached so it can be modified or reloaded without impacting the others class using
+ * it.
+ * The mso properties files loaded and cached here will be reloaded every X second (it's configurable with the init
+ * method)
+ * This class can be used as an EJB or can be instantiated directly as long as the EJB has been initialized for the current
+ * module. Locks are made manually and not using EJB locks to allow this.
+ *
+ *
+ */
+@Singleton(name = "MsoPropertiesFactory")
+@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
+@LocalBean
+@Path("/properties")
+public class MsoPropertiesFactory implements Serializable {
+
+ private static final long serialVersionUID = 4365495305496742113L;
+
+ protected static String prefixMsoPropertiesPath = System.getProperty ("mso.config.path");
+
+ private static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);
+
+ // Keep a static copy of properties for global usage
+ private static final ConcurrentHashMap <String, MsoPropertiesParameters> msoPropertiesCache;
+
+ static {
+ if (prefixMsoPropertiesPath == null) {
+ // Hardcode if nothing is received
+ prefixMsoPropertiesPath = "";
+ }
+ msoPropertiesCache = new ConcurrentHashMap <String, MsoPropertiesParameters> ();
+ }
+
+ private static final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock ();
+
+ public MsoPropertiesFactory () {
+
+ }
+
+ private boolean isJsonFile(String propertiesFilePath) {
+ return propertiesFilePath.endsWith(".json");
+ }
+
+
+ private boolean isJavaPropertiesFile (String propertiesFilePath) {
+ return propertiesFilePath.endsWith(".properties");
+ }
+
+ private MsoPropertiesParameters createObjectType (MsoPropertiesParameters msoPropParams, String propertiesFilePath) throws MsoPropertiesException, IOException {
+
+ try {
+ if (this.isJavaPropertiesFile(propertiesFilePath)) {
+
+ msoPropParams.msoProperties = new MsoJavaProperties();
+ msoPropParams.msoPropertiesType = MsoPropertiesParameters.MsoPropertiesType.JAVA_PROP;
+ } else if (this.isJsonFile(propertiesFilePath)) {
+
+ msoPropParams.msoProperties = new MsoJsonProperties();
+ msoPropParams.msoPropertiesType = MsoPropertiesParameters.MsoPropertiesType.JSON_PROP;
+ } else {
+ throw new MsoPropertiesException("Unable to load the MSO properties file because format is not recognized (only .json or .properties): " + propertiesFilePath);
+ }
+
+ msoPropParams.msoProperties.loadPropertiesFile (propertiesFilePath);
+
+ return msoPropParams;
+ } finally {
+ if (msoPropParams.msoProperties!=null) {
+ msoPropParams.refreshCounter = msoPropParams.msoProperties.getAutomaticRefreshInMinutes();
+ }
+ }
+
+ }
+
+ /**
+ * This method is used to create a MsoProperties file cache and factory.
+ * The ID is kept in cache even if the config fails to be loaded.
+ * This is used to maintain the config ID until someone fixes the config file.
+ *
+ * @param msoPropertiesID A string representing the key of the config
+ * @param propertiesFilePath The mso properties file to load
+ *
+ * @throws MsoPropertiesException In case of issues with the mso properties loading
+ *
+ * @see MsoPropertiesFactory#getMsoJavaProperties()
+ * @see MsoPropertiesFactory#getMsoJsonProperties()
+ */
+ public void initializeMsoProperties (String msoPropertiesID,
+ String propertiesFilePath) throws MsoPropertiesException {
+
+ rwl.writeLock ().lock ();
+
+ String msoPropPath="none";
+ MsoPropertiesParameters msoPropertiesParams=new MsoPropertiesParameters();
+ try {
+ msoPropPath = prefixMsoPropertiesPath + propertiesFilePath;
+ if (msoPropertiesCache.get (msoPropertiesID) != null) {
+ throw new MsoPropertiesException ("The factory contains already an instance of this mso properties: "
+ + msoPropPath);
+ }
+ // Create the global MsoProperties object
+ msoPropertiesParams = createObjectType(msoPropertiesParams, msoPropPath);
+
+ } catch (FileNotFoundException e) {
+ throw new MsoPropertiesException ("Unable to load the MSO properties file because it has not been found:"
+ + msoPropPath, e);
+
+ } catch (IOException e) {
+ throw new MsoPropertiesException ("Unable to load the MSO properties file because IOException occurs: "
+ + msoPropPath, e);
+ } finally {
+ // put it in all cases, just to not forget about him and attempt a default reload
+ msoPropertiesCache.put (msoPropertiesID, msoPropertiesParams);
+ rwl.writeLock ().unlock ();
+ }
+ }
+
+ public void removeMsoProperties (String msoPropertiesID) throws MsoPropertiesException {
+
+ rwl.writeLock ().lock ();
+ try {
+ if (MsoPropertiesFactory.msoPropertiesCache.remove (msoPropertiesID) == null) {
+ throw new MsoPropertiesException ("Mso properties not found in cache:" + msoPropertiesID);
+ }
+ } finally {
+ rwl.writeLock ().unlock ();
+ }
+ }
+
+ /**
+ * This method clears all the configs in cache, the factory will then be free of any config.
+ *
+ * @see MsoPropertiesFactory#initializeMsoProperties(String, String)
+ */
+ public void removeAllMsoProperties () {
+
+ rwl.writeLock ().lock ();
+ try {
+ MsoPropertiesFactory.msoPropertiesCache.clear ();
+ } finally {
+ rwl.writeLock ().unlock ();
+ }
+ }
+
+ /**
+ * THis method can be used to change the file and timer fields of an existing MSO properties file.
+ *
+ * @param msoPropertiesID The MSO properties ID
+ * @param newMsoPropPath The new file Path
+ * @throws MsoPropertiesException In case of the MSO Properties is not found in cache
+ */
+ public void changeMsoPropertiesFilePath (String msoPropertiesID,
+ String newMsoPropPath) throws MsoPropertiesException {
+
+ rwl.writeLock ().lock ();
+ try {
+ MsoPropertiesParameters msoPropInCache = MsoPropertiesFactory.msoPropertiesCache.get (msoPropertiesID);
+
+ if (msoPropInCache != null) {
+ msoPropInCache.msoProperties.propertiesFileName = prefixMsoPropertiesPath + newMsoPropPath;
+
+ } else {
+ throw new MsoPropertiesException ("Mso properties not found in cache:" + msoPropertiesID);
+ }
+ } finally {
+ rwl.writeLock ().unlock ();
+ }
+ }
+
+ private AbstractMsoProperties getAndCloneProperties(String msoPropertiesID, MsoPropertiesParameters.MsoPropertiesType type) throws MsoPropertiesException {
+ rwl.readLock ().lock ();
+ try {
+ MsoPropertiesParameters msoPropInCache = MsoPropertiesFactory.msoPropertiesCache.get (msoPropertiesID);
+ if (msoPropInCache == null) {
+ throw new MsoPropertiesException ("Mso properties not found in cache:" + msoPropertiesID);
+ } else {
+ if (type.equals(msoPropInCache.msoPropertiesType)) {
+ return msoPropInCache.msoProperties.clone ();
+ } else {
+ throw new MsoPropertiesException ("Mso properties is not "+type.name()+" properties type:" + msoPropertiesID);
+ }
+
+ }
+ } finally {
+ rwl.readLock ().unlock ();
+ }
+ }
+
+ /**
+ * Get the MSO Properties (As Java Properties) as a copy of the mso properties cache.
+ * The object returned can therefore be modified.
+ *
+ * @return A copy of the mso properties, properties class can be empty if the file has not been read properly
+ * @throws MsoPropertiesException If the mso properties does not exist in the cache
+ */
+ public MsoJavaProperties getMsoJavaProperties (String msoPropertiesID) throws MsoPropertiesException {
+
+ return (MsoJavaProperties)getAndCloneProperties(msoPropertiesID,MsoPropertiesParameters.MsoPropertiesType.JAVA_PROP);
+ }
+
+ /**
+ * Get the MSO Properties (As JSON Properties) as a copy of the mso properties cache.
+ * The object returned can therefore be modified.
+ *
+ * @return A copy of the mso properties, properties class can be empty if the file has not been read properly
+ * @throws MsoPropertiesException If the mso properties does not exist in the cache
+ */
+ public MsoJsonProperties getMsoJsonProperties (String msoPropertiesID) throws MsoPropertiesException {
+
+ return (MsoJsonProperties)getAndCloneProperties(msoPropertiesID,MsoPropertiesParameters.MsoPropertiesType.JSON_PROP);
+ }
+
+ /**
+ * Get all MSO Properties as a copy of the mso properties cache.
+ * The objects returned can therefore be modified.
+ *
+ * @return A List of copies of the mso properties, can be empty
+ */
+ public List <AbstractMsoProperties> getAllMsoProperties () {
+
+ List <AbstractMsoProperties> resultList = new LinkedList <AbstractMsoProperties> ();
+ rwl.readLock ().lock ();
+ try {
+
+ for (MsoPropertiesParameters msoProp:MsoPropertiesFactory.msoPropertiesCache.values ()) {
+ resultList.add(msoProp.msoProperties.clone());
+ }
+ return resultList;
+
+ } finally {
+ rwl.readLock ().unlock ();
+ }
+
+ }
+
+ /**
+ * This method is not intended to be called, it's used to refresh the config automatically
+ *
+ * @return true if Properties have been reloaded, false otherwise
+ */
+ @Schedule(minute = "*/1", hour = "*", persistent = false)
+ public boolean reloadMsoProperties () {
+ AbstractMsoProperties msoPropInCache = null;
+ try {
+ if (!rwl.writeLock ().tryLock () && !rwl.writeLock ().tryLock (30L, TimeUnit.SECONDS)) {
+ LOGGER.debug ("Busy write lock on mso properties factory, skipping the reloading");
+ return false;
+ }
+ } catch (InterruptedException e1) {
+ LOGGER.debug ("Interrupted while trying to acquire write lock on mso properties factory, skipping the reloading");
+ Thread.currentThread ().interrupt ();
+ return false;
+ }
+ try {
+ for (Entry <String, MsoPropertiesParameters> entryMsoPropTimer : MsoPropertiesFactory.msoPropertiesCache.entrySet ()) {
+
+ if (entryMsoPropTimer.getValue ().refreshCounter <= 1) {
+ // It's time to reload the config
+ msoPropInCache = MsoPropertiesFactory.msoPropertiesCache.get (entryMsoPropTimer.getKey ()).msoProperties;
+ try {
+ AbstractMsoProperties oldProps = msoPropInCache.clone ();
+ msoPropInCache.reloadPropertiesFile ();
+ entryMsoPropTimer.getValue().refreshCounter=entryMsoPropTimer.getValue().msoProperties.getAutomaticRefreshInMinutes();
+
+ if (!msoPropInCache.equals (oldProps)) {
+ LOGGER.info (MessageEnum.LOAD_PROPERTIES_SUC, msoPropInCache.getPropertiesFileName (), "", "");
+ }
+ } catch (FileNotFoundException ef) {
+ LOGGER.error (MessageEnum.NO_PROPERTIES, msoPropInCache.propertiesFileName, "", "", MsoLogger.ErrorCode.PermissionError, "", ef);
+ } catch (Exception e) {
+ LOGGER.error (MessageEnum.LOAD_PROPERTIES_FAIL, msoPropInCache.propertiesFileName, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "", e);
+ }
+
+ } else {
+ --entryMsoPropTimer.getValue().refreshCounter;
+ }
+ }
+ return true;
+ } catch (Exception e) {
+ LOGGER.error (MessageEnum.LOAD_PROPERTIES_FAIL, "Unknown. Global issue while reloading", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "", e);
+ return false;
+ } finally {
+ rwl.writeLock ().unlock ();
+ }
+ }
+
+ /**
+ * This method can be used to known if the MSO properties instance hold is different from the one in cache
+ *
+ * @param msoPropertiesID The MSO properties ID
+ * @param oldMsoProperties The MSO Properties instance that must be compared to
+ * @return True if they are the same, false otherwise
+ * @throws MsoPropertiesException
+ */
+ public boolean propertiesHaveChanged (String msoPropertiesID, AbstractMsoProperties oldMsoProperties) throws MsoPropertiesException {
+ rwl.readLock ().lock ();
+ try {
+ if (MsoPropertiesFactory.msoPropertiesCache.get (msoPropertiesID) == null) {
+ throw new MsoPropertiesException ("Mso properties not found in cache:" + msoPropertiesID);
+ }
+
+ AbstractMsoProperties msoPropInCache = MsoPropertiesFactory.msoPropertiesCache.get (msoPropertiesID).msoProperties;
+ if (oldMsoProperties != null) {
+ return !oldMsoProperties.equals (msoPropInCache);
+ } else {
+ return msoPropInCache != null;
+ }
+ } finally {
+ rwl.readLock ().unlock ();
+ }
+ }
+
+ @GET
+ @Path("/show")
+ @Produces("text/plain")
+ public Response showProperties () {
+
+ List <AbstractMsoProperties> listMsoProp = this.getAllMsoProperties ();
+ StringBuffer response = new StringBuffer ();
+
+ if (listMsoProp.isEmpty ()) {
+ response.append ("No file defined");
+ }
+
+ for (AbstractMsoProperties properties : listMsoProp) {
+
+ response.append(properties.toString());
+ }
+
+ return Response.status (200).entity (response).build ();
+ }
+
+ @GET
+ @Path("/encrypt/{value}/{cryptKey}")
+ @Produces("text/plain")
+ public Response encryptProperty (@PathParam("value") String value, @PathParam("cryptKey") String cryptKey) {
+ try {
+ String encryptedValue = CryptoUtils.encrypt (value, cryptKey);
+ return Response.status (200).entity (encryptedValue).build ();
+ } catch (Exception e) {
+ LOGGER.error (MessageEnum.GENERAL_EXCEPTION_ARG, "Encryption error", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Error in encrypting property", e);
+ return Response.status (500).entity (e.getMessage ()).build ();
+ }
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java
new file mode 100644
index 0000000000..358550a2bb
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java
@@ -0,0 +1,33 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.properties;
+
+
+public class MsoPropertiesParameters {
+
+ protected enum MsoPropertiesType {JSON_PROP,JAVA_PROP};
+
+ protected MsoPropertiesType msoPropertiesType;
+
+ protected int refreshCounter;
+
+ protected AbstractMsoProperties msoProperties;
+}
diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertyInitializer.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertyInitializer.java
new file mode 100644
index 0000000000..38e3ae3650
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/properties/MsoPropertyInitializer.java
@@ -0,0 +1,87 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.properties;
+
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.annotation.WebListener;
+
+import org.openecomp.mso.logger.MessageEnum;
+import org.openecomp.mso.logger.MsoLogger;
+
+/**
+ * This class will attempt to initialize MSO Properties when part of a web application.
+ * It will look for the configuration file mso.properties in the
+ * following order:
+ * 1. In an init-param "mso.configuration" in web.xml
+ * 2. In a system property "mso.configuration"
+ * 3. In the default location "/etc/ecomp/mso/config/mso.properties"
+ *
+ * If all else fails, the MSO Properties will go uninitialized, and will
+ * attempt to use the default constructors within the MsoProperties class.
+ *
+ *
+ */
+@WebListener
+public class MsoPropertyInitializer implements ServletContextListener
+{
+
+ private MsoPropertiesFactory msoPropertiesFactory=new MsoPropertiesFactory();
+
+ public MsoPropertyInitializer () {
+ }
+
+ @Override
+ public void contextDestroyed(ServletContextEvent event) {
+ // Nothing to do...
+ }
+
+
+ @Override
+ public void contextInitialized(ServletContextEvent event)
+ {
+
+ // Note - this logger may be before or after MSO Logging configuration applied
+ MsoLogger initLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
+ try {
+ // Look first in the init-parameters
+ String msoPropConfigParam = event.getServletContext().getInitParameter("mso.configuration");
+ if (msoPropConfigParam != null && !msoPropConfigParam.isEmpty() ) {
+ String[] configFileSplit = msoPropConfigParam.split(",");
+ for (String msoPropConfig:configFileSplit) {
+ String[] msoPropDecoded = msoPropConfig.split("=");
+
+ try {
+ msoPropertiesFactory.initializeMsoProperties(msoPropDecoded[0], msoPropDecoded[1]);
+ initLogger.info(MessageEnum.LOAD_PROPERTIES_SUC, msoPropDecoded[1], "", "");
+ initLogger.debug("Mso properties successfully loaded:"+msoPropDecoded[1]+",ID:"+msoPropDecoded[0]+")");
+ } catch (MsoPropertiesException e) {
+ initLogger.error(MessageEnum.LOAD_PROPERTIES_FAIL, msoPropDecoded[1] + ". MSO Properties failed due to an mso properties exception", "", "", MsoLogger.ErrorCode.DataError, "Error in contextInitialized", e);
+ }
+ }
+ }
+ }
+ catch (Exception e) {
+ initLogger.error(MessageEnum.LOAD_PROPERTIES_FAIL, "Unknown. MSO Properties failed to initialize completely", "", "", MsoLogger.ErrorCode.DataError, "", e);
+ }
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/utils/CheckResults.java b/common/src/main/java/org/openecomp/mso/utils/CheckResults.java
new file mode 100644
index 0000000000..3e77a4c808
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/utils/CheckResults.java
@@ -0,0 +1,118 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.utils;
+
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement(name = "checkresults")
+public class CheckResults {
+
+ @XmlElement(name = "checkresult")
+ private List <CheckResult> results;
+
+ public CheckResults () {
+ results = new ArrayList <CheckResult> ();
+ }
+
+ public List <CheckResult> getResults () {
+ return results;
+ }
+
+ public void addHostCheckResult (String hostname, int state, String output) {
+ CheckResult newResult = new CheckResult ();
+ newResult.setType ("host");
+ newResult.setHostname (hostname);
+ newResult.setState (state);
+ newResult.setOutput (output);
+ results.add (newResult);
+ }
+
+ public void addServiceCheckResult (String hostname, String servicename, int state, String output) {
+ CheckResult newResult = new CheckResult ();
+ newResult.setType ("service");
+ newResult.setHostname (hostname);
+ newResult.setServicename (servicename);
+ newResult.setState (state);
+ newResult.setOutput (output);
+ results.add (newResult);
+ }
+
+ public static class CheckResult {
+
+ private String type;
+ private String hostname;
+ private String servicename;
+ private int state;
+ private String output;
+
+ @XmlAttribute(required = true)
+ public String getType () {
+ return type;
+ }
+
+ public void setType (String type) {
+ this.type = type;
+ }
+
+ @XmlElement(required = true)
+ public String getHostname () {
+ return hostname;
+ }
+
+ public void setHostname (String hostname) {
+ this.hostname = hostname;
+ }
+
+ @XmlElement(required = false)
+ public String getServicename () {
+ return servicename;
+ }
+
+ public void setServicename (String servicename) {
+ this.servicename = servicename;
+ }
+
+ @XmlElement(required = true)
+ public int getState () {
+ return state;
+ }
+
+ public void setState (int state) {
+ this.state = state;
+ }
+
+ @XmlElement(required = true)
+ public String getOutput () {
+ return output;
+ }
+
+ public void setOutput (String output) {
+ this.output = output;
+ }
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java b/common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java
new file mode 100644
index 0000000000..c926903cf3
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java
@@ -0,0 +1,95 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.utils;
+
+
+
+import java.io.IOException;
+import java.security.GeneralSecurityException;
+import java.security.NoSuchAlgorithmException;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.SecretKeySpec;
+
+
+/**
+ * CryptoUtils adapted from RTTP client.
+ *
+ */
+public final class CryptoUtils {
+
+ public static final String AES = "AES";
+
+ /**
+ * encrypt a value and generate a keyfile
+ * if the keyfile is not found then a new one is created
+ *
+ * @throws GeneralSecurityException
+ */
+ public static String encrypt (String value, String keyString) throws GeneralSecurityException {
+ SecretKeySpec sks = getSecretKeySpec (keyString);
+ Cipher cipher = Cipher.getInstance (CryptoUtils.AES);
+ cipher.init (Cipher.ENCRYPT_MODE, sks, cipher.getParameters ());
+ byte[] encrypted = cipher.doFinal (value.getBytes ());
+ return byteArrayToHexString (encrypted);
+ }
+
+ /**
+ * decrypt a value
+ *
+ * @throws GeneralSecurityException
+ */
+ public static String decrypt (String message, String keyString) throws GeneralSecurityException {
+ SecretKeySpec sks = getSecretKeySpec (keyString);
+ Cipher cipher = Cipher.getInstance (CryptoUtils.AES);
+ cipher.init (Cipher.DECRYPT_MODE, sks);
+ byte[] decrypted = cipher.doFinal (hexStringToByteArray (message));
+ return new String (decrypted);
+ }
+
+ private static SecretKeySpec getSecretKeySpec (String keyString) throws NoSuchAlgorithmException {
+ byte[] key = hexStringToByteArray (keyString);
+ SecretKeySpec sks = new SecretKeySpec (key, CryptoUtils.AES);
+ return sks;
+ }
+
+ public static String byteArrayToHexString (byte[] b) {
+ StringBuffer sb = new StringBuffer (b.length * 2);
+ for (int i = 0; i < b.length; i++) {
+ int v = b[i] & 0xff;
+ if (v < 16) {
+ sb.append ('0');
+ }
+ sb.append (Integer.toHexString (v));
+ }
+ return sb.toString ().toUpperCase ();
+ }
+
+ private static byte[] hexStringToByteArray (String s) {
+ byte[] b = new byte[s.length () / 2];
+ for (int i = 0; i < b.length; i++) {
+ int index = i * 2;
+ int v = Integer.parseInt (s.substring (index, index + 2), 16);
+ b[i] = (byte) v;
+ }
+ return b;
+ }
+}
diff --git a/common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java b/common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java
new file mode 100644
index 0000000000..3e8c5e95d3
--- /dev/null
+++ b/common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java
@@ -0,0 +1,76 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.utils;
+
+import org.openecomp.mso.logger.MessageEnum;
+import org.openecomp.mso.logger.MsoLogger;
+
+import java.util.UUID;
+
+/**
+ */
+public class UUIDChecker {
+
+ private UUIDChecker() {
+
+ }
+
+ public static boolean isValidUUID (String id) {
+ try {
+ if (null == id) {
+ return false;
+ }
+ UUID uuid = UUID.fromString(id);
+ return uuid.toString().equalsIgnoreCase(id);
+ } catch (IllegalArgumentException iae) {
+ return false;
+ }
+ }
+
+ private static String getUUID () {
+ return UUID.randomUUID().toString();
+ }
+
+ public static String verifyOldUUID (String oldId, MsoLogger msoLogger) {
+ if (!UUIDChecker.isValidUUID(oldId)) {
+ String newId = UUIDChecker.getUUID();
+ MsoLogger.setLogContext(newId, null);
+ msoLogger.info(MessageEnum.APIH_REPLACE_REQUEST_ID, oldId, "", "");
+ return newId;
+ }
+ MsoLogger.setLogContext(oldId, null);
+ return oldId;
+ }
+
+ public static String generateUUID (MsoLogger msoLogger) {
+ String newId = UUIDChecker.getUUID();
+ MsoLogger.setLogContext(newId, null);
+ msoLogger.info(MessageEnum.APIH_GENERATED_REQUEST_ID, newId, "", "");
+ return newId;
+ }
+
+ public static String generateServiceInstanceID (MsoLogger msoLogger) {
+ String newId = UUIDChecker.getUUID();
+ MsoLogger.setLogContext(null, newId);
+ msoLogger.info(MessageEnum.APIH_GENERATED_SERVICE_INSTANCE_ID, newId, "", "");
+ return newId;
+ }
+}
diff --git a/common/src/main/resources/ASDC.properties b/common/src/main/resources/ASDC.properties
new file mode 100644
index 0000000000..015ca3510e
--- /dev/null
+++ b/common/src/main/resources/ASDC.properties
@@ -0,0 +1,210 @@
+###
+# ============LICENSE_START=======================================================
+# ECOMP MSO
+# ================================================================================
+# Copyright (C) 2017 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=========================================================
+###
+
+########################################################################
+#Resource key=Error Code|Message text|Resolution text |Description text
+#######
+# {component}-{subcomponent}-{4-digit code}{classification}
+#Newlines can be utilized to add some clarity ensuring continuing line
+#has atleast one leading space
+#ResourceKey=\
+# ERR0000E\
+# Sample error msg txt\
+# Sample resolution msg\
+# Sample description txt
+#
+######
+#Error code classification category for other components
+#1300-1399 Security/Permission Related
+#2300-2399 Availability/Timeout Related
+#3300-3399 Data Access/Integrity Related
+#4300-4399 Schema Interface Type/Validation
+#5300-5399 Business/Flow Processing Related
+#6300-6399 Reserved \u2013 do not use
+#9300-9399 Unknown Errors
+#
+######
+#{classification} description
+# I = Information
+# W = Warning
+# E = Error
+# F = Fatal
+########################################################################
+ASDC_GENERAL_WARNING=\
+ MSO-ASDC-5301W|\
+ WARNING: {0}|\
+ Please check other logs for more detailed info|\
+ General warning
+ASDC_AUDIT_EXEC=\
+ MSO-ASDC-5302I|\
+ Executing method: {0}. {1}|\
+ No resolution needed|\
+ Executing method
+ASDC_GENERAL_METRICS=\
+ MSO-ASDC-5305I|\
+ Executed method: {0}. {1}|\
+ No resolution needed|\
+ Generate information for Metric events
+ASDC_CREATE_SERVICE=\
+ MSO-ASDC-5306I|\
+ Creating new VNF Resource for service {0} with id {1} and version {2}|\
+ No resolution needed|\
+ Method triggered to create new VNF Resource
+ASDC_CREATE_ARTIFACT=\
+ MSO-ASDC-5307I|\
+ Installing new {0} for service {1} with id {2} and version {3}|\
+ No resolution needed|\
+ Method triggered to create new VNF Resource
+ASDC_ARTIFACT_ALREADY_DEPLOYED=\
+ MSO-ASDC-5308W|\
+ Constraint violation caught, artifact is already deployed {0} and version {1}|\
+ No resolution needed|\
+ Artifact is already deployed
+ASDC_ARTIFACT_INSTALL_EXC=\
+ MSO-ASDC-5309E|\
+ Exception caught during installation of the {0}. Transaction rollback.|\
+ Please check other logs for more detailed info|\
+ Exception caught during installation of the artifact
+ASDC_CHECK_HEAT_TEMPLATE=\
+ MSO-ASDC-5310I|\
+ Start to verify whether {0} with name {1} and version {2} is already deployed|\
+ No resolution needed|\
+ Check artifact
+ASDC_ARTIFACT_ALREADY_DEPLOYED_DETAIL=\
+ MSO-ASDC-5311I|\
+ ResourceInstanceName:{0} (ResourceUUID:{1}) is already deployed for this Service:{2}/{3}(ServiceUUID:{4}) (ResourceName: {5})|\
+ No resolution needed|\
+ Resource is already deployed
+ASDC_ARTIFACT_NOT_DEPLOYED_DETAIL=\
+ MSO-ASDC-5312I|\
+ ResourceInstanceName:{0} (ResourceUUID:{1}) is not yet deployed for this Service:{2}/{3}(ServiceUUID:{4}) (ResourceName: {5})|\
+ No resolution needed|\
+ Resource is not yet deployed
+ASDC_INIT_ASDC_CLIENT_EXC=\
+ MSO-ASDC-5314W|\
+ ASDControllerException caught during the Init/closing of ASDC Client with address {0} and environment {1}|\
+ Please check other logs for more detailed info|\
+ ASDControllerException caught during the Init/closing of ASDC Client
+ASDC_LOAD_ASDC_CLIENT_EXC=\
+ MSO-ASDC-5315W|\
+ ASDCParametersException caught during loading/reloading of the ASDC Client with address {0} and environment {1}|\
+ Please check other logs for more detailed info|\
+ ASDCParametersException caught during loading/reloading of the ASDC Client
+ASDC_SHUTDOWN_ASDC_CLIENT_EXC=\
+ MSO-ASDC-5317W|\
+ {0} caught during the ASDC Controller with address {1} and environment {2} shutdown|\
+ Please check other logs for more detailed info|\
+ Exception caught during the ASDC Controller shutdown
+ASDC_START_INSTALL_ARTIFACT=\
+ MSO-ASDC-5318I|\
+ Trying to install the artifact:{0}|\
+ No resolution needed|\
+ Trying to install the artifact
+ASDC_ARTIFACT_TYPE_NOT_SUPPORT=\
+ MSO-ASDC-5319W|\
+ This artifact type is not supported:{0}|\
+ No resolution needed|\
+ Artifact type is not supported
+ASDC_ARTIFACT_ALREADY_EXIST=\
+ MSO-ASDC-5320I|\
+ No need to download the artifact as it exists already in MSO:{0} (UUID:{1}) associated to ResourceName {2}|\
+ No resolution needed|\
+ Artifact already exists
+ASDC_ARTIFACT_DOWNLOAD_SUC=\
+ MSO-ASDC-5321I|\
+ Artifact successfully downloaded:{0} (UUID:{1}) (SIZE in Bytes:{2})|\
+ No resolution needed|\
+ Artifact successfully downloaded
+ASDC_ARTIFACT_DOWNLOAD_FAIL=\
+ MSO-ASDC-5322E|\
+ Artifact :{0} could not be downloaded correctly from ASDC URL {1} (UUID:{2}) Error message is {3})|\
+ Please check other logs for more detailed info|\
+ Artifact download failed
+ASDC_START_DEPLOY_ARTIFACT=\
+ MSO-ASDC-5323I|\
+ Trying to deploy the artifact:{0} (UUID:{1})|\
+ No resolution needed|\
+ Trying to deploy the artifact
+ASDC_ARTIFACT_DEPLOY_SUC=\
+ MSO-ASDC-5324I|\
+ Resource successfully installed:{0} (UUID:{1}) (Nb of Modules:{2})|\
+ No resolution needed|\
+ Resource successfully installed
+ASDC_SEND_NOTIF_ASDC=\
+ MSO-ASDC-5325I|\
+ Sending {0} ({1}) notification to ASDC for artifact:{2}|\
+ No resolution needed|\
+ Sending notif to ASDC
+ASDC_SEND_NOTIF_ASDC_EXEC=\
+ MSO-ASDC-5326W|\
+ Exception caught when trying to notify ASDC|\
+ Please check other logs for more detailed info|\
+ Exception caught when trying to notify ASDC
+ASDC_RECEIVE_CALLBACK_NOTIF=\
+ MSO-ASDC-5327I|\
+ Receive a callback notification in ASDC, nb of artifacts: {0} (ServiceUUID:{1})|\
+ No resolution needed|\
+ Receive a callback notification in ASDC
+ASDC_RECEIVE_SERVICE_NOTIF=\
+ MSO-ASDC-5328I|\
+ Notification is ServiceVNF, (ServiceUUID:{0})|\
+ No resolution needed|\
+ Receive a callback notification for ServiceVNF
+ASDC_ARTIFACT_NULL=\
+ MSO-ASDC-5329I|\
+ Nothing to deploy artifact is NULL, (ServiceUUID:{0})|\
+ No resolution needed|\
+ Nothing to deploy artifact is NULL
+ASDC_SERVICE_NOT_SUPPORT=\
+ MSO-ASDC-5330W|\
+ Notification received, (ServiceUUID:{0}) is not a ServiceVNF and is therefore skipped|\
+ No resolution needed|\
+ Service not support
+ASDC_INIT_ASDC_CLIENT_SUC=\
+ MSO-ASDC-5331I|\
+ ASDC Controller successfully initialized|\
+ No resolution needed|\
+ ASDC client initialized
+ASDC_GENERAL_EXCEPTION_ARG=\
+ MSO-ASDC-9300E|\
+ Exception: {0}|\
+ Please check other logs for more detailed info|\
+ General exception with reason
+ASDC_GENERAL_EXCEPTION=\
+ MSO-ASDC-9301E|\
+ Exception encountered|\
+ Please check other logs for more detailed info|\
+ Exception encountered
+ASDC_ARTIFACT_CHECK_EXC=\
+ MSO-ASDC-9302E|\
+ Exception caught during checking existence of the artifact|\
+ Please check other logs for more detailed info|\
+ Exception caught during checking existence of the artifact
+ASDC_SINGLETON_CHECKT_EXC=\
+ MSO-ASDC-9303E|\
+ Exception caught during the singleton check for ASDC with address {0} and environment {1}|\
+ Please check other logs for more detailed info|\
+ Exception caught during the singleton check
+ASDC_PROPERTIES_NOT_FOUND=\
+ MSO-ASDC-9304E|\
+ Properties file: {0} not found|\
+ Please verify whether properties file exist or readable|\
+ Please verify whether properties file exist or readable|\
+ Properties file not found
diff --git a/common/src/main/resources/ApiHandler.properties b/common/src/main/resources/ApiHandler.properties
new file mode 100644
index 0000000000..82d452ae4e
--- /dev/null
+++ b/common/src/main/resources/ApiHandler.properties
@@ -0,0 +1,255 @@
+###
+# ============LICENSE_START=======================================================
+# ECOMP MSO
+# ================================================================================
+# Copyright (C) 2017 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=========================================================
+###
+
+########################################################################
+#Resource key=Error Code|Message text|Resolution text |Description text
+#######
+# {component}-{subcomponent}-{4-digit code}{classification}
+#Newlines can be utilized to add some clarity ensuring continuing line
+#has atleast one leading space
+#ResourceKey=\
+# ERR0000E\
+# Sample error msg txt\
+# Sample resolution msg\
+# Sample description txt
+#
+#######
+#Error code classification category
+#1000-1099 Security/Permission Related
+#2000-2099 Availability/Timeout Related
+#3000-3099 Data Access/Integrity Related
+#4000-4099 Schema Interface Type/Validation
+#5000-5099 Business/Flow Processing Related
+#6000-8099 Reserved \u2013 do not use
+#9000-9099 Unknown Errors
+#
+######
+#{classification} description
+# I = Information
+# W = Warning
+# E = Error
+# F = Fatal
+########################################################################
+APIH_QUERY_FOUND=\
+ MSO-APIH-3000I|\
+ Requests found when query DB with parameters {0}={1}|\
+ No resolution needed|\
+ Requests found when API Handler query DB
+APIH_QUERY_NOT_FOUND=\
+ MSO-APIH-3001I|\
+ Request not found when query DB with parameters {0}={1}|\
+ No resolution needed|\
+ Request not found when API Handler query DB
+APIH_DB_ACCESS_EXC=\
+ MSO-APIH-3003E|\
+ Unable to access DB|\
+ Please check other logs for more detailed info|\
+ Unable to access DB
+APIH_DB_ACCESS_EXC_REASON=\
+ MSO-APIH-3005E|\
+ Unable to access DB: {0}|\
+ Please check other logs for more detailed info|\
+ Unable to access DB
+APIH_DB_ATTRIBUTE_NOT_FOUND=\
+ MSO-APIH-3006E|\
+ Attribute {0} not found in DB|\
+ Please check other logs for more detailed info|\
+ Attribute not found in DB
+APIH_DB_INSERT_EXC=\
+ MSO-APIH-3007E|\
+ Unable to insert record to DB|\
+ Please check other logs for more detailed info|\
+ Unable to insert record to DB
+APIH_DB_UPDATE_EXC=\
+ MSO-APIH-3008E|\
+ Unable to update record to DB: {0}|\
+ Please check other logs for more detailed info|\
+ Unable to insert record to DB
+APIH_VALIDATION_ERROR=\
+ MSO-APIH-4000E|\
+ Validation failed|\
+ Please check other logs for more detailed info|\
+ Validation failed
+APIH_REQUEST_VALIDATION_ERROR=\
+ MSO-APIH-4001E|\
+ Validation of the input request failed, for incoming request:{0}|\
+ Please check other logs for more detailed info|\
+ Validation of the input request failed
+APIH_SERVICE_VALIDATION_ERROR=\
+ MSO-APIH-4002E|\
+ Service params failed schema validation|\
+ Please check other logs for more detailed info|\
+ Service params failed schema validation
+APIH_REQUEST_VALIDATION_ERROR_REASON=\
+ MSO-APIH-4003E|\
+ Validation of the input request failed:{0}|\
+ Please verify the input request|\
+ Validation of the input request failed
+APIH_VNFREQUEST_VALIDATION_ERROR=\
+ MSO-APIH-4004E|\
+ Validation of the VNF Request failed|\
+ Please verify the VNF Request|\
+ Validation of the VNF Request failed
+APIH_QUERY_PARAM_WRONG=\
+ MSO-APIH-5003W|\
+ Bad Request: {0}|\
+ Please verify the request|\
+ Bad Request
+APIH_GENERAL_WARNING=\
+ MSO-APIH-5004W|\
+ WARNING: {0}|\
+ Please check other logs for more detailed info|\
+ General warning
+APIH_AUDIT_EXEC=\
+ MSO-APIH-5005I|\
+ Executing request: {0}. {1}|\
+ No resolution needed|\
+ Executing method
+APIH_GENERAL_METRICS=\
+ MSO-APIH-5008I|\
+ Executed method: {0}. {1}|\
+ No resolution needed|\
+ Generate information for Metric events
+APIH_REQUEST_NULL=\
+ MSO-APIH-5009W|\
+ The request received by MSO is null|\
+ Please check other logs for more detailed info|\
+ The request received by MSO is null
+APIH_DUPLICATE_FOUND=\
+ MSO-APIH-5011W|\
+ Duplicated request found: {0}|\
+ Please check other logs for more detailed info|\
+ Duplicated request found
+APIH_BAD_ORDER=\
+ MSO-APIH-5012W|\
+ Request received with wrong order: {0}|\
+ Please check other logs for more detailed info|\
+ Request received with wrong order
+APIH_BPEL_RESPONSE_ERROR=\
+ MSO-APIH-5014E|\
+ Abnormal response received from BPEL server: {0}|\
+ Please check other logs for more detailed info|\
+ Abnormal response received from BPEL server
+APIH_WARP_REQUEST=\
+ MSO-APIH-5015E|\
+ Error wrapping request|\
+ Please check other logs for more detailed info|\
+ Error wrapping request to be sent to BPEL server
+APIH_ERROR_FROM_BPEL_SERVER=\
+ MSO-APIH-5016E|\
+ Error from {0} with status:{1} and responseBody:{2}|\
+ Please check other logs for more detailed info|\
+ Error from BPEL Server
+APIH_CANNOT_READ_SCHEMA=\
+ MSO-APIH-5017E|\
+ MSO Configuration Error - Unable to read the schema file|\
+ Please check other logs for more detailed info|\
+ MSO Configuration Error - Unable to read the schema file
+APIH_PROPERTY_LOAD_SUC=\
+ MSO-APIH-5018I|\
+ Properties file loaded successfully|\
+ No resolution needed|\
+ Properties file loaded successfully
+APIH_NO_PROPERTIES=\
+ MSO-APIH-5019E|\
+ Missing or invalid properties file: {0}|\
+ Please verify whether properties file exist or redable|\
+ Missing or invalid properties file
+APIH_LOAD_PROPERTIES_FAIL=\
+ MSO-APIH-5020E|\
+ Unable to load properties file: {0}|\
+ Please verify whether properties file exist or redable|\
+ Unable to load properties file
+APIH_GENERATED_REQUEST_ID=\
+ MSO-APIH-5021I|\
+ Missing requestID. Assigned {0}|\
+ No resolution needed|\
+ Request ID is not available
+APIH_REPLACE_REQUEST_ID=\
+ MSO-APIH-5022I|\
+ Replaced invalid requestID of {0}|\
+ No resolution needed|\
+ Request ID received is not compliant with ECOMP Standards
+APIH_GENERATED_SERVICE_INSTANCE_ID=\
+ MSO-APIH-5023I|\
+ Missing serviceInstanceID. Assigned {0}|\
+ No resolution needed|\
+ Service Instance ID is not available
+APIH_GENERAL_EXCEPTION_ARG=\
+ MSO-APIH-9000E|\
+ Exception: {0}|\
+ Please check other logs for more detailed info|\
+ General exception with reason
+APIH_GENERAL_EXCEPTION=\
+ MSO-APIH-9001E|\
+ Exception encountered|\
+ Please check other logs for more detailed info|\
+ Exception encountered
+APIH_HEALTH_CHECK_EXCEPTION=\
+ MSO-APIH-9002E|\
+ Exception during health check|\
+ Please check other logs for more detailed info|\
+ Exception during health check
+APIH_READ_VNFOUTPUT_CLOB_EXCEPTION=\
+ MSO-APIH-9003E|\
+ Exception reading vnfOutputs Clob|\
+ Please check other logs for more detailed info|\
+ Exception reading vnfOutputs Clob
+APIH_DUPLICATE_CHECK_EXC=\
+ MSO-APIH-9004E|\
+ Exception during the duplication check for post services|\
+ Please check other logs for more detailed info|\
+ Exception during the duplicate check for post services
+APIH_BPEL_COMMUNICATE_ERROR=\
+ MSO-APIH-9005E|\
+ Exception during BPEL POST|\
+ Please check other logs for more detailed info|\
+ Exception during BPEL POST
+APIH_SDNC_COMMUNICATE_ERROR=\
+ MSO-APIH-9006E|\
+ Exception when sending HTTP POST request to SDNC Adapter|\
+ Please check other logs for more detailed info|\
+ Exception when sending HTTP POST request to SDNC Adapter
+APIH_SDNC_RESPONSE_ERROR=\
+ MSO-APIH-9007E|\
+ IOException getting SDNC Adapter response body|\
+ Please check other logs for more detailed info|\
+ IOException getting SDNC Adapter response body
+APIH_JAXB_MARSH_ERROR=\
+ MSO-APIH-9008E|\
+ Exception when translating query results into string with Jaxb|\
+ Please check other logs for more detailed info|\
+ Exception when translating query results into string with Jaxb
+APIH_JAXB_UNMARSH_ERROR=\
+ MSO-APIH-9009E|\
+ Exception when formatting for VNF outputs with Jaxb|\
+ Please check other logs for more detailed info|\
+ Exception when formatting for VNF outputs
+APIH_DOM2STR_ERROR=\
+ MSO-APIH-9010E|\
+ Error converting xml Document to String|\
+ Please check other logs for more detailed info|\
+ Error converting xml Document to String
+APIH_DUPLICATE_CHECK_EXC_ATT=\
+ MSO-APIH-9011E|\
+ Exception during the duplication check for post services with the same attribute: {0}|\
+ Please check other logs for more detailed info|\
+ Exception during the duplicate check for post services
+
diff --git a/common/src/main/resources/BPMN.properties b/common/src/main/resources/BPMN.properties
new file mode 100644
index 0000000000..298268bb92
--- /dev/null
+++ b/common/src/main/resources/BPMN.properties
@@ -0,0 +1,94 @@
+###
+# ============LICENSE_START=======================================================
+# ECOMP MSO
+# ================================================================================
+# Copyright (C) 2017 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=========================================================
+###
+
+########################################################################
+#Resource key=Error Code|Message text|Resolution text |Description text
+#######
+# {component}-{subcomponent}-{4-digit code}{classification}
+#Newlines can be utilized to add some clarity ensuring continuing line
+#has atleast one leading space
+#ResourceKey=\
+# ERR0000E\
+# Sample error msg txt\
+# Sample resolution msg\
+# Sample description txt
+#
+#######
+#Error code classification category
+#1100-1199 Security/Permission Related
+#2100-2199 Availability/Timeout Related
+#3100-3199 Data Access/Integrity Related
+#4100-4199 Schema Interface Type/Validation
+#5100-5199 Business/Flow Processing Related
+#6100-6199 Reserved \u2013 do not use
+#9100-9199 Unknown Errors
+#
+######
+#{classification} description
+# I = Information
+# W = Warning
+# E = Error
+# F = Fatal
+########################################################################
+BPMN_GENERAL_INFO=\
+ MSO-BPEL-5100I|\
+ INFO: {0}|\
+ No resolution needed|\
+ General info
+BPMN_GENERAL_WARNING=\
+ MSO-BPEL-5101W|\
+ WARNING: {0}|\
+ Please check other logs for more information|\
+ General warning
+BPMN_AUDIT_EXEC=\
+ MSO-BPEL-5102I|\
+ Executing method: {0}. {1}|\
+ No resolution needed|\
+ Executing method
+BPMN_GENERAL_METRICS=\
+ MSO-BPEL-5105I|\
+ Executed method: {0}. {1}|\
+ No resolution needed|\
+ Generate information for Metric events
+BPMN_URN_MAPPING_FAIL=\
+ MSO-BPEL-5106E|\
+ URN Mapping Task Failed to execute|\
+ Please check other logs for more information|\
+ URN Mapping Task Failed to execute
+BPMN_VARIABLE_NULL=\
+ MSO-BPEL-5107W|\
+ Variable {0} is null; skipped|\
+ No resolution needed|\
+ Variable is null
+BPMN_GENERAL_EXCEPTION_ARG=\
+ MSO-BPEL-9100E|\
+ Exception: {0}|\
+ Please check other logs for more information|\
+ General exception with reason
+BPMN_GENERAL_EXCEPTION=\
+ MSO-BPEL-9101E|\
+ Exception encountered|\
+ Please check other logs for more information|\
+ Exception encountered
+BPMN_SDNC_CALLBACK_EXCEPTION=\
+ MSO-BPEL-9102E|\
+ {0} Exception occurred during processing of MSO sdncAdapterCallbackService {1}|\
+ Please check other logs for more information|\
+ Exception occurred during processing of MSO sdncAdapterCallbackService
diff --git a/common/src/main/resources/GenericMessages.properties b/common/src/main/resources/GenericMessages.properties
new file mode 100644
index 0000000000..26403235c9
--- /dev/null
+++ b/common/src/main/resources/GenericMessages.properties
@@ -0,0 +1,139 @@
+###
+# ============LICENSE_START=======================================================
+# ECOMP MSO
+# ================================================================================
+# Copyright (C) 2017 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=========================================================
+###
+
+########################################################################
+#Resource key=Error Code|Message text|Resolution text |Description text
+#######
+# {component}-{subcomponent}-{4-digit code}{classification}
+#Newlines can be utilized to add some clarity ensuring continuing line
+#has atleast one leading space
+#ResourceKey=\
+# ERR0000E\
+# Sample error msg txt\
+# Sample resolution msg\
+# Sample description txt
+#
+#######
+#Error code classification category for other components
+#1400-1499 Security/Permission Related
+#2400-2499 Availability/Timeout Related
+#3400-3499 Data Access/Integrity Related
+#4400-4499 Schema Interface Type/Validation
+#5400-5499 Business/Flow Processing Related
+#6400-6499 Reserved \u2013 do not use
+#9400-9499 Unknown Errors
+#
+######
+#{classification} description
+# I = Information
+# W = Warning
+# E = Error
+# F = Fatal
+########################################################################
+GENERAL_WARNING=\
+ MSO-GENERAL-5401W|\
+ WARNING: {0}|\
+ Please check other logs for more detailed info|\
+ General warning
+AUDIT_EXEC=\
+ MSO-GENERAL-5402I|\
+ Executing method: {0}. {1}|\
+ No resolution needed|\
+ Executing method
+GENERAL_METRICS=\
+ MSO-GENERAL-5405I|\
+ Executed method: {0}. {1}|\
+ No resolution needed|\
+ Generate information for Metric events
+LOGGER_SETUP=\
+ MSO-GENERAL-5406I|\
+ Request received to update logger level|\
+ No resolution needed|\
+ Request received to update logger level
+LOGGER_NOT_FOUND=\
+ MSO-GENERAL-5407I|\
+ Logger Servlet: Logger not found: : {0}|\
+ No resolution needed|\
+ Logger not found
+LOGGER_UPDATE_SUC=\
+ MSO-GENERAL-5408I|\
+ Successfully update Logger: {0} from level {1} to level {2}|\
+ No resolution needed|\
+ Generate information for Metric events
+LOGGER_UPDATE_DEBUG=\
+ MSO-GENERAL-5409I|\
+ Request received to update debug mode|\
+ No resolution needed|\
+ Request received to update debug mode
+LOGGER_UPDATE_DEBUG_SUC=\
+ MSO-GENERAL-5410I|\
+ Successfully {0} debug mode|\
+ No resolution needed|\
+ Successfully updated debug mode
+LOAD_PROPERTIES_SUC=\
+ MSO-GENERAL-5411I|\
+ Properties file loaded successfully from file {0}|\
+ No resolution needed|\
+ Properties file loaded successfully
+NO_PROPERTIES=\
+ MSO-GENERAL-5412E|\
+ Missing or invalid properties file: {0}|\
+ Please verify whether properties file exist or readable|\
+ Missing or invalid properties file
+LOAD_PROPERTIES_FAIL=\
+ MSO-GENERAL-5413E|\
+ Failed loading properties file: {0}|\
+ Please verify whether properties file exist or readable|\
+ Failed loading properties file
+INIT_LOGGER=\
+ MSO-GENERAL-5414I|\
+ Prepare to initialize loggers from {0}|\
+ No resolution needed|\
+ Prepare to initialize loggers
+MADATORY_PARAM_MISSING=\
+ MSO-GENERAL-5415E|\
+ Not able to get mandatory parameter: {0} from file {1}|\
+ No resolution needed|\
+ Mandatory parameter missing
+IDENTITY_SERVICE_NOT_FOUND=\
+ MSO-GENERAL-5416E|\
+ Identity service not found: region={0} ,cloud={1}|\
+ Please check other logs for more detailed info|\
+ Identity service not found
+GENERAL_EXCEPTION_ARG=\
+ MSO-GENERAL-9400E|\
+ Exception: {0}|\
+ Please check other logs for more detailed info|\
+ General exception with reason
+GENERAL_EXCEPTION=\
+ MSO-GENERAL-9401E|\
+ Exception encountered|\
+ Please check other logs for more detailed info|\
+ Exception encountered
+INIT_LOGGER_FAIL=\
+ MSO-GENERAL-9402E|\
+ Failed to initialize loggers|\
+ No resolution|\
+ Failed to initialize loggers
+JAXB_EXCEPTION=\
+ MSO-GENERAL-9403E|\
+ JAXB Initialization Error|\
+ Please check other logs for more detailed info|\
+ JAXB Initialization Error
diff --git a/common/src/main/resources/ResourceAdapter.properties b/common/src/main/resources/ResourceAdapter.properties
new file mode 100644
index 0000000000..f1c8b26ce1
--- /dev/null
+++ b/common/src/main/resources/ResourceAdapter.properties
@@ -0,0 +1,489 @@
+###
+# ============LICENSE_START=======================================================
+# ECOMP MSO
+# ================================================================================
+# Copyright (C) 2017 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=========================================================
+###
+
+########################################################################
+#Resource key=Error Code|Message text|Resolution text |Description text
+#######
+# {component}-{subcomponent}-{4-digit code}{classification}
+#Newlines can be utilized to add some clarity ensuring continuing line
+#has atleast one leading space
+#ResourceKey=\
+# ERR0000E\
+# Sample error msg txt\
+# Sample resolution msg\
+# Sample description txt
+#
+#######
+#Error code classification category
+#1200-1299 Security/Permission Related
+#2200-2299 Availability/Timeout Related
+#3200-3299 Data Access/Integrity Related
+#4200-4299 Schema Interface Type/Validation
+#5200-5299 Business/Flow Processing Related
+#6200-6299 Reserved \u2013 do not use
+#9200-9299 Unknown Errors
+#
+######
+#{classification} description
+# I = Information
+# W = Warning
+# E = Error
+# F = Fatal
+########################################################################
+RA_CREATE_STACK_TIMEOUT=\
+ MSO-RA-2200E|\
+ Create Stack - Polling timeout exceeded. cloud={0}, tenant={1}, stack={2}, status={3}|\
+ Please check other logs for more detailed info|\
+ Create Stack timeout
+RA_DELETE_STACK_TIMEOUT=\
+ MSO-RA-2201E|\
+ Delete Stack - Polling timeout exceeded. cloud={0}, tenant={1}, stack={2}, status={3}|\
+ Please check other logs for more detailed info|\
+ Delete Stack timeout
+RA_UPDATE_STACK_TIMEOUT=\
+ MSO-RA-2202E|\
+ Update Stack - Polling timeout exceeded. cloud={0}, tenant={1}, stack={2}, status={3}|\
+ Please check other logs for more detailed info|\
+ Delete Stack timeout
+RA_MISSING_PARAM=\
+ MSO-RA-4200I|\
+ Missing Required parameter: {0}|\
+ No resolution needed|\
+ Mandatory Parameter Missing
+RA_PARSING_ERROR=\
+ MSO-RA-4201E|\
+ Error parsing file {0}|\
+ No resolution needed|\
+ Error parsing file
+RA_MARSHING_ERROR=\
+ MSO-RA-4202E|\
+ Error marshalling callback request with JaxB|\
+ Please check other logs for more detailed info|\
+ Error marshalling callback request
+RA_PARSING_REQUEST_ERROR=\
+ MSO-RA-4203E|\
+ Error parsing request:{0}|\
+ Please check other logs for more detailed info|\
+ Error parsing request
+RA_VLAN_PARSE=\
+ MSO-RA-4204E|\
+ Error parsing VLAN parameter in network stack {0}:{1}|\
+ Please check other logs for more detailed info|\
+ Error parsing VLAN parameter in network stack
+RA_GENERAL_WARNING=\
+ MSO-RA-5201W|\
+ WARNING: {0}|\
+ Please check other logs for more detailed info|\
+ General warning
+RA_AUDIT_EXEC=\
+ MSO-RA-5202I|\
+ Executing method: {0}. {1}|\
+ No resolution needed|\
+ Executing method
+RA_GENERAL_METRICS=\
+ MSO-RA-5205I|\
+ Executed method: {0}. {1}|\
+ No resolution needed|\
+ Generate information for Metric events
+RA_PROPERTIES_NOT_FOUND=\
+ MSO-RA-5206E|\
+ Properties file: {0} not found|\
+ Please verify whether properties file exist or readable|\
+ Properties file not found
+RA_LOAD_PROPERTIES_SUC=\
+ MSO-RA-5207I|\
+ Properties file loaded successfully from file {0}|\
+ No resolution needed|\
+ Properties file loaded successfully
+RA_PARAM_NOT_FOUND=\
+ MSO-RA-5208E|\
+ Attribute {0} not found in DB. For {1}={2}|\
+ No resolution needed|\
+ Attribute not found in DB
+RA_UNKOWN_PARAM=\
+ MSO-RA-5209E|\
+ Unknown {0}:{1}|\
+ Please check other logs for more detailed info|\
+ Unknown attribute
+RA_CONFIG_EXC=\
+ MSO-RA-5210E|\
+ Configuration error:{0}|\
+ Please check other logs for more detailed info|\
+ Configuration Error
+RA_CONFIG_NOT_FOUND=\
+ MSO-RA-5211E|\
+ Could not found configuration file:{0}|\
+ Please verify whether configuration file exist or readable|\
+ Configuration file not found
+RA_SEND_REQUEST_SDNC=\
+ MSO-RA-5212I|\
+ Sending request to SDNC:{0}|\
+ No resolution needed|\
+ Sending request to SDNC
+RA_RESPONSE_FROM_SDNC=\
+ MSO-RA-5213I|\
+ Response received from SDNC:{0}|\
+ No resolution needed|\
+ Response received from SDNC
+RA_CALLBACK_BPEL=\
+ MSO-RA-5218E|\
+ Callback to BPEL:{0} |\
+ Please check other logs for more detailed info|\
+ Callback to BPEL
+RA_NETWORK_ALREADY_EXIST=\
+ MSO-RA-5240W|\
+ Network already exists: {0} in {1}/{2}|\
+ Please check other logs for more detailed info|\
+ Network already exists
+RA_NETWORK_NOT_FOUND=\
+ MSO-RA-5241E|\
+ Network doesn't exist: {0} in {1}/{2}|\
+ Please check other logs for more detailed info|\
+ Network doesn't exist
+RA_NETWORK_ORCHE_MODE_NOT_SUPPORT=\
+ MSO-RA-5243E|\
+ Network Type Orchestrated mode:{0} is not supported|\
+ Please check other logs for more detailed info|\
+ Network Type Orchestrated mode
+RA_ROLLBACK_NULL=\
+ MSO-RA-5249W|\
+ Rollback: No action to perform|\
+ No resolution needed|\
+ Rollback: No action to perform
+RA_ASYNC_ROLLBACK=\
+ MSO-RA-5251I|\
+ Async Rollback Network {0}|\
+ No resolution needed|\
+ Async Rollback Network
+RA_WSDL_NOT_FOUND=\
+ MSO-RA-5252E|\
+ Unable to find wsdl file {0} in classpath|\
+ No resolution needed|\
+ Unable to find wsdl file in classpath
+RA_CALLBACK_BPEL_COMPLETE=\
+ MSO-RA-5258I|\
+ Completed processing BPEL request|\
+ No resolution needed|\
+ Completed processing BPEL request
+RA_SDNC_MISS_CONFIG_PARAM=\
+ MSO-RA-5259E|\
+ Missing configuration for:{0}|\
+ Please check other logs for more detailed info|\
+ Missing configuration for
+RA_SDNC_INVALID_CONFIG=\
+ MSO-RA-5260W|\
+ Invalid configuration(most requests require atleast 3 params:method,timeout,action) for Key:{0} Value:{1}|\
+ Please check other logs for more detailed info|\
+ Invalid configuration
+RA_TENANT_NOT_FOUND=\
+ MSO-RA-5263E|\
+ Tenant not found: tenant={0}, cloudSiteId={1}|\
+ Please check other logs for more detailed info|\
+ Tenant not found
+RA_PRINT_URL=\
+ MSO-RA-5264I|\
+ {0} URL:{1}|\
+ No resolution needed|\
+ Log the URL
+RA_RECEIVE_SDNC_NOTIF=\
+ MSO-RA-5268I|\
+ Received SDNC Notification. XML:{0}|\
+ No resolution needed|\
+ Received SDNC Notification
+RA_INIT_SDNC_ADAPTER=\
+ MSO-RA-5269I|\
+ Initializing mso-sdnc-adapter|\
+ No resolution needed|\
+ Initializing mso-sdnc-adapter
+RA_RECEIVE_BPEL_REQUEST=\
+ MSO-RA-5270I|\
+ BPEL request received [{0}] with callback URL [{1}]|\
+ No resolution needed|\
+ BPEL request received
+RA_SEND_REQUEST_SDNC_ERR=\
+ MSO-RA-5271E|\
+ Error sending request to SDNC. Failed to start SDNC Client thread|\
+ Please check other logs for more detailed info|\
+ Error sending request to SDNC
+RA_TENANT_ALREADY_EXIST=\
+ MSO-RA-5272E|\
+ Tenant {0} already exists in {1}|\
+ No resolution needed|\
+ Tenant alaredy exists
+RA_SEND_REQUEST_APPC_ERR=\
+ MSO-RA-5273E|\
+ Error sending request to APPC|\
+ Please check other logs for more detailed info|\
+ Error sending request to APPC
+RA_VNF_ALREADY_EXIST=\
+ MSO-RA-5275E|\
+ Stack {0} already exists in {1}/{2}|\
+ No resolution needed|\
+ VNF already exists
+RA_VNF_UNKNOWN_PARAM=\
+ MSO-RA-5276E|\
+ Unknown {0}:{1}|\
+ No resolution needed|\
+ Uknown parameter
+RA_VNF_EXTRA_PARAM=\
+ MSO-RA-5277E|\
+ Create Stack ({0}) extra input params received:{1}|\
+ Please check other logs for more detailed info|\
+ Extra input params received
+RA_VNF_NOT_EXIST=\
+ MSO-RA-5278E|\
+ Stack {0} does not exist in {1}/{2}|\
+ No resolution needed|\
+ Stack does not exist
+RA_ASYNC_CREATE_VNF=\
+ MSO-RA-5282I|\
+ Async Create VNF :{0} of type {1} in {2}/{3}|\
+ No resolution needed|\
+ Async Create VNF
+RA_SEND_VNF_NOTIF_ERR=\
+ MSO-RA-5283E|\
+ Error sending createVnf notification|\
+ Please check other logs for more detailed info|\
+ Error sending createVnf notification
+RA_ASYNC_CREATE_VNF_COMPLETE=\
+ MSO-RA-5284I|\
+ Completed createVnfA|\
+ No resolution needed|\
+ Completed createVnfA
+RA_ASYNC_UPDATE_VNF=\
+ MSO-RA-5285I|\
+ Async Update VNF :{0} of type {1} in {2}/{3}|\
+ No resolution needed|\
+ Async Update VNF
+RA_ASYNC_UPDATE_VNF_COMPLETE=\
+ MSO-RA-5286I|\
+ Completed updateVnfA|\
+ No resolution needed|\
+ Completed updateVnfA
+RA_ASYNC_QUERY_VNF=\
+ MSO-RA-5287I|\
+ Async Query VNF :{0} of type {1} in {2}/{3}|\
+ No resolution needed|\
+ Async Query VNF
+RA_ASYNC_QUERY_VNF_COMPLETE=\
+ MSO-RA-5288I|\
+ Completed queryVnfA|\
+ No resolution needed|\
+ Completed queryVnfA
+RA_ASYNC_DELETE_VNF=\
+ MSO-RA-5289I|\
+ Async Delete VNF :{0} of type {1} in {2}/{3}|\
+ No resolution needed|\
+ Async Delete VNF
+RA_ASYNC_DELETE_VNF_COMPLETE=\
+ MSO-RA-5290I|\
+ Completed deleteVnfA|\
+ No resolution needed|\
+ Completed deleteVnfA
+RA_ASYNC_ROLLBACK_VNF=\
+ MSO-RA-5291I|\
+ Async Rollback VNF|\
+ No resolution needed|\
+ Async Rollback VNF
+RA_ASYNC_ROLLBACK_VNF_COMPLETE=\
+ MSO-RA-5292I|\
+ Completed rollbackVnfA|\
+ No resolution needed|\
+ Completed rollbackVnfA
+RA_DB_INVALID_STATUS=\
+ MSO-RA-5293E|\
+ Invalid status value|\
+ Please check other logs for more detailed info|\
+ Invalid status value
+RA_DB_REQUEST_NOT_EXIST=\
+ MSO-RA-5294E|\
+ Request ID={0} does not exist in DB|\
+ Please check other logs for more detailed info|\
+ Record does not exist in DB
+RA_CANT_UPDATE_REQUEST=\
+ MSO-RA-5295E|\
+ Enable to update {0} in DB for Request ID={1}|\
+ Please check other logs for more detailed info|\
+ Enable to update DB
+RA_CONFIG_LOAD=\
+ MSO-RA-5296I|\
+ Configuration loaded from {0}|\
+ Please check other logs for more detailed info|\
+ Configuration loaded
+RA_GENERAL_EXCEPTION_ARG=\
+ MSO-RA-9200E|\
+ Exception: {0}|\
+ Please check other logs for more detailed info|\
+ General exception with reason
+RA_GENERAL_EXCEPTION=\
+ MSO-RA-9201E|\
+ Exception encountered|\
+ Please check other logs for more detailed info|\
+ Exception encountered
+RA_CONNECTION_EXCEPTION=\
+ MSO-RA-9202E|\
+ Exception communicating with {0}: {1}|\
+ Please check other logs for more detailed info|\
+ Communication Exception
+RA_EXCEPTION_COMMUNICATE_SDNC=\
+ MSO-RA-9203E|\
+ Exception while processing request to SDNC|\
+ Please check other logs for more detailed info|\
+ Exception while processing request to SDNC
+RA_EVALUATE_XPATH_ERROR=\
+ MSO-RA-9204E|\
+ Error while evaluating xpath {0} - {1}|\
+ Please check other logs for more detailed info|\
+ Error while evaluating xpath
+RA_ANALYZE_ERROR_EXC=\
+ MSO-RA-9205E|\
+ Problem analyzing error returned by SDN-C|\
+ Please check other logs for more detailed info|\
+ Problem analyzing error returned by SDN-C
+RA_ERROR_GET_RESPONSE_SDNC=\
+ MSO-RA-9206E|\
+ Error getting response code from errored SDNC request|\
+ Please check other logs for more detailed info|\
+ Error getting response code from errored SDNC request
+RA_INIT_CALLBACK_WSDL_ERR=\
+ MSO-RA-9207E|\
+ Caught exception initializing Callback wsdl:{0} |\
+ Please check other logs for more detailed info|\
+ Caught exception initializing Callback wsdl
+RA_CREATE_STACK_ERR=\
+ MSO-RA-9208E|\
+ Create Stack Error: {0}|\
+ Please check other logs for more detailed info|\
+ Create Stack Error
+RA_UPDATE_STACK_ERR=\
+ MSO-RA-9209E|\
+ Update Stack Error - Polling complete with non-success status: {0}, {1}|\
+ Please check other logs for more detailed info|\
+ Update Stack Error
+RA_UPDATE_NETWORK_ERR=\
+ MSO-RA-9210E|\
+ Exception while update network, {0} in {1}/{2}|\
+ Please check other logs for more detailed info |\
+ Update Network Error
+RA_QUERY_NETWORK_EXC=\
+ MSO-RA-9211E|\
+ Exception while query network: {0} in {1}/{2}|\
+ Please check other logs for more detailed info|\
+ Exception while query network:
+RA_CREATE_NETWORK_EXC=\
+ MSO-RA-9212E|\
+ Exception while create network: {0} in {1}/{2}|\
+ Please check other logs for more detailed info|\
+ Create Network Error
+RA_DELETE_NETWORK_EXC=\
+ MSO-RA-9213E|\
+ Exception while delete network: {0} in {1}/{2}|\
+ Please check other logs for more detailed info|\
+ delete Network Error
+RA_CREATE_NETWORK_NOTIF_EXC=\
+ MSO-RA-9214E|\
+ Error sending createNetwork notification|\
+ Please check other logs for more detailed info|\
+ Error sending createNetwork notification
+RA_WSDL_URL_CONVENTION_EXC=\
+ MSO-RA-9215E|\
+ {0} URL converion failed|\
+ Please check other logs for more detailed info|\
+ WSDL URL converion failed
+RA_INIT_NOTIF_EXC=\
+ MSO-RA-9216E|\
+ Caught exception initializing Notification Url|\
+ Please check other logs for more detailed info|\
+ Caught exception initializing Notification Url
+RA_SET_CALLBACK_AUTH_EXC=\
+ MSO-RA-9217E|\
+ Unable to set authorization in callback request|\
+ Please check other logs for more detailed info|\
+ Unable to set authorization in callback request
+RA_FAULT_INFO_EXC=\
+ MSO-RA-9218E|\
+ Exception caught while getting fault info|\
+ Please check other logs for more detailed info|\
+ Exception caught while getting fault info
+RA_CALLBACK_BPEL_EXC=\
+ MSO-RA-9219E|\
+ Error sending BPEL Callback request|\
+ Please check other logs for more detailed info|\
+ Error sending BPEL Callback request
+RA_CREATE_TENANT_ERR=\
+ MSO-RA-9220E|\
+ Create Tenant Error: {0}|\
+ Please check other logs for more detailed info|\
+ Create Tenant Error
+RA_DELETE_TEMAMT_ERR=\
+ MSO-RA-9221E|\
+ Delete Tenant Error: {0}|\
+ Please check other logs for more detailed info|\
+ Delete Tenant Error
+RA_ERROR_CREATE_SDNC_REQUEST=\
+ MSO-RA-9222E|\
+ Error creating SDNC request|\
+ Please check other logs for more detailed info|\
+ Error creating SDNC request
+RA_ERROR_CREATE_SDNC_RESPONSE=\
+ MSO-RA-9223E|\
+ Error creating SDNC response|\
+ Please check other logs for more detailed info|\
+ Error creating SDNC response
+RA_ERROR_CONVERT_XML2STR=\
+ MSO-RA-9224E|\
+ Error converting xml Document to String|\
+ Please check other logs for more detailed info |\
+ Error converting xml Document to String
+RA_UPDATE_TENANT_ERR=\
+ MSO-RA-9225E|\
+ Update Tenant Error: {0}|\
+ Please check other logs for more detailed info|\
+ Update Tenant Error
+RA_ROLLBACK_TENANT_ERR=\
+ MSO-RA-9226E|\
+ Rollback Tenant Error: {0}|\
+ Please check other logs for more detailed info|\
+ Rollback Tenant Error
+RA_QUERY_VNF_ERR=\
+ MSO-RA-9227E|\
+ Exception while query VNF:{0} in {1}/{2}|\
+ Please check other logs for more detailed info|\
+ Exception while query VNF
+RA_UPDATE_VNF_ERR=\
+ MSO-RA-9228E|\
+ Exception while update VNF:{0} in {1}/{2}|\
+ Please check other logs for more detailed info|\
+ Exception while update VNF
+RA_DELETE_VNF_ERR=\
+ MSO-RA-9229E|\
+ Exception while delete VNF:{0} in {1}/{2}|\
+ Please check other logs for more detailed info|\
+ Exception while delete VNF
+RA_CREATE_VNF_ERR=\
+ MSO-RA-9230E|\
+ Exception while create VNF:{0} in {1}/{2}|\
+ Please check other logs for more detailed info|\
+ Exception while create VNF
+RA_ROLLBACK_VNF_ERR=\
+ MSO-RA-9231E|\
+ Exception while rollback VNF|\
+ Please check other logs for more detailed info|\
+ Exception while rollback VNF
diff --git a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/CryptoTest.java b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/CryptoTest.java
new file mode 100644
index 0000000000..302102b839
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/CryptoTest.java
@@ -0,0 +1,79 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.adapter_utils.tests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.security.GeneralSecurityException;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import org.openecomp.mso.utils.CryptoUtils;
+
+/**
+ * This class implements all test methods of the CryptoUtils features.
+ *
+ *
+ */
+public class CryptoTest {
+
+ private static String testKey = "546573746F736973546573746F736973";
+
+ /**
+ * This method is called before any test occurs.
+ * It creates a fake tree from scratch
+ */
+ @BeforeClass
+ public static final void prepare () {
+
+ }
+
+ /**
+ * This method implements a test of tree structure, mainly the storage of the leaves structure.
+ * @throws GeneralSecurityException
+ */
+ @Test
+ public final void testEncryption () throws GeneralSecurityException {
+ String hexString = CryptoUtils.byteArrayToHexString("testosistestosi".getBytes());
+
+ final String testData = "This is a test string";
+ final String nonTestData = "This is not the right String";
+
+ String encodeString = CryptoUtils.encrypt(testData, testKey);
+
+ assertNotNull(encodeString);
+
+ assertTrue(testData.equals(CryptoUtils.decrypt(encodeString, testKey)));
+ assertFalse(nonTestData.equals(CryptoUtils.decrypt(encodeString, testKey)));
+
+ String encode2String = CryptoUtils.encrypt(testData, testKey);
+ assertNotNull(encode2String);
+
+ assertEquals(encodeString,encode2String);
+
+ assertEquals(CryptoUtils.decrypt(encodeString, testKey),CryptoUtils.decrypt(encode2String, testKey));
+ }
+
+}
diff --git a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoAlarmLoggerTest.java b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoAlarmLoggerTest.java
new file mode 100644
index 0000000000..52246b00d9
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoAlarmLoggerTest.java
@@ -0,0 +1,131 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.adapter_utils.tests;
+
+
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import org.openecomp.mso.logger.MsoAlarmLogger;
+import org.openecomp.mso.properties.MsoJavaProperties;
+import org.openecomp.mso.properties.MsoPropertiesException;
+import org.openecomp.mso.properties.MsoPropertiesFactory;
+
+/**
+ * This junit test very roughly the alarm logger
+ *
+ */
+public class MsoAlarmLoggerTest {
+
+ public static MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
+ public static MsoAlarmLogger msoAlarmLogger;
+
+ @BeforeClass
+ public static final void createObjects() throws MsoPropertiesException
+ {
+
+ File outputFile = new File ("target/alarm-test.log");
+ if (outputFile.exists()) {
+ outputFile.delete();
+ }
+ msoAlarmLogger = new MsoAlarmLogger("target/alarm-test.log");
+ }
+
+ @Test
+ public void testAlarmConfig() throws MsoPropertiesException, IOException {
+
+ msoAlarmLogger.sendAlarm("test", 0, "detail message");
+
+ FileInputStream inputStream = new FileInputStream("target/alarm-test.log");
+ BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
+
+ String line = reader.readLine();
+ String[] splitLine = line.split("\\|");
+ assertTrue(splitLine.length==4);
+ assertTrue("test".equals(splitLine[1]));
+ assertTrue("0".equals(splitLine[2]));
+ assertTrue("detail message".equals(splitLine[3]));
+
+ line = reader.readLine();
+ assertNull(line);
+ reader.close();
+ inputStream.close();
+
+ // Reset the file for others tests
+ PrintWriter writer = new PrintWriter(new File("target/alarm-test.log"));
+ writer.print("");
+ writer.close();
+
+ }
+
+ @Test
+ public void testAlarm() throws IOException {
+
+ msoAlarmLogger.sendAlarm("test", 0, "detail message");
+ msoAlarmLogger.sendAlarm("test2", 1, "detail message2");
+ msoAlarmLogger.sendAlarm("test3", 2, "detail message3");
+
+ FileInputStream inputStream = new FileInputStream("target/alarm-test.log");
+ BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
+
+ String line = reader.readLine();
+ String[] splitLine = line.split("\\|");
+ assertTrue(splitLine.length==4);
+ assertTrue("test".equals(splitLine[1]));
+ assertTrue("0".equals(splitLine[2]));
+ assertTrue("detail message".equals(splitLine[3]));
+
+ line = reader.readLine();
+ splitLine = line.split("\\|");
+ assertTrue(splitLine.length==4);
+ assertTrue("test2".equals(splitLine[1]));
+ assertTrue("1".equals(splitLine[2]));
+ assertTrue("detail message2".equals(splitLine[3]));
+
+ line = reader.readLine();
+ splitLine = line.split("\\|");
+ assertTrue(splitLine.length==4);
+ assertTrue("test3".equals(splitLine[1]));
+ assertTrue("2".equals(splitLine[2]));
+ assertTrue("detail message3".equals(splitLine[3]));
+
+ line = reader.readLine();
+ assertNull(line);
+ reader.close();
+ inputStream.close();
+
+ // Reset the file for others tests
+ PrintWriter writer = new PrintWriter(new File("target/alarm-test.log"));
+ writer.print("");
+ writer.close();
+
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoLoggerTest.java b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoLoggerTest.java
new file mode 100644
index 0000000000..3da16be23a
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoLoggerTest.java
@@ -0,0 +1,339 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.adapter_utils.tests;
+
+import org.openecomp.mso.entity.MsoRequest;
+import org.openecomp.mso.logger.MessageEnum;
+import org.openecomp.mso.logger.MsoLogger;
+import org.openecomp.mso.logger.MsoLogger.ErrorCode;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.slf4j.MDC;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.PrintWriter;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.List;
+/**
+ * This class implements all test methods of the MsoLogger features.
+ *
+ *
+ */
+public class MsoLoggerTest {
+
+ static MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL);
+
+ /**
+ * This method is called before any test occurs.
+ * It creates a fake tree from scratch
+ */
+ @BeforeClass
+ public static final void prepare () {
+
+ }
+
+ @Before
+ public final void cleanErrorLogFile() throws FileNotFoundException {
+ URL url = this.getClass().getClassLoader().getResource("logback-test.xml");
+ String logFile = url.getFile().substring(0, url.getFile().indexOf("test-classes")) + "/MSO/Test/errorjboss.server.name_IS_UNDEFINED.log";
+ PrintWriter asdcConfigFileWriter = new PrintWriter(logFile);
+ asdcConfigFileWriter.print("");
+ asdcConfigFileWriter.flush();
+ asdcConfigFileWriter.close();
+ }
+
+ @Before
+ public final void cleanMetricLogFile() throws FileNotFoundException {
+ URL url = this.getClass().getClassLoader().getResource("logback-test.xml");
+ String logFile = url.getFile().substring(0, url.getFile().indexOf("test-classes")) + "/MSO/Test/metricsjboss.server.name_IS_UNDEFINED.log";
+ PrintWriter asdcConfigFileWriter = new PrintWriter(logFile);
+ asdcConfigFileWriter.print("");
+ asdcConfigFileWriter.flush();
+ asdcConfigFileWriter.close();
+ }
+
+ @Before
+ public final void cleanAuditLogFile() throws FileNotFoundException {
+ URL url = this.getClass().getClassLoader().getResource("logback-test.xml");
+ String logFile = url.getFile().substring(0, url.getFile().indexOf("test-classes")) + "/MSO/Test/auditjbo ss.server.name_IS_UNDEFINED.log";
+ PrintWriter asdcConfigFileWriter = new PrintWriter(logFile);
+ asdcConfigFileWriter.print("");
+ asdcConfigFileWriter.flush();
+ asdcConfigFileWriter.close();
+ }
+
+
+
+ /**
+ * This method implements a test of getSeverifyLevel method.
+ */
+ @Test
+ public final void testGetSeverityLevel () {
+
+ try {
+ String levelInfo = (String)invokePriveMethod("getSeverityLevel", "INFO");
+ Assert.assertEquals (levelInfo, "0");
+
+ String levelWarn = (String)invokePriveMethod("getSeverityLevel", "WARN");
+ Assert.assertEquals (levelWarn, "1");
+
+ String levelERROR = (String)invokePriveMethod("getSeverityLevel", "ERROR");
+ Assert.assertEquals (levelERROR, "2");
+
+ String levelDEBUG = (String)invokePriveMethod("getSeverityLevel", "DEBUG");
+ Assert.assertEquals (levelDEBUG, "0");
+
+ String levelFATAL = (String)invokePriveMethod("getSeverityLevel", "FATAL");
+ Assert.assertEquals (levelFATAL, "3");
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * This method implements a test of getFinalServiceName method.
+ */
+ @Test
+ public final void testGetFinalServiceName () {
+ try {
+ String serviceName1 = (String)invokePriveMethod("getFinalServiceName", "testServiceName1");
+ Assert.assertEquals(serviceName1, "testServiceName1");
+
+ MsoLogger.setServiceName("testServiceName2");
+ String serviceName2 = (String)invokePriveMethod("getFinalServiceName", "testServiceName1");
+ Assert.assertEquals(serviceName2, "testServiceName1");
+
+ String msgNull = null;
+ String serviceName3 = (String)invokePriveMethod("getFinalServiceName", msgNull);
+ Assert.assertEquals(serviceName3, "testServiceName2");
+
+ MsoLogger.resetServiceName();
+ String serviceName4 = (String)invokePriveMethod("getFinalServiceName", msgNull);
+ Assert.assertEquals(serviceName4, "invoke0");
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public final void testPrepareMsg () {
+ try {
+ String msgNull = null;
+ MDC.clear();
+ invokePrepareMsg("INFO", null, null);
+
+ Assert.assertTrue (MDC.get(MsoLogger.REQUEST_ID).equals("trace-#") && MDC.get(MsoLogger.SERVICE_INSTANCE_ID).equals("trace-#") && MDC.get(MsoLogger.SERVICE_NAME).equals("invoke0")
+ && MDC.get(MsoLogger.TIMER) == null && MDC.get(MsoLogger.ALERT_SEVERITY).equals("0"));
+
+ MsoLogger.setLoggerParameters("testRemoteIp", "testUser");
+ MsoLogger.setLogContext("testReqId", "testSvcId");
+ invokePrepareMsg("ERROR", "testServiceName3", null);
+ Assert.assertTrue (MDC.get(MsoLogger.REQUEST_ID).equals("testReqId") && MDC.get(MsoLogger.SERVICE_INSTANCE_ID).equals("testSvcId") && MDC.get(MsoLogger.SERVICE_NAME).equals("testServiceName3")
+ && MDC.get(MsoLogger.TIMER) == null && MDC.get(MsoLogger.ALERT_SEVERITY).equals("2") );
+
+ MsoLogger.setServiceName("testServiceName2");
+ invokePrepareMsg("WARN", msgNull, msgNull);
+ Assert.assertTrue (MDC.get(MsoLogger.REQUEST_ID).equals("testReqId") && MDC.get(MsoLogger.SERVICE_INSTANCE_ID).equals("testSvcId") && MDC.get(MsoLogger.SERVICE_NAME).equals("testServiceName2")
+ && MDC.get(MsoLogger.TIMER) == null && MDC.get(MsoLogger.ALERT_SEVERITY).equals("1"));
+
+ MDC.clear ();
+ MsoRequest msoRequest = new MsoRequest ();
+ msoRequest.setRequestId ("reqId2");
+ msoRequest.setServiceInstanceId ("servId2");
+ MsoLogger.setLogContext (msoRequest);
+ invokePrepareMsg("FATAL", null, "123");
+ Assert.assertTrue (MDC.get(MsoLogger.REQUEST_ID).equals("reqId2") && MDC.get(MsoLogger.SERVICE_INSTANCE_ID).equals("servId2") && MDC.get(MsoLogger.TIMER).equals("123") && MDC.get(MsoLogger.ALERT_SEVERITY).equals("3"));
+
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ /**
+ * This method implements a test of log methods
+ */
+ @Test
+ public final void testLogMethods () {
+ try {
+ MDC.clear();
+ MsoLogger.setLogContext("reqId2", "servId2");
+ MsoLogger.setServiceName("MSO.testServiceName");
+ msoLogger.info (MessageEnum.LOGGER_UPDATE_SUC, "testLogger", "INFO", "DEBUG", "target entity", "target service");
+ msoLogger.warn (MessageEnum.GENERAL_WARNING, "warning test", "", "", MsoLogger.ErrorCode.UnknownError, "warning test");
+ msoLogger.error (MessageEnum.GENERAL_EXCEPTION, "target entity", "target service", MsoLogger.ErrorCode.UnknownError, "error test");
+
+ //Fetch from the error log
+ URL url = this.getClass().getClassLoader().getResource("logback-test.xml");
+ String logFile = url.getFile().substring(0, url.getFile().indexOf("test-classes")) + "/MSO/Test/errorjboss.server.name_IS_UNDEFINED.log";
+
+ Path filePath = new File(logFile).toPath();
+ Charset charset = Charset.defaultCharset();
+ List<String> stringList = Files.readAllLines(filePath, charset);
+ String[] stringArray = stringList.toArray(new String[]{});
+ int size = stringArray.length;
+
+ Assert.assertTrue(stringArray[size-3].contains("|reqId2|main|MSO.testServiceName||target entity|target service|INFO|null||") && stringArray[size-3].contains("||MSO-GENERAL-5408I Successfully update Logger: testLogger from level INFO to level DEBUG"));
+ Assert.assertTrue(stringArray[size-2].contains("|reqId2|main|MSO.testServiceName||||WARN|UnknownError|warning test|") && stringArray[size-2].contains("|MSO-GENERAL-5401W WARNING: warning test"));
+ Assert.assertTrue(stringArray[size-1].contains("|reqId2|main|MSO.testServiceName||target entity|target service|ERROR|UnknownError|error test|") && stringArray[size-1].contains("|MSO-GENERAL-9401E Exception encountered"));
+
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * This method implements a test of recordMetricEvent method.
+ */
+ @Test
+ public final void testRecordMetricEvent () {
+ try {
+ MDC.clear();
+ MsoLogger.setLogContext("reqId", "servId");
+ msoLogger.recordMetricEvent(123456789L, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successful", "VNF" , "createVNF", null);
+ MDC.put (MsoLogger.REMOTE_HOST, "127.0.0.1");
+ MDC.put (MsoLogger.PARTNERNAME, "testUser");
+ msoLogger.recordMetricEvent(123456789L, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.ServiceNotAvailable, "Exception", "SDNC", "removeSDNC", "testVNF");
+
+ //Fetch from the metric log
+ URL url = this.getClass().getClassLoader().getResource("logback-test.xml");
+ String logFile = url.getFile().substring(0, url.getFile().indexOf("test-classes")) + "/MSO/Test/metricsjboss.server.name_IS_UNDEFINED.log";
+
+ Path filePath = new File(logFile).toPath();
+ Charset charset = Charset.defaultCharset();
+ List<String> stringList = Files.readAllLines(filePath, charset);
+ String[] stringArray = stringList.toArray(new String[]{});
+ msoLogger.error (MessageEnum.GENERAL_EXCEPTION, "", "", MsoLogger.ErrorCode.UnknownError, "test error msg");
+
+ Assert.assertTrue(stringArray[0].contains("|reqId|servId|main||testRecordMetricEvent||VNF|createVNF|COMPLETE|0|Successful|Test UUID as JBoss not found|INFO|0|"));
+ // count the occurance of symbol "|"
+ Assert.assertTrue ((stringArray[0].length() - stringArray[0].replace("|", "").length()) == 28);
+ Assert.assertTrue(stringArray[1].contains("|reqId|servId|main||testRecordMetricEvent|testUser|SDNC|removeSDNC|ERROR|501|Exception|Test UUID as JBoss not found|INFO|0|") && stringArray[1].contains("|127.0.0.1||||testVNF|||||"));
+ Assert.assertTrue ((stringArray[1].length() - stringArray[1].replace("|", "").length()) == 28);
+
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * This method implements a test of testRecordAuditEvent method.
+ */
+ @Test
+ public final void testRecordAuditEvent () {
+
+ try {
+
+ MDC.clear();
+ MsoLogger.setLogContext("reqId", "servId");
+ msoLogger.recordAuditEvent(123456789L, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successful");
+ MDC.put (MsoLogger.REMOTE_HOST, "127.0.0.1");
+ MDC.put (MsoLogger.PARTNERNAME, "testUser");
+ msoLogger.recordAuditEvent(123456789L, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.ServiceNotAvailable, "Exception");
+
+ //Fetch from the metric log
+ URL url = this.getClass().getClassLoader().getResource("logback-test.xml");
+ String logFile = url.getFile().substring(0, url.getFile().indexOf("test-classes")) + "/MSO/Test/auditjboss.server.name_IS_UNDEFINED.log";
+
+ Path filePath = new File(logFile).toPath();
+ Charset charset = Charset.defaultCharset();
+ List<String> stringList = Files.readAllLines(filePath, charset);
+ String[] stringArray = stringList.toArray(new String[]{});
+ msoLogger.error (MessageEnum.GENERAL_EXCEPTION, "", "", ErrorCode.UnknownError, "log error");
+
+ Assert.assertTrue (stringArray[0].contains("|reqId|servId|main||testRecordAuditEvent||COMPLETE|0|Successful|Test UUID as JBoss not found|INFO|0|"));
+ // count the occurance of symbol "|"
+ Assert.assertTrue ((stringArray[0].length() - stringArray[0].replace("|", "").length()) == 25);
+ Assert.assertTrue (stringArray[1].contains("|reqId|servId|main||testRecordAuditEvent|testUser|ERROR|501|Exception|Test UUID as JBoss not found|INFO|0|") && stringArray[1].contains("|127.0.0.1||||||||"));
+ Assert.assertTrue ((stringArray[1].length() - stringArray[1].replace("|", "").length()) == 25);
+
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+
+
+
+ // User reflection to invoke to avoid change the publicity of the method
+ private static String invokePrepareMsg (String arg1, String arg2, String arg3) {
+ Method method;
+ try {
+ method = MsoLogger.class.getDeclaredMethod("prepareMsg", String.class, String.class, String.class);
+ method.setAccessible(true);
+ return (String)method.invoke(msoLogger, arg1, arg2, arg3);
+ } catch (NoSuchMethodException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (SecurityException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ // User reflection to invoke to avoid change the publicity of the method
+ private static Object invokePriveMethod (String methodName, String arg) {
+ Method method;
+ try {
+ method = MsoLogger.class.getDeclaredMethod(methodName, String.class);
+ method.setAccessible(true);
+ return method.invoke(msoLogger, arg);
+ } catch (NoSuchMethodException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (SecurityException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryConcurrencyTest.java b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryConcurrencyTest.java
new file mode 100644
index 0000000000..ac27b20ada
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryConcurrencyTest.java
@@ -0,0 +1,174 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.adapter_utils.tests;
+
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import org.openecomp.mso.properties.AbstractMsoProperties;
+import org.openecomp.mso.properties.MsoJavaProperties;
+import org.openecomp.mso.properties.MsoPropertiesException;
+import org.openecomp.mso.properties.MsoPropertiesFactory;
+
+/**
+ * This class implements test methods of the MsoPropertiesFactory features.
+ *
+ *
+ */
+public class MsoPropertiesFactoryConcurrencyTest {
+
+ public static MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
+
+ public static final String MSO_PROP_ID = "TEST_PROP";
+ public static final String PATH_MSO_PROP1 = MsoJavaProperties.class.getClassLoader().getResource("mso.properties")
+ .toString().substring(5);
+ public static final String PATH_MSO_PROP2 = MsoJavaProperties.class.getClassLoader().getResource("mso2.properties")
+ .toString().substring(5);
+
+ /**
+ * This method is called before any test occurs. It creates a fake tree from
+ * scratch
+ *
+ * @throws MsoPropertiesException
+ */
+ @BeforeClass
+ public static final void prepare() throws MsoPropertiesException {
+ // it's possible to have it already initialized, as tests are executed in the same JVM
+ msoPropertiesFactory.removeAllMsoProperties ();
+ msoPropertiesFactory.initializeMsoProperties(MSO_PROP_ID, PATH_MSO_PROP1);
+ }
+
+ private Callable<Integer> taskReload = new Callable<Integer>() {
+ @Override
+ public Integer call() {
+ try {
+ if (!msoPropertiesFactory.reloadMsoProperties()) {
+ return 1;
+ }
+ } catch (Exception e) {
+ e.printStackTrace ();
+ return 1;
+ }
+ return 0;
+ }
+ };
+
+ private Callable<Integer> taskRead = new Callable<Integer>() {
+ @Override
+ public Integer call() {
+ try {
+ MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_PROP_ID);
+ String property1 = msoProperties.getProperty("ecomp.mso.cloud.1.cloudId", "defaultValue");
+ String property2 = msoProperties.getProperty("ecomp.mso.cloud.1.keystoneUrl", "defaultValue");
+ String property3 = msoProperties.getProperty("ecomp.mso.cloud.1.msoId", "defaultValue");
+ String property4 = msoProperties.getProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue");
+ String property5 = msoProperties.getProperty("does.not.exist", "defaultValue");
+ String property6 = msoProperties.getProperty("ecomp.mso.cloud.1.test", "defaultValue");
+ String property7 = msoProperties.getProperty("ecomp.mso.cloud.1.boolean", "defaultValue");
+
+ assertEquals(property1, "MT");
+ assertEquals(property2, "http://localhost:5000/v2.0");
+ assertEquals(property3, "John");
+ assertEquals(property4, "FD205490A48D48475607C36B9AD902BF");
+ assertEquals(property5, "defaultValue");
+ assertEquals(property6, "1234");
+ assertEquals(property7, "true");
+
+ } catch (MsoPropertiesException e) {
+ e.printStackTrace ();
+ return 1;
+ }
+ return 0;
+ }
+ };
+
+ private Callable<Integer> taskReadAll = new Callable<Integer>() {
+ @Override
+ public Integer call() {
+ try {
+ List<AbstractMsoProperties> msoPropertiesList = msoPropertiesFactory.getAllMsoProperties();
+ String property1 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("ecomp.mso.cloud.1.cloudId", "defaultValue");
+ String property2 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("ecomp.mso.cloud.1.keystoneUrl", "defaultValue");
+ String property3 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("ecomp.mso.cloud.1.msoId", "defaultValue");
+ String property4 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue");
+ String property5 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("does.not.exist", "defaultValue");
+ String property6 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("ecomp.mso.cloud.1.test", "defaultValue");
+ String property7 = ((MsoJavaProperties)msoPropertiesList.get(0)).getProperty("ecomp.mso.cloud.1.boolean", "defaultValue");
+
+ assertEquals(property1, "MT");
+ assertEquals(property2, "http://localhost:5000/v2.0");
+ assertEquals(property3, "John");
+ assertEquals(property4, "FD205490A48D48475607C36B9AD902BF");
+ assertEquals(property5, "defaultValue");
+ assertEquals(property6, "1234");
+ assertEquals(property7, "true");
+ } catch (Exception e) {
+ e.printStackTrace ();
+ return 1;
+ }
+ return 0;
+ }
+ };
+
+ @Test
+ public final void testGetMsoProperties()
+ throws MsoPropertiesException, InterruptedException, ExecutionException, FileNotFoundException {
+
+ List<Future<Integer>> list = new ArrayList<Future<Integer>>();
+ ExecutorService executor = Executors.newFixedThreadPool(20);
+
+ for (int i = 0; i <= 100000; i++) {
+
+ Future<Integer> futureResult = executor.submit(taskRead);
+ list.add(futureResult);
+
+ futureResult = executor.submit(taskReload);
+ list.add(futureResult);
+
+ futureResult = executor.submit(taskReadAll);
+ list.add(futureResult);
+ }
+ executor.shutdown();
+ while (!executor.awaitTermination(5, TimeUnit.SECONDS)) {
+ ;
+ }
+
+ for (Future<Integer> result : list) {
+ assertTrue(result.get().equals(0));
+ }
+
+ }
+
+}
diff --git a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryTest.java b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryTest.java
new file mode 100644
index 0000000000..b0290b088e
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertiesFactoryTest.java
@@ -0,0 +1,611 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.adapter_utils.tests;
+
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.codehaus.jackson.JsonNode;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import org.openecomp.mso.properties.MsoJavaProperties;
+import org.openecomp.mso.properties.MsoJsonProperties;
+import org.openecomp.mso.properties.MsoPropertiesException;
+import org.openecomp.mso.properties.MsoPropertiesFactory;
+
+/**
+ * This class implements test methods of the MsoPropertiesFactory features.
+ *
+ *
+ */
+public class MsoPropertiesFactoryTest {
+
+ public static MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
+
+ public static final String MSO_JAVA_PROP_ID = "TEST_JAVA_PROP";
+ public static final String MSO_JSON_PROP_ID = "TEST_JSON_PROP";
+ public static final String PATH_MSO_JAVA_PROP1 = MsoJavaProperties.class.getClassLoader().getResource("mso.properties")
+ .toString().substring(5);
+ public static final String PATH_MSO_JAVA_PROP2 = MsoJavaProperties.class.getClassLoader().getResource("mso2.properties")
+ .toString().substring(5);
+ public static final String PATH_MSO_JSON_PROP = MsoJavaProperties.class.getClassLoader().getResource("mso.json")
+ .toString().substring(5);
+ public static final String PATH_MSO_JSON_PROP2 = MsoJavaProperties.class.getClassLoader().getResource("mso2.json")
+ .toString().substring(5);
+ public static final String PATH_MSO_JSON_PROP_BAD = MsoJavaProperties.class.getClassLoader().getResource("mso-bad.json")
+ .toString().substring(5);
+
+ @BeforeClass
+ public static final void prepareBeforeAllTests() {
+ msoPropertiesFactory.removeAllMsoProperties();
+ }
+ /**
+ * This method is called before any test occurs. It creates a fake tree from
+ * scratch
+ *
+ * @throws MsoPropertiesException
+ */
+ @Before
+ public final void prepareBeforeEachTest() throws MsoPropertiesException {
+
+ msoPropertiesFactory.initializeMsoProperties(MSO_JAVA_PROP_ID, PATH_MSO_JAVA_PROP1);
+ msoPropertiesFactory.initializeMsoProperties(MSO_JSON_PROP_ID, PATH_MSO_JSON_PROP);
+ }
+
+ @After
+ public final void cleanAfterEachTest() throws MsoPropertiesException {
+ msoPropertiesFactory.removeAllMsoProperties ();
+ }
+
+ @Test
+ public final void testNotRecognizedFile() {
+ try {
+ msoPropertiesFactory.initializeMsoProperties("BAD_FILE", "new_file.toto");
+
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("Unable to load the MSO properties file because format is not recognized (only .json or .properties): new_file.toto").equals(ep.getMessage()));
+ }
+ }
+
+ @Test
+ public final void testDoubleInit() {
+
+ try {
+ msoPropertiesFactory.initializeMsoProperties(MSO_JAVA_PROP_ID, PATH_MSO_JAVA_PROP1);
+
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("The factory contains already an instance of this mso properties: "+PATH_MSO_JAVA_PROP1).equals(ep.getMessage()));
+ }
+
+
+ }
+
+ /**
+ * This method implements a test for the getMsoJavaProperties method.
+ *
+ * @throws MsoPropertiesException
+ */
+ @Test
+ public final void testGetMsoJavaProperties() throws MsoPropertiesException {
+ assertNotNull(msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID));
+ assertTrue(msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID).size()==8);
+
+ try {
+ msoPropertiesFactory.getMsoJavaProperties(MSO_JSON_PROP_ID);
+
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("Mso properties is not JAVA_PROP properties type:" + MSO_JSON_PROP_ID).equals(ep.getMessage()));
+ }
+
+ try {
+ msoPropertiesFactory.getMsoJavaProperties("DUMB_PROP");
+
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("Mso properties not found in cache:"+"DUMB_PROP").equals(ep.getMessage()));
+ }
+
+ }
+
+ /**
+ * This method test the MsoJavaProperties Set, equals and hascode
+ * @throws MsoPropertiesException
+ */
+ @Test
+ public final void testSetMsoJavaProperties() throws MsoPropertiesException {
+ MsoJavaProperties msoPropChanged = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+ msoPropChanged.setProperty("testos", "testos");
+ assertNotNull(msoPropChanged.getProperty("testos", null));
+
+ // Check no modification occurred on cache one
+ MsoJavaProperties msoPropCache = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+ assertNull(msoPropCache.getProperty("testos", null));
+ assertFalse(msoPropChanged.hashCode() != msoPropCache.hashCode());
+
+ assertFalse(msoPropChanged.equals(null));
+ assertFalse(msoPropChanged.equals(msoPropCache));
+ assertFalse(msoPropChanged.equals(new Boolean(true)));
+
+ assertTrue(msoPropChanged.equals(msoPropChanged));
+ }
+
+
+ /**
+ * This method implements a test for the testGetMsoJsonProperties method.
+ *
+ * @throws MsoPropertiesException
+ */
+ @Test
+ public final void testGetMsoJsonProperties() throws MsoPropertiesException {
+ assertNotNull(msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID));
+
+ try {
+ msoPropertiesFactory.getMsoJsonProperties(MSO_JAVA_PROP_ID);
+
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("Mso properties is not JSON_PROP properties type:" + MSO_JAVA_PROP_ID).equals(ep.getMessage()));
+ }
+
+ try {
+ msoPropertiesFactory.getMsoJsonProperties("DUMB_PROP");
+
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("Mso properties not found in cache:"+"DUMB_PROP").equals(ep.getMessage()));
+ }
+
+ }
+
+ /**
+ * This method implements a test for the testGetAllMsoProperties method.
+ *
+ * @throws MsoPropertiesException
+ */
+ @Test
+ public final void testGetAllMsoProperties() throws MsoPropertiesException {
+ assertNotNull(msoPropertiesFactory.getAllMsoProperties().size()==2);
+
+ }
+
+ /**
+ * This method implements a test for the testGetAllMsoProperties method.
+ *
+ * @throws MsoPropertiesException
+ */
+ @Test
+ public final void testToString() throws MsoPropertiesException {
+ String dump = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID).toString();
+ assertTrue(dump != null && !dump.isEmpty());
+
+ dump = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID).toString();
+ assertTrue(dump != null && !dump.isEmpty());
+
+ }
+
+ /**
+ * This method implements a test for the getProperty of JAVA_PROP type method.
+ *
+ * @throws MsoPropertiesException
+ */
+ @Test
+ public final void testGetProperties() throws MsoPropertiesException {
+ MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+
+ String property1 = msoProperties.getProperty("ecomp.mso.cloud.1.cloudId", "defaultValue");
+ String property2 = msoProperties.getProperty("ecomp.mso.cloud.1.keystoneUrl", "defaultValue");
+ String property3 = msoProperties.getProperty("ecomp.mso.cloud.1.msoId", "defaultValue");
+ String property4 = msoProperties.getProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue");
+ String property5 = msoProperties.getProperty("does.not.exist", "defaultValue");
+ String property6 = msoProperties.getProperty("ecomp.mso.cloud.1.test", "defaultValue");
+ String property7 = msoProperties.getProperty("ecomp.mso.cloud.1.boolean", "defaultValue");
+
+ assertEquals(property1, "MT");
+ assertEquals(property2, "http://localhost:5000/v2.0");
+ assertEquals(property3, "John");
+ assertEquals(property4, "FD205490A48D48475607C36B9AD902BF");
+ assertEquals(property5, "defaultValue");
+ assertEquals(property6, "1234");
+ assertEquals(property7, "true");
+ }
+
+ /**
+ * This method implements a test for the getIntProperty JAVA_RPOP type method.
+ *
+ * @throws MsoPropertiesException
+ */
+ @Test
+ public final void testGetIntProperties() throws MsoPropertiesException {
+ MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+ int property1 = msoProperties.getIntProperty("ecomp.mso.cloud.1.test", 345);
+ int property2 = msoProperties.getIntProperty("ecomp.mso.cloud.1.publicNetId", 345);
+ int property3 = msoProperties.getIntProperty("does.not.exist", 345);
+ assertEquals(property1, 1234);
+ assertEquals(property2, 345);
+ assertEquals(property3, 345);
+ }
+
+ /**
+ * This method implements a test for the getBooleanProperty JAVA_RPOP type method.
+ *
+ * @throws MsoPropertiesException
+ */
+ @Test
+ public final void testGetBooleanProperty() throws MsoPropertiesException {
+ MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+ boolean property1 = msoProperties.getBooleanProperty("ecomp.mso.cloud.1.boolean", false);
+ boolean property2 = msoProperties.getBooleanProperty("ecomp.mso.cloud.1.publicNetId", false);
+ boolean property3NotThere = msoProperties.getBooleanProperty("ecomp.mso.cloud.1.publicNetIdBad", true);
+
+ assertEquals(property1, true);
+ assertEquals(property2, false);
+ assertEquals(property3NotThere, true);
+ }
+
+ /**
+ * This method implements a test for the getEncryptedProperty JAVA_RPOP type method.
+ *
+ * @throws MsoPropertiesException
+ */
+ @Test
+ public final void testGetEncryptedProperty() throws MsoPropertiesException {
+ MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+ String property1 = msoProperties.getEncryptedProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue",
+ "aa3871669d893c7fb8abbcda31b88b4f");
+ String property2 = msoProperties.getEncryptedProperty("test", "defaultValue",
+ "aa3871669d893c7fb8abbcda31b88b4f");
+
+
+ String property3Wrong = msoProperties.getEncryptedProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue",
+ "aa3871669d893c7fb8abbcda31b88b4");
+
+
+ assertEquals(property1, "changeme");
+ assertEquals(property2, "defaultValue");
+ assertEquals(property3Wrong, "defaultValue");
+ }
+
+ /**
+ * This method implements a test for the getEncryptedProperty JAVA_RPOP type method.
+ *
+ * @throws MsoPropertiesException
+ */
+ @Test
+ public final void testencryptProperty() {
+
+ assertTrue("FD205490A48D48475607C36B9AD902BF"
+ .contains(msoPropertiesFactory.encryptProperty("changeme", "aa3871669d893c7fb8abbcda31b88b4f").getEntity().toString()));
+
+
+ assertTrue("Invalid AES key length: 15 bytes".contains(msoPropertiesFactory.encryptProperty("changeme", "aa3871669d893c7fb8abbcda31b88b4").getEntity().toString()));
+
+ }
+
+ /**
+ * This method implements a test for the getJSON JSON_RPOP type method.
+ *
+ * @throws MsoPropertiesException
+ */
+ @Test
+ public final void testGetJsonNode() throws MsoPropertiesException {
+ MsoJsonProperties msoProperties = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID);
+
+ JsonNode propNode = msoProperties.getJsonRootNode();
+ assertNotNull(propNode);
+ assertFalse(propNode.toString().isEmpty());
+ assertTrue(propNode.isContainerNode());
+ assertNotNull(propNode.path("asdc-connections").path("asdc-controller1"));
+ assertNotNull(propNode.path("asdc-connections").path("asdc-controller2"));
+
+ }
+
+ /**
+ * This method implements a test for the reloadMsoProperties method.
+ *
+ * @throws MsoPropertiesException
+ *
+ */
+ @Test
+ public final void testReloadJavaMsoProperties() throws MsoPropertiesException {
+ MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+
+ // Do some additional test on propertiesHaveChanged method
+ assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, null));
+
+ // Change path with bad one
+ try {
+ msoPropertiesFactory.changeMsoPropertiesFilePath("DO_NOT_EXIST", PATH_MSO_JAVA_PROP2);
+
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("Mso properties not found in cache:DO_NOT_EXIST").equals(ep.getMessage()));
+ }
+
+
+ // Change path with right one
+ msoPropertiesFactory.changeMsoPropertiesFilePath(MSO_JAVA_PROP_ID, PATH_MSO_JAVA_PROP2);
+ assertTrue(PATH_MSO_JAVA_PROP2.equals(msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID).getPropertiesFileName()));
+
+ assertTrue(msoPropertiesFactory.reloadMsoProperties());
+ assertFalse(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties));
+ // Do a second time as timer value is set to 2
+ assertTrue(msoPropertiesFactory.reloadMsoProperties());
+ assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties));
+
+ // Get the new one
+ msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+ String property1 = msoProperties.getProperty("ecomp.mso.cloud.1.cloudId", "defaultValue");
+ String property2 = msoProperties.getProperty("ecomp.mso.cloud.1.keystoneUrl", "defaultValue");
+ String property3 = msoProperties.getProperty("ecomp.mso.cloud.1.msoId", "defaultValue");
+ String property4 = msoProperties.getProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue");
+ String property5 = msoProperties.getProperty("does.not.exist", "defaultValue");
+ String property6 = msoProperties.getProperty("ecomp.mso.cloud.1.test", "defaultValue");
+ String property7 = msoProperties.getProperty("ecomp.mso.cloud.1.boolean", "defaultValue");
+
+ assertEquals(property1, "MT2");
+ assertEquals(property2, "defaultValue");
+ assertEquals(property3, "defaultValue");
+ assertEquals(property4, "defaultValue");
+ assertEquals(property5, "defaultValue");
+ assertEquals(property6, "defaultValue");
+ assertEquals(property7, "defaultValue");
+
+ // Additional test on propertiesHaveChanged
+ msoPropertiesFactory.removeAllMsoProperties();
+
+ // Do some additional test on propertiesHaveChanged method
+ try {
+ msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, null);
+
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("Mso properties not found in cache:"+MSO_JAVA_PROP_ID).equals(ep.getMessage()));
+ }
+
+ try {
+ msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties);
+
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("Mso properties not found in cache:"+MSO_JAVA_PROP_ID).equals(ep.getMessage()));
+ }
+
+ }
+
+ /**
+ * This method implements a test for the reloadMsoProperties method.
+ *
+ * @throws MsoPropertiesException
+ *
+ */
+ @Test
+ public final void testReloadMoreThanAMinuteMsoProperties() throws MsoPropertiesException {
+ MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+
+ msoPropertiesFactory.changeMsoPropertiesFilePath(MSO_JAVA_PROP_ID, PATH_MSO_JAVA_PROP2);
+
+ // Simulate 2 minutes
+ msoPropertiesFactory.reloadMsoProperties();
+ assertFalse(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties));
+ msoPropertiesFactory.reloadMsoProperties();
+
+ assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties));
+
+ // Get the new one
+ msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+ String property1 = msoProperties.getProperty("ecomp.mso.cloud.1.cloudId", "defaultValue");
+ String property2 = msoProperties.getProperty("ecomp.mso.cloud.1.keystoneUrl", "defaultValue");
+ String property3 = msoProperties.getProperty("ecomp.mso.cloud.1.msoId", "defaultValue");
+ String property4 = msoProperties.getProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue");
+ String property5 = msoProperties.getProperty("does.not.exist", "defaultValue");
+ String property6 = msoProperties.getProperty("ecomp.mso.cloud.1.test", "defaultValue");
+ String property7 = msoProperties.getProperty("ecomp.mso.cloud.1.boolean", "defaultValue");
+
+ assertEquals(property1, "MT2");
+ assertEquals(property2, "defaultValue");
+ assertEquals(property3, "defaultValue");
+ assertEquals(property4, "defaultValue");
+ assertEquals(property5, "defaultValue");
+ assertEquals(property6, "defaultValue");
+ assertEquals(property7, "defaultValue");
+
+
+ }
+
+ /**
+ * This method implements a test for the reloadMsoProperties method.
+ *
+ * @throws MsoPropertiesException
+ *
+ */
+ @Test
+ public final void testReloadBadMsoProperties() throws MsoPropertiesException {
+ MsoJavaProperties msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+
+ msoPropertiesFactory.changeMsoPropertiesFilePath(MSO_JAVA_PROP_ID, "file-does-not-exist.properties");
+ msoPropertiesFactory.reloadMsoProperties();
+ assertFalse(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties));
+ // Reload it a second time as initial timer parameter was set to 2
+ msoPropertiesFactory.reloadMsoProperties();
+
+ assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JAVA_PROP_ID, msoProperties));
+
+ // Get the new one
+ msoProperties = msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+ String property1 = msoProperties.getProperty("ecomp.mso.cloud.1.cloudId", "defaultValue");
+ String property2 = msoProperties.getProperty("ecomp.mso.cloud.1.keystoneUrl", "defaultValue");
+ String property3 = msoProperties.getProperty("ecomp.mso.cloud.1.msoId", "defaultValue");
+ String property4 = msoProperties.getProperty("ecomp.mso.cloud.1.publicNetId", "defaultValue");
+ String property5 = msoProperties.getProperty("does.not.exist", "defaultValue");
+ String property6 = msoProperties.getProperty("ecomp.mso.cloud.1.test", "defaultValue");
+ String property7 = msoProperties.getProperty("ecomp.mso.cloud.1.boolean", "defaultValue");
+
+ assertEquals(property1, "defaultValue");
+ assertEquals(property2, "defaultValue");
+ assertEquals(property3, "defaultValue");
+ assertEquals(property4, "defaultValue");
+ assertEquals(property5, "defaultValue");
+ assertEquals(property6, "defaultValue");
+ assertEquals(property7, "defaultValue");
+
+ }
+
+ /**
+ * This method implements a test for the reloadMsoProperties method.
+ *
+ * @throws MsoPropertiesException
+ *
+ */
+ @Test
+ public final void testReloadBadMsoJsonProperties() throws MsoPropertiesException {
+ // Load a bad JSON file
+ MsoJsonProperties msoProperties = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID);
+
+ msoPropertiesFactory.changeMsoPropertiesFilePath(MSO_JSON_PROP_ID, PATH_MSO_JSON_PROP_BAD);
+
+ msoPropertiesFactory.reloadMsoProperties();
+ assertFalse(msoPropertiesFactory.propertiesHaveChanged(MSO_JSON_PROP_ID, msoProperties));
+ // Reload it a second time as initial timer parameter was set to 2
+ msoPropertiesFactory.reloadMsoProperties();
+
+ assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JSON_PROP_ID, msoProperties));
+
+ // Get the new one
+ msoProperties = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID);
+ assertNotNull(msoProperties);
+ assertNotNull(msoProperties.getJsonRootNode());
+ assertTrue(msoProperties.getJsonRootNode().size() == 0);
+
+ }
+
+ @Test
+ public final void testRemoveMsoProperties() throws MsoPropertiesException {
+ try {
+ msoPropertiesFactory.removeMsoProperties("DUMB_PROP");
+
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("Mso properties not found in cache:"+"DUMB_PROP").equals(ep.getMessage()));
+ }
+
+ msoPropertiesFactory.removeMsoProperties(MSO_JAVA_PROP_ID);
+
+ try {
+ msoPropertiesFactory.getMsoJavaProperties(MSO_JAVA_PROP_ID);
+
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("Mso properties not found in cache:"+MSO_JAVA_PROP_ID).equals(ep.getMessage()));
+ }
+
+ }
+
+ @Test
+ public final void testInitializeWithNonExistingPropertiesFile () throws MsoPropertiesException {
+ try {
+ msoPropertiesFactory.initializeMsoProperties("NEW_BAD_FILE", "no_file.properties");
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("Unable to load the MSO properties file because it has not been found:no_file.properties").equals(ep.getMessage()));
+ }
+
+ // empty object should be returned as no config has been loaded, anyway no exception should be raised because the config ID must be loaded in cache
+ // This is there for automatic reload attempt
+ assertTrue(msoPropertiesFactory.getMsoJavaProperties("NEW_BAD_FILE").size()==0);
+ }
+
+
+ @Test
+ public final void testInitializeWithNonExistingJsonFile () throws MsoPropertiesException {
+ try {
+ msoPropertiesFactory.initializeMsoProperties("NEW_BAD_FILE", "no_file.json");
+ fail ("MsoPropertiesException should have been raised");
+ } catch (MsoPropertiesException ep) {
+ assertTrue(("Unable to load the MSO properties file because it has not been found:no_file.json").equals(ep.getMessage()));
+ }
+
+ // empty object should be returned as no config has been loaded, anyway no exception should be raised because the config ID must be loaded in cache
+ // This is there for automatic reload attempt
+ assertTrue(msoPropertiesFactory.getMsoJsonProperties("NEW_BAD_FILE").getJsonRootNode()!=null);
+ assertTrue("{}".equals(msoPropertiesFactory.getMsoJsonProperties("NEW_BAD_FILE").getJsonRootNode().toString()));
+ }
+
+ @Test
+ public final void testShowProperties() {
+ assertTrue(msoPropertiesFactory.showProperties().getEntity().toString().contains("/target/test-classes/mso.json(Timer:2mins)"));
+ assertTrue(msoPropertiesFactory.showProperties().getEntity().toString().contains("asdc-controller1"));
+ assertTrue(msoPropertiesFactory.showProperties().getEntity().toString().contains("/target/test-classes/mso.properties(Timer:2mins):"));
+ assertTrue(msoPropertiesFactory.showProperties().getEntity().toString().contains("ecomp.mso.cloud.1.keystoneUrl"));
+
+ }
+
+ @Test
+ public final void testGetEncryptedPropertyJson() throws MsoPropertiesException {
+ MsoJsonProperties msoProperties = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID);
+ assertTrue("ThePassword".equals(msoProperties.getEncryptedProperty(msoProperties.getJsonRootNode().get("asdc-connections").get("asdc-controller1").get("asdcPassword"),"defautlvalue","566B754875657232314F5548556D3665")));
+
+ assertTrue("defautlvalue".equals(msoProperties.getEncryptedProperty(msoProperties.getJsonRootNode().get("asdc-connections").get("asdc-controller1").get("asdcPassword"),"defautlvalue","566B754875657232314F5548556D366")));
+
+
+ }
+
+ @Test
+ public final void testHashcodeAndEqualsMsoJsonProperties() throws MsoPropertiesException {
+
+ MsoJsonProperties msoProperties = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID);
+
+ msoPropertiesFactory.changeMsoPropertiesFilePath(MSO_JSON_PROP_ID, PATH_MSO_JSON_PROP2);
+
+ msoPropertiesFactory.reloadMsoProperties();
+ assertFalse(msoPropertiesFactory.propertiesHaveChanged(MSO_JSON_PROP_ID, msoProperties));
+ // Reload it a second time as initial timer parameter was set to 2
+ msoPropertiesFactory.reloadMsoProperties();
+ assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JSON_PROP_ID, msoProperties));
+
+ // Get the new one
+ MsoJsonProperties msoProperties2 = msoPropertiesFactory.getMsoJsonProperties(MSO_JSON_PROP_ID);
+ assertFalse(msoProperties.hashCode()==msoProperties2.hashCode());
+
+ assertFalse(msoProperties.equals(msoProperties2));
+ assertTrue(msoProperties.equals(msoProperties));
+ assertFalse(msoProperties.equals(null));
+ assertFalse(msoProperties.equals(new String()));
+
+ // Test a reload with timer set to 1 in PATH_MSO_JSON_PROP2
+ msoPropertiesFactory.changeMsoPropertiesFilePath(MSO_JSON_PROP_ID, PATH_MSO_JSON_PROP);
+
+ msoPropertiesFactory.reloadMsoProperties();
+ assertTrue(msoPropertiesFactory.propertiesHaveChanged(MSO_JSON_PROP_ID, msoProperties2));
+
+ }
+
+}
diff --git a/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertyInitializerTest.java b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertyInitializerTest.java
new file mode 100644
index 0000000000..36b6249737
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoPropertyInitializerTest.java
@@ -0,0 +1,88 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.adapter_utils.tests;
+
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import org.openecomp.mso.properties.MsoJavaProperties;
+import org.openecomp.mso.properties.MsoPropertiesException;
+import org.openecomp.mso.properties.MsoPropertiesFactory;
+import org.openecomp.mso.properties.MsoPropertyInitializer;
+
+public class MsoPropertyInitializerTest {
+
+ public static final String ASDC_PROP = MsoJavaProperties.class.getClassLoader().getResource("mso.json").toString().substring(5);
+ public static ServletContextEvent servletContextEvent = Mockito.mock(ServletContextEvent.class);
+ public static ServletContext servletContext = Mockito.mock(ServletContext.class);
+ public MsoPropertyInitializer msoPropInitializer = new MsoPropertyInitializer();
+
+ @BeforeClass
+ public static final void prepareBeforeClass() throws MsoPropertiesException {
+
+ Mockito.when(servletContextEvent.getServletContext()).thenReturn(servletContext);
+ }
+
+ @Before
+ public final void preparebeforeEachTest() throws MsoPropertiesException {
+ MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
+ msoPropertiesFactory.removeAllMsoProperties();
+
+ }
+
+ @Test
+ public void testContextInitialized() throws MsoPropertiesException {
+ Mockito.when(servletContext.getInitParameter("mso.configuration")).thenReturn("MSO_PROP_ASDC="+ASDC_PROP);
+ msoPropInitializer.contextInitialized(servletContextEvent);
+
+ MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
+ assertNotNull(msoPropertiesFactory.getMsoJsonProperties("MSO_PROP_ASDC"));
+ assertFalse("{}".equals(msoPropertiesFactory.getMsoJsonProperties("MSO_PROP_ASDC").getJsonRootNode().toString()));
+ assertTrue(msoPropertiesFactory.getMsoJsonProperties("MSO_PROP_ASDC").getJsonRootNode().get("asdc-connections")!= null);
+ }
+
+ @Test
+ public void testContextInitializedFailure() throws MsoPropertiesException {
+ Mockito.when(servletContext.getInitParameter("mso.configuration")).thenReturn("MSO_PROP_ASDC="+"Does_not_exist.json");
+ msoPropInitializer.contextInitialized(servletContextEvent);
+
+ // No exception should be raised, log instead
+ MsoPropertiesFactory msoPropertiesFactory = new MsoPropertiesFactory();
+
+ assertTrue("{}".equals(msoPropertiesFactory.getMsoJsonProperties("MSO_PROP_ASDC").getJsonRootNode().toString()));
+ assertTrue(msoPropertiesFactory.getMsoJsonProperties("MSO_PROP_ASDC").getJsonRootNode().get("asdc-connections")== null);
+
+
+
+ }
+
+}
diff --git a/common/src/test/java/org/openecomp/mso/entity/MsoRequestESTest.java b/common/src/test/java/org/openecomp/mso/entity/MsoRequestESTest.java
new file mode 100644
index 0000000000..a4fe1d361b
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/entity/MsoRequestESTest.java
@@ -0,0 +1,65 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 09:09:00 GMT 2016
+ */
+
+package org.openecomp.mso.entity;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class MsoRequestESTest extends MsoRequestESTestscaffolding {
+
+ @Test(timeout = 4000)
+ public void test0() throws Throwable {
+ MsoRequest msoRequest0 = new MsoRequest();
+ msoRequest0.setServiceInstanceId("B1!G~O TIP1Auoc}pE");
+ String string0 = msoRequest0.getServiceInstanceId();
+ assertEquals("B1!G~O TIP1Auoc}pE", string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test1() throws Throwable {
+ MsoRequest msoRequest0 = new MsoRequest();
+ msoRequest0.setServiceInstanceId("");
+ String string0 = msoRequest0.getServiceInstanceId();
+ assertEquals("", string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test2() throws Throwable {
+ MsoRequest msoRequest0 = new MsoRequest();
+ String string0 = msoRequest0.getRequestId();
+ assertNull(string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test3() throws Throwable {
+ MsoRequest msoRequest0 = new MsoRequest("'SJ", "XUQ4Vd$ppTT4");
+ assertEquals("'SJ", msoRequest0.getRequestId());
+
+ msoRequest0.setRequestId("");
+ msoRequest0.getRequestId();
+ assertEquals("XUQ4Vd$ppTT4", msoRequest0.getServiceInstanceId());
+ }
+
+ @Test(timeout = 4000)
+ public void test4() throws Throwable {
+ MsoRequest msoRequest0 = new MsoRequest("'SJ", "XUQ4Vd$ppTT4");
+ String string0 = msoRequest0.getRequestId();
+ assertEquals("XUQ4Vd$ppTT4", msoRequest0.getServiceInstanceId());
+ assertEquals("'SJ", string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test5() throws Throwable {
+ MsoRequest msoRequest0 = new MsoRequest();
+ String string0 = msoRequest0.getServiceInstanceId();
+ assertNull(string0);
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/entity/MsoRequestESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/entity/MsoRequestESTestscaffolding.java
new file mode 100644
index 0000000000..9ac7ad816d
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/entity/MsoRequestESTestscaffolding.java
@@ -0,0 +1,78 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 09:09:00 GMT 2016
+ */
+
+package org.openecomp.mso.entity;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+@EvoSuiteClassExclude
+public class MsoRequestESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.entity.MsoRequest";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(MsoRequestESTestscaffolding.class.getClassLoader() ,
+ "org.openecomp.mso.entity.MsoRequest"
+ );
+ }
+
+ private static void resetClasses() {
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/logger/LogFilterESTest.java b/common/src/test/java/org/openecomp/mso/logger/LogFilterESTest.java
new file mode 100644
index 0000000000..22936857c6
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/logger/LogFilterESTest.java
@@ -0,0 +1,191 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 09:08:24 GMT 2016
+ */
+
+package org.openecomp.mso.logger;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+import static org.evosuite.shaded.org.mockito.Mockito.*;
+import static org.evosuite.runtime.MockitoExtension.*;
+import static org.evosuite.runtime.EvoAssertions.*;
+
+import java.security.Principal;
+import javax.servlet.AsyncContext;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.ServletResponseWrapper;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletResponseWrapper;
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.evosuite.runtime.ViolatedAssumptionAnswer;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class LogFilterESTest extends LogFilterESTestscaffolding {
+
+ @Test(timeout = 4000)
+ public void test0() throws Throwable {
+ LogFilter logFilter0 = new LogFilter();
+ FilterChain filterChain0 = mock(FilterChain.class, new ViolatedAssumptionAnswer());
+ // Undeclared exception!
+ try {
+ logFilter0.doFilter((ServletRequest) null, (ServletResponse) null, filterChain0);
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.openecomp.mso.logger.LogFilter", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test1() throws Throwable {
+ LogFilter logFilter0 = new LogFilter();
+ ServletRequest servletRequest0 = mock(ServletRequest.class, new ViolatedAssumptionAnswer());
+ ServletResponse servletResponse0 = mock(ServletResponse.class, new ViolatedAssumptionAnswer());
+ FilterChain filterChain0 = mock(FilterChain.class, new ViolatedAssumptionAnswer());
+ // Undeclared exception!
+ try {
+ logFilter0.doFilter(servletRequest0, servletResponse0, filterChain0);
+ fail("Expecting exception: ClassCastException");
+
+ } catch(ClassCastException e) {
+ //
+ // $javax.servlet.ServletRequest$$EnhancerByMockitoWithCGLIB$$d677bdba cannot be cast to javax.servlet.http.HttpServletRequest
+ //
+ verifyException("org.openecomp.mso.logger.LogFilter", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test2() throws Throwable {
+ LogFilter logFilter0 = new LogFilter();
+ FilterConfig filterConfig0 = mock(FilterConfig.class, new ViolatedAssumptionAnswer());
+ logFilter0.init(filterConfig0);
+ ServletRequest servletRequest0 = mock(ServletRequest.class, new ViolatedAssumptionAnswer());
+ ServletResponse servletResponse0 = mock(ServletResponse.class, new ViolatedAssumptionAnswer());
+ FilterChain filterChain0 = mock(FilterChain.class, new ViolatedAssumptionAnswer());
+ // Undeclared exception!
+ try {
+ logFilter0.doFilter(servletRequest0, servletResponse0, filterChain0);
+ fail("Expecting exception: ClassCastException");
+
+ } catch(ClassCastException e) {
+ //
+ // $javax.servlet.ServletRequest$$EnhancerByMockitoWithCGLIB$$d677bdba cannot be cast to javax.servlet.http.HttpServletRequest
+ //
+ verifyException("org.openecomp.mso.logger.LogFilter", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test3() throws Throwable {
+ LogFilter logFilter0 = new LogFilter();
+ FilterConfig filterConfig0 = mock(FilterConfig.class, new ViolatedAssumptionAnswer());
+ logFilter0.init(filterConfig0);
+ ServletRequest servletRequest0 = null;
+ ServletResponse servletResponse0 = mock(ServletResponse.class, new ViolatedAssumptionAnswer());
+ ServletResponse servletResponse1 = mock(ServletResponse.class, new ViolatedAssumptionAnswer());
+ FilterChain filterChain0 = mock(FilterChain.class, new ViolatedAssumptionAnswer());
+ // Undeclared exception!
+ try {
+ logFilter0.doFilter((ServletRequest) null, servletResponse1, filterChain0);
+ fail("Expecting exception: ClassCastException");
+
+ } catch(ClassCastException e) {
+ //
+ // $javax.servlet.ServletResponse$$EnhancerByMockitoWithCGLIB$$b9bd7b44 cannot be cast to javax.servlet.http.HttpServletResponse
+ //
+ verifyException("org.openecomp.mso.logger.LogFilter", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test4() throws Throwable {
+ LogFilter logFilter0 = new LogFilter();
+ logFilter0.destroy();
+ HttpServletRequest httpServletRequest0 = mock(HttpServletRequest.class, new ViolatedAssumptionAnswer());
+ HttpServletRequestWrapper httpServletRequestWrapper0 = new HttpServletRequestWrapper(httpServletRequest0);
+ ServletResponse servletResponse0 = null;
+ ServletResponseWrapper servletResponseWrapper0 = null;
+ try {
+ servletResponseWrapper0 = new ServletResponseWrapper((ServletResponse) null);
+ fail("Expecting exception: IllegalArgumentException");
+
+ } catch(IllegalArgumentException e) {
+ //
+ // Response cannot be null
+ //
+ verifyException("javax.servlet.ServletResponseWrapper", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test5() throws Throwable {
+ LogFilter logFilter0 = new LogFilter();
+ HttpServletRequest httpServletRequest0 = mock(HttpServletRequest.class, new ViolatedAssumptionAnswer());
+ doReturn((String) null, (String) null, (String) null, (String) null, (String) null).when(httpServletRequest0).getRemoteAddr();
+ doReturn((AsyncContext) null).when(httpServletRequest0).startAsync(any(javax.servlet.ServletRequest.class) , any(javax.servlet.ServletResponse.class));
+ doReturn((Principal) null, (Principal) null, (Principal) null, (Principal) null, (Principal) null).when(httpServletRequest0).getUserPrincipal();
+ HttpServletRequestWrapper httpServletRequestWrapper0 = new HttpServletRequestWrapper(httpServletRequest0);
+ ServletRequest servletRequest0 = httpServletRequestWrapper0.getRequest();
+ HttpServletResponse httpServletResponse0 = mock(HttpServletResponse.class, new ViolatedAssumptionAnswer());
+ doReturn((String) null).when(httpServletResponse0).getCharacterEncoding();
+ HttpServletResponseWrapper httpServletResponseWrapper0 = new HttpServletResponseWrapper(httpServletResponse0);
+ FilterChain filterChain0 = mock(FilterChain.class, new ViolatedAssumptionAnswer());
+ logFilter0.doFilter(servletRequest0, httpServletResponseWrapper0, filterChain0);
+ logFilter0.destroy();
+ LogFilter logFilter1 = new LogFilter();
+ HttpServletResponseWrapper httpServletResponseWrapper1 = new HttpServletResponseWrapper((HttpServletResponse) httpServletResponseWrapper0);
+ FilterChain filterChain1 = mock(FilterChain.class, new ViolatedAssumptionAnswer());
+ logFilter0.doFilter(servletRequest0, httpServletResponseWrapper0, filterChain1);
+ FilterChain filterChain2 = mock(FilterChain.class, new ViolatedAssumptionAnswer());
+ logFilter1.doFilter(servletRequest0, httpServletResponseWrapper1, filterChain2);
+ HttpServletResponseWrapper httpServletResponseWrapper2 = (HttpServletResponseWrapper)httpServletResponseWrapper1.getResponse();
+ httpServletResponseWrapper1.getCharacterEncoding();
+ httpServletResponseWrapper1.flushBuffer();
+ httpServletRequestWrapper0.startAsync(servletRequest0, (ServletResponse) httpServletResponseWrapper1);
+ FilterChain filterChain3 = mock(FilterChain.class, new ViolatedAssumptionAnswer());
+ logFilter1.doFilter(servletRequest0, httpServletResponseWrapper2, filterChain3);
+ FilterChain filterChain4 = mock(FilterChain.class, new ViolatedAssumptionAnswer());
+ FilterChain filterChain5 = mock(FilterChain.class, new ViolatedAssumptionAnswer());
+ logFilter1.doFilter(httpServletRequestWrapper0, httpServletResponseWrapper1, filterChain5);
+ logFilter1.doFilter(servletRequest0, httpServletResponseWrapper0, filterChain4);
+ logFilter0.destroy();
+ FilterConfig filterConfig0 = mock(FilterConfig.class, new ViolatedAssumptionAnswer());
+ logFilter1.init(filterConfig0);
+ LogFilter logFilter2 = new LogFilter();
+ FilterConfig filterConfig1 = mock(FilterConfig.class, new ViolatedAssumptionAnswer());
+ logFilter1.init(filterConfig1);
+ logFilter0.destroy();
+ assertFalse(logFilter0.equals((Object)logFilter1));
+ }
+
+ @Test(timeout = 4000)
+ public void test6() throws Throwable {
+ LogFilter logFilter0 = new LogFilter();
+ Principal principal0 = mock(Principal.class, new ViolatedAssumptionAnswer());
+ doReturn((String) null).when(principal0).getName();
+ HttpServletRequest httpServletRequest0 = mock(HttpServletRequest.class, new ViolatedAssumptionAnswer());
+ doReturn("$PJ-hW?").when(httpServletRequest0).getRemoteAddr();
+ doReturn(principal0).when(httpServletRequest0).getUserPrincipal();
+ HttpServletRequestWrapper httpServletRequestWrapper0 = new HttpServletRequestWrapper(httpServletRequest0);
+ ServletRequest servletRequest0 = httpServletRequestWrapper0.getRequest();
+ HttpServletResponse httpServletResponse0 = mock(HttpServletResponse.class, new ViolatedAssumptionAnswer());
+ HttpServletResponseWrapper httpServletResponseWrapper0 = new HttpServletResponseWrapper(httpServletResponse0);
+ ServletResponse servletResponse0 = httpServletResponseWrapper0.getResponse();
+ FilterChain filterChain0 = mock(FilterChain.class, new ViolatedAssumptionAnswer());
+ logFilter0.doFilter(servletRequest0, servletResponse0, filterChain0);
+ FilterConfig filterConfig0 = mock(FilterConfig.class, new ViolatedAssumptionAnswer());
+ logFilter0.init(filterConfig0);
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/logger/LogFilterESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/logger/LogFilterESTestscaffolding.java
new file mode 100644
index 0000000000..50487634d4
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/logger/LogFilterESTestscaffolding.java
@@ -0,0 +1,78 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 09:08:24 GMT 2016
+ */
+
+package org.openecomp.mso.logger;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+@EvoSuiteClassExclude
+public class LogFilterESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.logger.LogFilter";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(LogFilterESTestscaffolding.class.getClassLoader() ,
+ "org.openecomp.mso.logger.LogFilter"
+ );
+ }
+
+ private static void resetClasses() {
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/logger/MsoAlarmLoggerESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/logger/MsoAlarmLoggerESTestscaffolding.java
new file mode 100644
index 0000000000..320b7557b7
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/logger/MsoAlarmLoggerESTestscaffolding.java
@@ -0,0 +1,90 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 09:05:53 GMT 2016
+ */
+
+package org.openecomp.mso.logger;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+@EvoSuiteClassExclude
+public class MsoAlarmLoggerESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ protected static ExecutorService executor;
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.logger.MsoAlarmLogger";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ executor = Executors.newCachedThreadPool();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ executor.shutdownNow();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(MsoAlarmLoggerESTestscaffolding.class.getClassLoader() ,
+ "org.openecomp.mso.logger.MsoAlarmLogger"
+ );
+ }
+
+ private static void resetClasses() {
+ org.evosuite.runtime.classhandling.ClassResetter.getInstance().setClassLoader(MsoAlarmLoggerESTestscaffolding.class.getClassLoader());
+
+ org.evosuite.runtime.classhandling.ClassStateSupport.resetClasses(
+ "org.openecomp.mso.logger.MsoAlarmLogger"
+ );
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/logger/MsoLogInitializerESTest.java b/common/src/test/java/org/openecomp/mso/logger/MsoLogInitializerESTest.java
new file mode 100644
index 0000000000..97058d5df3
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/logger/MsoLogInitializerESTest.java
@@ -0,0 +1,37 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 09:06:06 GMT 2016
+ */
+
+package org.openecomp.mso.logger;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+import static org.evosuite.shaded.org.mockito.Mockito.*;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.evosuite.runtime.PrivateAccess;
+import org.evosuite.runtime.ViolatedAssumptionAnswer;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class MsoLogInitializerESTest extends MsoLogInitializerESTestscaffolding {
+
+ @Test(timeout = 4000)
+ public void test0() throws Throwable {
+ MsoLogInitializer msoLogInitializer0 = new MsoLogInitializer();
+ ServletContextEvent servletContextEvent0 = mock(ServletContextEvent.class, new ViolatedAssumptionAnswer());
+ doReturn((ServletContext) null).when(servletContextEvent0).getServletContext();
+ msoLogInitializer0.contextInitialized(servletContextEvent0);
+ }
+
+ @Test(timeout = 4000)
+ public void test1() throws Throwable {
+ MsoLogInitializer msoLogInitializer0 = new MsoLogInitializer();
+ Boolean boolean0 = (Boolean)PrivateAccess.callMethod((Class<MsoLogInitializer>) MsoLogInitializer.class, msoLogInitializer0, "fileIsReadable", (Object) "", (Class<?>) String.class);
+ assertTrue(boolean0);
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/logger/MsoLogInitializerESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/logger/MsoLogInitializerESTestscaffolding.java
new file mode 100644
index 0000000000..c0139549fb
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/logger/MsoLogInitializerESTestscaffolding.java
@@ -0,0 +1,145 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 09:06:06 GMT 2016
+ */
+
+package org.openecomp.mso.logger;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+@EvoSuiteClassExclude
+public class MsoLogInitializerESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.logger.MsoLogInitializer";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(MsoLogInitializerESTestscaffolding.class.getClassLoader() ,
+ "org.openecomp.mso.logger.MsoLogger",
+ "org.openecomp.mso.logger.MessageEnum",
+ "com.att.eelf.i18n.EELFResolvableErrorEnum",
+ "org.openecomp.mso.logger.MsoLogger$ResponseCode",
+ "org.openecomp.mso.entity.MsoRequest",
+ "org.openecomp.mso.logger.MsoLogger$StatusCode",
+ "com.att.eelf.i18n.EELFResourceManager$RESOURCE_TYPES",
+ "com.att.eelf.configuration.EELFManager",
+ "org.openecomp.mso.logger.MsoLogger$ErrorCode",
+ "com.att.eelf.configuration.EELFLogger",
+ "com.att.eelf.i18n.EELFMsgs",
+ "com.att.eelf.configuration.EELFLogger$Level",
+ "org.openecomp.mso.logger.MsoLogger$Catalog",
+ "com.att.eelf.configuration.SLF4jWrapper",
+ "org.openecomp.mso.logger.MsoLogInitializer",
+ "com.att.eelf.i18n.EELFResourceManager"
+ );
+ }
+
+ private static void resetClasses() {
+ org.evosuite.runtime.classhandling.ClassResetter.getInstance().setClassLoader(MsoLogInitializerESTestscaffolding.class.getClassLoader());
+
+ org.evosuite.runtime.classhandling.ClassStateSupport.resetClasses(
+ "com.att.eelf.i18n.EELFResourceManager",
+ "org.openecomp.mso.logger.MessageEnum",
+ "org.openecomp.mso.logger.MsoLogger$Catalog",
+ "org.openecomp.mso.logger.MsoLogInitializer",
+ "org.openecomp.mso.logger.MsoLogger$ErrorCode",
+ "org.openecomp.mso.logger.MsoLogger",
+ "com.att.eelf.i18n.EELFMsgs",
+ "com.att.eelf.i18n.EELFResourceManager$RESOURCE_TYPES",
+ "org.apache.xerces.jaxp.SAXParserFactoryImpl",
+ "org.apache.xerces.jaxp.SAXParserImpl",
+ "org.apache.xerces.parsers.XMLParser",
+ "org.apache.xerces.parsers.AbstractSAXParser",
+ "org.apache.xerces.parsers.SAXParser",
+ "org.apache.xerces.parsers.ObjectFactory",
+ "org.apache.xerces.util.ParserConfigurationSettings",
+ "org.apache.xerces.parsers.XML11Configuration",
+ "org.apache.xerces.parsers.XIncludeAwareParserConfiguration",
+ "org.apache.xerces.util.SymbolTable",
+ "org.apache.xerces.impl.XMLEntityManager",
+ "org.apache.xerces.util.AugmentationsImpl$SmallContainer",
+ "org.apache.xerces.impl.XMLEntityManager$ByteBufferPool",
+ "org.apache.xerces.impl.XMLEntityManager$CharacterBufferPool",
+ "org.apache.xerces.impl.XMLEntityScanner$1",
+ "org.apache.xerces.impl.XMLEntityScanner",
+ "org.apache.xerces.impl.XMLErrorReporter",
+ "org.apache.xerces.impl.XMLScanner",
+ "org.apache.xerces.impl.XMLDocumentFragmentScannerImpl",
+ "org.apache.xerces.impl.XMLDocumentScannerImpl",
+ "org.apache.xerces.util.XMLStringBuffer",
+ "org.apache.xerces.util.XMLAttributesImpl",
+ "org.apache.xerces.impl.XMLDTDScannerImpl",
+ "org.apache.xerces.impl.dtd.XMLDTDProcessor",
+ "org.apache.xerces.impl.dtd.XMLDTDValidator",
+ "org.apache.xerces.impl.validation.ValidationState",
+ "org.apache.xerces.impl.dtd.XMLElementDecl",
+ "org.apache.xerces.impl.dtd.XMLSimpleType",
+ "org.apache.xerces.impl.dv.DTDDVFactory",
+ "org.apache.xerces.impl.dv.ObjectFactory",
+ "org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl",
+ "org.apache.xerces.impl.XMLVersionDetector",
+ "org.apache.xerces.impl.msg.XMLMessageFormatter",
+ "org.apache.xerces.impl.io.UTF8Reader",
+ "org.apache.xerces.util.XMLSymbols",
+ "org.apache.xerces.xni.NamespaceContext",
+ "org.apache.xerces.util.XMLChar",
+ "org.apache.xerces.impl.Constants",
+ "com.att.eelf.configuration.EELFLogger$Level",
+ "com.att.eelf.configuration.EELFManager"
+ );
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/logger/MsoLoggingServletESTest.java b/common/src/test/java/org/openecomp/mso/logger/MsoLoggingServletESTest.java
new file mode 100644
index 0000000000..2761f647bc
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/logger/MsoLoggingServletESTest.java
@@ -0,0 +1,34 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 09:04:06 GMT 2016
+ */
+
+package org.openecomp.mso.logger;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+import static org.evosuite.runtime.EvoAssertions.*;
+
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.evosuite.runtime.PrivateAccess;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class MsoLoggingServletESTest extends MsoLoggingServletESTestscaffolding {
+
+ @Test(timeout = 4000)
+ public void test0() throws Throwable {
+ MsoLoggingServlet msoLoggingServlet0 = new MsoLoggingServlet();
+ try {
+ PrivateAccess.callMethod((Class<MsoLoggingServlet>) MsoLoggingServlet.class, msoLoggingServlet0, "isMsoLogger", (Object) null, (Class<?>) String.class);
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.openecomp.mso.logger.MsoLoggingServlet", e);
+ }
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/logger/MsoLoggingServletESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/logger/MsoLoggingServletESTestscaffolding.java
new file mode 100644
index 0000000000..be6c378ccc
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/logger/MsoLoggingServletESTestscaffolding.java
@@ -0,0 +1,337 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 09:04:06 GMT 2016
+ */
+
+package org.openecomp.mso.logger;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+@EvoSuiteClassExclude
+public class MsoLoggingServletESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.logger.MsoLoggingServlet";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(MsoLoggingServletESTestscaffolding.class.getClassLoader() ,
+ "org.jboss.resteasy.spi.StringConverter",
+ "org.apache.xerces.impl.XMLEntityManager$CharacterBufferPool",
+ "org.apache.xerces.xni.XMLResourceIdentifier",
+ "org.apache.xerces.impl.XMLEntityManager",
+ "org.apache.xerces.impl.dtd.XMLDTDDescription",
+ "com.att.eelf.i18n.EELFMsgs",
+ "org.jboss.resteasy.util.ThreadLocalStack",
+ "org.apache.xerces.impl.dv.InvalidDatatypeValueException",
+ "org.apache.xerces.jaxp.UnparsedEntityHandler",
+ "org.apache.xerces.parsers.AbstractXMLDocumentParser",
+ "org.apache.xerces.impl.XMLScanner",
+ "org.apache.xerces.impl.dv.dtd.NOTATIONDatatypeValidator",
+ "org.apache.xerces.xni.parser.XMLParseException",
+ "org.apache.xerces.impl.XMLEntityScanner",
+ "org.apache.xerces.util.URI$MalformedURIException",
+ "org.apache.xerces.impl.XMLNSDocumentScannerImpl",
+ "org.jboss.resteasy.core.interception.JaxrsInterceptorRegistry",
+ "org.apache.xerces.impl.dtd.models.CMAny",
+ "org.apache.xerces.util.URI",
+ "org.apache.xerces.xni.parser.XMLDocumentFilter",
+ "org.apache.xerces.xni.parser.XMLDTDSource",
+ "org.apache.xerces.impl.dtd.XMLAttributeDecl",
+ "org.apache.xerces.parsers.XMLParser",
+ "org.jboss.resteasy.spi.ResteasyProviderFactory",
+ "org.apache.xerces.util.SymbolTable",
+ "org.apache.xerces.impl.io.Latin1Reader",
+ "org.apache.xerces.impl.dv.ValidationContext",
+ "org.jboss.resteasy.spi.BadRequestException",
+ "org.apache.xerces.impl.dtd.XMLDTDValidator",
+ "org.apache.xerces.impl.dtd.XML11NSDTDValidator",
+ "org.openecomp.mso.logger.MsoLoggingServlet",
+ "org.apache.xerces.util.AugmentationsImpl",
+ "org.jboss.resteasy.core.interception.ReaderInterceptorRegistry",
+ "org.apache.xerces.impl.dv.ObjectFactory",
+ "org.jboss.resteasy.client.exception.mapper.ClientExceptionMapper",
+ "org.apache.xerces.impl.dv.DatatypeValidator",
+ "org.jboss.resteasy.spi.InjectorFactory",
+ "org.jboss.resteasy.core.interception.LegacyPrecedence",
+ "org.apache.xerces.jaxp.SAXParserImpl",
+ "org.apache.xerces.xni.grammars.XMLGrammarDescription",
+ "org.jboss.resteasy.plugins.delegates.NewCookieHeaderDelegate",
+ "org.apache.xerces.xni.parser.XMLErrorHandler",
+ "org.apache.xerces.util.MessageFormatter",
+ "org.apache.xerces.impl.XMLEntityManager$1",
+ "org.apache.xerces.xni.parser.XMLDTDScanner",
+ "org.openecomp.mso.logger.MsoLogger$ErrorCode",
+ "org.apache.xerces.xni.XMLAttributes",
+ "org.apache.xerces.impl.dv.dtd.StringDatatypeValidator",
+ "org.apache.xerces.impl.io.MalformedByteSequenceException",
+ "org.apache.xerces.impl.Constants$ArrayEnumeration",
+ "org.jboss.resteasy.core.interception.WriterInterceptorRegistry",
+ "org.apache.xerces.impl.dv.DTDDVFactory",
+ "org.apache.xerces.impl.dv.dtd.IDDatatypeValidator",
+ "org.apache.xerces.impl.validation.ValidationManager",
+ "org.apache.xerces.xni.XNIException",
+ "org.apache.xerces.impl.dtd.models.CMNode",
+ "org.apache.xerces.xni.parser.XMLDocumentSource",
+ "org.apache.xerces.xni.XMLDTDContentModelHandler",
+ "org.jboss.resteasy.spi.StringParameterUnmarshaller",
+ "org.jboss.resteasy.core.MediaTypeMap",
+ "org.openecomp.mso.logger.MsoLogger$Catalog",
+ "org.apache.xerces.util.AugmentationsImpl$SmallContainer",
+ "org.apache.xerces.impl.XMLErrorReporter",
+ "org.jboss.resteasy.specimpl.ResteasyUriBuilder",
+ "org.apache.xerces.impl.Constants",
+ "org.apache.xerces.util.XMLStringBuffer",
+ "org.apache.xerces.jaxp.JAXPConstants",
+ "org.apache.xerces.xni.parser.XMLParserConfiguration",
+ "org.apache.xerces.xni.XMLString",
+ "org.apache.xerces.impl.dv.DVFactoryException",
+ "org.apache.xerces.impl.dv.DatatypeException",
+ "org.apache.xerces.parsers.XML11Configurable",
+ "org.apache.xerces.parsers.XIncludeAwareParserConfiguration",
+ "org.jboss.resteasy.logging.Logger$LoggerType",
+ "org.apache.xerces.impl.xs.identity.FieldActivator",
+ "org.apache.xerces.impl.XMLEntityScanner$1",
+ "org.apache.xerces.jaxp.SAXParserFactoryImpl",
+ "org.jboss.resteasy.util.CaseInsensitiveMap$CaseInsensitiveComparator",
+ "org.apache.xerces.xs.ElementPSVI",
+ "org.apache.xerces.parsers.AbstractSAXParser",
+ "org.jboss.resteasy.spi.LoggableFailure",
+ "org.apache.xerces.xni.parser.XMLDTDFilter",
+ "org.apache.xerces.xni.parser.XMLDTDContentModelSource",
+ "org.openecomp.mso.entity.MsoRequest",
+ "org.apache.xerces.xni.XMLLocator",
+ "org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser",
+ "org.apache.xerces.xni.Augmentations",
+ "org.apache.xerces.impl.XMLEntityHandler",
+ "org.jboss.resteasy.util.CaseInsensitiveMap$1",
+ "org.jboss.resteasy.specimpl.BuiltResponse",
+ "org.jboss.resteasy.core.Headers",
+ "org.apache.xerces.xni.parser.XMLComponent",
+ "org.apache.xerces.impl.dv.dtd.ListDatatypeValidator",
+ "org.jboss.resteasy.spi.Failure",
+ "org.apache.xerces.impl.XMLEntityManager$ScannedEntity",
+ "org.apache.xerces.jaxp.JAXPValidatorComponent",
+ "org.apache.xerces.xni.parser.XMLDTDContentModelFilter",
+ "org.apache.xerces.xs.PSVIProvider",
+ "org.apache.xerces.impl.XMLEntityManager$ByteBufferPool",
+ "org.jboss.resteasy.specimpl.ResponseBuilderImpl",
+ "org.jboss.resteasy.core.interception.ClientResponseFilterRegistry",
+ "org.apache.xerces.impl.dtd.XMLEntityDecl",
+ "org.apache.xerces.xs.ItemPSVI",
+ "org.jboss.resteasy.specimpl.MultivaluedTreeMap",
+ "org.apache.xerces.impl.dv.dtd.ENTITYDatatypeValidator",
+ "org.apache.xerces.xni.parser.XMLEntityResolver",
+ "org.jboss.resteasy.client.core.ClientErrorInterceptor",
+ "org.apache.xerces.impl.dtd.XMLNSDTDValidator",
+ "org.apache.xerces.impl.XMLDTDScannerImpl",
+ "org.apache.xerces.impl.dv.dtd.NMTOKENDatatypeValidator",
+ "org.apache.xerces.parsers.ObjectFactory",
+ "org.jboss.resteasy.spi.ResteasyProviderFactory$SortedKey",
+ "org.apache.xerces.xni.parser.XMLConfigurationException",
+ "org.apache.xerces.impl.XML11NSDocumentScannerImpl",
+ "org.apache.xerces.parsers.SAXParser",
+ "com.att.eelf.i18n.EELFResolvableErrorEnum",
+ "org.apache.xerces.impl.XMLEntityManager$RewindableInputStream",
+ "org.jboss.resteasy.core.interception.ContainerRequestFilterRegistry",
+ "org.jboss.resteasy.specimpl.VariantListBuilderImpl",
+ "org.apache.xerces.xni.parser.XMLInputSource",
+ "org.apache.xerces.xni.parser.XMLComponentManager",
+ "com.att.eelf.configuration.EELFLogger$Level",
+ "org.jboss.resteasy.core.interception.JaxrsInterceptorRegistry$InterceptorFactory",
+ "org.apache.xerces.impl.io.UTF8Reader",
+ "org.apache.xerces.impl.dtd.XMLSimpleType",
+ "org.apache.xerces.impl.XML11DocumentScannerImpl",
+ "org.apache.xerces.util.AugmentationsImpl$AugmentationsItemsContainer",
+ "org.apache.xerces.util.XMLChar",
+ "org.apache.xerces.impl.XML11DTDScannerImpl",
+ "org.apache.xerces.impl.dtd.XMLElementDecl",
+ "com.att.eelf.i18n.EELFResourceManager$RESOURCE_TYPES",
+ "org.apache.xerces.xni.grammars.Grammar",
+ "org.apache.xerces.impl.dtd.models.ContentModelValidator",
+ "com.att.eelf.configuration.EELFLogger",
+ "org.apache.xerces.xni.grammars.XMLGrammarLoader",
+ "org.apache.xerces.xni.XMLDocumentHandler",
+ "org.apache.xerces.impl.io.UCSReader",
+ "org.apache.xerces.impl.XMLEntityManager$CharacterBuffer",
+ "org.apache.xerces.impl.validation.ValidationState",
+ "org.apache.xerces.impl.XMLEntityManager$Entity",
+ "org.jboss.resteasy.spi.HttpRequest",
+ "org.apache.xerces.util.XMLResourceIdentifierImpl",
+ "org.jboss.resteasy.logging.Logger",
+ "org.jboss.resteasy.spi.ConstructorInjector",
+ "org.apache.xerces.xni.NamespaceContext",
+ "org.apache.xerces.impl.dtd.XMLDTDLoader",
+ "org.jboss.resteasy.util.CaseInsensitiveMap",
+ "org.apache.xerces.util.XMLSymbols",
+ "org.apache.xerces.parsers.ObjectFactory$ConfigurationError",
+ "org.jboss.resteasy.core.interception.ContainerResponseFilterRegistry",
+ "org.apache.xerces.impl.io.ASCIIReader",
+ "org.jboss.resteasy.core.interception.InterceptorRegistry",
+ "org.apache.xerces.impl.dtd.XMLDTDProcessor",
+ "org.apache.xerces.impl.XMLDocumentFragmentScannerImpl",
+ "org.apache.xerces.impl.XML11EntityScanner",
+ "org.apache.xerces.impl.dtd.DTDGrammar",
+ "org.apache.xerces.impl.dv.dtd.IDREFDatatypeValidator",
+ "com.att.eelf.configuration.SLF4jWrapper",
+ "org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl",
+ "org.apache.xerces.impl.dtd.XMLContentSpec",
+ "org.openecomp.mso.logger.MsoLogger",
+ "org.apache.xerces.xs.AttributePSVI",
+ "org.apache.xerces.impl.dtd.DTDGrammarBucket",
+ "org.apache.xerces.impl.msg.XMLMessageFormatter",
+ "org.apache.xerces.xni.parser.XMLDocumentScanner",
+ "org.apache.xerces.impl.XMLVersionDetector",
+ "org.apache.xerces.impl.XMLDocumentScannerImpl",
+ "org.apache.xerces.xni.parser.XMLPullParserConfiguration",
+ "org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$Dispatcher",
+ "org.apache.xerces.impl.xs.XMLSchemaValidator",
+ "org.apache.xerces.xni.grammars.XMLDTDDescription",
+ "org.jboss.resteasy.logging.impl.Slf4jLogger",
+ "org.apache.xerces.xni.QName",
+ "org.apache.xerces.jaxp.TeeXMLDocumentFilterImpl",
+ "org.apache.xerces.util.XMLAttributesImpl",
+ "org.apache.xerces.impl.XMLEntityManager$InternalEntity",
+ "org.apache.xerces.impl.RevalidationHandler",
+ "org.jboss.resteasy.spi.HeaderValueProcessor",
+ "org.apache.xerces.util.AugmentationsImpl$LargeContainer",
+ "org.apache.xerces.impl.dtd.BalancedDTDGrammar",
+ "org.apache.xerces.xni.XMLDTDHandler",
+ "org.apache.xerces.impl.dtd.XML11DTDProcessor",
+ "org.apache.xerces.parsers.XML11Configuration",
+ "org.apache.xerces.impl.dtd.XMLDTDValidatorFilter",
+ "com.att.eelf.i18n.EELFResourceManager",
+ "org.jboss.resteasy.plugins.delegates.MediaTypeHeaderDelegate",
+ "org.jboss.resteasy.core.MediaTypeMap$Typed",
+ "org.openecomp.mso.logger.MessageEnum",
+ "org.openecomp.mso.logger.MsoLogger$ResponseCode",
+ "org.openecomp.mso.logger.MsoLogger$StatusCode",
+ "com.att.eelf.configuration.EELFManager",
+ "org.jboss.resteasy.spi.HttpResponse",
+ "org.apache.xerces.impl.validation.EntityState",
+ "org.apache.xerces.impl.XMLEntityManager$ExternalEntity",
+ "org.apache.xerces.util.ParserConfigurationSettings",
+ "org.apache.xerces.impl.dv.ObjectFactory$ConfigurationError",
+ "com.att.eelf.i18n.EELFResourceManager$1",
+ "org.apache.xerces.impl.dtd.XML11DTDValidator"
+ );
+ }
+
+ private static void resetClasses() {
+ org.evosuite.runtime.classhandling.ClassResetter.getInstance().setClassLoader(MsoLoggingServletESTestscaffolding.class.getClassLoader());
+
+ org.evosuite.runtime.classhandling.ClassStateSupport.resetClasses(
+ "com.att.eelf.i18n.EELFResourceManager",
+ "org.openecomp.mso.logger.MessageEnum",
+ "org.openecomp.mso.logger.MsoLogger$Catalog",
+ "org.openecomp.mso.logger.MsoLogger",
+ "com.att.eelf.i18n.EELFMsgs",
+ "com.att.eelf.i18n.EELFResourceManager$RESOURCE_TYPES",
+ "org.apache.xerces.jaxp.SAXParserFactoryImpl",
+ "org.apache.xerces.jaxp.SAXParserImpl",
+ "org.apache.xerces.parsers.XMLParser",
+ "org.apache.xerces.parsers.AbstractSAXParser",
+ "org.apache.xerces.parsers.SAXParser",
+ "org.apache.xerces.parsers.ObjectFactory",
+ "org.apache.xerces.util.ParserConfigurationSettings",
+ "org.apache.xerces.parsers.XML11Configuration",
+ "org.apache.xerces.parsers.XIncludeAwareParserConfiguration",
+ "org.apache.xerces.util.SymbolTable",
+ "org.apache.xerces.impl.XMLEntityManager",
+ "org.apache.xerces.util.AugmentationsImpl$SmallContainer",
+ "org.apache.xerces.impl.XMLEntityManager$ByteBufferPool",
+ "org.apache.xerces.impl.XMLEntityManager$CharacterBufferPool",
+ "org.apache.xerces.impl.XMLEntityScanner$1",
+ "org.apache.xerces.impl.XMLEntityScanner",
+ "org.apache.xerces.impl.XMLErrorReporter",
+ "org.apache.xerces.impl.XMLScanner",
+ "org.apache.xerces.impl.XMLDocumentFragmentScannerImpl",
+ "org.apache.xerces.impl.XMLDocumentScannerImpl",
+ "org.apache.xerces.util.XMLStringBuffer",
+ "org.apache.xerces.util.XMLAttributesImpl",
+ "org.apache.xerces.impl.XMLDTDScannerImpl",
+ "org.apache.xerces.impl.dtd.XMLDTDProcessor",
+ "org.apache.xerces.impl.dtd.XMLDTDValidator",
+ "org.apache.xerces.impl.validation.ValidationState",
+ "org.apache.xerces.impl.dtd.XMLElementDecl",
+ "org.apache.xerces.impl.dtd.XMLSimpleType",
+ "org.apache.xerces.impl.dv.DTDDVFactory",
+ "org.apache.xerces.impl.dv.ObjectFactory",
+ "org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl",
+ "org.apache.xerces.impl.XMLVersionDetector",
+ "org.apache.xerces.impl.msg.XMLMessageFormatter",
+ "org.apache.xerces.impl.io.UTF8Reader",
+ "org.apache.xerces.util.XMLSymbols",
+ "org.apache.xerces.xni.NamespaceContext",
+ "org.apache.xerces.util.XMLChar",
+ "org.apache.xerces.impl.Constants",
+ "com.att.eelf.configuration.EELFLogger$Level",
+ "com.att.eelf.configuration.EELFManager",
+ "org.jboss.resteasy.logging.Logger$LoggerType",
+ "org.jboss.resteasy.logging.Logger",
+ "org.jboss.resteasy.spi.ResteasyProviderFactory",
+ "org.jboss.resteasy.core.MediaTypeMap",
+ "org.jboss.resteasy.core.interception.LegacyPrecedence",
+ "org.jboss.resteasy.plugins.delegates.MediaTypeHeaderDelegate",
+ "org.jboss.resteasy.plugins.delegates.NewCookieHeaderDelegate",
+ "org.jboss.resteasy.specimpl.MultivaluedTreeMap",
+ "org.jboss.resteasy.util.CaseInsensitiveMap$CaseInsensitiveComparator",
+ "org.jboss.resteasy.util.CaseInsensitiveMap",
+ "org.jboss.resteasy.core.Headers",
+ "org.openecomp.mso.logger.MsoLoggingServlet"
+ );
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/properties/AbstractMsoPropertiesESTest.java b/common/src/test/java/org/openecomp/mso/properties/AbstractMsoPropertiesESTest.java
new file mode 100644
index 0000000000..535d929807
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/properties/AbstractMsoPropertiesESTest.java
@@ -0,0 +1,151 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 09:09:20 GMT 2016
+ */
+
+package org.openecomp.mso.properties;
+
+import static org.evosuite.runtime.EvoAssertions.verifyException;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.FileNotFoundException;
+
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class AbstractMsoPropertiesESTest extends AbstractMsoPropertiesESTestscaffolding {
+
+ @Test(timeout = 4000)
+ public void test00() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ String string0 = msoJavaProperties0.toString();
+ assertEquals("Config file null(Timer:0mins):\n\n\n", string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test01() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ MsoJavaProperties msoJavaProperties1 = msoJavaProperties0.clone();
+ msoJavaProperties1.propertiesFileName = "+";
+ msoJavaProperties1.getPropertiesFileName();
+ assertEquals(0, msoJavaProperties1.getAutomaticRefreshInMinutes());
+ }
+
+ @Test(timeout = 4000)
+ public void test02() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ MsoJavaProperties msoJavaProperties1 = msoJavaProperties0.clone();
+ msoJavaProperties1.propertiesFileName = "";
+ msoJavaProperties1.getPropertiesFileName();
+ assertEquals(0, msoJavaProperties1.getAutomaticRefreshInMinutes());
+ }
+
+ @Test(timeout = 4000)
+ public void test03() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.automaticRefreshInMinutes = (-1447);
+ int int0 = msoJavaProperties0.getAutomaticRefreshInMinutes();
+ assertEquals((-1447), int0);
+ }
+
+ @Test(timeout = 4000)
+ public void test04() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.equals(msoJavaProperties0);
+ assertEquals(0, msoJavaProperties0.getAutomaticRefreshInMinutes());
+ }
+
+ @Test(timeout = 4000)
+ public void test05() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.equals("X<0P%qxWR fu\"");
+ assertEquals(0, msoJavaProperties0.getAutomaticRefreshInMinutes());
+ }
+
+ @Test(timeout = 4000)
+ public void test06() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ MsoJavaProperties msoJavaProperties1 = (MsoJavaProperties)msoJavaProperties0.clone();
+ assertEquals(0, msoJavaProperties1.getAutomaticRefreshInMinutes());
+ }
+
+ @Test(timeout = 4000)
+ public void test07() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.automaticRefreshInMinutes = (-1447);
+ MsoJavaProperties msoJavaProperties1 = (MsoJavaProperties)msoJavaProperties0.clone();
+ assertTrue(msoJavaProperties1.equals((Object)msoJavaProperties0));
+ }
+
+ /**
+ * TODO: fails when run using maven, but succeeds when run using eclipse
+ * @throws Throwable
+ */
+ @Ignore
+ @Test(timeout = 4000)
+ public void test08() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ // Undeclared exception!
+ try {
+ msoJavaProperties0.reloadPropertiesFile();
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.evosuite.runtime.mock.java.io.MockFileInputStream", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test09() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.propertiesFileName = "ASDC_ARTIFACT_ALREADY_DEPLOYED";
+ try {
+ msoJavaProperties0.reloadPropertiesFile();
+ fail("Expecting exception: FileNotFoundException");
+
+ } catch(FileNotFoundException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.evosuite.runtime.mock.java.io.MockFileInputStream", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test10() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ try {
+ msoJavaProperties0.loadPropertiesFile("Trying to reset value handler for type [");
+ fail("Expecting exception: FileNotFoundException");
+
+ } catch(FileNotFoundException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.evosuite.runtime.mock.java.io.MockFileInputStream", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test11() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.getPropertiesFileName();
+ assertEquals(0, msoJavaProperties0.getAutomaticRefreshInMinutes());
+ }
+
+ @Test(timeout = 4000)
+ public void test12() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ int int0 = msoJavaProperties0.getAutomaticRefreshInMinutes();
+ assertEquals(0, int0);
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/properties/AbstractMsoPropertiesESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/properties/AbstractMsoPropertiesESTestscaffolding.java
new file mode 100644
index 0000000000..4224f01dc0
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/properties/AbstractMsoPropertiesESTestscaffolding.java
@@ -0,0 +1,120 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 09:09:20 GMT 2016
+ */
+
+package org.openecomp.mso.properties;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+@EvoSuiteClassExclude
+public class AbstractMsoPropertiesESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.properties.AbstractMsoProperties";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(AbstractMsoPropertiesESTestscaffolding.class.getClassLoader() ,
+ "org.openecomp.mso.properties.AbstractMsoProperties",
+ "org.openecomp.mso.logger.MsoLogger",
+ "org.openecomp.mso.logger.MessageEnum",
+ "com.att.eelf.i18n.EELFResolvableErrorEnum",
+ "org.openecomp.mso.logger.MsoLogger$ResponseCode",
+ "org.openecomp.mso.entity.MsoRequest",
+ "org.openecomp.mso.logger.MsoLogger$StatusCode",
+ "com.att.eelf.i18n.EELFResourceManager$RESOURCE_TYPES",
+ "com.att.eelf.configuration.EELFManager",
+ "org.openecomp.mso.logger.MsoLogger$ErrorCode",
+ "com.att.eelf.configuration.EELFLogger",
+ "com.att.eelf.i18n.EELFMsgs",
+ "com.att.eelf.configuration.EELFLogger$Level",
+ "org.openecomp.mso.properties.MsoJavaProperties",
+ "org.openecomp.mso.logger.MsoLogger$Catalog",
+ "com.att.eelf.configuration.SLF4jWrapper",
+ "com.att.eelf.i18n.EELFResourceManager"
+ );
+ }
+
+ private static void resetClasses() {
+ org.evosuite.runtime.classhandling.ClassResetter.getInstance().setClassLoader(AbstractMsoPropertiesESTestscaffolding.class.getClassLoader());
+
+ org.evosuite.runtime.classhandling.ClassStateSupport.resetClasses(
+ "org.openecomp.mso.logger.MsoLogger$Catalog",
+ "org.codehaus.jackson.map.introspect.AnnotatedClass",
+ "org.codehaus.jackson.map.introspect.BasicClassIntrospector",
+ "org.codehaus.jackson.annotate.JsonAutoDetect$Visibility",
+ "org.codehaus.jackson.annotate.JsonMethod",
+ "org.codehaus.jackson.map.introspect.VisibilityChecker$Std",
+ "org.codehaus.jackson.map.ObjectMapper",
+ "org.codehaus.jackson.JsonParser$Feature",
+ "org.codehaus.jackson.JsonGenerator$Feature",
+ "org.codehaus.jackson.JsonFactory",
+ "org.codehaus.jackson.sym.CharsToNameCanonicalizer",
+ "org.codehaus.jackson.sym.BytesToNameCanonicalizer",
+ "org.codehaus.jackson.map.type.TypeFactory",
+ "org.openecomp.mso.utils.CryptoUtils",
+ "org.openecomp.mso.logger.MsoLogger",
+ "com.att.eelf.i18n.EELFResourceManager",
+ "com.att.eelf.i18n.EELFMsgs",
+ "com.att.eelf.i18n.EELFResourceManager$RESOURCE_TYPES",
+ "com.att.eelf.configuration.EELFLogger$Level",
+ "com.att.eelf.configuration.EELFManager",
+ "org.openecomp.mso.logger.MessageEnum",
+ "org.openecomp.mso.properties.AbstractMsoProperties"
+ );
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/properties/MsoJavaPropertiesESTest.java b/common/src/test/java/org/openecomp/mso/properties/MsoJavaPropertiesESTest.java
new file mode 100644
index 0000000000..d64f63fb2c
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/properties/MsoJavaPropertiesESTest.java
@@ -0,0 +1,358 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Thu Nov 10 08:35:35 GMT 2016
+ */
+
+package org.openecomp.mso.properties;
+
+import static org.evosuite.runtime.EvoAssertions.verifyException;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.FileNotFoundException;
+
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.evosuite.runtime.PrivateAccess;
+import org.evosuite.runtime.testdata.FileSystemHandling;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.openecomp.mso.logger.MsoLogger;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class MsoJavaPropertiesESTest extends MsoJavaPropertiesESTestscaffolding {
+
+ @Test(timeout = 4000)
+ public void test00() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.setProperty("", "J6");
+ msoJavaProperties0.hashCode();
+ }
+
+ @Test(timeout = 4000)
+ public void test02() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ String string0 = msoJavaProperties0.getProperty("IK#uRP]", (String) null);
+ assertNull(string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test03() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ String string0 = msoJavaProperties0.getProperty("", "");
+ assertNotNull(string0);
+ assertEquals("", string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test04() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ int int0 = msoJavaProperties0.getIntProperty("RA_VNF_NOT_EXIST", (-1417));
+ assertEquals((-1417), int0);
+ }
+
+ @Test(timeout = 4000)
+ public void test05() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ String string0 = msoJavaProperties0.getEncryptedProperty("", "", "");
+ assertEquals("", string0);
+ assertNotNull(string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test06() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.automaticRefreshInMinutes = 1821;
+ MsoJavaProperties msoJavaProperties1 = msoJavaProperties0.clone();
+ assertNotSame(msoJavaProperties1, msoJavaProperties0);
+ assertEquals(1821, msoJavaProperties1.getAutomaticRefreshInMinutes());
+ }
+
+ @Test(timeout = 4000)
+ public void test07() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.automaticRefreshInMinutes = (-78);
+ MsoJavaProperties msoJavaProperties1 = msoJavaProperties0.clone();
+ assertNotSame(msoJavaProperties1, msoJavaProperties0);
+ assertEquals(-78, msoJavaProperties1.getAutomaticRefreshInMinutes());
+ }
+
+ @Test(timeout = 4000)
+ public void test08() throws Throwable {
+ FileSystemHandling fileSystemHandling0 = new FileSystemHandling();
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ PrivateAccess.setVariable((Class<MsoJavaProperties>) MsoJavaProperties.class, msoJavaProperties0, "msoProperties", (Object) null);
+ msoJavaProperties0.hashCode();
+ msoJavaProperties0.hashCode();
+ // Undeclared exception!
+ try {
+ msoJavaProperties0.size();
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.openecomp.mso.properties.MsoJavaProperties", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test09() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ // Undeclared exception!
+ try {
+ msoJavaProperties0.setProperty((String) null, "+UaYo-~&{QxdaN(c");
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test11() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ MsoJavaProperties msoJavaProperties1 = msoJavaProperties0.clone();
+ msoJavaProperties1.propertiesFileName = "";
+ try {
+ msoJavaProperties1.reloadPropertiesFile();
+ fail("Expecting exception: FileNotFoundException");
+
+ } catch(FileNotFoundException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.evosuite.runtime.mock.java.io.MockFileInputStream", e);
+ }
+ }
+
+ /**
+ * TODO: fails when run using maven, but succeeds when run using eclipse
+ */
+ @Ignore
+ @Test(timeout = 4000)
+ public void test12() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ // Undeclared exception!
+ try {
+ msoJavaProperties0.loadPropertiesFile((String) null);
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.evosuite.runtime.mock.java.io.MockFileInputStream", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test13() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ try {
+ msoJavaProperties0.loadPropertiesFile("");
+ fail("Expecting exception: FileNotFoundException");
+
+ } catch(FileNotFoundException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.evosuite.runtime.mock.java.io.MockFileInputStream", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test14() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ // Undeclared exception!
+ try {
+ msoJavaProperties0.getIntProperty((String) null, 0);
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test15() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.setProperty("APIH_READ_VNFOUTPUT_CLOB_EXCEPTION", "");
+ // Undeclared exception!
+ try {
+ msoJavaProperties0.getEncryptedProperty("APIH_READ_VNFOUTPUT_CLOB_EXCEPTION", "", "k$&Fq}");
+ fail("Expecting exception: NumberFormatException");
+
+ } catch(NumberFormatException e) {
+ //
+ // For input string: \"k$\"
+ //
+ verifyException("java.lang.NumberFormatException", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test16() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ MsoJavaProperties msoJavaProperties1 = msoJavaProperties0.clone();
+ msoJavaProperties1.clone();
+ msoJavaProperties0.hashCode();
+ MsoJavaProperties msoJavaProperties2 = msoJavaProperties1.clone();
+ PrivateAccess.setVariable((Class<MsoJavaProperties>) MsoJavaProperties.class, msoJavaProperties0, "msoProperties", (Object) null);
+ msoJavaProperties1.equals(msoJavaProperties2);
+ MsoLogger msoLogger0 = AbstractMsoProperties.LOGGER;
+ // Undeclared exception!
+ try {
+ msoJavaProperties0.clone();
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("java.util.Hashtable", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test18() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ int int0 = msoJavaProperties0.getIntProperty("", 0);
+ assertEquals(0, int0);
+ }
+
+ @Test(timeout = 4000)
+ public void test19() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.setProperty("-6;qct1", "");
+ String string0 = msoJavaProperties0.toString();
+ assertEquals("Config file null(Timer:0mins):\n-6;qct1=\n\n\n", string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test20() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ boolean boolean0 = msoJavaProperties0.equals("APIH_READ_VNFOUTPUT_CLOB_EXCEPTION");
+ assertFalse(boolean0);
+ }
+
+ @Test(timeout = 4000)
+ public void test21() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ boolean boolean0 = msoJavaProperties0.equals((Object) null);
+ assertFalse(boolean0);
+ }
+
+ @Test(timeout = 4000)
+ public void test22() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ boolean boolean0 = msoJavaProperties0.equals(msoJavaProperties0);
+ assertTrue(boolean0);
+ }
+
+ @Test(timeout = 4000)
+ public void test24() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.setProperty("APIH_READ_VNFOUTPUT_CLOB_EXCEPTION", "");
+ // Undeclared exception!
+ try {
+ msoJavaProperties0.getEncryptedProperty("APIH_READ_VNFOUTPUT_CLOB_EXCEPTION", ".", "");
+ fail("Expecting exception: IllegalArgumentException");
+
+ } catch(IllegalArgumentException e) {
+ //
+ // Empty key
+ //
+ verifyException("javax.crypto.spec.SecretKeySpec", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test25() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ String string0 = msoJavaProperties0.getEncryptedProperty("YhmJSc|~L0$,?/oh", (String) null, "YhmJSc|~L0$,?/oh");
+ assertNull(string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test26() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.setProperty("M;WrYY%E,;sa&4F", "M;WrYY%E,;sa&4F");
+ boolean boolean0 = msoJavaProperties0.getBooleanProperty("M;WrYY%E,;sa&4F", false);
+ assertFalse(boolean0);
+ }
+
+ @Test(timeout = 4000)
+ public void test27() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ boolean boolean0 = msoJavaProperties0.getBooleanProperty("", true);
+ assertTrue(boolean0);
+ }
+
+ @Test(timeout = 4000)
+ public void test28() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.setProperty("M;WrYY%E,;sa&4F", "M;WrYY%E,;sa&4F");
+ int int0 = msoJavaProperties0.getIntProperty("M;WrYY%E,;sa&4F", 0);
+ assertEquals(0, int0);
+ }
+
+ @Test(timeout = 4000)
+ public void test29() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ msoJavaProperties0.setProperty("", "J6");
+ String string0 = msoJavaProperties0.getProperty("", "mso.properties.reload.time.minutes");
+ assertNotNull(string0);
+ assertEquals("J6", string0);
+ }
+ /**
+ * TODO: fails when run using maven, but succeeds when run using eclipse
+ */
+ @Ignore
+ @Test(timeout = 4000)
+ public void test30() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ // Undeclared exception!
+ try {
+ msoJavaProperties0.reloadPropertiesFile();
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.evosuite.runtime.mock.java.io.MockFileInputStream", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test31() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ MsoJavaProperties msoJavaProperties1 = msoJavaProperties0.clone();
+ assertTrue(msoJavaProperties1.equals((Object)msoJavaProperties0));
+
+ msoJavaProperties0.setProperty("", "");
+ boolean boolean0 = msoJavaProperties0.equals(msoJavaProperties1);
+ assertFalse(boolean0);
+ assertFalse(msoJavaProperties1.equals((Object)msoJavaProperties0));
+ }
+
+ @Test(timeout = 4000)
+ public void test32() throws Throwable {
+ MsoJavaProperties msoJavaProperties0 = new MsoJavaProperties();
+ int int0 = msoJavaProperties0.size();
+ assertEquals(0, int0);
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/properties/MsoJavaPropertiesESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/properties/MsoJavaPropertiesESTestscaffolding.java
new file mode 100644
index 0000000000..da13dc1d3d
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/properties/MsoJavaPropertiesESTestscaffolding.java
@@ -0,0 +1,110 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 07:59:01 GMT 2016
+ */
+
+package org.openecomp.mso.properties;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+@EvoSuiteClassExclude
+public class MsoJavaPropertiesESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.properties.MsoJavaProperties";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(MsoJavaPropertiesESTestscaffolding.class.getClassLoader() ,
+ "org.openecomp.mso.properties.AbstractMsoProperties",
+ "org.openecomp.mso.logger.MsoLogger",
+ "org.openecomp.mso.logger.MessageEnum",
+ "com.att.eelf.i18n.EELFResolvableErrorEnum",
+ "org.openecomp.mso.logger.MsoLogger$ResponseCode",
+ "org.openecomp.mso.utils.CryptoUtils",
+ "org.openecomp.mso.entity.MsoRequest",
+ "org.openecomp.mso.logger.MsoLogger$StatusCode",
+ "com.att.eelf.i18n.EELFResourceManager$RESOURCE_TYPES",
+ "com.att.eelf.configuration.EELFManager",
+ "org.openecomp.mso.logger.MsoLogger$ErrorCode",
+ "com.att.eelf.configuration.EELFLogger",
+ "com.att.eelf.i18n.EELFMsgs",
+ "com.att.eelf.configuration.EELFLogger$Level",
+ "org.openecomp.mso.properties.MsoJavaProperties",
+ "org.openecomp.mso.logger.MsoLogger$Catalog",
+ "com.att.eelf.configuration.SLF4jWrapper",
+ "com.att.eelf.i18n.EELFResourceManager$1",
+ "com.att.eelf.i18n.EELFResourceManager"
+ );
+ }
+
+ private static void resetClasses() {
+ org.evosuite.runtime.classhandling.ClassResetter.getInstance().setClassLoader(MsoJavaPropertiesESTestscaffolding.class.getClassLoader());
+
+ org.evosuite.runtime.classhandling.ClassStateSupport.resetClasses(
+ "org.openecomp.mso.logger.MsoLogger$Catalog",
+ "org.openecomp.mso.logger.MsoLogger",
+ "com.att.eelf.i18n.EELFResourceManager",
+ "com.att.eelf.i18n.EELFMsgs",
+ "com.att.eelf.i18n.EELFResourceManager$RESOURCE_TYPES",
+ "com.att.eelf.configuration.EELFLogger$Level",
+ "com.att.eelf.configuration.EELFManager",
+ "org.openecomp.mso.logger.MessageEnum",
+ "org.openecomp.mso.properties.AbstractMsoProperties",
+ "org.openecomp.mso.utils.CryptoUtils"
+ );
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/properties/MsoJsonPropertiesESTest.java b/common/src/test/java/org/openecomp/mso/properties/MsoJsonPropertiesESTest.java
new file mode 100644
index 0000000000..0243c13c7f
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/properties/MsoJsonPropertiesESTest.java
@@ -0,0 +1,35 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 09:04:39 GMT 2016
+ */
+
+package org.openecomp.mso.properties;
+
+import static org.evosuite.runtime.EvoAssertions.verifyException;
+import static org.junit.Assert.fail;
+
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class MsoJsonPropertiesESTest {
+
+ @Ignore
+ @Test(timeout = 4000)
+ public void test0() throws Throwable {
+ MsoJsonProperties msoJsonProperties0 = null;
+ try {
+ msoJsonProperties0 = new MsoJsonProperties();
+ fail("Expecting exception: VerifyError");
+
+ } catch(VerifyError e) {
+ //
+ // (class: org/codehaus/jackson/map/MapperConfig, method: <clinit> signature: ()V) Bad type in putfield/putstatic
+ //
+ verifyException("org.codehaus.jackson.map.ObjectMapper", e);
+ }
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesExceptionESTest.java b/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesExceptionESTest.java
new file mode 100644
index 0000000000..c53dd85fb0
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesExceptionESTest.java
@@ -0,0 +1,24 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 09:10:06 GMT 2016
+ */
+
+package org.openecomp.mso.properties;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class MsoPropertiesExceptionESTest extends MsoPropertiesExceptionESTestscaffolding {
+
+ @Test(timeout = 4000)
+ public void test0() throws Throwable {
+ MsoPropertiesException msoPropertiesException0 = new MsoPropertiesException("");
+ MsoPropertiesException msoPropertiesException1 = new MsoPropertiesException("l6G(", (Throwable) msoPropertiesException0);
+ assertFalse(msoPropertiesException1.equals((Object)msoPropertiesException0));
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesExceptionESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesExceptionESTestscaffolding.java
new file mode 100644
index 0000000000..379956310b
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesExceptionESTestscaffolding.java
@@ -0,0 +1,83 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 09:10:06 GMT 2016
+ */
+
+package org.openecomp.mso.properties;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+@EvoSuiteClassExclude
+public class MsoPropertiesExceptionESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.properties.MsoPropertiesException";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(MsoPropertiesExceptionESTestscaffolding.class.getClassLoader() ,
+ "org.openecomp.mso.properties.MsoPropertiesException"
+ );
+ }
+
+ private static void resetClasses() {
+ org.evosuite.runtime.classhandling.ClassResetter.getInstance().setClassLoader(MsoPropertiesExceptionESTestscaffolding.class.getClassLoader());
+
+ org.evosuite.runtime.classhandling.ClassStateSupport.resetClasses(
+ "org.openecomp.mso.properties.MsoPropertiesException"
+ );
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesFactoryESTest.java b/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesFactoryESTest.java
new file mode 100644
index 0000000000..7ab574569c
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesFactoryESTest.java
@@ -0,0 +1,71 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 09:02:51 GMT 2016
+ */
+
+package org.openecomp.mso.properties;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+import static org.evosuite.runtime.EvoAssertions.*;
+
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.evosuite.runtime.PrivateAccess;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class MsoPropertiesFactoryESTest {
+
+ @Test(timeout = 4000)
+ public void test0() throws Throwable {
+ MsoPropertiesFactory msoPropertiesFactory0 = new MsoPropertiesFactory();
+ // Undeclared exception!
+ try {
+ msoPropertiesFactory0.changeMsoPropertiesFilePath((String) null, "Unable to load the MSO properties file because format is not recognized (only .json or .properties): ");
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test1() throws Throwable {
+ MsoPropertiesFactory msoPropertiesFactory0 = new MsoPropertiesFactory();
+ msoPropertiesFactory0.removeAllMsoProperties();
+ }
+
+ @Test(timeout = 4000)
+ public void test2() throws Throwable {
+ MsoPropertiesFactory msoPropertiesFactory0 = new MsoPropertiesFactory();
+ try {
+ msoPropertiesFactory0.getMsoJavaProperties("iz/`I");
+ fail("Expecting exception: Exception");
+
+ } catch(Exception e) {
+ //
+ // Mso properties not found in cache:iz/`I
+ //
+ verifyException("org.openecomp.mso.properties.MsoPropertiesFactory", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test3() throws Throwable {
+ MsoPropertiesFactory msoPropertiesFactory0 = new MsoPropertiesFactory();
+ MsoPropertiesParameters msoPropertiesParameters0 = new MsoPropertiesParameters();
+ try {
+ PrivateAccess.callMethod((Class<MsoPropertiesFactory>) MsoPropertiesFactory.class, msoPropertiesFactory0, "createObjectType", (Object) msoPropertiesParameters0, (Class<?>) MsoPropertiesParameters.class, (Object) ":8nnlF[sGvCub6J", (Class<?>) String.class);
+ fail("Expecting exception: Exception");
+
+ } catch(Exception e) {
+ //
+ // Unable to load the MSO properties file because format is not recognized (only .json or .properties): :8nnlF[sGvCub6J
+ //
+ verifyException("org.openecomp.mso.properties.MsoPropertiesFactory", e);
+ }
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesParametersESTest.java b/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesParametersESTest.java
new file mode 100644
index 0000000000..9579b3b367
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesParametersESTest.java
@@ -0,0 +1,20 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 09:09:37 GMT 2016
+ */
+
+package org.openecomp.mso.properties;
+
+import org.junit.Test;
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class MsoPropertiesParametersESTest extends MsoPropertiesParametersESTestscaffolding {
+
+ @Test(timeout = 4000)
+ public void test0() throws Throwable {
+ MsoPropertiesParameters msoPropertiesParameters0 = new MsoPropertiesParameters();
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesParametersESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesParametersESTestscaffolding.java
new file mode 100644
index 0000000000..fec0b9ecf1
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/properties/MsoPropertiesParametersESTestscaffolding.java
@@ -0,0 +1,129 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 09:09:37 GMT 2016
+ */
+
+package org.openecomp.mso.properties;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+@EvoSuiteClassExclude
+public class MsoPropertiesParametersESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.properties.MsoPropertiesParameters";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(MsoPropertiesParametersESTestscaffolding.class.getClassLoader() ,
+ "org.openecomp.mso.properties.MsoPropertiesParameters"
+ );
+ }
+
+ private static void resetClasses() {
+ org.evosuite.runtime.classhandling.ClassResetter.getInstance().setClassLoader(MsoPropertiesParametersESTestscaffolding.class.getClassLoader());
+
+ org.evosuite.runtime.classhandling.ClassStateSupport.resetClasses(
+ "org.openecomp.mso.logger.MsoLogger$Catalog",
+ "org.openecomp.mso.logger.MsoLogger",
+ "com.att.eelf.i18n.EELFResourceManager",
+ "com.att.eelf.i18n.EELFMsgs",
+ "com.att.eelf.i18n.EELFResourceManager$RESOURCE_TYPES",
+ "org.apache.xerces.jaxp.SAXParserFactoryImpl",
+ "org.apache.xerces.jaxp.SAXParserImpl",
+ "org.apache.xerces.parsers.XMLParser",
+ "org.apache.xerces.parsers.AbstractSAXParser",
+ "org.apache.xerces.parsers.SAXParser",
+ "org.apache.xerces.parsers.ObjectFactory",
+ "org.apache.xerces.util.ParserConfigurationSettings",
+ "org.apache.xerces.parsers.XML11Configuration",
+ "org.apache.xerces.parsers.XIncludeAwareParserConfiguration",
+ "org.apache.xerces.util.SymbolTable",
+ "org.apache.xerces.impl.XMLEntityManager",
+ "org.apache.xerces.util.AugmentationsImpl$SmallContainer",
+ "org.apache.xerces.impl.XMLEntityManager$ByteBufferPool",
+ "org.apache.xerces.impl.XMLEntityManager$CharacterBufferPool",
+ "org.apache.xerces.impl.XMLEntityScanner$1",
+ "org.apache.xerces.impl.XMLEntityScanner",
+ "org.apache.xerces.impl.XMLErrorReporter",
+ "org.apache.xerces.impl.XMLScanner",
+ "org.apache.xerces.impl.XMLDocumentFragmentScannerImpl",
+ "org.apache.xerces.impl.XMLDocumentScannerImpl",
+ "org.apache.xerces.util.XMLStringBuffer",
+ "org.apache.xerces.util.XMLAttributesImpl",
+ "org.apache.xerces.impl.XMLDTDScannerImpl",
+ "org.apache.xerces.impl.dtd.XMLDTDProcessor",
+ "org.apache.xerces.impl.dtd.XMLDTDValidator",
+ "org.apache.xerces.impl.validation.ValidationState",
+ "org.apache.xerces.impl.dtd.XMLElementDecl",
+ "org.apache.xerces.impl.dtd.XMLSimpleType",
+ "org.apache.xerces.impl.dv.DTDDVFactory",
+ "org.apache.xerces.impl.dv.ObjectFactory",
+ "org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl",
+ "org.apache.xerces.impl.XMLVersionDetector",
+ "org.apache.xerces.impl.msg.XMLMessageFormatter",
+ "org.apache.xerces.impl.io.UTF8Reader",
+ "org.apache.xerces.util.XMLSymbols",
+ "org.apache.xerces.xni.NamespaceContext",
+ "org.apache.xerces.util.XMLChar",
+ "org.apache.xerces.impl.Constants",
+ "com.att.eelf.configuration.EELFLogger$Level",
+ "com.att.eelf.configuration.EELFManager",
+ "org.openecomp.mso.logger.MessageEnum",
+ "org.openecomp.mso.properties.AbstractMsoProperties"
+ );
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/properties/MsoPropertyInitializerESTest.java b/common/src/test/java/org/openecomp/mso/properties/MsoPropertyInitializerESTest.java
new file mode 100644
index 0000000000..a7efa76b1b
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/properties/MsoPropertyInitializerESTest.java
@@ -0,0 +1,20 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 08:01:07 GMT 2016
+ */
+
+package org.openecomp.mso.properties;
+
+import org.junit.Test;
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class MsoPropertyInitializerESTest extends MsoPropertyInitializerESTestscaffolding {
+
+ @Test(timeout = 4000)
+ public void test0() throws Throwable {
+ MsoPropertyInitializer msoPropertyInitializer0 = new MsoPropertyInitializer();
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/properties/MsoPropertyInitializerESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/properties/MsoPropertyInitializerESTestscaffolding.java
new file mode 100644
index 0000000000..9a056fb576
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/properties/MsoPropertyInitializerESTestscaffolding.java
@@ -0,0 +1,284 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 08:01:07 GMT 2016
+ */
+
+package org.openecomp.mso.properties;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+@EvoSuiteClassExclude
+public class MsoPropertyInitializerESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.properties.MsoPropertyInitializer";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(MsoPropertyInitializerESTestscaffolding.class.getClassLoader() ,
+ "org.openecomp.mso.properties.AbstractMsoProperties",
+ "org.apache.xerces.xni.parser.XMLDTDContentModelFilter",
+ "org.apache.xerces.xs.PSVIProvider",
+ "org.apache.xerces.impl.XMLEntityManager$ByteBufferPool",
+ "org.apache.xerces.impl.dtd.XMLEntityDecl",
+ "org.apache.xerces.xs.ItemPSVI",
+ "org.apache.xerces.xni.parser.XMLEntityResolver",
+ "org.apache.xerces.impl.dtd.XMLNSDTDValidator",
+ "org.apache.xerces.impl.XMLDTDScannerImpl",
+ "org.apache.xerces.parsers.ObjectFactory",
+ "org.apache.xerces.xni.parser.XMLConfigurationException",
+ "org.apache.xerces.impl.XML11NSDocumentScannerImpl",
+ "org.apache.xerces.impl.XMLEntityManager$CharacterBufferPool",
+ "org.apache.xerces.parsers.SAXParser",
+ "com.att.eelf.i18n.EELFResolvableErrorEnum",
+ "org.apache.xerces.xni.XMLResourceIdentifier",
+ "org.apache.xerces.impl.XMLEntityManager$RewindableInputStream",
+ "org.apache.xerces.impl.XMLEntityManager",
+ "org.apache.xerces.impl.dtd.XMLDTDDescription",
+ "org.apache.xerces.xni.parser.XMLInputSource",
+ "com.att.eelf.i18n.EELFMsgs",
+ "org.apache.xerces.xni.parser.XMLComponentManager",
+ "com.att.eelf.configuration.EELFLogger$Level",
+ "org.apache.xerces.impl.io.UTF8Reader",
+ "org.apache.xerces.impl.dv.InvalidDatatypeValueException",
+ "org.apache.xerces.jaxp.UnparsedEntityHandler",
+ "org.apache.xerces.parsers.AbstractXMLDocumentParser",
+ "org.apache.xerces.impl.XMLScanner",
+ "org.apache.xerces.impl.dtd.XMLSimpleType",
+ "org.apache.xerces.impl.XML11DocumentScannerImpl",
+ "org.apache.xerces.xni.parser.XMLParseException",
+ "org.apache.xerces.util.AugmentationsImpl$AugmentationsItemsContainer",
+ "org.apache.xerces.impl.XMLEntityScanner",
+ "org.apache.xerces.util.URI$MalformedURIException",
+ "org.apache.xerces.util.XMLChar",
+ "org.apache.xerces.impl.XMLNSDocumentScannerImpl",
+ "org.apache.xerces.impl.XML11DTDScannerImpl",
+ "org.apache.xerces.util.URI",
+ "org.apache.xerces.xni.parser.XMLDocumentFilter",
+ "org.apache.xerces.xni.parser.XMLDTDSource",
+ "org.apache.xerces.impl.dtd.XMLElementDecl",
+ "org.apache.xerces.impl.dtd.XMLAttributeDecl",
+ "com.att.eelf.i18n.EELFResourceManager$RESOURCE_TYPES",
+ "org.apache.xerces.xni.grammars.Grammar",
+ "org.apache.xerces.parsers.XMLParser",
+ "org.apache.xerces.impl.dtd.models.ContentModelValidator",
+ "com.att.eelf.configuration.EELFLogger",
+ "org.apache.xerces.xni.grammars.XMLGrammarLoader",
+ "org.apache.xerces.xni.XMLDocumentHandler",
+ "org.openecomp.mso.properties.MsoJavaProperties",
+ "org.apache.xerces.util.SymbolTable",
+ "org.apache.xerces.impl.io.UCSReader",
+ "org.apache.xerces.impl.XMLEntityManager$CharacterBuffer",
+ "org.apache.xerces.impl.io.Latin1Reader",
+ "org.apache.xerces.impl.dv.ValidationContext",
+ "org.apache.xerces.impl.dtd.XMLDTDValidator",
+ "org.apache.xerces.impl.dtd.XML11NSDTDValidator",
+ "org.apache.xerces.impl.validation.ValidationState",
+ "org.apache.xerces.impl.XMLEntityManager$Entity",
+ "org.apache.xerces.util.XMLResourceIdentifierImpl",
+ "org.apache.xerces.util.AugmentationsImpl",
+ "org.apache.xerces.impl.dv.ObjectFactory",
+ "org.apache.xerces.impl.dv.DatatypeValidator",
+ "org.apache.xerces.xni.NamespaceContext",
+ "org.apache.xerces.impl.dtd.XMLDTDLoader",
+ "org.apache.xerces.jaxp.SAXParserImpl",
+ "org.apache.xerces.util.XMLSymbols",
+ "org.apache.xerces.parsers.ObjectFactory$ConfigurationError",
+ "org.apache.xerces.xni.grammars.XMLGrammarDescription",
+ "org.apache.xerces.xni.parser.XMLErrorHandler",
+ "org.apache.xerces.impl.io.ASCIIReader",
+ "org.apache.xerces.util.MessageFormatter",
+ "org.openecomp.mso.properties.MsoPropertiesParameters",
+ "org.apache.xerces.impl.dtd.XMLDTDProcessor",
+ "org.apache.xerces.impl.XMLDocumentFragmentScannerImpl",
+ "org.apache.xerces.xni.parser.XMLDTDScanner",
+ "org.openecomp.mso.logger.MsoLogger$ErrorCode",
+ "org.apache.xerces.xni.XMLAttributes",
+ "org.apache.xerces.impl.io.MalformedByteSequenceException",
+ "org.apache.xerces.impl.Constants$ArrayEnumeration",
+ "org.apache.xerces.impl.XML11EntityScanner",
+ "org.apache.xerces.impl.dtd.DTDGrammar",
+ "org.apache.xerces.impl.dv.DTDDVFactory",
+ "com.att.eelf.configuration.SLF4jWrapper",
+ "org.openecomp.mso.properties.MsoPropertiesException",
+ "org.apache.xerces.impl.validation.ValidationManager",
+ "org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl",
+ "org.apache.xerces.xni.XNIException",
+ "org.apache.xerces.impl.dtd.XMLContentSpec",
+ "org.openecomp.mso.logger.MsoLogger",
+ "org.apache.xerces.xs.AttributePSVI",
+ "org.apache.xerces.impl.dtd.DTDGrammarBucket",
+ "org.apache.xerces.impl.msg.XMLMessageFormatter",
+ "org.apache.xerces.xni.parser.XMLDocumentScanner",
+ "org.apache.xerces.impl.XMLVersionDetector",
+ "org.apache.xerces.impl.XMLDocumentScannerImpl",
+ "org.apache.xerces.xni.parser.XMLPullParserConfiguration",
+ "org.apache.xerces.xni.parser.XMLDocumentSource",
+ "org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$Dispatcher",
+ "org.openecomp.mso.properties.MsoPropertiesFactory",
+ "org.apache.xerces.xni.XMLDTDContentModelHandler",
+ "org.apache.xerces.impl.xs.XMLSchemaValidator",
+ "org.openecomp.mso.logger.MsoLogger$Catalog",
+ "org.apache.xerces.xni.grammars.XMLDTDDescription",
+ "org.apache.xerces.util.AugmentationsImpl$SmallContainer",
+ "org.apache.xerces.impl.XMLErrorReporter",
+ "org.apache.xerces.xni.QName",
+ "org.apache.xerces.jaxp.TeeXMLDocumentFilterImpl",
+ "org.apache.xerces.util.XMLAttributesImpl",
+ "org.apache.xerces.impl.Constants",
+ "org.apache.xerces.util.XMLStringBuffer",
+ "org.apache.xerces.impl.XMLEntityManager$InternalEntity",
+ "org.apache.xerces.jaxp.JAXPConstants",
+ "org.openecomp.mso.properties.MsoPropertiesParameters$MsoPropertiesType",
+ "org.apache.xerces.impl.RevalidationHandler",
+ "org.apache.xerces.xni.parser.XMLParserConfiguration",
+ "org.apache.xerces.xni.XMLString",
+ "org.apache.xerces.impl.dv.DVFactoryException",
+ "org.apache.xerces.impl.dv.DatatypeException",
+ "org.apache.xerces.parsers.XML11Configurable",
+ "org.apache.xerces.util.AugmentationsImpl$LargeContainer",
+ "org.apache.xerces.impl.dtd.BalancedDTDGrammar",
+ "org.apache.xerces.parsers.XIncludeAwareParserConfiguration",
+ "org.apache.xerces.xni.XMLDTDHandler",
+ "org.apache.xerces.impl.dtd.XML11DTDProcessor",
+ "org.apache.xerces.parsers.XML11Configuration",
+ "org.apache.xerces.impl.dtd.XMLDTDValidatorFilter",
+ "org.apache.xerces.impl.xs.identity.FieldActivator",
+ "org.apache.xerces.impl.XMLEntityScanner$1",
+ "com.att.eelf.i18n.EELFResourceManager",
+ "org.apache.xerces.jaxp.SAXParserFactoryImpl",
+ "org.apache.xerces.xs.ElementPSVI",
+ "org.apache.xerces.parsers.AbstractSAXParser",
+ "org.apache.xerces.xni.parser.XMLDTDFilter",
+ "org.apache.xerces.xni.parser.XMLDTDContentModelSource",
+ "org.openecomp.mso.logger.MessageEnum",
+ "org.openecomp.mso.logger.MsoLogger$ResponseCode",
+ "org.openecomp.mso.properties.MsoJsonProperties",
+ "org.openecomp.mso.entity.MsoRequest",
+ "org.openecomp.mso.properties.MsoPropertyInitializer",
+ "org.openecomp.mso.logger.MsoLogger$StatusCode",
+ "org.apache.xerces.xni.XMLLocator",
+ "com.att.eelf.configuration.EELFManager",
+ "org.apache.xerces.impl.validation.EntityState",
+ "org.apache.xerces.impl.XMLEntityManager$ExternalEntity",
+ "org.apache.xerces.util.ParserConfigurationSettings",
+ "org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser",
+ "org.apache.xerces.xni.Augmentations",
+ "org.apache.xerces.impl.XMLEntityHandler",
+ "org.apache.xerces.impl.dv.ObjectFactory$ConfigurationError",
+ "org.apache.xerces.xni.parser.XMLComponent",
+ "com.att.eelf.i18n.EELFResourceManager$1",
+ "org.apache.xerces.impl.dtd.XML11DTDValidator",
+ "org.apache.xerces.impl.XMLEntityManager$ScannedEntity",
+ "org.apache.xerces.jaxp.JAXPValidatorComponent"
+ );
+ }
+
+ private static void resetClasses() {
+ org.evosuite.runtime.classhandling.ClassResetter.getInstance().setClassLoader(MsoPropertyInitializerESTestscaffolding.class.getClassLoader());
+
+ org.evosuite.runtime.classhandling.ClassStateSupport.resetClasses(
+ "com.att.eelf.i18n.EELFResourceManager",
+ "org.openecomp.mso.logger.MessageEnum",
+ "org.openecomp.mso.logger.MsoLogger$Catalog",
+ "org.openecomp.mso.logger.MsoLogger$ErrorCode",
+ "org.openecomp.mso.logger.MsoLogger",
+ "com.att.eelf.i18n.EELFMsgs",
+ "com.att.eelf.i18n.EELFResourceManager$RESOURCE_TYPES",
+ "org.apache.xerces.jaxp.SAXParserFactoryImpl",
+ "org.apache.xerces.jaxp.SAXParserImpl",
+ "org.apache.xerces.parsers.XMLParser",
+ "org.apache.xerces.parsers.AbstractSAXParser",
+ "org.apache.xerces.parsers.SAXParser",
+ "org.apache.xerces.parsers.ObjectFactory",
+ "org.apache.xerces.util.ParserConfigurationSettings",
+ "org.apache.xerces.parsers.XML11Configuration",
+ "org.apache.xerces.parsers.XIncludeAwareParserConfiguration",
+ "org.apache.xerces.util.SymbolTable",
+ "org.apache.xerces.impl.XMLEntityManager",
+ "org.apache.xerces.util.AugmentationsImpl$SmallContainer",
+ "org.apache.xerces.impl.XMLEntityManager$ByteBufferPool",
+ "org.apache.xerces.impl.XMLEntityManager$CharacterBufferPool",
+ "org.apache.xerces.impl.XMLEntityScanner$1",
+ "org.apache.xerces.impl.XMLEntityScanner",
+ "org.apache.xerces.impl.XMLErrorReporter",
+ "org.apache.xerces.impl.XMLScanner",
+ "org.apache.xerces.impl.XMLDocumentFragmentScannerImpl",
+ "org.apache.xerces.impl.XMLDocumentScannerImpl",
+ "org.apache.xerces.util.XMLStringBuffer",
+ "org.apache.xerces.util.XMLAttributesImpl",
+ "org.apache.xerces.impl.XMLDTDScannerImpl",
+ "org.apache.xerces.impl.dtd.XMLDTDProcessor",
+ "org.apache.xerces.impl.dtd.XMLDTDValidator",
+ "org.apache.xerces.impl.validation.ValidationState",
+ "org.apache.xerces.impl.dtd.XMLElementDecl",
+ "org.apache.xerces.impl.dtd.XMLSimpleType",
+ "org.apache.xerces.impl.dv.DTDDVFactory",
+ "org.apache.xerces.impl.dv.ObjectFactory",
+ "org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl",
+ "org.apache.xerces.impl.XMLVersionDetector",
+ "org.apache.xerces.impl.msg.XMLMessageFormatter",
+ "org.apache.xerces.impl.io.UTF8Reader",
+ "org.apache.xerces.util.XMLSymbols",
+ "org.apache.xerces.xni.NamespaceContext",
+ "org.apache.xerces.util.XMLChar",
+ "org.apache.xerces.impl.Constants",
+ "com.att.eelf.configuration.EELFLogger$Level",
+ "com.att.eelf.configuration.EELFManager",
+ "org.openecomp.mso.properties.MsoPropertiesFactory"
+ );
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/utils/CheckResultsESTest.java b/common/src/test/java/org/openecomp/mso/utils/CheckResultsESTest.java
new file mode 100644
index 0000000000..212fe95407
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/utils/CheckResultsESTest.java
@@ -0,0 +1,124 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 08:02:57 GMT 2016
+ */
+
+package org.openecomp.mso.utils;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+import java.util.List;
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.evosuite.runtime.PrivateAccess;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class CheckResultsESTest extends CheckResultsESTestscaffolding {
+
+ @Test(timeout = 4000)
+ public void test00() throws Throwable {
+ CheckResults checkResults0 = new CheckResults();
+ checkResults0.addHostCheckResult("GP<QUZyf\"vf-sD", (-1), "");
+ }
+
+ @Test(timeout = 4000)
+ public void test01() throws Throwable {
+ CheckResults checkResults0 = new CheckResults();
+ PrivateAccess.setVariable((Class<CheckResults>) CheckResults.class, checkResults0, "results", (Object) null);
+ List<CheckResults.CheckResult> list0 = checkResults0.getResults();
+ assertNull(list0);
+ }
+
+ @Test(timeout = 4000)
+ public void test02() throws Throwable {
+ CheckResults.CheckResult checkResults_CheckResult0 = new CheckResults.CheckResult();
+ checkResults_CheckResult0.setOutput("xp");
+ assertEquals(0, checkResults_CheckResult0.getState());
+ }
+
+ @Test(timeout = 4000)
+ public void test03() throws Throwable {
+ CheckResults.CheckResult checkResults_CheckResult0 = new CheckResults.CheckResult();
+ checkResults_CheckResult0.setType("2");
+ assertEquals(0, checkResults_CheckResult0.getState());
+ }
+
+ @Test(timeout = 4000)
+ public void test04() throws Throwable {
+ CheckResults.CheckResult checkResults_CheckResult0 = new CheckResults.CheckResult();
+ checkResults_CheckResult0.setState(1);
+ assertEquals(1, checkResults_CheckResult0.getState());
+ }
+
+ @Test(timeout = 4000)
+ public void test05() throws Throwable {
+ CheckResults.CheckResult checkResults_CheckResult0 = new CheckResults.CheckResult();
+ checkResults_CheckResult0.setServicename("9~");
+ assertEquals(0, checkResults_CheckResult0.getState());
+ }
+
+ @Test(timeout = 4000)
+ public void test06() throws Throwable {
+ CheckResults.CheckResult checkResults_CheckResult0 = new CheckResults.CheckResult();
+ checkResults_CheckResult0.setHostname((String) null);
+ assertNull(checkResults_CheckResult0.getServicename());
+ }
+
+ @Test(timeout = 4000)
+ public void test07() throws Throwable {
+ CheckResults checkResults0 = new CheckResults();
+ checkResults0.addHostCheckResult("GP<QUZyf\"vf-sD", 0, "GP<QUZyf\"vf-sD");
+ List<CheckResults.CheckResult> list0 = checkResults0.getResults();
+ assertEquals(1, list0.size());
+ }
+
+ @Test(timeout = 4000)
+ public void test08() throws Throwable {
+ CheckResults checkResults0 = new CheckResults();
+ List<CheckResults.CheckResult> list0 = checkResults0.getResults();
+ assertTrue(list0.isEmpty());
+ }
+
+ @Test(timeout = 4000)
+ public void test09() throws Throwable {
+ CheckResults.CheckResult checkResults_CheckResult0 = new CheckResults.CheckResult();
+ String string0 = checkResults_CheckResult0.getServicename();
+ assertNull(string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test10() throws Throwable {
+ CheckResults.CheckResult checkResults_CheckResult0 = new CheckResults.CheckResult();
+ int int0 = checkResults_CheckResult0.getState();
+ assertEquals(0, int0);
+ }
+
+ @Test(timeout = 4000)
+ public void test11() throws Throwable {
+ CheckResults.CheckResult checkResults_CheckResult0 = new CheckResults.CheckResult();
+ String string0 = checkResults_CheckResult0.getHostname();
+ assertNull(string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test12() throws Throwable {
+ CheckResults.CheckResult checkResults_CheckResult0 = new CheckResults.CheckResult();
+ String string0 = checkResults_CheckResult0.getType();
+ assertNull(string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test13() throws Throwable {
+ CheckResults checkResults0 = new CheckResults();
+ checkResults0.addServiceCheckResult("", "Ifp73+/", 0, " ");
+ }
+
+ @Test(timeout = 4000)
+ public void test14() throws Throwable {
+ CheckResults.CheckResult checkResults_CheckResult0 = new CheckResults.CheckResult();
+ String string0 = checkResults_CheckResult0.getOutput();
+ assertNull(string0);
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/utils/CheckResultsESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/utils/CheckResultsESTestscaffolding.java
new file mode 100644
index 0000000000..a4fea268c1
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/utils/CheckResultsESTestscaffolding.java
@@ -0,0 +1,79 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 08:02:57 GMT 2016
+ */
+
+package org.openecomp.mso.utils;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+@EvoSuiteClassExclude
+public class CheckResultsESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.utils.CheckResults";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(CheckResultsESTestscaffolding.class.getClassLoader() ,
+ "org.openecomp.mso.utils.CheckResults$CheckResult",
+ "org.openecomp.mso.utils.CheckResults"
+ );
+ }
+
+ private static void resetClasses() {
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/utils/CheckResultsTest.java b/common/src/test/java/org/openecomp/mso/utils/CheckResultsTest.java
new file mode 100644
index 0000000000..e178e4cf9c
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/utils/CheckResultsTest.java
@@ -0,0 +1,56 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.mso.utils;
+
+import java.util.List;
+
+import org.junit.Test;
+
+import org.openecomp.mso.utils.CheckResults.CheckResult;
+
+public class CheckResultsTest {
+
+ /**
+ * Test method for {@link org.openecomp.mso.utils.CheckResults#getResults()}.
+ */
+ @Test
+ public final void testGetResults () {
+ CheckResults cr = new CheckResults ();
+ cr.addHostCheckResult ("host1", 0, "output");
+ cr.addHostCheckResult ("host2", 2, "output2");
+ cr.addServiceCheckResult ("host1", "service1", 0, "outputServ");
+ cr.addServiceCheckResult ("host1", "service2", 2, "outputServ2");
+ cr.addServiceCheckResult ("host2", "service1", 0, "output2Serv");
+ cr.addServiceCheckResult ("host2", "service2", 2, "output2Serv2");
+ List <CheckResult> res = cr.getResults ();
+ assert(res.size () == 6);
+ assert(res.get (0).getHostname ().equals ("host1"));
+ assert(res.get (1).getHostname ().equals ("host2"));
+ assert(res.get (2).getHostname ().equals ("host1"));
+ assert(res.get (3).getHostname ().equals ("host1"));
+ assert(res.get (4).getHostname ().equals ("host2"));
+ assert(res.get (5).getHostname ().equals ("host2"));
+ assert(res.get (0).getServicename () == null);
+ assert(res.get (3).getServicename ().equals ("service2"));
+ assert(res.get (5).getState () == 2);
+ }
+
+}
diff --git a/common/src/test/java/org/openecomp/mso/utils/CryptoUtilsESTest.java b/common/src/test/java/org/openecomp/mso/utils/CryptoUtilsESTest.java
new file mode 100644
index 0000000000..397db374bb
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/utils/CryptoUtilsESTest.java
@@ -0,0 +1,175 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 09:07:10 GMT 2016
+ */
+
+package org.openecomp.mso.utils;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+import static org.evosuite.runtime.EvoAssertions.*;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.IllegalBlockSizeException;
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class CryptoUtilsESTest extends CryptoUtilsESTestscaffolding {
+
+ @Test(timeout = 4000)
+ public void test00() throws Throwable {
+ CryptoUtils.decrypt("E08682BE5F2B18A6E8437A15B110D418E08682BE5F2B18A6E8437A15B110D4180143DB63EE66B0CDFF9F69917680151E", "00000000000000000000000000000000");
+ }
+
+ @Test(timeout = 4000)
+ public void test01() throws Throwable {
+ byte[] byteArray0 = new byte[0];
+ CryptoUtils.byteArrayToHexString(byteArray0);
+ }
+
+ @Test(timeout = 4000)
+ public void test02() throws Throwable {
+ // Undeclared exception!
+ try {
+ CryptoUtils.encrypt("AES", "w^p&|^Cvs@K.@@");
+ fail("Expecting exception: NumberFormatException");
+
+ } catch(NumberFormatException e) {
+ //
+ // For input string: \"w^\"
+ //
+ verifyException("java.lang.NumberFormatException", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test03() throws Throwable {
+ // Undeclared exception!
+ try {
+ CryptoUtils.encrypt((String) null, "B2000000000000000000000000000000");
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.openecomp.mso.utils.CryptoUtils", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test04() throws Throwable {
+ try {
+ CryptoUtils.decrypt("B20000000000000000000000000000000000000000000000", "B20000000000000000000000000000000000000000000000");
+ fail("Expecting exception: IllegalBlockSizeException");
+
+ } catch(IllegalBlockSizeException e) {
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test05() throws Throwable {
+ try {
+ CryptoUtils.decrypt("0000C200000000000000000000000000", "0000C200000000000000000000000000");
+ fail("Expecting exception: BadPaddingException");
+
+ } catch(BadPaddingException e) {
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test06() throws Throwable {
+ // Undeclared exception!
+ try {
+ CryptoUtils.decrypt("s.", "s.");
+ fail("Expecting exception: NumberFormatException");
+
+ } catch(NumberFormatException e) {
+ //
+ // For input string: \"s.\"
+ //
+ verifyException("java.lang.NumberFormatException", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test07() throws Throwable {
+ // Undeclared exception!
+ try {
+ CryptoUtils.decrypt("", "");
+ fail("Expecting exception: IllegalArgumentException");
+
+ } catch(IllegalArgumentException e) {
+ //
+ // Empty key
+ //
+ verifyException("javax.crypto.spec.SecretKeySpec", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test08() throws Throwable {
+ // Undeclared exception!
+ try {
+ CryptoUtils.byteArrayToHexString((byte[]) null);
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.openecomp.mso.utils.CryptoUtils", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test09() throws Throwable {
+ byte[] byteArray0 = new byte[16];
+ byteArray0[0] = (byte) (-78);
+ String string0 = CryptoUtils.byteArrayToHexString(byteArray0);
+ assertEquals("B2000000000000000000000000000000", string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test10() throws Throwable {
+ String string0 = CryptoUtils.encrypt("00000000000000000000000000000000", "00000000000000000000000000000000");
+ assertEquals("E08682BE5F2B18A6E8437A15B110D418E08682BE5F2B18A6E8437A15B110D4180143DB63EE66B0CDFF9F69917680151E", string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test11() throws Throwable {
+ // Undeclared exception!
+ try {
+ CryptoUtils.encrypt("", "");
+ fail("Expecting exception: IllegalArgumentException");
+
+ } catch(IllegalArgumentException e) {
+ //
+ // Empty key
+ //
+ verifyException("javax.crypto.spec.SecretKeySpec", e);
+ }
+ }
+
+ @Test(timeout = 4000)
+ public void test12() throws Throwable {
+ CryptoUtils cryptoUtils0 = new CryptoUtils();
+ }
+
+ @Test(timeout = 4000)
+ public void test13() throws Throwable {
+ // Undeclared exception!
+ try {
+ CryptoUtils.decrypt((String) null, "00000000000000000000000000000000");
+ fail("Expecting exception: NullPointerException");
+
+ } catch(NullPointerException e) {
+ //
+ // no message in exception (getMessage() returned null)
+ //
+ verifyException("org.openecomp.mso.utils.CryptoUtils", e);
+ }
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/utils/CryptoUtilsESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/utils/CryptoUtilsESTestscaffolding.java
new file mode 100644
index 0000000000..09574153c7
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/utils/CryptoUtilsESTestscaffolding.java
@@ -0,0 +1,83 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 09:07:10 GMT 2016
+ */
+
+package org.openecomp.mso.utils;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+@EvoSuiteClassExclude
+public class CryptoUtilsESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.utils.CryptoUtils";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(CryptoUtilsESTestscaffolding.class.getClassLoader() ,
+ "org.openecomp.mso.utils.CryptoUtils"
+ );
+ }
+
+ private static void resetClasses() {
+ org.evosuite.runtime.classhandling.ClassResetter.getInstance().setClassLoader(CryptoUtilsESTestscaffolding.class.getClassLoader());
+
+ org.evosuite.runtime.classhandling.ClassStateSupport.resetClasses(
+ "org.openecomp.mso.utils.CryptoUtils"
+ );
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/utils/UUIDCheckerESTest.java b/common/src/test/java/org/openecomp/mso/utils/UUIDCheckerESTest.java
new file mode 100644
index 0000000000..fa8517e3db
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/utils/UUIDCheckerESTest.java
@@ -0,0 +1,34 @@
+/*
+ * This file was automatically generated by EvoSuite
+ * Mon Nov 14 08:02:03 GMT 2016
+ */
+
+package org.openecomp.mso.utils;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+import static org.evosuite.shaded.org.mockito.Mockito.*;
+
+import org.openecomp.mso.logger.MsoLogger;
+import org.evosuite.runtime.EvoRunner;
+import org.evosuite.runtime.EvoRunnerParameters;
+import org.evosuite.runtime.PrivateAccess;
+import org.evosuite.runtime.ViolatedAssumptionAnswer;
+import org.junit.runner.RunWith;
+
+@RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, useJEE = true)
+public class UUIDCheckerESTest extends UUIDCheckerESTestscaffolding {
+
+ @Test(timeout = 4000)
+ public void test0() throws Throwable {
+ MsoLogger msoLogger0 = mock(MsoLogger.class, new ViolatedAssumptionAnswer());
+ String string0 = UUIDChecker.generateServiceInstanceID(msoLogger0);
+ assertEquals("00000000-0100-4000-8200-000003000000", string0);
+ }
+
+ @Test(timeout = 4000)
+ public void test1() throws Throwable {
+ UUIDChecker uUIDChecker0 = (UUIDChecker)PrivateAccess.callDefaultConstructorOfTheClassUnderTest();
+ assertNotNull(uUIDChecker0);
+ }
+}
diff --git a/common/src/test/java/org/openecomp/mso/utils/UUIDCheckerESTestscaffolding.java b/common/src/test/java/org/openecomp/mso/utils/UUIDCheckerESTestscaffolding.java
new file mode 100644
index 0000000000..15397cb165
--- /dev/null
+++ b/common/src/test/java/org/openecomp/mso/utils/UUIDCheckerESTestscaffolding.java
@@ -0,0 +1,94 @@
+/**
+ * Scaffolding file used to store all the setups needed to run
+ * tests automatically generated by EvoSuite
+ * Mon Nov 14 08:02:03 GMT 2016
+ */
+
+package org.openecomp.mso.utils;
+
+import org.evosuite.runtime.annotation.EvoSuiteClassExclude;
+import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.evosuite.runtime.sandbox.Sandbox;
+
+@EvoSuiteClassExclude
+public class UUIDCheckerESTestscaffolding {
+
+ @org.junit.Rule
+ public org.evosuite.runtime.vnet.NonFunctionalRequirementRule nfr = new org.evosuite.runtime.vnet.NonFunctionalRequirementRule();
+
+ private static final java.util.Properties defaultProperties = (java.util.Properties) java.lang.System.getProperties().clone();
+
+ private org.evosuite.runtime.thread.ThreadStopper threadStopper = new org.evosuite.runtime.thread.ThreadStopper (org.evosuite.runtime.thread.KillSwitchHandler.getInstance(), 3000);
+
+ @BeforeClass
+ public static void initEvoSuiteFramework() {
+ org.evosuite.runtime.RuntimeSettings.className = "org.openecomp.mso.utils.UUIDChecker";
+ org.evosuite.runtime.GuiSupport.initialize();
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfThreads = 100;
+ org.evosuite.runtime.RuntimeSettings.maxNumberOfIterationsPerLoop = 10000;
+ org.evosuite.runtime.RuntimeSettings.mockSystemIn = true;
+ org.evosuite.runtime.RuntimeSettings.sandboxMode = org.evosuite.runtime.sandbox.Sandbox.SandboxMode.RECOMMENDED;
+ org.evosuite.runtime.sandbox.Sandbox.initializeSecurityManagerForSUT();
+ org.evosuite.runtime.classhandling.JDKClassResetter.init();
+ initializeClasses();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ }
+
+ @AfterClass
+ public static void clearEvoSuiteFramework(){
+ Sandbox.resetDefaultSecurityManager();
+ java.lang.System.setProperties((java.util.Properties) defaultProperties.clone());
+ }
+
+ @Before
+ public void initTestCase(){
+ threadStopper.storeCurrentThreads();
+ threadStopper.startRecordingTime();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().initHandler();
+ org.evosuite.runtime.sandbox.Sandbox.goingToExecuteSUTCode();
+
+ org.evosuite.runtime.GuiSupport.setHeadless();
+ org.evosuite.runtime.Runtime.getInstance().resetRuntime();
+ org.evosuite.runtime.agent.InstrumentingAgent.activate();
+ }
+
+ @After
+ public void doneWithTestCase(){
+ threadStopper.killAndJoinClientThreads();
+ org.evosuite.runtime.jvm.ShutdownHookHandler.getInstance().safeExecuteAddedHooks();
+ org.evosuite.runtime.classhandling.JDKClassResetter.reset();
+ resetClasses();
+ org.evosuite.runtime.sandbox.Sandbox.doneWithExecutingSUTCode();
+ org.evosuite.runtime.agent.InstrumentingAgent.deactivate();
+ org.evosuite.runtime.GuiSupport.restoreHeadlessMode();
+ }
+
+
+ private static void initializeClasses() {
+ org.evosuite.runtime.classhandling.ClassStateSupport.initializeClasses(UUIDCheckerESTestscaffolding.class.getClassLoader() ,
+ "org.openecomp.mso.logger.MsoLogger",
+ "org.openecomp.mso.logger.MessageEnum",
+ "com.att.eelf.i18n.EELFResolvableErrorEnum",
+ "org.openecomp.mso.logger.MsoLogger$ResponseCode",
+ "org.openecomp.mso.logger.MsoLogger$Catalog",
+ "org.openecomp.mso.entity.MsoRequest",
+ "org.openecomp.mso.logger.MsoLogger$StatusCode",
+ "com.att.eelf.i18n.EELFResourceManager",
+ "org.openecomp.mso.logger.MsoLogger$ErrorCode",
+ "org.openecomp.mso.utils.UUIDChecker"
+ );
+ }
+
+ private static void resetClasses() {
+ org.evosuite.runtime.classhandling.ClassResetter.getInstance().setClassLoader(UUIDCheckerESTestscaffolding.class.getClassLoader());
+
+ org.evosuite.runtime.classhandling.ClassStateSupport.resetClasses(
+ "com.att.eelf.i18n.EELFResourceManager",
+ "org.openecomp.mso.logger.MessageEnum",
+ "org.openecomp.mso.logger.MsoLogger"
+ );
+ }
+}
diff --git a/common/src/test/resources/logback-test.xml b/common/src/test/resources/logback-test.xml
new file mode 100644
index 0000000000..b1888ac986
--- /dev/null
+++ b/common/src/test/resources/logback-test.xml
@@ -0,0 +1,171 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP MSO
+ ================================================================================
+ Copyright (C) 2017 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=========================================================
+ -->
+
+<configuration scan="false" debug="true">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="./target" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="./target" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="MSO"></property>
+ <property name="subComponentName" value="Test"></property>
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+ <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
+
+ <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+ <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+
+
+ <!-- Example evaluator filter applied against console appender -->
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>500</queueSize>
+ <discardingThreshold>0</discardingThreshold>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+<appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${metricPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>500</queueSize>
+ <discardingThreshold>0</discardingThreshold>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>500</queueSize>
+ <discardingThreshold>0</discardingThreshold>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>500</queueSize>
+ <discardingThreshold>0</discardingThreshold>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="asyncEELFDebug" />
+ </root>
+
+</configuration>
diff --git a/common/src/test/resources/mso-bad.json b/common/src/test/resources/mso-bad.json
new file mode 100644
index 0000000000..9c3d26b4eb
--- /dev/null
+++ b/common/src/test/resources/mso-bad.json
@@ -0,0 +1,40 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
+
+{
+ "asdc-connections":{,
+ "asdc-controller1":{
+ "asdcUser": "user1",
+ "asdcConsumerGroup": "consumer1",
+ "asdcConsumerId": "consumer1",
+ "asdcEnvironmentName": "PROD",
+ "asdcAddress": "localhost:8443",
+ "asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
+ },
+ "asdc-controller2":{
+ "asdcUser": "user2",
+ "asdcConsumerGroup": "consumer2",
+ "asdcConsumerId": "consumer2",
+ "asdcEnvironmentName": "E2E",
+ "asdcAddress": "localhost:8443",
+ "asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
+ }
+ }
+}
diff --git a/common/src/test/resources/mso.json b/common/src/test/resources/mso.json
new file mode 100644
index 0000000000..e8ee4a9185
--- /dev/null
+++ b/common/src/test/resources/mso.json
@@ -0,0 +1,21 @@
+{
+ "asdc-connections":{
+ "asdc-controller1":{
+ "asdcUser": "user1",
+ "asdcConsumerGroup": "consumer1",
+ "asdcConsumerId": "consumer1",
+ "asdcEnvironmentName": "PROD",
+ "asdcAddress": "localhost:8443",
+ "asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
+ },
+ "asdc-controller2":{
+ "asdcUser": "user2",
+ "asdcConsumerGroup": "consumer2",
+ "asdcConsumerId": "consumer2",
+ "asdcEnvironmentName": "E2E",
+ "asdcAddress": "localhost:8443",
+ "asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
+ }
+ },
+ "mso.properties.reload.time.minutes":2
+}
diff --git a/common/src/test/resources/mso.nrdp-alarms.properties b/common/src/test/resources/mso.nrdp-alarms.properties
new file mode 100644
index 0000000000..8e7f8ed19e
--- /dev/null
+++ b/common/src/test/resources/mso.nrdp-alarms.properties
@@ -0,0 +1,23 @@
+###
+# ============LICENSE_START=======================================================
+# ECOMP MSO
+# ================================================================================
+# Copyright (C) 2017 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=========================================================
+###
+
+mso.alarms.nrdp.enabled=false
+mso.alarms.nrdp.url=http://localhost:80
+mso.alarms.nrdp.token=83c9bb2734dd1a003e440128aa82f10c
diff --git a/common/src/test/resources/mso.properties b/common/src/test/resources/mso.properties
new file mode 100644
index 0000000000..bb0e4ebf0d
--- /dev/null
+++ b/common/src/test/resources/mso.properties
@@ -0,0 +1,28 @@
+###
+# ============LICENSE_START=======================================================
+# ECOMP MSO
+# ================================================================================
+# Copyright (C) 2017 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=========================================================
+###
+
+mso.properties.reload.time.minutes=2
+ecomp.mso.cloud.1.cloudId=MT
+ecomp.mso.cloud.1.keystoneUrl=http://localhost:5000/v2.0
+ecomp.mso.cloud.1.msoId=John
+ecomp.mso.cloud.1.publicNetId=FD205490A48D48475607C36B9AD902BF
+ecomp.mso.cloud.1.test=1234
+ecomp.mso.cloud.1.boolean=true
+ecomp.mso.cloud.1.enum=enum1
diff --git a/common/src/test/resources/mso2.json b/common/src/test/resources/mso2.json
new file mode 100644
index 0000000000..006fda9ac4
--- /dev/null
+++ b/common/src/test/resources/mso2.json
@@ -0,0 +1,41 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
+
+{
+ "asdc-connections":{
+ "asdc-controller1":{
+ "asdcUser": "user1B",
+ "asdcConsumerGroup": "consumer1",
+ "asdcConsumerId": "consumer1",
+ "asdcEnvironmentName": "PROD",
+ "asdcAddress": "localhost:8443",
+ "asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
+ },
+ "asdc-controller2":{
+ "asdcUser": "user2B",
+ "asdcConsumerGroup": "consumer2",
+ "asdcConsumerId": "consumer2",
+ "asdcEnvironmentName": "E2E",
+ "asdcAddress": "localhost:8443",
+ "asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
+ }
+ }
+
+}
diff --git a/common/src/test/resources/mso2.properties b/common/src/test/resources/mso2.properties
new file mode 100644
index 0000000000..423346e953
--- /dev/null
+++ b/common/src/test/resources/mso2.properties
@@ -0,0 +1,22 @@
+###
+# ============LICENSE_START=======================================================
+# ECOMP MSO
+# ================================================================================
+# Copyright (C) 2017 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=========================================================
+###
+
+mso.properties.reload.time.minutes=1
+ecomp.mso.cloud.1.cloudId=MT2