001 package com.khubla.pragmatach.framework.jmx.impl;
002
003 import java.util.ArrayList;
004 import java.util.List;
005
006 import org.slf4j.Logger;
007 import org.slf4j.LoggerFactory;
008
009 import com.khubla.pragmatach.framework.application.Application;
010 import com.khubla.pragmatach.framework.controller.Controllers;
011 import com.khubla.pragmatach.framework.jmx.SystemStatusMXBean;
012 import com.khubla.pragmatach.framework.plugin.PluginDescriptor;
013 import com.khubla.pragmatach.framework.plugin.PluginDescriptors;
014 import com.khubla.pragmatach.framework.router.PragmatachRoute;
015 import com.khubla.pragmatach.framework.router.PragmatachRoutes;
016
017 /**
018 * @author tome
019 */
020 public class SystemStatus implements SystemStatusMXBean {
021 /**
022 * logger
023 */
024 private final Logger logger = LoggerFactory.getLogger(this.getClass());
025
026 @Override
027 public String[] getConfiguration() {
028 try {
029 final List<String> configurations = new ArrayList<String>();
030 for (final String key : Application.getConfiguration().getAll().keySet()) {
031 configurations.add(key + ":" + Application.getConfiguration().getAll().get(key));
032 }
033 final String[] ret = new String[configurations.size()];
034 configurations.toArray(ret);
035 return ret;
036 } catch (final Exception e) {
037 logger.error("Exception in getConfiguration", e);
038 return null;
039 }
040 }
041
042 @Override
043 public String[] getControllers() {
044 try {
045 final List<String> controllerDescriptions = new ArrayList<String>();
046 for (final Class<?> controllerClass : Controllers.getInstance().getControllers()) {
047 controllerDescriptions.add(controllerClass.getName());
048 }
049 final String[] ret = new String[controllerDescriptions.size()];
050 controllerDescriptions.toArray(ret);
051 return ret;
052 } catch (final Exception e) {
053 logger.error("Exception in getControllers", e);
054 return null;
055 }
056 }
057
058 @Override
059 public String[] getPlugins() {
060 try {
061 final List<String> pluginDescriptions = new ArrayList<String>();
062 for (final PluginDescriptor plugin : PluginDescriptors.getPlugins().values()) {
063 pluginDescriptions.add(plugin.getName());
064 }
065 final String[] ret = new String[pluginDescriptions.size()];
066 pluginDescriptions.toArray(ret);
067 return ret;
068 } catch (final Exception e) {
069 logger.error("Exception in getPlugins", e);
070 return null;
071 }
072 }
073
074 @Override
075 public String[] getRouters() {
076 try {
077 final List<String> routeDescriptions = new ArrayList<String>();
078 for (final PragmatachRoute pragmatachRoute : PragmatachRoutes.getInstance().getGETRoutes()) {
079 routeDescriptions.add(pragmatachRoute.getDescription());
080 }
081 for (final PragmatachRoute pragmatachRoute : PragmatachRoutes.getInstance().getPOSTRoutes()) {
082 routeDescriptions.add(pragmatachRoute.getDescription());
083 }
084 final String[] ret = new String[routeDescriptions.size()];
085 routeDescriptions.toArray(ret);
086 return ret;
087 } catch (final Exception e) {
088 logger.error("Exception in getRouters", e);
089 return null;
090 }
091 }
092 }