1
2
3
4
5
6
7 package org.mule.transport;
8
9 import org.mule.api.MuleException;
10 import org.mule.api.lifecycle.Disposable;
11 import org.mule.api.lifecycle.Initialisable;
12 import org.mule.api.lifecycle.LifecycleCallback;
13 import org.mule.api.lifecycle.Startable;
14 import org.mule.api.lifecycle.Stoppable;
15 import org.mule.lifecycle.SimpleLifecycleManager;
16
17
18
19
20 public class ConnectableLifecycleManager<O> extends SimpleLifecycleManager<O>
21 {
22 public ConnectableLifecycleManager(String id, O object)
23 {
24 super(id, object);
25 }
26
27 @Override
28 public void fireInitialisePhase(LifecycleCallback<O> callback) throws MuleException
29 {
30 checkPhase(Initialisable.PHASE_NAME);
31 if (logger.isInfoEnabled())
32 {
33 logger.info(String.format("Initialising: '%s'. Object is: %s", lifecycleManagerId,
34 getLifecycleObject().getClass().getSimpleName()));
35 }
36 invokePhase(Initialisable.PHASE_NAME, getLifecycleObject(), callback);
37 }
38
39 @Override
40 public void fireStartPhase(LifecycleCallback<O> callback) throws MuleException
41 {
42 checkPhase(Startable.PHASE_NAME);
43 if (logger.isInfoEnabled())
44 {
45 logger.info(String.format("Starting: '%s'. Object is: %s", lifecycleManagerId,
46 getLifecycleObject().getClass().getSimpleName()));
47 }
48 invokePhase(Startable.PHASE_NAME, getLifecycleObject(), callback);
49 }
50
51 @Override
52 public void fireStopPhase(LifecycleCallback<O> callback) throws MuleException
53 {
54
55 if (currentPhase == Stoppable.PHASE_NAME)
56 {
57 return;
58 }
59 checkPhase(Stoppable.PHASE_NAME);
60 if (logger.isInfoEnabled())
61 {
62 logger.info(String.format("Stopping: '%s'. Object is: %s", lifecycleManagerId,
63 getLifecycleObject().getClass().getSimpleName()));
64 }
65 invokePhase(Stoppable.PHASE_NAME, getLifecycleObject(), callback);
66 }
67
68 @Override
69 public void fireDisposePhase(LifecycleCallback<O> callback) throws MuleException
70 {
71 checkPhase(Disposable.PHASE_NAME);
72 if (logger.isInfoEnabled())
73 {
74 logger.info(String.format("Disposing: '%s'. Object is: %s", lifecycleManagerId,
75 getLifecycleObject().getClass().getSimpleName()));
76 }
77 invokePhase(Disposable.PHASE_NAME, getLifecycleObject(), callback);
78 }
79 }