001: /*
002: * BEGIN_HEADER - DO NOT EDIT
003: *
004: * The contents of this file are subject to the terms
005: * of the Common Development and Distribution License
006: * (the "License"). You may not use this file except
007: * in compliance with the License.
008: *
009: * You can obtain a copy of the license at
010: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
011: * See the License for the specific language governing
012: * permissions and limitations under the License.
013: *
014: * When distributing Covered Code, include this CDDL
015: * HEADER in each file and include the License file at
016: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
017: * If applicable add the following below this CDDL HEADER,
018: * with the fields enclosed by brackets "[]" replaced with
019: * your own identifying information: Portions Copyright
020: * [year] [name of copyright owner]
021: */
022:
023: /*
024: * @(#)AdministrationService.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package com.sun.esb.management.api.administration;
030:
031: import java.util.Map;
032: import java.util.Properties;
033: import java.util.Set;
034:
035: import javax.management.MBeanServerConnection;
036:
037: import com.sun.esb.management.common.ManagementRemoteException;
038:
039: /**
040: * Defines operations for common administration services.
041: *
042: * @author graj
043: */
044: public interface AdministrationService {
045:
046: public static final String SYSTEM_INFORMATION_KEY = "SystemInfo";
047: public static final String BUILD_NUMBER_KEY = "BuildNumber";
048: public static final String COPYRIGHT_KEY = "Copyright";
049: public static final String FULL_PRODUCT_NAME_KEY = "FullProductName";
050: public static final String MAJOR_VERSION_KEY = "MajorVersion";
051: public static final String MINOR_VERSION_KEY = "MinorVersion";
052: public static final String SHORT_PRODUCT_NAME_KEY = "ShortProductName";
053:
054: /**
055: * Returns a map of target names to an array of target instance names.
056: * In the case cluster targets, the key contains the cluster target name,
057: * and the the value contains an array of the "target instance" names.
058: * If it is not a cluster target, the key contains the targetName, and
059: * the value is null.
060: *
061: * @return map of target names to array of target instance names
062: * @throws ManagementRemoteException
063: */
064: public Map<String /*targetName*/, String[] /*targetInstanceNames*/> listTargetNames()
065: throws ManagementRemoteException;
066:
067: /**
068: * Checks to see if the Target (server, cluster) is up or down.
069: *
070: * @param targetName
071: * name of the target (e.g., cluster1, server, etc.)
072: * @return true if Target is up, false if not
073: * @throws ManagementRemoteException
074: * if error or exception occurs.
075: */
076: public boolean isTargetUp(String targetName)
077: throws ManagementRemoteException;
078:
079: /**
080: * Returns the jbi.xml Installation Descriptor for a Service Engine/Binding
081: * Component.
082: *
083: * @param the
084: * name of the ServiceEngine or Binding Component
085: * @return the jbi.xml deployment descriptor of the archive
086: * @throws ManagementRemoteException
087: * if error or exception occurs.
088: */
089: public String getComponentInstallationDescriptor(
090: String componentName) throws ManagementRemoteException;
091:
092: /**
093: * Gets the component state
094: *
095: * @param componentName
096: * @param targetName
097: * @return the state of the component
098: * @throws ManagementRemoteException
099: */
100: public String getComponentState(String componentName,
101: String targetName) throws ManagementRemoteException;
102:
103: /**
104: * Gets the component type
105: *
106: * @param componentName
107: * @param targetName
108: * @return the type of the component (binding-component, service-engine, or
109: * shared-library)
110: * @throws ManagementRemoteException
111: */
112: public String getComponentType(String componentName,
113: String targetName) throws ManagementRemoteException;
114:
115: /**
116: * Get the list of consuming endpoints
117: * @param componentName
118: * @param targetName
119: * @return Returns the consumingEndpoints.
120: * @throws ManagementRemoteException
121: */
122: public String[] getConsumingEndpoints(String componentName,
123: String targetName) throws ManagementRemoteException;
124:
125: /**
126: * Get the list of provisioning endpoints
127: * @param componentName
128: * @param targetName
129: * @return Returns the provisioningEndpoints.
130: * @throws ManagementRemoteException
131: */
132: public String[] getProvisioningEndpoints(String componentName,
133: String targetName) throws ManagementRemoteException;
134:
135: /**
136: * Returns the jbi.xml Deployment Descriptor for a Service Assembly.
137: *
138: * @param the
139: * name of the Service Assembly
140: * @return the jbi.xml deployment descriptor of the archive
141: * @throws ManagementRemoteException
142: * if error or exception occurs.
143: */
144: public String getServiceAssemblyDeploymentDescriptor(
145: String serviceAssemblyName)
146: throws ManagementRemoteException;
147:
148: /**
149: * Gets the Service Assembly state
150: *
151: * @param serviceAssemblyName
152: * @param targetName
153: * @return the state of the Service Assembly
154: * @throws ManagementRemoteException
155: */
156: public String getServiceAssemblyState(String serviceAssemblyName,
157: String targetName) throws ManagementRemoteException;
158:
159: /**
160: * Returns the jbi.xml Deployment Descriptor for a Service Unit.
161: *
162: * @param the
163: * name of the Service Assembly
164: * @param the
165: * name of the Service Unit
166: * @return the jbi.xml deployment descriptor of the archive
167: * @throws ManagementRemoteException
168: * if error or exception occurs.
169: */
170: public String getServiceUnitDeploymentDescriptor(
171: String serviceAssemblyName, String serviceUnitName)
172: throws ManagementRemoteException;
173:
174: /**
175: * Returns the jbi.xml Installation Descriptor for a Shared Library.
176: *
177: * @param the
178: * name of the Shared Library
179: * @return the jbi.xml deployment descriptor of the archive
180: * @throws ManagementRemoteException
181: * if error or exception occurs.
182: */
183: public String getSharedLibraryInstallationDescriptor(
184: String sharedLibraryName) throws ManagementRemoteException;
185:
186: /**
187: * Retrieves the primary WSDL associated with the specified endpoint.
188: * @param componentName
189: * @param endpoint
190: * @param targetName
191: * @return primary WSDL associated with the endpoint
192: * @throws ManagementRemoteException
193: */
194: public String getWSDLDefinition(String componentName,
195: String endpoint, String targetName)
196: throws ManagementRemoteException;
197:
198: /**
199: * Retrieves the WSDL or XSD associated with the specified endpoint and targetNamespace
200: * @param componentName
201: * @param endpoint
202: * @param targetNamespace
203: * @param targetName
204: * @return wsdl or xsd
205: * @throws ManagementRemoteException
206: */
207: public String getWSDLImportedResource(String componentName,
208: String endpoint, String targetNamespace, String targetName)
209: throws ManagementRemoteException;
210:
211: /**
212: * check for BindingComponent
213: *
214: * @param the
215: * name of the ServiceEngine or Binding Component
216: * @return true if it is a Binding Component else false.
217: * @throws ManagementRemoteException
218: * if error or exception occurs.
219: */
220: public boolean isBindingComponent(String componentName)
221: throws ManagementRemoteException;
222:
223: /**
224: * Checks to see if a component/library is installed on a target
225: *
226: * @param componentName
227: * @param targetName
228: * @return true if installed, false if not
229: * @throws ManagementRemoteException
230: */
231: public boolean isJBIComponentInstalled(String componentName,
232: String targetName) throws ManagementRemoteException;
233:
234: /**
235: * Checks to see if the JBI Runtime is enabled.
236: *
237: * @return true if JBI Runtime Framework is available, false if not
238: * @throws ManagementRemoteException
239: * if error or exception occurs.
240: */
241: public boolean isJBIRuntimeEnabled()
242: throws ManagementRemoteException;
243:
244: /**
245: * Checks to see if a Service Assembly is deployed on a target
246: *
247: * @param serviceAssemblyName
248: * @param targetName
249: * @return true if deployed, false if not
250: * @throws ManagementRemoteException
251: */
252: public boolean isServiceAssemblyDeployed(
253: String serviceAssemblyName, String targetName)
254: throws ManagementRemoteException;
255:
256: /**
257: * check for ServiceEngine
258: *
259: * @param the
260: * name of the ServiceEngine or Binding Component
261: * @return true if it is a Service Engine else false.
262: * @throws ManagementRemoteException
263: * if error or exception occurs.
264: */
265: public boolean isServiceEngine(String componentName)
266: throws ManagementRemoteException;
267:
268: /**
269: * Retrieve runtime version information
270: * @return map of targetName to Properties elements detailing version info
271: * @throws ManagementRemoteException
272: */
273: public Map<String /*targetName*/, Properties /*version information*/> getRuntimeDetails()
274: throws ManagementRemoteException;
275:
276: /**
277: * Get the instance name of the platform's administration server. If the
278: * platform does not provide a separate administration server, then this
279: * method returns the name of the local instance.
280: * @return instance name of the administration server
281: * @throws ManagementRemoteException
282: */
283: public String getAdminServerName() throws ManagementRemoteException;
284:
285: /**
286: * Determine whether this instance is the administration server instance.
287: * @return <CODE>true</CODE> if this instance is the administration server,
288: * <CODE>false</CODE> if not.
289: * @throws ManagementRemoteException
290: */
291: public boolean isAdminServer() throws ManagementRemoteException;
292:
293: /**
294: * Get the name of this instance.
295: * @return the name of this server instance.
296: * @throws ManagementRemoteException
297: */
298: public String getInstanceName() throws ManagementRemoteException;
299:
300: /**
301: * Determine if the specified instance is up.
302: * @return true if the instance is up and running, false otherwise
303: * @throws ManagementRemoteException
304: */
305: public boolean isInstanceUp(String instanceName)
306: throws ManagementRemoteException;
307:
308: /**
309: * Determine whether multiple servers are permitted within this AS
310: * installation.
311: * @return true if multiple servers are permitted.
312: * @throws ManagementRemoteException
313: */
314: public boolean supportsMultipleServers()
315: throws ManagementRemoteException;
316:
317: /**
318: * Get the Target Name. If the instance is not a clustered instance then
319: * the target name is the instance name. If the instance is part of a
320: * cluster then the target name is the cluster name.
321: *
322: * @return the target name.
323: * @throws ManagementRemoteException
324: */
325: public String getTargetName() throws ManagementRemoteException;
326:
327: /**
328: * Get the Target Name for a specified instance. If the instance is not
329: * clustered the instance name is returned. This operation is invoked by
330: * the JBI instance MBeans only.
331: *
332: * @return the target name.
333: * @throws ManagementRemoteException
334: */
335: public String getTargetName(String instanceName)
336: throws ManagementRemoteException;
337:
338: /**
339: * Get a set of the names of all the standalone servers in the domain.
340: * @return a set of names of standalone servers in the domain.
341: * @throws ManagementRemoteException
342: */
343: public Set<String> getStandaloneServerNames()
344: throws ManagementRemoteException;
345:
346: /**
347: * Get a set of the names of all the clustered servers in the domain.
348: * @return a set of names of clustered servers in the domain.
349: * @throws ManagementRemoteException
350: */
351: public Set<String> getClusteredServerNames()
352: throws ManagementRemoteException;
353:
354: /**
355: * Get a set of the names of all the clusters in the domain.
356: * @return a set of names of clusters in the domain.
357: * @throws ManagementRemoteException
358: */
359: public Set<String> getClusterNames()
360: throws ManagementRemoteException;
361:
362: /**
363: * Get a set of the names of all the servers in the specified cluster.
364: * @return a set of names of servers in the cluster.
365: * @throws ManagementRemoteException
366: */
367: public Set<String> getServersInCluster(String clusterName)
368: throws ManagementRemoteException;
369:
370: /**
371: * Determine whether a target is a valid server or cluster name.
372: * @return <CODE>true</CODE> if <CODE>targetName</CODE> is a valid
373: * standalone server name or cluster name, <CODE>false</CODE> if not.
374: * @throws ManagementRemoteException
375: */
376: public boolean isValidTarget(String targetName)
377: throws ManagementRemoteException;
378:
379: /**
380: * Determine whether a target is a cluster.
381: * @return <CODE>true</CODE> if <CODE>targetName</CODE> is a cluster,
382: * <CODE>false</CODE> if not.
383: * @throws ManagementRemoteException
384: */
385: public boolean isCluster(String targetName)
386: throws ManagementRemoteException;
387:
388: /**
389: * Determine whether a target is a standalone server.
390: * @return <CODE>true</CODE> if <CODE>targetName</CODE> is a standalone
391: * server, <CODE>false</CODE> if not.
392: * @throws ManagementRemoteException
393: */
394: public boolean isStandaloneServer(String targetName)
395: throws ManagementRemoteException;
396:
397: /**
398: * Determine whether the target is a clustered server.
399: * @return <CODE>true</CODE> if <CODE>targetName</CODE> is a clustered
400: * server, <CODE>false</CODE> if not.
401: * @throws ManagementRemoteException
402: */
403: public boolean isClusteredServer(String targetName)
404: throws ManagementRemoteException;
405:
406: /**
407: * Determine whether or not an instance is clustered.
408: * @return <CODE>true</CODE> if the instance is clustered,
409: * <CODE>false</CODE> if not.
410: * @throws ManagementRemoteException
411: */
412: public boolean isInstanceClustered(String instanceName)
413: throws ManagementRemoteException;
414:
415: /**
416: * Get a string representation of the DAS JMX RMI connector port.
417: * @return the JMX RMI connector port as a (CODE>String</CODE>.
418: * @throws ManagementRemoteException
419: */
420: public String getJmxRmiPort() throws ManagementRemoteException;
421:
422: /**
423: * Get the full path to the platform's instance root directory.
424: * @return platform instance root
425: * @throws ManagementRemoteException
426: */
427: public String getInstanceRoot() throws ManagementRemoteException;
428:
429: /**
430: * Get the full path to the platform's instaall root directory.
431: * @return platform install root
432: * @throws ManagementRemoteException
433: */
434: public String getInstallRoot() throws ManagementRemoteException;
435:
436: /**
437: * Get the MBean server connection for a particular instance.
438: * @return the <CODE>MBeanServerConnection</CODE> for the specified instance.
439: * @throws ManagementRemoteException
440: */
441: public MBeanServerConnection getConnectionForInstance(
442: String instanceName) throws ManagementRemoteException;
443:
444: }
|