View Javadoc

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