public void addDataSourceRegistrationListener(DataSourceRegistrationListener listener) { if (life.getStatus().equals(LifecycleStatus.STARTED)) { try { for (XaDataSource ds : dataSources.values()) { listener.registeredDataSource(ds); } } catch (Throwable t) { msgLog.logMessage("Failed when notifying registering listener", t); } } dsRegistrationListeners = Listeners.addListener(listener, dsRegistrationListeners); }
/** Public for testing purpose. Do not use. */ public synchronized void registerDataSource(final XaDataSource dataSource) { dataSources.put(dataSource.getName(), dataSource); branchIdMapping.put(UTF8.decode(dataSource.getBranchId()), dataSource); sourceIdMapping.put(dataSource.getName(), dataSource.getBranchId()); life.add(dataSource); if (life.getStatus().equals(LifecycleStatus.STARTED)) { Listeners.notifyListeners( dsRegistrationListeners, new Listeners.Notification<DataSourceRegistrationListener>() { @Override public void notify(DataSourceRegistrationListener listener) { listener.registeredDataSource(dataSource); } }); } }