+ public void update(Map<String,Object> props) {
+ LOG.debug("Update managed properties = {}", props.toString());
+
+ if(deviceManager != null) {
+ if (props.containsKey("notification-flow-removed-off")) {
+ deviceManager.setFlowRemovedNotificationOn(Boolean.valueOf(props.get("enable-flow-removed-notification").toString()));
+ }
+ if (props.containsKey("skip-table-features")) {
+ deviceManager.setSkipTableFeatures(Boolean.valueOf(props.get("skip-table-features").toString()));
+ }
+ if (props.containsKey("barrier-count-limit")) {
+ try {
+ deviceManager.setBarrierCountLimit(Integer.valueOf(props.get("barrier-count-limit").toString()));
+ } catch (NumberFormatException ex) {
+ deviceManager.setBarrierCountLimit(DEFAULT_BARRIER_COUNT);
+ }
+ }
+ if (props.containsKey("barrier-interval-timeout-limit")){
+ try {
+ deviceManager.setBarrierInterval(Long.valueOf(props.get("barrier-interval-timeout-limit").toString()));
+ } catch (NumberFormatException ex) {
+ deviceManager.setBarrierInterval(DEFAULT_BARRIER_TIMEOUT);
+ }
+ }
+ }
+
+ if(rpcManager != null && props.containsKey("is-statistics-rpc-enabled")){
+ rpcManager.setStatisticsRpcEnabled(Boolean.valueOf((props.get("is-statistics-rpc-enabled").toString())));
+ }
+
+ if (connectionManager != null && props.containsKey("echo-reply-timeout") ){
+ try {
+ connectionManager.setEchoReplyTimeout(Long.valueOf(props.get("echo-reply-timeout").toString()));
+ }catch (NumberFormatException ex){
+ connectionManager.setEchoReplyTimeout(DEFAULT_ECHO_TIMEOUT);
+ }
+ }
+
+ if(statisticsManager != null && props.containsKey("is-statistics-polling-on")){
+ statisticsManager.setIsStatisticsPollingOn(Boolean.valueOf(props.get("is-statistics-polling-on").toString()));
+ }
+
+ if(statisticsManager != null && props.containsKey("basic-timer-delay")){
+ statisticsManager.setBasicTimerDelay(Long.valueOf(props.get("basic-timer-delay").toString()));
+ }
+
+ if(statisticsManager != null && props.containsKey("maximum-timer-delay")){
+ statisticsManager.setMaximumTimerDelay(Long.valueOf(props.get("maximum-timer-delay").toString()));
+ }
+ }
+
+
+ private static void registerMXBean(final MessageIntelligenceAgency messageIntelligenceAgency) {
+ final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+ try {
+ final String pathToMxBean = String.format("%s:type=%s",
+ MessageIntelligenceAgencyMXBean.class.getPackage().getName(),
+ MessageIntelligenceAgencyMXBean.class.getSimpleName());
+ final ObjectName name = new ObjectName(pathToMxBean);
+ mbs.registerMBean(messageIntelligenceAgency, name);
+ } catch (MalformedObjectNameException
+ | NotCompliantMBeanException
+ | MBeanRegistrationException
+ | InstanceAlreadyExistsException e) {
+ LOG.warn("Error registering MBean {}", e);
+ }
+ }
+
+ @Override
+ public void setNotificationProviderService(final NotificationService notificationProviderService) {
+ this.notificationProviderService = notificationProviderService;
+ }
+
+ @Override
+ public void setNotificationPublishService(final NotificationPublishService notificationPublishProviderService) {
+ this.notificationPublishService = notificationPublishProviderService;
+ }
+
+ @Override
+ public ExtensionConverterRegistrator getExtensionConverterRegistrator() {
+ return extensionConverterManager;
+ }
+
+ @Override
+ public void setIsStatisticsRpcEnabled(final boolean isStatisticsRpcEnabled) {
+ this.isStatisticsRpcEnabled = isStatisticsRpcEnabled;