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: * @(#)InstallationContext.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package com.sun.jbi.component;
030:
031: /**
032: * This context contains information necessary for a JBI component to perform
033: * its installation/uninstallation processing. This context is provided to the
034: * <code>init()</code> method of the component's bootstrap implementation.
035: *
036: * @author Sun Microsystems, Inc.
037: */
038: public interface InstallationContext extends
039: javax.jbi.component.InstallationContext {
040: /**
041: * Constant for specifying this context is for a Binding Component.
042: */
043: int BINDING = 1;
044:
045: /**
046: * Constant for specifying this context is for a Service Engine.
047: */
048: int ENGINE = 2;
049:
050: /**
051: * Constant for specifying self first classloading of a component's
052: * bootstrap or runtime resources.
053: */
054: String SELF_FIRST = "self-first";
055:
056: /**
057: * Get a list of elements that comprise the class path for this component.
058: * Each element represents either a directory (containing class files) or a
059: * jar/zip file. The elements are absolute paths and are returned with a
060: * forward slash as their file separators.
061: * @return a list of String objects containing class path elements.
062: */
063: java.util.List getAbsoluteClassPathElements();
064:
065: /**
066: * Return the description of the component.
067: * @return the description of the component from the installation
068: * descriptor.
069: */
070: String getDescription();
071:
072: /**
073: * Return the workspace root directory for the component.
074: * @return the workspace root directory path.
075: */
076: String getWorkspaceRoot();
077:
078: /**
079: * Return an indication as to whether the component being installed is a
080: * Binding Component.
081: * @return true if the component is a BC, false if not.
082: */
083: boolean isBinding();
084:
085: /**
086: * Return an indication as to whether the bootstrap class loader should
087: * use the normal hierarchy (parent-first) or an inverted hierarchy
088: * (self-first).
089: * @return true if the bootstrap class loader should use the self-first
090: * hierarchy, false if it should use parent-first.
091: */
092: boolean isBootstrapClassLoaderSelfFirst();
093:
094: /**
095: * Return an indication as to whether the component class loader should
096: * use the normal hierarchy (parent-first) or an inverted hierarchy
097: * (self-first).
098: * @return true if the component class loader should use the self-first
099: * hierarchy, false if it should use parent-first.
100: */
101: boolean isComponentClassLoaderSelfFirst();
102:
103: /**
104: * Return an indication as to whether the component being installed is a
105: * Service Engine.
106: * @return true if the component is a SE, false if not.
107: */
108: boolean isEngine();
109:
110: /**
111: * Set the reference to the ComponentContext for this component.
112: * @param context is the component context.
113: */
114: void setContext(javax.jbi.component.ComponentContext context);
115: }
|