KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > context > Lifecycle


1 /*
2  * Copyright 2002-2007 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.springframework.context;
18
19 /**
20  * Interface defining methods for start/stop lifecycle control.
21  * The typical use case for this is to control asynchronous processing.
22  *
23  * <p>Can be implemented by both components (typically a Spring bean defined in
24  * a Spring {@link org.springframework.beans.factory.BeanFactory}) and containers
25  * (typically a Spring {@link ApplicationContext}). Containers will propagate
26  * start/stop signals to all components that apply.
27  *
28  * <p>Can be used for direct invocations or for management operations via JMX.
29  * In the latter case, the {@link org.springframework.jmx.export.MBeanExporter}
30  * will typically be defined with an
31  * {@link org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler},
32  * restricting the visibility of activity-controlled components to the Lifecycle
33  * interface.
34  *
35  * @author Juergen Hoeller
36  * @since 2.0
37  * @see ConfigurableApplicationContext
38  * @see org.springframework.jms.listener.AbstractMessageListenerContainer
39  * @see org.springframework.scheduling.quartz.SchedulerFactoryBean
40  */

41 public interface Lifecycle {
42
43     /**
44      * Start this component.
45      * Should not throw an exception if the component is already running.
46      * <p>In the case of a container, this will propagate the start signal
47      * to all components that apply.
48      */

49     void start();
50
51     /**
52      * Stop this component.
53      * Should not throw an exception if the component isn't started yet.
54      * <p>In the case of a container, this will propagate the stop signal
55      * to all components that apply.
56      */

57     void stop();
58
59     /**
60      * Check whether this component is currently running.
61      * <p>In the case of a container, this will return <code>true</code>
62      * only if <i>all</i> components that apply are currently running.
63      * @return whether the component is currently running
64      */

65     boolean isRunning();
66
67 }
68
Popular Tags