| 1 |  |   | 
  | 2 |  |   | 
  | 3 |  |   | 
  | 4 |  |   | 
  | 5 |  |   | 
  | 6 |  |   | 
  | 7 |  |   | 
  | 8 |  |   | 
  | 9 |  |   | 
  | 10 |  |   | 
  | 11 |  |   | 
  | 12 |  |   | 
  | 13 |  |   | 
  | 14 |  |  package net.admin4j.ui.servlets; | 
  | 15 |  |   | 
  | 16 |  |  import java.io.IOException; | 
  | 17 |  |  import java.util.ArrayList; | 
  | 18 |  |  import java.util.Collections; | 
  | 19 |  |  import java.util.HashMap; | 
  | 20 |  |  import java.util.List; | 
  | 21 |  |  import java.util.Map; | 
  | 22 |  |  import java.util.Set; | 
  | 23 |  |   | 
  | 24 |  |  import javax.servlet.ServletException; | 
  | 25 |  |  import javax.servlet.http.HttpServletRequest; | 
  | 26 |  |  import javax.servlet.http.HttpServletResponse; | 
  | 27 |  |   | 
  | 28 |  |  import net.admin4j.deps.commons.collections.comparators.ReverseComparator; | 
  | 29 |  |  import net.admin4j.jdbc.driver.SqlStatementTimerFactory; | 
  | 30 |  |  import net.admin4j.util.CompositeBeanComparator; | 
  | 31 |  |  import net.admin4j.util.FreemarkerUtils; | 
  | 32 |  |  import net.admin4j.util.GuiUtils; | 
  | 33 |  |  import net.admin4j.vo.DataMeasurementSummaryVO; | 
  | 34 |  |  import net.admin4j.vo.SqlStatementPerformanceSummaryVO; | 
  | 35 |  |   | 
  | 36 |  |   | 
  | 37 |  |   | 
  | 38 |  |   | 
  | 39 |  |   | 
  | 40 |  |   | 
  | 41 | 6 |  public class SqlDisplayServlet extends AdminDisplayServlet { | 
  | 42 |  |   | 
  | 43 |  |      private static final long serialVersionUID = -912400494533151009L; | 
  | 44 |  |      public static final String PUBLIC_HANDLE="sql"; | 
  | 45 |  |   | 
  | 46 |  |      @Override | 
  | 47 |  |      public String getServletLabel() { | 
  | 48 | 3 |          return "SQL Display Summary"; | 
  | 49 |  |      } | 
  | 50 |  |   | 
  | 51 |  |       | 
  | 52 |  |   | 
  | 53 |  |   | 
  | 54 |  |      @Override | 
  | 55 |  |      protected void service(HttpServletRequest request, HttpServletResponse response) | 
  | 56 |  |              throws ServletException, IOException { | 
  | 57 |  |           | 
  | 58 | 3 |          Map<String,Set<DataMeasurementSummaryVO>> summaryMap = SqlStatementTimerFactory.getDataSummaryMap(); | 
  | 59 | 3 |          List<SqlStatementPerformanceSummaryVO> summaryList = new ArrayList<SqlStatementPerformanceSummaryVO>(); | 
  | 60 |  |           | 
  | 61 | 3 |          for (Set<DataMeasurementSummaryVO> summarySet: summaryMap.values()) { | 
  | 62 | 0 |              summaryList.add(new SqlStatementPerformanceSummaryVO(takeOne(summarySet))); | 
  | 63 |  |          } | 
  | 64 |  |           | 
  | 65 | 3 |          CompositeBeanComparator comparator = new CompositeBeanComparator( | 
  | 66 |  |                  new String[]{"summary.total", "poolName"}); | 
  | 67 |  |          Collections.sort(summaryList, new ReverseComparator(comparator)); | 
  | 68 |  |           | 
  | 69 | 3 |          Map<String,Object> variableMap = new HashMap<String,Object>(); | 
  | 70 | 3 |          variableMap.put("sqlSummaryList", summaryList); | 
  | 71 | 3 |          variableMap.put("GuiUtils", new GuiUtils()); | 
  | 72 | 3 |          FreemarkerUtils.addConfiguration(variableMap); | 
  | 73 |  |           | 
  | 74 | 3 |          this.displayFreeMarkerPage(request, response, "sqlServletDisplay.ftl", variableMap); | 
  | 75 |  |   | 
  | 76 | 3 |      } | 
  | 77 |  |       | 
  | 78 |  |      private DataMeasurementSummaryVO takeOne(Set<DataMeasurementSummaryVO> set) { | 
  | 79 | 0 |          ArrayList<DataMeasurementSummaryVO> list = new ArrayList<DataMeasurementSummaryVO>(set); | 
  | 80 | 0 |          return list.get(0); | 
  | 81 |  |      } | 
  | 82 |  |   | 
  | 83 |  |  } |