+ @Override
+ public DataBroker getDataBroker() {
+ return dataBroker;
+ }
+
+ @Override
+ public void setDataBroker(DataBroker dataBroker) {
+ this.dataBroker = dataBroker;
+
+ }
+
+ @Override
+ public NotificationProviderService getNotificationProviderService() {
+ return notificationProviderService;
+ }
+
+ @Override
+ public Map<Class<? extends DataObject>, Collection<PopListener<DataObject>>> getPopListenerMapping() {
+ return popListenerMapping;
+ }
+
+ @Override
+ public void setPopListenerMapping(
+ Map<Class<? extends DataObject>, Collection<PopListener<DataObject>>> popListenerMapping) {
+ this.popListenerMapping = popListenerMapping;
+ }
+
+ @Override
+ public void close() {
+ LOG.debug("close");
+ synchronized (sessionLot) {
+ for (SessionContext sessionContext : sessionLot.values()) {
+ sessionContext.getPrimaryConductor().disconnect();
+ }
+ // TODO: handle timeouted shutdown
+ rpcPool.shutdown();
+ }
+
+ for (ListenerRegistration<SessionListener> listenerRegistration : sessionListeners) {
+ SessionListener listener = listenerRegistration.getInstance();
+ if (listener instanceof AutoCloseable) {
+ try {
+ ((AutoCloseable) listener).close();
+ } catch (Exception e) {
+ LOG.warn("closing of sessionListenerRegistration failed", e);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void setRpcPool(ListeningExecutorService rpcPool) {
+ this.rpcPool = rpcPool;
+ }
+
+ @Override
+ public ListeningExecutorService getRpcPool() {
+ return rpcPool;
+ }
+
+ @Override
+ public void setMessageSpy(MessageSpy<DataContainer> messageSpy) {
+ this.messageSpy = messageSpy;
+ }
+
+ @Override
+ public MessageSpy<DataContainer> getMessageSpy() {
+ return messageSpy;
+ }
+
+ @Override
+ public void setExtensionConverterProvider(
+ ExtensionConverterProvider extensionConverterProvider) {
+ this.extensionConverterProvider = extensionConverterProvider;
+ }
+
+ /**
+ * @return the extensionConverterProvider
+ */
+ @Override
+ public ExtensionConverterProvider getExtensionConverterProvider() {
+ return extensionConverterProvider;
+ }
+
+ @Override
+ public Collection<SessionContext> getAllSessions() {
+ return sessionLot.values();
+ }