1 // ======================================================================== 2 // $Id: LifeCycle.java,v 1.5 2004/05/09 20:32:49 gregwilkins Exp $ 3 // Copyright 1999-2004 Mort Bay Consulting Pty. Ltd. 4 // ------------------------------------------------------------------------ 5 // Licensed under the Apache License, Version 2.0 (the "License"); 6 // you may not use this file except in compliance with the License. 7 // You may obtain a copy of the License at 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 // ======================================================================== 15 16 package org.mortbay.util;/* ------------------------------------------------------------ */ 17 /** A component LifeCycle. 18 * Represents the life cycle interface for an abstract 19 * software component. 20 * 21 * @version $Id: LifeCycle.java,v 1.5 2004/05/09 20:32:49 gregwilkins Exp $ 22 * @author Greg Wilkins (gregw) 23 */ 24 public interface LifeCycle 25 { 26 /* ------------------------------------------------------------ */ 27 /** Start the LifeCycle. 28 * @exception Exception An arbitrary exception may be thrown. 29 */ 30 public void start() 31 throws Exception; 32 33 /* ------------------------------------------------------------ */ 34 /** Stop the LifeCycle. 35 * The LifeCycle may wait for current activities to complete 36 * normally, but it can be interrupted. 37 * @exception InterruptedException Stopping a lifecycle is rarely atomic 38 * and may be interrupted by another thread. If this happens 39 * InterruptedException is throw and the component will be in an 40 * indeterminant state and should probably be discarded. 41 */ 42 public void stop() 43 throws InterruptedException; 44 45 /* ------------------------------------------------------------ */ 46 /** 47 * @return True if the LifeCycle has been started. 48 */ 49 public boolean isStarted(); 50 } 51 52