View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    * 
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.log4j.lf5;
18  
19  import org.apache.log4j.lf5.viewer.LogBrokerMonitor;
20  
21  /**
22   * <code>AppenderFinalizer</code> has a single method that will finalize
23   * resources associated with a <code>LogBrokerMonitor</code> in the event
24   * that the <code>LF5Appender</code> class is destroyed, and the class loader
25   * is garbage collected.
26   *
27   * @author Brent Sprecher
28   */
29  
30  // Contributed by ThoughtWorks Inc.
31  
32  public class AppenderFinalizer {
33    //--------------------------------------------------------------------------
34    // Constants:
35    //--------------------------------------------------------------------------
36  
37    //--------------------------------------------------------------------------
38    // Protected Variables:
39    //--------------------------------------------------------------------------
40  
41    protected LogBrokerMonitor _defaultMonitor = null;
42  
43    //--------------------------------------------------------------------------
44    // Private Variables:
45    //--------------------------------------------------------------------------
46  
47    //--------------------------------------------------------------------------
48    // Constructors:
49    //--------------------------------------------------------------------------
50  
51    public AppenderFinalizer(LogBrokerMonitor defaultMonitor) {
52      _defaultMonitor = defaultMonitor;
53    }
54    //--------------------------------------------------------------------------
55    // Public Methods:
56    //--------------------------------------------------------------------------
57  
58    //--------------------------------------------------------------------------
59    // Protected Methods:
60    //--------------------------------------------------------------------------
61  
62    /**
63     * @throws java.lang.Throwable
64     */
65    protected void finalize() throws Throwable {
66      System.out.println("Disposing of the default LogBrokerMonitor instance");
67      _defaultMonitor.dispose();
68    }
69  
70    //--------------------------------------------------------------------------
71    // Private Methods:
72    //--------------------------------------------------------------------------
73  
74    //--------------------------------------------------------------------------
75    // Nested Top-Level Classes or Interfaces:
76    //--------------------------------------------------------------------------
77  
78  }