001: /**
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 2006 Bull S.A.S.
004: * Contact: jonas-team@objectweb.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or 1any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: ClusterDaemonMBean.java 9268 2006-07-31 16:02:56Z pelletib $
023: * --------------------------------------------------------------------------
024: */package org.objectweb.jonas.cluster.daemon;
025:
026: /**
027: * Defines the MBean interface. Don't use Models MBeans as it will imply some
028: * external libraries like commons-modeler (easier).
029: * @author Benoit Pelletier
030: */
031: public interface ClusterDaemonMBean {
032:
033: /**
034: * @return Object Name
035: */
036: String getobjectName();
037:
038: /**
039: * Sets the object name of this mbean
040: * @param name the Object Name
041: */
042: void setobjectName(String name);
043:
044: /**
045: * @return true if it is an event provider
046: */
047: boolean iseventProvider();
048:
049: /**
050: * @return true if this managed object implements J2EE State Management Model
051: */
052: boolean isstateManageable();
053:
054: /**
055: * @return true if this managed object implements the J2EE StatisticProvider Model
056: */
057: boolean isstatisticsProvider();
058:
059: /**
060: * @return the list of JOnAS instances
061: */
062: String getServersList();
063:
064: /**
065: * @return the JAVA_HOME for a specified server name
066: * @param name JOnAS instance name
067: */
068: String getJavaHome4Server(String name);
069:
070: /**
071: * @return the JONAS_ROOT for a specified server name
072: * @param name JOnAS instance name
073: */
074: String getJonasRoot4Server(String name);
075:
076: /**
077: * @return the JONAS_BASE for a specified server name
078: * @param name JOnAS instance name
079: */
080: String getJonasBase4Server(String name);
081:
082: /**
083: * Reload the configuration
084: * @throws ClusterDaemonException if an error occurs
085: */
086: void reloadConfiguration() throws ClusterDaemonException;
087:
088: /**
089: * Add a server configuration
090: * @param name server name
091: * @param description server description
092: * @param javaHome JAVA_HOME dir
093: * @param jonasBase JONAS_BASE dir
094: * @param jonasRoot JONAS_ROOT dir
095: * @throws ClusterDaemonException if an error occurs
096: */
097: void addServer(String name, String description, String javaHome,
098: String jonasRoot, String jonasBase)
099: throws ClusterDaemonException;
100:
101: /**
102: * Remove a server configuration
103: * @param name server name
104: * @throws ClusterDaemonException if an error occurs
105: */
106: void removeServer(String name) throws ClusterDaemonException;
107:
108: /**
109: * Modify a server configuration
110: * @param name server name
111: * @param description server description
112: * @param javaHome JAVA_HOME dir
113: * @param jonasBase JONAS_BASE dir
114: * @param jonasRoot JONAS_ROOT dir
115: * @throws ClusterDaemonException if an error occurs
116: */
117: void modifyServer(String name, String description, String javaHome,
118: String jonasRoot, String jonasBase)
119: throws ClusterDaemonException;
120:
121: /**
122: * Start a JOnAS instance
123: * @param name instance name
124: * @param domainName domain name
125: * @param prm extra parameters
126: * @throws ClusterDaemonException if an error occurs
127: */
128: void startJOnAS(String name, String domainName, String prm)
129: throws ClusterDaemonException;
130:
131: /**
132: * Stop a JOnAS instance
133: * @param name instance name
134: * @throws ClusterDaemonException if an error occurs
135: */
136: void stopJOnAS(String name) throws ClusterDaemonException;
137:
138: /**
139: * Ping a JOnAS instance (MBean interface)
140: * @param name instance name
141: * @return exit code of the ping (0 ok, 1 ko)
142: * @throws ClusterDaemonException if an error occurs
143: */
144: int pingJOnAS(String name) throws ClusterDaemonException;
145:
146: /**
147: * Start all the JOnAS instances configured with auto-reboot
148: * @param domainName domain name
149: * @param prm extra parameters
150: * @return the nodes list with an indicator started/starting failed
151: */
152: String startAllJOnAS(String domainName, String prm);
153:
154: /**
155: * Stop all the JOnAS instances
156: * @return the nodes list with an indicator stopped/stopping failed
157: */
158: String stopAllJOnAS();
159:
160: /**
161: * Stop the cluster daemon instance
162: */
163: void stopClusterDaemon();
164:
165: }
|