1 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NorthMessageMgr.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">vfc-nfvo-driver-ems-ems-boco</a> > <a href="index.source.html" class="el_package">org.onap.vfc.nfvo.emsdriver.northbound.client</a> > <span class="el_source">NorthMessageMgr.java</span></div><h1>NorthMessageMgr.java</h1><pre class="source lang-java linenums">/**
 
   2  * Copyright 2017 BOCO Corporation.  CMCC Technologies Co., Ltd
 
   4  * Licensed under the Apache License, Version 2.0 (the "License");
 
   5  * you may not use this file except in compliance with the License.
 
   6  * You may obtain a copy of the License at
 
   8  *     http://www.apache.org/licenses/LICENSE-2.0
 
  10  * Unless required by applicable law or agreed to in writing, software
 
  11  * distributed under the License is distributed on an "AS IS" BASIS,
 
  12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  13  * See the License for the specific language governing permissions and
 
  14  * limitations under the License.
 
  16 package org.onap.vfc.nfvo.emsdriver.northbound.client;
 
  18 import java.text.ParseException;
 
  19 import java.text.SimpleDateFormat;
 
  20 import java.util.Date;
 
  22 import java.util.Properties;
 
  24 import org.apache.log4j.Level;
 
  25 import org.onap.vfc.nfvo.emsdriver.commons.constant.Constant;
 
  26 import org.onap.vfc.nfvo.emsdriver.commons.utils.DriverThread;
 
  27 import org.onap.vfc.nfvo.emsdriver.configmgr.ConfigurationInterface;
 
  28 import org.onap.vfc.nfvo.emsdriver.messagemgr.MessageChannel;
 
  29 import org.onap.vfc.nfvo.emsdriver.messagemgr.MessageChannelFactory;
 
  31 import com.alibaba.fastjson.JSONObject;
 
  33 import evel_javalibrary.att.com.AgentMain;
 
  34 import evel_javalibrary.att.com.AgentMain.EVEL_ERR_CODES;
 
  35 import evel_javalibrary.att.com.EvelFault;
 
  36 import evel_javalibrary.att.com.EvelFault.EVEL_SEVERITIES;
 
  37 import evel_javalibrary.att.com.EvelFault.EVEL_SOURCE_TYPES;
 
  38 import evel_javalibrary.att.com.EvelFault.EVEL_VF_STATUSES;
 
  39 import evel_javalibrary.att.com.EvelHeader;
 
  40 import evel_javalibrary.att.com.EvelScalingMeasurement;
 
  42 <span class="nc" id="L42">public class NorthMessageMgr extends DriverThread{</span>
 
  44 <span class="nc" id="L44">      private MessageChannel alarmChannel = MessageChannelFactory.getMessageChannel(Constant.RESULT_CHANNEL_KEY);</span>
 
  45 <span class="nc" id="L45">      private MessageChannel collectResultPMChannel = MessageChannelFactory.getMessageChannel(Constant.COLLECT_RESULT_PM_CHANNEL_KEY);</span>
 
  46 <span class="nc" id="L46">      private MessageChannel collectResultChannel = MessageChannelFactory.getMessageChannel(Constant.COLLECT_RESULT_CHANNEL_KEY);</span>
 
  47         private ConfigurationInterface configurationInterface ;
 
  49 <span class="nc" id="L49">      private boolean threadStop = false;</span>
 
  50 <span class="nc" id="L50">      private Level level = Level.DEBUG;</span>
 
  53         public void dispose() {
 
  54 <span class="nc" id="L54">              log.info("NorthMessageMgr Thread start threadStop="+threadStop);</span>
 
  56 <span class="nc" id="L56">                      Properties properties = configurationInterface.getProperties();</span>
 
  57 <span class="nc" id="L57">                      String event_api_url = properties.getProperty("event_api_url");</span>
 
  58 <span class="nc" id="L58">                      String port = properties.getProperty("port");</span>
 
  59 <span class="nc" id="L59">                      String path = properties.getProperty("path");</span>
 
  60 <span class="nc" id="L60">                      String topic = properties.getProperty("topic");</span>
 
  61 <span class="nc" id="L61">                      String username = properties.getProperty("username");</span>
 
  62 <span class="nc" id="L62">                      String password = properties.getProperty("password");</span>
 
  63 <span class="nc" id="L63">                      String levelStr = properties.getProperty("level");</span>
 
  64 <span class="nc bnc" id="L64" title="All 2 branches missed.">                   if("debug".equals(levelStr)){</span>
 
  65 <span class="nc" id="L65">                              level = Level.DEBUG;</span>
 
  67 <span class="nc" id="L67">                              level = Level.INFO;</span>
 
  71 <span class="nc" id="L71">                      event_api_url = "http://"+event_api_url;</span>
 
  72 <span class="nc" id="L72">                      log.info("AgentMain.evel_initialize start event_api_url=["+event_api_url+"]port=["+port+"]path=["+path+"]"</span>
 
  73                                         + "topic=["+topic+"]username=["+username+"]password=["+password+"]level=["+level+"]");
 
  75 <span class="nc" id="L75">                              EVEL_ERR_CODES evecode = AgentMain.evel_initialize(event_api_url, Integer.parseInt(port),</span>
 
  80 <span class="nc" id="L80">                              log.info("AgentMain.evel_initialize sucess EVEL_ERR_CODES="+evecode);</span>
 
  81 <span class="nc" id="L81">                      } catch( Exception e ){</span>
 
  82 <span class="nc" id="L82">                              log.error("AgentMain.evel_initialize fail ",e);</span>
 
  83 <span class="nc" id="L83">                      }catch( Error e1 ){</span>
 
  84 <span class="nc" id="L84">                              log.error("AgentMain.evel_initialize Error ",e1);</span>
 
  85 <span class="nc" id="L85">                      }</span>
 
  86 <span class="nc" id="L86">              } catch (Exception e2) {</span>
 
  87 <span class="nc" id="L87">                      log.error("NorthMessageMgr start fail ",e2);</span>
 
  88 <span class="nc" id="L88">              }</span>
 
  90 <span class="nc" id="L90">              new HeatBeatTread().start();</span>
 
  92 <span class="nc" id="L92">              new AlarmMessageRecv().start();</span>
 
  94 <span class="nc" id="L94">              new ResultMessageRecv().start();</span>
 
  96 <span class="nc" id="L96">              new CollectMessageRecv().start();</span>
 
  98 <span class="nc" id="L98">              log.info("NorthMessageMgr start sucess ");</span>
 
  99 <span class="nc" id="L99">      }</span>
 
 102 <span class="nc" id="L102">     class HeatBeatTread extends Thread{</span>
 
 106 <span class="nc bnc" id="L106" title="All 2 branches missed.">                  while(!threadStop){</span>
 
 109 <span class="nc" id="L109">                                     EvelHeader header  = EvelHeader.evel_new_heartbeat("Hearbeat_EMS","EMS-driver");</span>
 
 110 <span class="nc" id="L110">                         header.evel_nfnamingcode_set("EMS-driver");</span>
 
 111 <span class="nc" id="L111">                         header.evel_nfcnamingcode_set("EMS-driver");</span>
 
 112 <span class="nc" id="L112">                         AgentMain.evel_post_event(header);</span>
 
 113 <span class="nc" id="L113">                         log.info("HeatBeat send!");</span>
 
 115 <span class="nc" id="L115">                             Thread.sleep(60*1000);</span>
 
 116 <span class="nc" id="L116">                         } catch( Exception e ){</span>
 
 117 <span class="nc" id="L117">                              e.printStackTrace();</span>
 
 118 <span class="nc" id="L118">                         }</span>
 
 119 <span class="nc" id="L119">                             } catch (Exception e) {</span>
 
 120 <span class="nc" id="L120">                                     log.error("HeatBeatTread exception",e);</span>
 
 121 <span class="nc" id="L121">                             }</span>
 
 123 <span class="nc" id="L123">             }</span>
 
 126 <span class="nc" id="L126">     class AlarmMessageRecv extends Thread{</span>
 
 127 <span class="nc" id="L127">             long timeStamp = System.currentTimeMillis();</span>
 
 130 <span class="nc bnc" id="L130" title="All 2 branches missed.">                  while(!threadStop){</span>
 
 133 <span class="nc bnc" id="L133" title="All 2 branches missed.">                                  if(System.currentTimeMillis() - timeStamp > Constant.ONEMINUTE){</span>
 
 134 <span class="nc" id="L134">                                             timeStamp = System.currentTimeMillis();</span>
 
 136 <span class="nc" id="L136">                                             log.info("ALARM_CHANNEL Msg size :"+alarmChannel.size());</span>
 
 139 <span class="nc" id="L139">                                     Object obj = alarmChannel.poll();</span>
 
 140 <span class="nc bnc" id="L140" title="All 2 branches missed.">                                  if(obj == null){</span>
 
 141 <span class="nc" id="L141">                                             continue;</span>
 
 143 <span class="nc bnc" id="L143" title="All 2 branches missed.">                                  if(obj instanceof String){</span>
 
 144 <span class="nc" id="L144">                                             String result = (String)obj;</span>
 
 145 <span class="nc" id="L145">                                             JSONObject reagobj = JSONObject.parseObject(result);</span>
 
 147 <span class="nc" id="L147">                                             EvelFault evelFault = this.resultEvelFault(reagobj);</span>
 
 150 <span class="nc" id="L150">                                             log.info("AgentMain.evel_post_event alarm start");</span>
 
 151 <span class="nc" id="L151">                                             AgentMain.evel_post_event(evelFault);</span>
 
 152 <span class="nc" id="L152">                                             log.info("AgentMain.evel_post_event alarm sucess");</span>
 
 153 <span class="nc" id="L153">                                     }else{</span>
 
 154 <span class="nc" id="L154">                                             log.error("AlarmMessageRecv receive Object = "+obj);</span>
 
 157 <span class="nc" id="L157">                             } catch (Exception e) {</span>
 
 158 <span class="nc" id="L158">                                     log.error("AlarmMessageRecv exception",e);</span>
 
 159 <span class="nc" id="L159">                             }</span>
 
 161 <span class="nc" id="L161">             }</span>
 
 163                 private EvelFault resultEvelFault(JSONObject reagobj) {
 
 165 <span class="nc" id="L165">                     String eventName = null;</span>
 
 166 <span class="nc" id="L166">                     EvelHeader.PRIORITIES pri = null;</span>
 
 167 <span class="nc" id="L167">                     EVEL_SEVERITIES severity = null;</span>
 
 168 <span class="nc" id="L168">                     EVEL_VF_STATUSES status = null;</span>
 
 169 <span class="nc" id="L169">                     String alarmStatus = reagobj.getString("alarmStatus");</span>
 
 170 <span class="nc" id="L170">                     String origSeverity = reagobj.getString("origSeverity");</span>
 
 171 <span class="nc bnc" id="L171" title="All 2 branches missed.">                  if("0".equals(alarmStatus)){</span>
 
 172 <span class="nc" id="L172">                             status = EVEL_VF_STATUSES.EVEL_VF_STATUS_IDLE;</span>
 
 173 <span class="nc" id="L173">                             eventName = "Fault_"+reagobj.getString("neType")+"_"+reagobj.getString("alarmTitle")+"Cleared";</span>
 
 175 <span class="nc bnc" id="L175" title="All 2 branches missed.">                          if("1".equals(origSeverity)){</span>
 
 176 <span class="nc" id="L176">                                     severity = EVEL_SEVERITIES.EVEL_SEVERITY_CRITICAL;</span>
 
 177 <span class="nc" id="L177">                                     pri = EvelHeader.PRIORITIES.EVEL_PRIORITY_HIGH;</span>
 
 178 <span class="nc bnc" id="L178" title="All 2 branches missed.">                          }else if("2".equals(origSeverity)){</span>
 
 179 <span class="nc" id="L179">                                     severity = EVEL_SEVERITIES.EVEL_SEVERITY_MAJOR;</span>
 
 180 <span class="nc" id="L180">                                     pri = EvelHeader.PRIORITIES.EVEL_PRIORITY_MEDIUM;</span>
 
 181 <span class="nc bnc" id="L181" title="All 2 branches missed.">                          }else if("3".equals(origSeverity)){</span>
 
 182 <span class="nc" id="L182">                                     severity = EVEL_SEVERITIES.EVEL_SEVERITY_MINOR;</span>
 
 183 <span class="nc" id="L183">                                     pri = EvelHeader.PRIORITIES.EVEL_PRIORITY_NORMAL;</span>
 
 184 <span class="nc bnc" id="L184" title="All 2 branches missed.">                          }else if("4".equals(origSeverity)){</span>
 
 185 <span class="nc" id="L185">                                     severity = EVEL_SEVERITIES.EVEL_SEVERITY_WARNING;</span>
 
 186 <span class="nc" id="L186">                                     pri = EvelHeader.PRIORITIES.EVEL_PRIORITY_LOW;</span>
 
 190 <span class="nc" id="L190">                             status = EVEL_VF_STATUSES.EVEL_VF_STATUS_ACTIVE;</span>
 
 191 <span class="nc" id="L191">                             eventName = "Fault_"+reagobj.getString("neType")+"_"+reagobj.getString("alarmTitle");</span>
 
 192 <span class="nc" id="L192">                             pri = EvelHeader.PRIORITIES.EVEL_PRIORITY_NORMAL;</span>
 
 193 <span class="nc" id="L193">                             severity = EVEL_SEVERITIES.EVEL_SEVERITY_NORMAL;</span>
 
 196 <span class="nc" id="L196">                     String evnId = reagobj.getString("alarmId");</span>
 
 197 <span class="nc" id="L197">                     String alarmCondition = reagobj.getString("specificProblem");</span>
 
 199 <span class="nc" id="L199">                     String specificProblem = reagobj.getString("specificProblem");</span>
 
 201 <span class="nc" id="L201">                     EvelFault flt  = new EvelFault(eventName, evnId,alarmCondition, </span>
 
 202                                         specificProblem,pri,severity,
 
 203                                         EVEL_SOURCE_TYPES.EVEL_SOURCE_VIRTUAL_NETWORK_FUNCTION,
 
 205 <span class="nc" id="L205">                      flt.evel_nfcnamingcode_set("");</span>
 
 206 <span class="nc" id="L206">                      flt.evel_nfnamingcode_set("");</span>
 
 207 <span class="nc" id="L207">                      flt.evel_header_type_set("applicationVnf");</span>
 
 208 <span class="nc" id="L208">                      String eventTime = reagobj.getString("eventTime");</span>
 
 209 <span class="nc" id="L209">                      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");</span>
 
 210 <span class="nc" id="L210">                      Date eventTimeD = new Date();</span>
 
 212 <span class="nc" id="L212">                             eventTimeD = format.parse(eventTime);</span>
 
 213 <span class="nc" id="L213">                      } catch (ParseException e) {</span>
 
 214                                 // TODO Auto-generated catch block
 
 215 <span class="nc" id="L215">                             e.printStackTrace();</span>
 
 216 <span class="nc" id="L216">                      }</span>
 
 217 <span class="nc" id="L217">                      flt.evel_start_epoch_set(eventTimeD.getTime());</span>
 
 218 <span class="nc" id="L218">                      flt.evel_last_epoch_set(eventTimeD.getTime());</span>
 
 220 <span class="nc" id="L220">                      flt.evel_fault_category_set(reagobj.getString("alarmType"));</span>
 
 221 <span class="nc" id="L221">                      flt.evel_fault_interface_set(reagobj.getString("objectName"));</span>
 
 222 <span class="nc" id="L222">                      String neUID = reagobj.getString("neUID");</span>
 
 223 <span class="nc" id="L223">                      flt.evel_reporting_entity_id_set(neUID.substring(0,9));//</span>
 
 224 <span class="nc" id="L224">                      flt.evel_reporting_entity_name_set(neUID.substring(0,9));</span>
 
 225 <span class="nc" id="L225">                      flt.evel_header_set_sourceid(true, reagobj.getString("neName"));</span>
 
 226 <span class="nc" id="L226">                      flt.evel_header_set_source_name(reagobj.getString("objectName"));</span>
 
 228 <span class="nc" id="L228">                      flt.evel_header_set_priority(pri);</span>
 
 229 <span class="nc bnc" id="L229" title="All 2 branches missed.">                   for(String key : reagobj.keySet()){</span>
 
 230 <span class="nc" id="L230">                              flt.evel_fault_addl_info_add(key, reagobj.getString(key));</span>
 
 231 <span class="nc" id="L231">                      }</span>
 
 233 <span class="nc" id="L233">             return flt;</span>
 
 237 <span class="nc" id="L237">     class ResultMessageRecv extends Thread{</span>
 
 238 <span class="nc" id="L238">             long timeStamp = System.currentTimeMillis();</span>
 
 241 <span class="nc bnc" id="L241" title="All 2 branches missed.">                  while(!threadStop){</span>
 
 244 <span class="nc bnc" id="L244" title="All 2 branches missed.">                                  if(System.currentTimeMillis() - timeStamp > Constant.ONEMINUTE){</span>
 
 245 <span class="nc" id="L245">                                             timeStamp = System.currentTimeMillis();</span>
 
 247 <span class="nc" id="L247">                                             log.debug("COLLECT_RESULT_CHANNEL Msg size :"+collectResultChannel.size());</span>
 
 250 <span class="nc" id="L250">                                     Object obj = collectResultChannel.poll();</span>
 
 251 <span class="nc bnc" id="L251" title="All 2 branches missed.">                                  if(obj == null){</span>
 
 252 <span class="nc" id="L252">                                             continue;</span>
 
 254 <span class="nc bnc" id="L254" title="All 2 branches missed.">                                  if(obj instanceof String){</span>
 
 256 <span class="nc" id="L256">                                             Properties properties = configurationInterface.getProperties();</span>
 
 257 <span class="nc" id="L257">                                             String msbAddress = properties.getProperty("msbAddress");</span>
 
 258 <span class="nc" id="L258">                                             String url = properties.getProperty("dataNotifyUrl");</span>
 
 259 <span class="nc" id="L259">                                             String postUrl = "http://"+msbAddress+url;</span>
 
 260 <span class="nc" id="L260">                                             HttpClientUtil.doPost(postUrl, (String)obj, Constant.ENCODING_UTF8);</span>
 
 263 <span class="nc" id="L263">                             } catch (Exception e) {</span>
 
 264 <span class="nc" id="L264">                                     log.error("ResultMessageRecv exception",e);</span>
 
 265 <span class="nc" id="L265">                             }</span>
 
 267 <span class="nc" id="L267">             }</span>
 
 270 <span class="nc" id="L270">     class CollectMessageRecv extends Thread{</span>
 
 271 <span class="nc" id="L271">             long timeStamp = System.currentTimeMillis();</span>
 
 274 <span class="nc" id="L274">                     log.info("CollectMessageRecv Thread is start threadStop="+threadStop);</span>
 
 275 <span class="nc bnc" id="L275" title="All 2 branches missed.">                  while(!threadStop){</span>
 
 278 <span class="nc bnc" id="L278" title="All 2 branches missed.">                                  if(System.currentTimeMillis() - timeStamp > Constant.ONEMINUTE){</span>
 
 279 <span class="nc" id="L279">                                             timeStamp = System.currentTimeMillis();</span>
 
 281 <span class="nc" id="L281">                                             log.debug(Constant.COLLECT_RESULT_PM_CHANNEL_KEY+" Msg size :"+collectResultPMChannel.size());</span>
 
 284 <span class="nc" id="L284">                                     Object obj = collectResultPMChannel.poll();</span>
 
 285 <span class="nc bnc" id="L285" title="All 2 branches missed.">                                  if(obj == null){</span>
 
 286 <span class="nc" id="L286">                                             continue;</span>
 
 288 <span class="nc bnc" id="L288" title="All 2 branches missed.">                                  if(obj instanceof Map){</span>
 
 289                                                 @SuppressWarnings("unchecked")
 
 290 <span class="nc" id="L290">                                             Map<String,String> reMap = (Map<String,String>)obj;</span>
 
 291 <span class="nc" id="L291">                                             log.debug("reMap ="+reMap);</span>
 
 292 <span class="nc" id="L292">                                             EvelScalingMeasurement evelScalingMeasurement = this.resultEvelScalingMeasurement(reMap);</span>
 
 293 <span class="nc" id="L293">                                             log.debug("evelScalingMeasurement="+evelScalingMeasurement);</span>
 
 295 <span class="nc" id="L295">                                             log.info("AgentMain.evel_post_event start");</span>
 
 296 <span class="nc" id="L296">                                             AgentMain.evel_post_event(evelScalingMeasurement);</span>
 
 297 <span class="nc" id="L297">                                             log.info("AgentMain.evel_post_event sucess");</span>
 
 299 <span class="nc" id="L299">                                     }else{</span>
 
 300 <span class="nc" id="L300">                                             log.error("CollectMessageRecv receive Object = "+obj);</span>
 
 303 <span class="nc" id="L303">                             } catch (Exception e) {</span>
 
 304 <span class="nc" id="L304">                                     log.error("CollectMessageRecv exception",e);</span>
 
 305 <span class="nc" id="L305">                             }catch (Error e) {</span>
 
 306 <span class="nc" id="L306">                                     log.error("CollectMessageRecv Error",e);</span>
 
 307 <span class="nc" id="L307">                             }</span>
 
 309 <span class="nc" id="L309">             }</span>
 
 311                 private EvelScalingMeasurement resultEvelScalingMeasurement(Map<String,String> reMap) {
 
 312 <span class="nc" id="L312">                     String evname = "Mfvs_"+reMap.get("ElementType")+reMap.get("ObjectType");</span>
 
 313 <span class="nc" id="L313">                     String evid = reMap.get("StartTime")+reMap.get("ObjectType")+reMap.get("rmUID");</span>
 
 314 <span class="nc bnc" id="L314" title="All 2 branches missed.">                  int Period = Integer.parseInt(reMap.get("Period")!=null?reMap.get("Period"):"15");</span>
 
 315 <span class="nc" id="L315">                     EvelScalingMeasurement sm  = new EvelScalingMeasurement(Period,evname, evid);</span>
 
 317 <span class="nc bnc" id="L317" title="All 2 branches missed.">                          for(String key : reMap.keySet()){</span>
 
 318 <span class="nc" id="L318">                             sm.evel_measurement_custom_measurement_add(reMap.get("ElementType"), key, reMap.get(key));</span>
 
 320 <span class="nc" id="L320">                     }</span>
 
 322 <span class="nc" id="L322">                     sm.evel_nfcnamingcode_set("");</span>
 
 323 <span class="nc" id="L323">                     sm.evel_nfnamingcode_set("");</span>
 
 324 <span class="nc" id="L324">                     sm.evel_header_type_set("applicationVnf");</span>
 
 325 <span class="nc" id="L325">                     String rmUID = reMap.get("rmUID");</span>
 
 326 <span class="nc" id="L326">                     sm.evel_reporting_entity_id_set(rmUID.substring(0,9));//</span>
 
 327 <span class="nc" id="L327">                     String Dn = reMap.get("Dn");</span>
 
 328 <span class="nc bnc" id="L328" title="All 2 branches missed.">                  if(Dn!=null)</span>
 
 329 <span class="nc bnc" id="L329" title="All 4 branches missed.">                          sm.evel_reporting_entity_name_set(Dn.substring(0, Dn != null && Dn.indexOf(";")>0?Dn.indexOf(";"):Dn.length()));</span>
 
 332                           // decide the flow if Dn is null
 
 335 <span class="nc" id="L335">                     sm.evel_header_set_sourceid(true, reMap.get("rmUID"));</span>
 
 336 <span class="nc" id="L336">                     sm.evel_header_set_source_name(reMap.get("rmUID"));</span>
 
 338 <span class="nc" id="L338">                     sm.evel_header_set_priority(EvelHeader.PRIORITIES.EVEL_PRIORITY_NORMAL);</span>
 
 339 <span class="nc" id="L339">           return sm;</span>
 
 344          * @return the configurationInterface
 
 346         public ConfigurationInterface getConfigurationInterface() {
 
 347 <span class="nc" id="L347">             return configurationInterface;</span>
 
 351          * @param configurationInterface the configurationInterface to set
 
 353         public void setConfigurationInterface(
 
 354                         ConfigurationInterface configurationInterface) {
 
 355 <span class="nc" id="L355">             this.configurationInterface = configurationInterface;</span>
 
 356 <span class="nc" id="L356">     }</span>
 
 359 </pre><div class="footer"><span class="right">Created with <a href="http://www.eclemma.org/jacoco">JaCoCo</a> 0.7.7.201606060606</span></div></body></html>