01: /*
02: * The contents of this file are subject to the Sapient Public License
03: * Version 1.0 (the "License"); you may not use this file except in compliance
04: * with the License. You may obtain a copy of the License at
05: * http://carbon.sf.net/License.html.
06: *
07: * Software distributed under the License is distributed on an "AS IS" basis,
08: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
09: * the specific language governing rights and limitations under the License.
10: *
11: * The Original Code is The Carbon Component Framework.
12: *
13: * The Initial Developer of the Original Code is Sapient Corporation
14: *
15: * Copyright (C) 2003 Sapient Corporation. All Rights Reserved.
16: */
17:
18: package org.sape.carbon.core.component.lifecycle;
19:
20: /**
21: * This interface should be implemented by Components that require
22: * (re)configurability. More specifically:
23: * <p>1. Safe reconfiguration, at the expense of interrupted service</p>
24: * <p>2. The explicit ability to suspend and resume the component as a
25: * management feature</p>
26: *
27: * Copyright 2002 Sapient
28: * @since carbon 1.0
29: * @author Chris Herron, January 2002
30: * @version $Revision: 1.9 $($Author: dvoet $ / $Date: 2003/05/05 21:21:13 $)
31: */
32: public interface Suspendable {
33:
34: /**
35: * Suspend the component. This is an opportunity to 'pause' any ongoing
36: * work". Prior to calling this method, the container will block requests
37: * for service to the component.
38: *
39: * @throws Exception when there is a failure to suspend the component
40: */
41: void suspend() throws Exception;
42:
43: /**
44: * Resume the component. This implies "picking-up where you left off".
45: * On return of this method, the container will resume forwarding service
46: * requests to the component.
47: *
48: * @throws Exception when there is a failure to resume the component
49: */
50: void resume() throws Exception;
51:
52: }
|