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
26 public ConnectableLifecycleManager(String id, O object)
27 {
28 super(id, object);
29 }
30
31 @Override
32 public void fireInitialisePhase(LifecycleCallback<O> callback) throws MuleException
33 {
34 checkPhase(Initialisable.PHASE_NAME);
35 if (logger.isInfoEnabled())
36 {
37 logger.info(String.format("Initialising: '%s'. Object is: %s", lifecycleManagerId, 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, getLifecycleObject().getClass().getSimpleName()));
49 }
50 invokePhase(Startable.PHASE_NAME, getLifecycleObject(), callback);
51 }
52
53 @Override
54 public void fireStopPhase(LifecycleCallback<O> callback) throws MuleException
55 {
56
57 if (currentPhase == Stoppable.PHASE_NAME)
58 {
59 return;
60 }
61 checkPhase(Stoppable.PHASE_NAME);
62 if (logger.isInfoEnabled())
63 {
64 logger.info(String.format("Stopping: '%s'. Object is: %s", lifecycleManagerId, getLifecycleObject().getClass().getSimpleName()));
65 }
66 invokePhase(Stoppable.PHASE_NAME, getLifecycleObject(), callback);
67 }
68
69 @Override
70 public void fireDisposePhase(LifecycleCallback<O> callback) throws MuleException
71 {
72 checkPhase(Disposable.PHASE_NAME);
73 if (logger.isInfoEnabled())
74 {
75 logger.info(String.format("Disposing: '%s'. Object is: %s", lifecycleManagerId, getLifecycleObject().getClass().getSimpleName()));
76 }
77 invokePhase(Disposable.PHASE_NAME, getLifecycleObject(), callback);
78 }
79 }