1   /*
2    * Copyright (c) 2004-2009 QOS.ch All rights reserved.
3    * 
4    * Permission is hereby granted, free of charge, to any person obtaining a copy
5    * of this software and associated documentation files (the "Software"), to deal
6    * in the Software without restriction, including without limitation the rights
7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    * copies of the Software, and to permit persons to whom the Software is
9    * furnished to do so, subject to the following conditions:
10   * 
11   * The above copyright notice and this permission notice shall be included in
12   * all copies or substantial portions of the Software.
13   * 
14   * THE SOFTWARE IS PROVIDED "AS  IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20   * SOFTWARE.
21   */
22  package org.slf4j.test_osgi;
23  
24  import java.util.ArrayList;
25  import java.util.List;
26  
27  import org.osgi.framework.FrameworkEvent;
28  import org.osgi.framework.FrameworkListener;
29  
30  public class FrameworkErrorListener implements FrameworkListener {
31  
32    public List errorList = new ArrayList();
33    
34    public void frameworkEvent(FrameworkEvent fe) {
35      if (fe.getType() == FrameworkEvent.ERROR) {
36        errorList.add(fe);
37      
38      }
39    }
40    
41    private void dump(FrameworkEvent fe) {
42      Throwable t = fe.getThrowable();
43      String tString = null;
44      if (t != null) {
45        tString = t.toString();
46      }
47      System.out.println("Framework ERROR:" + ", source " + fe.getSource()
48          + ", bundle=" + fe.getBundle() + ", ex=" + tString);
49      if(t != null) {
50        t.printStackTrace();
51      }
52    }
53  
54    public void dumpAll() {
55      for(int i = 0; i < errorList.size(); i++) {
56        FrameworkEvent fe = (FrameworkEvent) errorList.get(i);
57        dump(fe);
58      }
59    }
60  }