BlacktieAdminService.java
上传用户:xfwatch
上传日期:2020-12-14
资源大小:872k
文件大小:7k
源码类别:

中间件编程

开发平台:

Java

  1. /*
  2.  * JBoss, Home of Professional Open Source
  3.  * Copyright 2008, Red Hat, Inc., and others contributors as indicated
  4.  * by the @authors tag. All rights reserved.
  5.  * See the copyright.txt in the distribution for a
  6.  * full listing of individual contributors.
  7.  * This copyrighted material is made available to anyone wishing to use,
  8.  * modify, copy, or redistribute it subject to the terms and conditions
  9.  * of the GNU Lesser General Public License, v. 2.1.
  10.  * This program is distributed in the hope that it will be useful, but WITHOUT A
  11.  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  12.  * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  13.  * You should have received a copy of the GNU Lesser General Public License,
  14.  * v.2.1 along with this distribution; if not, write to the Free Software
  15.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  16.  * MA  02110-1301, USA.
  17.  */
  18. package org.jboss.blacktie.administration;
  19. import java.util.List;
  20. import org.apache.log4j.LogManager;
  21. import org.apache.log4j.Logger;
  22. import org.jboss.blacktie.administration.core.AdministrationProxy;
  23. import org.w3c.dom.Element;
  24. /**
  25.  * This is the JMX interface into the blacktie administration proxy.
  26.  */
  27. public class BlacktieAdminService implements BlacktieAdminServiceMBean {
  28. private static final Logger log = LogManager
  29. .getLogger(BlacktieAdminService.class);
  30. private QueueReaper reaper;
  31. private AdministrationProxy administrationProxy;
  32. /**
  33.  * Start the service
  34.  */
  35. public void start() throws Exception {
  36. administrationProxy = new AdministrationProxy();
  37. reaper = new QueueReaper(administrationProxy.getBeanServerConnection());
  38. reaper.startThread();
  39. log.info("Admin Server Started");
  40. }
  41. /**
  42.  * Stop the service
  43.  */
  44. public void stop() throws Exception {
  45. reaper.stopThread();
  46. administrationProxy.close();
  47. log.info("Admin Server Stopped");
  48. }
  49. /**
  50.  * Retrieve the domain name
  51.  */
  52. public String getDomainName() {
  53. return administrationProxy.getDomainName();
  54. }
  55. /**
  56.  * Get the version of the blacktie software
  57.  */
  58. public String getSoftwareVersion() {
  59. return administrationProxy.getSoftwareVersion();
  60. }
  61. /**
  62.  * Get domain status
  63.  */
  64. public Boolean getDomainStatus() {
  65. return administrationProxy.getDomainStatus();
  66. }
  67. /**
  68.  * Pause the domain
  69.  */
  70. public Boolean pauseDomain() {
  71. return administrationProxy.pauseDomain();
  72. }
  73. /**
  74.  * Resume the domain
  75.  */
  76. public Boolean resumeDomain() {
  77. return administrationProxy.resumeDomain();
  78. }
  79. /**
  80.  * List the servers
  81.  */
  82. public List<String> getServerList() {
  83. return administrationProxy.getServerList();
  84. }
  85. /**
  86.  * List the running servers
  87.  */
  88. public List<String> listRunningServers() {
  89. return administrationProxy.listRunningServers();
  90. }
  91. /**
  92.  * List the running ids of a specific server
  93.  * 
  94.  * @param serverName
  95.  *            The name of the server
  96.  */
  97. public List<Integer> listRunningInstanceIds(String serverName) {
  98. return administrationProxy.listRunningInstanceIds(serverName);
  99. }
  100. /**
  101.  * Get the servers status for the domain
  102.  */
  103. public Element getServersStatus() {
  104. return administrationProxy.getServersStatus();
  105. }
  106. /**
  107.  * List the service status for a service
  108.  * 
  109.  * @param serverName
  110.  *            The name of the server
  111.  * @param serviceName
  112.  *            The name of the service
  113.  */
  114. public Element listServiceStatus(String serverName, String serviceName) {
  115. return administrationProxy.listServiceStatus(serverName, serviceName);
  116. }
  117. /**
  118.  * Advertise a new service
  119.  * 
  120.  * @param serverName
  121.  *            The name of the server
  122.  * @param serviceName
  123.  *            The name of the service
  124.  */
  125. public Boolean advertise(String serverName, String serviceName) {
  126. return administrationProxy.advertise(serverName, serviceName);
  127. }
  128. /**
  129.  * Unadvertise a new service
  130.  * 
  131.  * @param serverName
  132.  *            The name of the server
  133.  * @param serviceName
  134.  *            The name of the service
  135.  */
  136. public Boolean unadvertise(String serverName, String serviceName) {
  137. return administrationProxy.unadvertise(serverName, serviceName);
  138. }
  139. /**
  140.  * Shutdown a server
  141.  * 
  142.  * @param serverName
  143.  *            The name of the server
  144.  * @param id
  145.  *            The id of the server
  146.  */
  147. public Boolean shutdown(String serverName, int id) {
  148. return administrationProxy.shutdown(serverName, id);
  149. }
  150. /**
  151.  * Get the service counter and restrict it to a certain server, 0 for all.
  152.  * 
  153.  * @param serverName
  154.  *            The name of the server
  155.  * @param id
  156.  *            The id of the server
  157.  * @param serviceName
  158.  *            The name of the service
  159.  */
  160. public long getServiceCounterById(String serverName, int id,
  161. String serviceName) {
  162. return administrationProxy.getServiceCounterById(serverName, id,
  163. serviceName);
  164. }
  165. /**
  166.  * Get the service counter for the domain.
  167.  * 
  168.  * @param serverName
  169.  *            The name of the server
  170.  * @param serviceName
  171.  *            The name of the service
  172.  */
  173. public long getServiceCounter(String serverName, String serviceName) {
  174. return administrationProxy.getServiceCounter(serverName, serviceName);
  175. }
  176. /**
  177.  * Reload the domain
  178.  */
  179. public Boolean reloadDomain() {
  180. return administrationProxy.reloadDomain();
  181. }
  182. /**
  183.  * Reload the server (causes the server to update its configuration and
  184.  * restart.
  185.  * 
  186.  * @param serverName
  187.  *            The name of the server
  188.  */
  189. public Boolean reloadServer(String serverName) {
  190. return administrationProxy.reloadServer(serverName);
  191. }
  192. /**
  193.  * List the status of a service giving an optional id, 0 is all servers.
  194.  * 
  195.  * @param serverName
  196.  *            The name of the server
  197.  * @param id
  198.  *            The id of the server
  199.  * @param serviceName
  200.  *            The name of the service
  201.  */
  202. public Element listServiceStatusById(String serverName, int id,
  203. String serviceName) {
  204. return administrationProxy.listServiceStatusById(serverName, id,
  205. serviceName);
  206. }
  207. /**
  208.  * Get response time of service
  209.  */
  210. public String getResponseTimeById(String serverName, int id,
  211. String serviceName) {
  212. return administrationProxy.getResponseTimeById(serverName, id,
  213. serviceName);
  214. }
  215. public String getResponseTime(String serverName, String serviceName) {
  216. return administrationProxy.getResponseTime(serverName, serviceName);
  217. }
  218. /**
  219.  * Get message queue depth
  220.  */
  221. public int getQueueDepth(String serverName, String serviceName) {
  222. return administrationProxy.getQueueDepth(serverName, serviceName);
  223. }
  224. /**
  225.  * Get the server name
  226.  */
  227. public String getServerName(String serviceName) {
  228. return administrationProxy.getServerName(serviceName);
  229. }
  230. /**
  231.  * Get error counter for service
  232.  */
  233. public long getErrorCounter(String serverName, String serviceName) {
  234. return administrationProxy.getErrorCounter(serverName, serviceName);
  235. }
  236. public long getErrorCounterById(String serverName, int id,
  237. String serviceName) {
  238. return administrationProxy.getErrorCounterById(serverName, id,
  239. serviceName);
  240. }
  241. public String getServerVersionById(String serverName, int id) {
  242. return administrationProxy.getServerVersionById(serverName, id);
  243. }
  244. }