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: * @(#)EngineBootstrap.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package com.sun.jbi.framework;
030:
031: import java.io.File;
032:
033: import java.util.ArrayList;
034: import java.util.List;
035: import java.util.logging.Logger;
036:
037: import javax.jbi.component.InstallationContext;
038:
039: import javax.management.ObjectName;
040:
041: /**
042: * This is an implementation of the bootstrap class for a Service Engine
043: * that is purely for unit testing. It does nothing but log messages when
044: * its methods are called.
045: *
046: * @author Sun Microsystems, Inc.
047: */
048: public class EngineBootstrap implements javax.jbi.component.Bootstrap {
049: /**
050: * InstallationContext instance
051: */
052: private InstallationContext mCtx;
053:
054: /**
055: * Logger instance
056: */
057: private Logger mLog = Logger
058: .getLogger("com.sun.jbi.framework.EngineBootstrap");
059:
060: /**
061: * Cleans up any resources allocated by the bootstrap implementation,
062: * including deregistration of the extension MBean, if applicable.
063: * This method will be called after the onInstall() or onUninstall() method
064: * is called, whether it succeeds or fails.
065: * @throws javax.jbi.JBIException when cleanup processing fails to complete
066: * successfully.
067: */
068: public void cleanUp() throws javax.jbi.JBIException {
069: String name = mCtx.getComponentName();
070: mLog.info(name + ": cleanUp() called");
071: if (mCtx.isInstall()) {
072: if (name
073: .equals(Constants.SE_NAME_BAD_BOOTSTRAP_INSTALL_CLEANUP)
074: || name
075: .equals(Constants.SE_NAME_BAD_BOOTSTRAP_ONINSTALL_CLEANUP)
076: || name
077: .equals(Constants.SE_NAME_BAD_BOOTSTRAP_INIT_CLEANUP)) {
078: throw new javax.jbi.JBIException(
079: "bootstrap cleanup failed");
080: }
081: } else {
082: if (name
083: .equals(Constants.SE_NAME_BAD_BOOTSTRAP_UNINSTALL_CLEANUP)
084: || name
085: .equals(Constants.SE_NAME_BAD_BOOTSTRAP_ONUNINSTALL_CLEANUP)
086: || name
087: .equals(Constants.SE_NAME_BAD_BOOTSTRAP_INIT_CLEANUP)) {
088: throw new javax.jbi.JBIException(
089: "bootstrap cleanup failed");
090: }
091: }
092: }
093:
094: /**
095: * Initialize for installation.
096: * @param installContext is the InstallationContext
097: * @throws javax.jbi.JBIException if any error occurs.
098: */
099: public void init(InstallationContext installContext)
100: throws javax.jbi.JBIException {
101: mCtx = installContext;
102: mLog.info(mCtx.getComponentName() + ": init() called");
103: String name = mCtx.getComponentName();
104: if (name.equals(Constants.SE_NAME_BAD_BOOTSTRAP_INIT)
105: || name
106: .equals(Constants.SE_NAME_BAD_BOOTSTRAP_INIT_CLEANUP)) {
107: throw new javax.jbi.JBIException("bootstrap init failed");
108: }
109: return;
110: }
111:
112: /**
113: * Return an optional installation configuration MBean ObjectName.
114: * @return The MBean ObjectName for the installation configuration MBean.
115: */
116: public ObjectName getExtensionMBeanName() {
117: mLog.info(mCtx.getComponentName()
118: + ": getExtensionMBeanName() called");
119: javax.jbi.component.ComponentContext env = mCtx.getContext();
120: javax.jbi.management.MBeanNames mbn = env.getMBeanNames();
121: ObjectName on = mbn
122: .createCustomComponentMBeanName("InstallerConfigurationMBean");
123: return on;
124: }
125:
126: /**
127: * Install the Service Engine into the JBI framework.
128: * @throws javax.jbi.JBIException if any error occurs.
129: */
130: public void onInstall() throws javax.jbi.JBIException {
131: mLog.info(mCtx.getComponentName() + ": onInstall() called");
132: String compId = mCtx.getComponentName();
133: if (compId.equals(Constants.SE_NAME_BAD_BOOTSTRAP_ONINSTALL)
134: || compId
135: .equals(Constants.SE_NAME_BAD_BOOTSTRAP_ONINSTALL_CLEANUP)) {
136: throw new javax.jbi.JBIException("unable to install engine");
137: } else if (compId
138: .equals(Constants.SE_NAME_BOOTSTRAP_MODIFY_CLASS_PATH)) {
139: mLog.info("Life cycle class path was "
140: + mCtx.getClassPathElements());
141: List cp = new ArrayList();
142: cp.add("framework" + File.separator + "bld"
143: + File.separator + "regress" + File.separator
144: + "Engine");
145: mCtx.setClassPathElements(cp);
146: mLog.info("Life cycle class path now "
147: + mCtx.getClassPathElements());
148: mLog.info("Service Engine " + compId + " now installed");
149: } else {
150: mLog.info("Service Engine " + compId + " now installed");
151: }
152: return;
153: }
154:
155: /**
156: * Uninstall a Service Engine from the JBI framework.
157: * @throws javax.jbi.JBIException if any error occurs.
158: */
159: public void onUninstall() throws javax.jbi.JBIException {
160: mLog.info(mCtx.getComponentName() + ": onUninstall() called");
161: String compId = mCtx.getComponentName();
162: if (compId.equals(Constants.SE_NAME_BAD_BOOTSTRAP_ONUNINSTALL)
163: || compId
164: .equals(Constants.SE_NAME_BAD_BOOTSTRAP_ONUNINSTALL_CLEANUP)
165: || compId
166: .equals(Constants.SE_NAME_BAD_SHUTDOWN_BOOTSTRAP_ONUNINSTALL)) {
167: throw new javax.jbi.JBIException(
168: "unable to uninstall engine");
169: } else {
170: mLog.info("Service Engine " + compId + " now uninstalled");
171: }
172: return;
173: }
174:
175: }
|