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: * @(#)ComponentInfo.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package com.sun.jbi;
030:
031: import java.util.List;
032: import java.util.Map;
033:
034: /**
035: * This interface provides information on components (Binding Components,
036: * Service Engines, and Shared Libraries.
037: *
038: * @author Sun Microsystems, Inc.
039: */
040: public interface ComponentInfo {
041: // Public methods
042:
043: /**
044: * Determine if the supplied Object is equal to this one.
045: * @param object - the Object to be compared with this one.
046: * @return true if the supplied Object is equal to this one.
047: */
048: boolean equals(Object object);
049:
050: /**
051: * Get the class path elements. For BCs and SEs this is the list of elements
052: * that comprise the runtime class path; for Shared Libraries it is the list
053: * of elements that comprise the shared class path. Each element in the list
054: * is a String representing a single jar file or directory.
055: * @return List of jar files and directories that comprise the class path
056: * for the component or shared library.
057: */
058: List<String> getClassPathElements();
059:
060: /**
061: * Get the component class name. For BCs and SEs this is the name of
062: * the class that implements the
063: * <CODE>javax.jbi.component.Component</CODE>
064: * interface; for Shared Libraries it is null.
065: * @return the name of the Component class.
066: */
067: String getComponentClassName();
068:
069: /**
070: * Get the component type.
071: * @return the component type: ComponentInfo.BINDING, ComponentInfo.ENGINE,
072: * or ComponentInfo.SHARED_LIBRARY.
073: */
074: ComponentType getComponentType();
075:
076: /**
077: * Get the description of the component.
078: * @return the String describing the component.
079: */
080: String getDescription();
081:
082: /**
083: * Get the directory into which this component is installed.
084: * @return the directory into which this component is installed.
085: */
086: String getInstallRoot();
087:
088: /**
089: * Get the workspace for the component
090: * @return this components workspace directory.
091: */
092: String getWorkspaceRoot();
093:
094: /**
095: * Get the name of the component.
096: * @return the name of the component.
097: */
098: String getName();
099:
100: /**
101: * Get the list of ServiceUnitInfo objects representing all the SUs that
102: * are currently deployed to this component; for Shared Libraries this is
103: * null.
104: * @return List of ServiceUnitInfo objects.
105: */
106: List<ServiceUnitInfo> getServiceUnitList();
107:
108: /**
109: * Get the list of Shared Libraries required by this component. For BCs
110: * and SEs, this is the list of Shared Library names in the order that they
111: * appear in the class loader chain; for Shared Libraries this is null.
112: * @return List of Strings containing Shared Library names.
113: */
114: List<String> getSharedLibraryNames();
115:
116: /**
117: * Get the Status of the Component. For Shared Libraries this is always
118: * INSTALLED.
119: * @return should be of the values: LOADED, INSTALLED, STOPPED and STARTED
120: */
121: ComponentState getStatus();
122:
123: /**
124: * Get a hash code for this ComponentInfo.
125: * @return the hash code for the object.
126: */
127: int hashCode();
128:
129: /**
130: * Get the installation specific properties for the component.
131: *
132: * @return a Map of the properties
133: */
134: Map<String, String> getProperties();
135:
136: /**
137: * @return true/false depending on the value of the bootstrapClassLoaderSelfFirst
138: * attribute. This method returns false for shared libraries.
139: */
140: boolean isBootstrapClassLoaderSelfFirst();
141:
142: /**
143: * @return true/false depending on the value of the {Component}ClassLoaderSelfFirst
144: * attribute.
145: */
146: boolean isClassLoaderSelfFirst();
147:
148: /**
149: * Get the class path elements that this BC or SE needs in its bootstrap
150: * runtime environment.
151: * @return A list of the elements of the bootstrap class path as strings.
152: */
153: List<String> getBootstrapClassPathElements();
154:
155: /**
156: * Get the class name of the bootstrap implementation for this BC or SE.
157: * @return The bootstrap class name.
158: */
159: String getBootstrapClassName();
160:
161: /**
162: * Get the Installation Descriptor ( jbi.xml ) for the Component / Shared Library.
163: *
164: * @return the jbi.xml as a String
165: */
166: String getInstallationDescriptor();
167: }
|