View Javadoc

1   /*
2   * $Id: DisposableCloser.java 19191 2010-08-25 21:05:23Z tcarlson $
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.guiceyfruit.mule.support;
11  
12  import org.mule.api.MuleContext;
13  import org.mule.api.lifecycle.Disposable;
14  
15  import org.guiceyfruit.support.Closer;
16  
17  /**
18   * Disposes objects that implement {@link org.mule.api.lifecycle.Disposable} in the current scope when the scope closes
19   */
20  public class DisposableCloser implements Closer
21  {
22      public void close(Object object) throws Throwable
23      {
24          if (object instanceof Disposable && !(object instanceof MuleContext))
25          {
26              Disposable disposable = (Disposable) object;
27              disposable.dispose();
28          }
29      }
30  }