View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
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   * TODO
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          // We are sometimes stopped by our owner when already stopped
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  }