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: * @(#)AdminServiceMBean.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package javax.jbi.management;
030:
031: import javax.management.ObjectName;
032:
033: /**
034: * This interface defines a set of administrative methods allowing a JMX-based
035: * administrative tool to perform a variety of administrative tasks.
036: * <ul>
037: * <li>Find component lifecycle MBean names for:
038: * <ul>
039: * <li>Individual components, by name</li>
040: * <li>All binding components</li>
041: * <li>All service engines</li>
042: * </ul>
043: * </li>
044: * <li>Find lifecyle MBeans names for implementation-defined services:
045: * <ul>
046: * <li>Individual implementation services, by name</li>
047: * <li>All implementation services</li>
048: * </ul>
049: * </li>
050: * <li>Query whether an individual component is a binding or engine</li>
051: * <li>Query implementation information (version etc.)</li>
052: * </ul>
053: *
054: * @author JSR208 Expert Group
055: */
056: public interface AdminServiceMBean {
057: /**
058: * Lookup a system service {@link LifeCycleMBean} by name. System services
059: * are implementation-defined services which can administered through JMX,
060: * and have a life cycle.
061: * <p>
062: * System services are not related to service engines.
063: *
064: * @param serviceName name of the system service; must be non-null and non-
065: * empty; values are implementation-dependent
066: * @return JMX object name of the system service's LifeCycleMBean, or
067: * <code>null</code> if there is no system service with the given
068: * <code>name</code>.
069: */
070: ObjectName getSystemService(String serviceName);
071:
072: /**
073: * Looks up all JBI system services {@link LifeCycleMBean}'s currently
074: * installed. System services are implementation-defined services which can
075: * administered through JMX. System services are not related to service
076: * engines.
077: *
078: * @return array of LifecycleMBean JMX object names of system services
079: * currently installed in the JBI implementation; must be non-null;
080: * may be empty
081: */
082: ObjectName[] getSystemServices();
083:
084: /**
085: * Find the {@link ComponentLifeCycleMBean} of a JBI Installable Component
086: * by its unique name.
087: *
088: * @param name the name of the engine or binding component; must be non-
089: * null and non-empty
090: * @return the JMX object name of the component's life cycle MBean, or
091: * <code>null</code> if there is no such component with the given
092: * <code>name</code>
093: */
094: ObjectName getComponentByName(String name);
095:
096: /**
097: * Get a list of {@link ComponentLifeCycleMBean}s for all binding components
098: * currently installed in the JBI system.
099: *
100: * @return array of JMX object names of component life cycle MBeans for all
101: * installed binding components; must be non-null; may be empty
102: */
103: ObjectName[] getBindingComponents();
104:
105: /**
106: * Get a list of {@link ComponentLifeCycleMBean}s for all service engines
107: * currently installed in the JBI system.
108: *
109: * @return array of JMX object names of component life cycle MBeans for all
110: * installed service engines; must be non-null; may be empty
111: */
112: ObjectName[] getEngineComponents();
113:
114: /**
115: * Check if a given JBI component is a Binding Component.
116: *
117: * @param componentName the unique name of the component; must be non-null
118: * and non-empty
119: * @return <code>true</code> if the component is a binding component;
120: * <code>false</code> if the component is a service engine or if
121: * there is no component with the given <code>componentName</code>
122: * installed in the JBI system
123: */
124: boolean isBinding(String componentName);
125:
126: /**
127: * Check if a given JBI component is a Service Engine.
128: *
129: * @param componentName the unique name of the component; must be non-null
130: * and non-empty
131: * @return <code>true</code> if the component is a service engine;
132: * <code>false</code> if the component is a binding component, or if
133: * there is no component with the given <code>componentName</code>
134: * installed in the JBI system
135: */
136: boolean isEngine(String componentName);
137:
138: /**
139: * Return current version and other info about this JBI implementation. The
140: * contents of the returned string are implementation dependent.
141: *
142: * @return information string about the JBI implementation, including
143: * version information; must be non-null and non-empty
144: */
145: String getSystemInfo();
146: }
|