Initial revision
[mir.git] / source / mir / servlet / ServletModuleMonitor.java
diff --git a/source/mir/servlet/ServletModuleMonitor.java b/source/mir/servlet/ServletModuleMonitor.java
new file mode 100755 (executable)
index 0000000..e6a7334
--- /dev/null
@@ -0,0 +1,97 @@
+package mir.servlet;
+
+import java.io.*;
+import java.sql.*;
+import java.util.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+import freemarker.template.*;
+
+import mir.servlet.*;
+import mir.module.*;
+import mir.misc.*;
+import mir.storage.*;
+import mir.entity.*;
+
+import com.javaexchange.dbConnectionBroker.*;
+/*
+ *  ServletModuleShow -
+ *  liefert HTML fuer Show
+ *
+ *
+ * @author RK
+ */
+
+public class ServletModuleMonitor extends ServletModule
+{
+  private static ServletModuleMonitor instance = new ServletModuleMonitor();
+  public static ServletModule getInstance() { return instance; }
+
+  public String defaultAction() { return "show"; }
+
+  public void show(HttpServletRequest req, HttpServletResponse res) throws ServletModuleException {
+
+    try {
+      // Hier Ausgabe von
+      // instances in AbstractEntity
+      // eingelesene confs
+      // datenbankverbindungen fuer brokers
+      getSimpleInfo(res.getWriter(),getConfs());
+      PrintWriter out = res.getWriter();
+      out.println(getInstancesInfo());
+      out.println(getInstancesConfInfo());
+
+    }
+    catch (Exception e) {
+      //e.printStackTrace();
+      throw new ServletModuleException(e.toString());
+    }
+  }
+  protected int getInstances(){
+    AbstractEntity ent = new AbstractEntity();
+    return ent.getInstances();
+  }
+  public String getInstancesInfo(){
+    return "<table><tr><td>Momentan instanzierte EntityObjekte = </td><td>" + getInstances()+"</td></tr></table>\n";
+  }
+  public String getInstancesConfInfo(){
+    return "<table><tr><td>Momentan instanzierte BrokerObjekte  = </td><td>" + getConfBrokerCnt()+"</td></tr></table>\n";
+  }
+
+  protected HashMap getConfs(){
+    return Configuration.getConfs();
+  }
+  protected int getBrokerUseCnt(DbConnectionBroker broker){
+    return broker.getUseCount();
+  }
+  protected int getConfBrokerCnt(){
+    return Configuration.getBrokerInstances();
+  }
+  protected int getBrokerSize(DbConnectionBroker broker){
+    return broker.getSize();
+  }
+  public String getBrokerInfo(DbConnectionBroker broker){
+    return "<tr><td>Connections im pool                  = </td><td>"+ broker.getSize() + "</td></tr>\n"+
+           "<tr><td>Connection die gerade benutzt werden = </td><td>" + broker.getUseCount()+"</td></tr>\n";
+  }
+  public void getSimpleInfo(Writer out,HashMap confs) throws IOException{
+    String key;
+    DbConnectionBroker broker = null;
+    out.write(getInstancesInfo());
+    out.write(getInstancesConfInfo());
+    Set set = confs.keySet();
+    Iterator it = set.iterator();
+    for (int i=0;i<set.size();i++){
+      key=(String)it.next();
+      out.write("<table><tr><td>Konfiguration : </td><td>" + confs.get(key)+ "</td></tr>\n" );
+      broker=Configuration.getBrokerInfo();
+      //broker=(DbConnectionBroker) ((HashMap)confs.get(key)).get("Pool.broker");
+      if(broker!=null)  out.write(getBrokerInfo(broker));
+      else
+        out.write("<tr><td>Broker nicht initializiert</td><td></td></tr>\n");
+      out.write("</table>\n");
+    }
+  }
+}
+