package com.bagri.tools.vvm.service; import java.util.logging.Logger; import javax.management.MBeanServerConnection; public class DefaultServiceProvider implements BagriServiceProvider { private static final Logger LOGGER = Logger.getLogger(DefaultServiceProvider.class.getName()); private AccessServiceProvider accService; private ClusterServiceProvider clService; private static DefaultServiceProvider _INSTANCE = null; private DefaultServiceProvider(MBeanServerConnection mbsc) { // accService = new AccessServiceProvider(mbsc); clService = new ClusterServiceProvider(mbsc); // don't see why would we need this .. // Register listener for MBean registration/unregistration //try { // mbsc.addNotificationListener(MBeanServerDelegate.DELEGATE_NAME, this, null, null); //} catch (InstanceNotFoundException e) { // Should never happen because the MBeanServerDelegate // is always present in any standard MBeanServer // // LOGGER.throwing(BagriMainPanel.class.getName(), "BagriMainPanel", e); //} catch (IOException e) { // LOGGER.throwing(BagriMainPanel.class.getName(), "BagriMainPanel", e); //} } public static BagriServiceProvider getInstance(MBeanServerConnection mbsc) { if (_INSTANCE == null) { _INSTANCE = new DefaultServiceProvider(mbsc); } return _INSTANCE; } @Override public void close() { accService.close(); clService.close(); _INSTANCE = null; } @Override public ClusterManagementService getClusterManagement() { return clService; } @Override public SchemaManagementService getSchemaManagement() { return clService; } @Override public UserManagementService getUserManagement() { return accService; } }