/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.livedata.cogda.server; import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jmx.export.annotation.ManagedAttribute; import org.springframework.jmx.export.annotation.ManagedResource; import com.opengamma.util.ArgumentChecker; /** * */ @ManagedResource( description = "CogdaLiveDataServer attributes and operations that can be managed via JMX" ) public class CogdaLiveDataServerMBean { private static final Logger s_logger = LoggerFactory.getLogger(CogdaLiveDataServerMBean.class); private final CogdaLiveDataServer _server; public CogdaLiveDataServerMBean(CogdaLiveDataServer server) { ArgumentChecker.notNull(server, "server"); _server = server; } /** * Gets the server. * @return the server */ protected CogdaLiveDataServer getServer() { return _server; } @ManagedAttribute(description = "Active port number.") public int getPortNumber() { try { return getServer().getPortNumber(); } catch (RuntimeException e) { s_logger.error("getPortNumber() failed", e); throw new RuntimeException(e.getMessage()); } } @ManagedAttribute(description = "Whether the server is running.") public boolean isRunning() { try { return getServer().isRunning(); } catch (RuntimeException e) { s_logger.error("isRunning() failed", e); throw new RuntimeException(e.getMessage()); } } @ManagedAttribute(description = "Current number of client connections.") public int getNumClients() { try { return getServer().getNumClients(); } catch (RuntimeException e) { s_logger.error("getNumClients() failed", e); throw new RuntimeException(e.getMessage()); } } @ManagedAttribute(description = "Names of all actively connected users.") public Set<String> getActiveUsers() { try { return getServer().getActiveUsers(); } catch (RuntimeException e) { s_logger.error("getActiveUsers() failed", e); throw new RuntimeException(e.getMessage()); } } }