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