1
2
3
4
5
6
7
8
9
10
11 package org.mule.component;
12
13 import org.mule.api.MuleContext;
14 import org.mule.api.MuleException;
15 import org.mule.api.component.Component;
16 import org.mule.api.lifecycle.Disposable;
17 import org.mule.api.lifecycle.Initialisable;
18 import org.mule.api.lifecycle.InitialisationException;
19 import org.mule.api.lifecycle.LifecycleCallback;
20 import org.mule.api.lifecycle.LifecycleException;
21 import org.mule.api.lifecycle.Startable;
22 import org.mule.api.lifecycle.Stoppable;
23 import org.mule.config.i18n.CoreMessages;
24 import org.mule.lifecycle.SimpleLifecycleManager;
25
26 import org.apache.commons.logging.Log;
27 import org.apache.commons.logging.LogFactory;
28
29
30
31
32
33
34 public class ComponentLifecycleManager extends SimpleLifecycleManager<Component>
35 {
36
37
38
39 protected transient final Log logger = LogFactory.getLog(ComponentLifecycleManager.class);
40 protected MuleContext muleContext;
41
42 public ComponentLifecycleManager(String name, Component component)
43 {
44 super(name, component);
45 }
46
47 @Override
48 public void fireInitialisePhase(LifecycleCallback<Component> callback) throws InitialisationException
49 {
50 checkPhase(Initialisable.PHASE_NAME);
51 if (logger.isInfoEnabled()) logger.info("Initialising component: " + lifecycleManagerId);
52 try
53 {
54 invokePhase(Initialisable.PHASE_NAME, getLifecycleObject(), callback);
55 }
56 catch (InitialisationException e)
57 {
58 throw e;
59 }
60 catch (LifecycleException e)
61 {
62 throw new InitialisationException(e, (Initialisable) object);
63 }
64 }
65
66 @Override
67 public void fireStartPhase(LifecycleCallback<Component> callback) throws MuleException
68 {
69 checkPhase(Startable.PHASE_NAME);
70 if (logger.isInfoEnabled()) logger.info("Starting component: " + lifecycleManagerId);
71 invokePhase(Startable.PHASE_NAME, getLifecycleObject(), callback);
72 }
73
74 @Override
75 public void fireStopPhase(LifecycleCallback<Component> callback) throws MuleException
76 {
77 checkPhase(Stoppable.PHASE_NAME);
78 if (logger.isInfoEnabled()) logger.info("Stopping component: " + lifecycleManagerId);
79 invokePhase(Stoppable.PHASE_NAME, getLifecycleObject(), callback);
80 }
81
82 @Override
83 public void fireDisposePhase(LifecycleCallback<Component> callback)
84 {
85 checkPhase(Disposable.PHASE_NAME);
86 if (logger.isInfoEnabled()) logger.info("Disposing component: " + lifecycleManagerId);
87 try
88 {
89 invokePhase(Disposable.PHASE_NAME, getLifecycleObject(), callback);
90 }
91 catch (LifecycleException e)
92 {
93 logger.warn(CoreMessages.failedToDispose(lifecycleManagerId), e);
94 }
95 }
96
97 }