You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2008/11/23 19:32:02 UTC

svn commit: r720024 [2/5] - in /geronimo/server/trunk: ./ plugingroups/javaee5-jetty/ plugingroups/javaee5-jetty/src/main/history/ plugingroups/javaee5-tomcat/ plugingroups/javaee5-tomcat/src/main/history/ plugins/monitoring/ plugins/monitoring/agent-c...

Modified: geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MonitoringPortlet.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MonitoringPortlet.java?rev=720024&r1=720023&r2=720024&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MonitoringPortlet.java (original)
+++ geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MonitoringPortlet.java Sun Nov 23 10:32:00 2008
@@ -17,12 +17,15 @@
 package org.apache.geronimo.monitoring.console;
 
 import java.io.IOException;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.List;
 
+import javax.annotation.Resource;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
 import javax.portlet.ActionRequest;
 import javax.portlet.ActionResponse;
 import javax.portlet.GenericPortlet;
@@ -31,14 +34,20 @@
 import javax.portlet.PortletRequestDispatcher;
 import javax.portlet.RenderRequest;
 import javax.portlet.RenderResponse;
+import javax.transaction.UserTransaction;
 
-import org.apache.geronimo.monitoring.console.util.DBManager;
 import org.apache.geronimo.crypto.EncryptionManager;
+import org.apache.geronimo.monitoring.console.data.Graph;
+import org.apache.geronimo.monitoring.console.data.Node;
+import org.apache.geronimo.monitoring.console.data.View;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * STATS
  */
 public class MonitoringPortlet extends GenericPortlet {
+    Logger log = LoggerFactory.getLogger(MonitoringPortlet.class);
 
     private static final String NORMALVIEW_JSP = "/WEB-INF/view/monitoringNormal.jsp";
 
@@ -96,9 +105,16 @@
 
     private PortletRequestDispatcher editNormalView;
 
+    //annotations don't work in portlets yet, see init method for initialization
+    @Resource
+    UserTransaction userTransaction;
+
+    @PersistenceContext
+    EntityManager entityManager;
+
     @Override
     public void processAction(ActionRequest actionRequest,
-            ActionResponse actionResponse) throws PortletException, IOException {
+                              ActionResponse actionResponse) throws PortletException, IOException {
         String action = actionRequest.getParameter("action");
         actionResponse.setRenderParameter("action", action);
         if (action.equals("showView")) {
@@ -175,18 +191,15 @@
         } else if (action.equals("startThread")
                 || action.equals("enableServerViewQuery")) {
             String server_id = actionRequest.getParameter("server_id");
-            String snapshotDuration = actionRequest
-                    .getParameter("snapshotDuration");
+            String snapshotDuration = actionRequest.getParameter("snapshotDuration");
             String message = startThread(server_id, new Long(snapshotDuration));
             actionResponse.setRenderParameter("message", message);
             actionResponse.setRenderParameter("server_id", server_id);
-            actionResponse.setRenderParameter("snapshotDuration",
-                    snapshotDuration);
+            actionResponse.setRenderParameter("snapshotDuration", snapshotDuration);
         } else if (action.equals("disableServer")
                 || action.equals("disableEditServer")) {
             String server_id = actionRequest.getParameter("server_id");
             actionResponse.setRenderParameter("server_id", server_id);
-            ;
             actionResponse.setRenderParameter("message", alterServerState(
                     server_id, false));
         } else if (action.equals("enableServer")
@@ -195,7 +208,6 @@
             actionResponse.setRenderParameter("message", alterServerState(
                     server_id, true));
             actionResponse.setRenderParameter("server_id", server_id);
-            ;
         } else if (action.equals("testAddServerConnection")) {
             String name = actionRequest.getParameter("name");
             String ip = actionRequest.getParameter("ip");
@@ -203,8 +215,8 @@
             String password = actionRequest.getParameter("password");
             String password2 = actionRequest.getParameter("password2");
             Integer port = Integer.parseInt(actionRequest.getParameter("port"));
-            Integer protocol = Integer.parseInt(actionRequest.getParameter("protocol"));
-            String message = testConnection(name, ip, username, password, port, protocol);
+            String protocol = actionRequest.getParameter("protocol");
+            String message = testConnection(ip, username, password, port, protocol);
             actionResponse.setRenderParameter("message", message);
             actionResponse.setRenderParameter("name", name);
             actionResponse.setRenderParameter("username", username);
@@ -212,7 +224,7 @@
             actionResponse.setRenderParameter("password", password);
             actionResponse.setRenderParameter("password2", password2);
             actionResponse.setRenderParameter("port", "" + port);
-            actionResponse.setRenderParameter("protocol", "" + protocol); 
+            actionResponse.setRenderParameter("protocol", protocol);
         } else if (action.equals("testEditServerConnection")) {
             String name = actionRequest.getParameter("name");
             String ip = actionRequest.getParameter("ip");
@@ -223,14 +235,14 @@
             String snapshot = actionRequest.getParameter("snapshot");
             String retention = actionRequest.getParameter("retention");
             Integer port = Integer.parseInt(actionRequest.getParameter("port"));
-            Integer protocol = Integer.parseInt(actionRequest.getParameter("protocol"));
-            if(snapshot == null) {
+            String protocol = actionRequest.getParameter("protocol");
+            if (snapshot == null) {
                 snapshot = "";
             }
-            if(retention == null) {
+            if (retention == null) {
                 retention = "";
             }
-            String message = testConnection(name, ip, username, password, port, protocol);
+            String message = testConnection(ip, username, password, port, protocol);
             actionResponse.setRenderParameter("message", message);
             actionResponse.setRenderParameter("name", name);
             actionResponse.setRenderParameter("username", username);
@@ -245,10 +257,10 @@
         }
     }
 
-    private String testConnection(String name, String ip, String username,
-            String password, int port, int protocol) {
+    private String testConnection(String ip, String username,
+                                  String password, int port, String protocol) {
         try {
-            MRCConnector mrc = new MRCConnector(ip, username, password, port, protocol);
+            new MRCConnector(ip, username, password, port, protocol);
 
             return "<font color=\"green\"><strong><li>Connection was successfully established.</li></strong></font>";
         } catch (Exception e) {
@@ -256,60 +268,22 @@
         }
     }
 
-    private String alterServerState(String server_id, boolean b) {
-        Connection conn = (new DBManager()).getConnection();
-        String message = "";
-        String name = "";
-        try {
-            PreparedStatement pStmt = conn
-                    .prepareStatement("SELECT * FROM servers WHERE server_id="
-                            + server_id);
-            ResultSet rs = pStmt.executeQuery();
-            if (rs.next()) {
-                name = rs.getString("name");
-            }
-            rs.close();
-            conn.close();
-            conn = (new DBManager()).getConnection();
-            Statement stmt = conn.createStatement();
-            if (!b) {
-                stmt
-                        .executeUpdate("UPDATE SERVERS SET ENABLED = 0 WHERE SERVER_ID="
-                                + server_id);
-                stmt
-                        .executeUpdate("UPDATE GRAPHS SET ENABLED = 0 WHERE SERVER_ID="
-                                + server_id);
-                message = "<font color=\"green\"><strong><li>Server " + name
-                        + " was successfully disabled.</li></strong></font>";
-            } else {
-                stmt
-                        .executeUpdate("UPDATE SERVERS SET ENABLED = 1 WHERE SERVER_ID="
-                                + server_id);
-                stmt
-                        .executeUpdate("UPDATE GRAPHS SET ENABLED = 1 WHERE SERVER_ID="
-                                + server_id);
-                message = "<font color=\"green\"><strong><li>Server " + name
-                        + " was successfully enabled.</li></strong></font>";
-            }
-        } catch (SQLException e) {
-            if (!b)
-                message = "<font color=\"red\"><strong><li>[ERROR] Server with server_id = "
-                        + server_id
-                        + " could not be disabled.</li></strong></font>";
-            else
-                message = "<font color=\"red\"><strong><li>[ERROR] Server with server_id = "
-                        + server_id
-                        + " could not be enabled.</li></strong></font>";
-        } finally {
-            if (conn != null) {
-                try {
-                    conn.close();
-                } catch (Exception e) {
-
-                }
-            }
+    private String alterServerState(String server_id, boolean enable) {
+        try {
+            userTransaction.begin();
+            try {
+                Node node = (Node) entityManager.createNamedQuery("nodeByName").setParameter("name", server_id).getSingleResult();
+                node.setEnabled(enable);
+            } finally {
+                userTransaction.commit();
+            }
+            return "<font color=\"green\"><strong><li>Server " + server_id
+                    + " was successfully " + (enable? "enabled":"disabled") + ".</li></strong></font>";
+        } catch (Exception e) {
+            return "<font color=\"red\"><strong><li>[ERROR] Server with server_id = "
+                    + server_id
+                    + " could not be " + (enable? "enabled":"disabled") + ".</li></strong></font>";
         }
-        return message;
     }
 
     @Override
@@ -319,21 +293,23 @@
         if (action == null)
             action = "showNormal";
         if (action.equals("showView")) {
-            String view_id = request.getParameter("view_id");
-            request.setAttribute("view_id", view_id);
+            addViewAttribute(request, true);
             pageView.include(request, response);
         } else if (action.equals("showAllViews")) {
             request.setAttribute("message", "");
             viewViews.include(request, response);
         } else if (action.equals("showAllServers")) {
             request.setAttribute("message", "");
+            addAllNodesAttribute(request);
             viewServers.include(request, response);
         } else if (action.equals("showAllGraphs")) {
             request.setAttribute("message", "");
+            addAllGraphsAttribute(request);
             viewGraphs.include(request, response);
         } else if (action.equals("showServer")) {
             String server_id = request.getParameter("server_id");
             request.setAttribute("server_id", server_id);
+            addNodeAttribute(request);
             viewServer.include(request, response);
         } else if (action.equals("startTrackingMbean")) {
             String server_id = request.getParameter("server_id");
@@ -342,6 +318,7 @@
             request.setAttribute("mbean", mbean);
             String message = startTrackingMbean(server_id, mbean);
             request.setAttribute("message", message);
+            addNodeAttribute(request);
             viewServer.include(request, response);
         } else if (action.equals("stopTrackingMbean")) {
             String server_id = request.getParameter("server_id");
@@ -350,34 +327,27 @@
             request.setAttribute("mbean", mbean);
             String message = stopTrackingMbean(server_id, mbean);
             request.setAttribute("message", message);
+            addNodeAttribute(request);
             viewServer.include(request, response);
         } else if (action.equals("stopThread")) {
-            String server_id = request.getParameter("server_id");
-            String message = request.getParameter("message");
-            request.setAttribute("message", message);
-            normalView.include(request, response);
+            normalView(request, response);
         } else if (action.equals("startThread")) {
-            String server_id = request.getParameter("server_id");
-            Long snapshotDuration = java.lang.Long.parseLong(
-                    request.getParameter("snapshotDuration"));
-            String message = request.getParameter("message");
-            request.setAttribute("message", message);
-            normalView.include(request, response);
+            normalView(request, response);
         } else if (action.equals("disableServerViewQuery") || action.equals("enableServerViewQuery")) {
             String server_id = request.getParameter("server_id");
             String message = request.getParameter("message");
             request.setAttribute("message", message);
             request.setAttribute("server_id", server_id);
+            addNodeAttribute(request);
             viewServer.include(request, response);
         } else {
-            request.setAttribute("message", request.getParameter("message"));
-            normalView.include(request, response);
+            normalView(request, response);
         }
     }
 
     @Override
     protected void doHelp(RenderRequest renderRequest,
-            RenderResponse renderResponse) throws PortletException, IOException {
+                          RenderResponse renderResponse) throws PortletException, IOException {
         helpView.include(renderRequest, renderResponse);
     }
 
@@ -390,19 +360,20 @@
         if (action.equals("showEditView")) {
             String view_id = request.getParameter("view_id");
             request.setAttribute("view_id", view_id);
+            addViewAttribute(request, false);
             editView.include(request, response);
         } else if (action.equals("saveEditView")) {
             String view_id = request.getParameter("view_id");
             request.setAttribute("view_id", view_id);
             String message = request.getParameter("message");
             request.setAttribute("message", message);
+            addViewAttribute(request, false);
             editView.include(request, response);
         } else if (action.equals("showAddView")) {
+            addAllGraphsAttribute(request);
             addView.include(request, response);
         } else if (action.equals("saveAddView")) {
-            String message = request.getParameter("message");
-            request.setAttribute("message", message);
-            normalView.include(request, response);
+            normalView(request, response);
         } else if (action.equals("showAddGraph")) {
             String server_id = request.getParameter("server_id");
             request.setAttribute("server_id", server_id);
@@ -410,57 +381,52 @@
             request.setAttribute("mbean", mbean);
             String dataname = request.getParameter("dataname");
             request.setAttribute("dataname", dataname);
+            addAllNodesAttribute(request);
             addGraph.include(request, response);
         } else if (action.equals("saveAddGraph")) {
-            String message = request.getParameter("message");
-            request.setAttribute("message", message);
-            normalView.include(request, response);
+            normalView(request, response);
         } else if (action.equals("showEditGraph")) {
             String graph_id = request.getParameter("graph_id");
             request.setAttribute("graph_id", graph_id);
+            addGraphAttribute(request);
+            addAllNodesAttribute(request);
             editGraph.include(request, response);
         } else if (action.equals("saveEditGraph")) {
             String graph_id = request.getParameter("graph_id");
             request.setAttribute("graph_id", graph_id);
             String message = request.getParameter("message");
             request.setAttribute("message", message);
+            addGraphAttribute(request);
+            addAllNodesAttribute(request);
             editGraph.include(request, response);
         } else if (action.equals("deleteGraph")) {
-            String message = request.getParameter("message");
-            request.setAttribute("message", message);
-            normalView.include(request, response);
+            normalView(request, response);
         } else if (action.equals("deleteView")) {
-            String message = request.getParameter("message");
-            request.setAttribute("message", message);
-            normalView.include(request, response);
+            normalView(request, response);
         } else if (action.equals("showEditServer")) {
             String server_id = request.getParameter("server_id");
             request.setAttribute("server_id", server_id);
+            addNodeAttribute(request);
             editServer.include(request, response);
         } else if (action.equals("saveEditServer")) {
             String server_id = request.getParameter("server_id");
             request.setAttribute("server_id", server_id);
             String message = request.getParameter("message");
             request.setAttribute("message", message);
+            addNodeAttribute(request);
             editServer.include(request, response);
         } else if (action.equals("showAddServer")) {
             addServer.include(request, response);
         } else if (action.equals("saveAddServer")) {
-            String message = request.getParameter("message");
-            request.setAttribute("message", message);
-            normalView.include(request, response);
+            normalView(request, response);
         } else if (action.equals("deleteServer")) {
-            String message = request.getParameter("message");
-            request.setAttribute("message", message);
-            normalView.include(request, response);
+            normalView(request, response);
         } else if (action.equals("testAddServerConnection")) {
             request.setAttribute("name", request.getParameter("name"));
             request.setAttribute("ip", request.getParameter("ip"));
             request.setAttribute("username", request.getParameter("username"));
             request.setAttribute("password", request.getParameter("password"));
-            request
-                    .setAttribute("password2", request
-                            .getParameter("password2"));
+            request.setAttribute("password2", request.getParameter("password2"));
             request.setAttribute("message", request.getParameter("message"));
             request.setAttribute("port", request.getParameter("port"));
             addServer.include(request, response);
@@ -470,115 +436,188 @@
             request.setAttribute("port", request.getParameter("port"));
             request.setAttribute("username", request.getParameter("username"));
             request.setAttribute("password", request.getParameter("password"));
-            request
-                    .setAttribute("password2", request
-                            .getParameter("password2"));
+            request.setAttribute("password2", request.getParameter("password2"));
             request.setAttribute("message", request.getParameter("message"));
-            request
-                    .setAttribute("server_id", request
-                            .getParameter("server_id"));
+            request.setAttribute("server_id", request.getParameter("server_id"));
             request.setAttribute("snapshot", request.getParameter("snapshot"));
-            request
-                    .setAttribute("retention", request
-                            .getParameter("retention"));
+            request.setAttribute("retention", request.getParameter("retention"));
+            addNodeAttribute(request);
             editServer.include(request, response);
         } else if (action.equals("disableEditServer")
                 || action.equals("enableEditServer")) {
             request.setAttribute("message", request.getParameter("message"));
-            request
-                    .setAttribute("server_id", request
-                            .getParameter("server_id"));
+            request.setAttribute("server_id", request.getParameter("server_id"));
+            addNodeAttribute(request);
             editServer.include(request, response);
         } else if (action.equals("disableServer")
                 || action.equals("enableServer")) {
-            request.setAttribute("message", request.getParameter("message"));
-            request
-                    .setAttribute("server_id", request
-                            .getParameter("server_id"));
-            normalView.include(request, response);
+            request.setAttribute("server_id", request.getParameter("server_id"));
+            normalView(request, response);
         } else {
-            normalView.include(request, response);
+            //TODO may need to avoid setting message
+            normalView(request, response);
+        }
+    }
+
+    private void normalView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
+        String message = request.getParameter("message");
+        request.setAttribute("message", message);
+        addAllViewsAttribute(request);
+        addAllNodesAttribute(request);
+        addAllGraphsAttribute(request);
+
+        normalView.include(request, response);
+    }
+
+    private void addViewAttribute(RenderRequest request, boolean includeGraphs) throws PortletException {
+        int viewId = Integer.parseInt(request.getParameter("view_id"));
+        try {
+            userTransaction.begin();
+            try {
+                View view = entityManager.find(View.class, viewId);
+                request.setAttribute("view", view);
+                if (includeGraphs) {
+                    List<Graph> graphs = view.getGraphs();
+                    GraphsBuilder builder = new GraphsBuilder();
+                    List<StatsGraph> statsGraphs = new ArrayList<StatsGraph>();
+                    for (Graph graph: graphs) {
+                        StatsGraph statsGraph = builder.getStatsGraph(graph);
+                        if (statsGraph != null) {
+                            statsGraphs.add(statsGraph);
+                        }
+                    }
+                    request.setAttribute("statsGraphs", statsGraphs);
+                }
+            } finally {
+                userTransaction.commit();
+            }
+        } catch (Exception e) {
+            throw new PortletException(e);
+        }
+    }
+
+    private void addAllViewsAttribute(RenderRequest request) throws PortletException {
+        try {
+            userTransaction.begin();
+            try {
+                List<View> views = entityManager.createNamedQuery("allViews").getResultList();
+                request.setAttribute("views", views);
+            } finally {
+                userTransaction.commit();
+            }
+        } catch (Exception e) {
+            throw new PortletException(e);
+        }
+    }
+
+    private void addGraphAttribute(RenderRequest request) throws PortletException {
+        try {
+            userTransaction.begin();
+            try {
+                String graphIdString = request.getParameter("graph_id");
+                int graphId = Integer.parseInt(graphIdString);
+                Graph graph = entityManager.find(Graph.class, graphId);
+                request.setAttribute("graph", graph);
+            } finally {
+                userTransaction.commit();
+            }
+        } catch (Exception e) {
+            throw new PortletException(e);
+        }
+    }
+
+    private void addAllGraphsAttribute(RenderRequest request) throws PortletException {
+        try {
+            userTransaction.begin();
+            try {
+                List<Graph> graphs = entityManager.createNamedQuery("allGraphs").getResultList();
+                request.setAttribute("graphs", graphs);
+            } finally {
+                userTransaction.commit();
+            }
+        } catch (Exception e) {
+            throw new PortletException(e);
+        }
+    }
+
+    private void addNodeAttribute(RenderRequest request) throws PortletException {
+        request.setAttribute("node", getNodeByName(request.getParameter("server_id")));
+    }
+
+    private Node getNodeByName(String name) throws PortletException {
+        try {
+            userTransaction.begin();
+            try {
+                return entityManager.find(Node.class, name);
+            } finally {
+                userTransaction.commit();
+            }
+        } catch (Exception e) {
+            throw new PortletException(e);
+        }
+    }
+
+    private void addAllNodesAttribute(RenderRequest request) throws PortletException {
+        try {
+            userTransaction.begin();
+            try {
+                List<Node> nodes = entityManager.createNamedQuery("allNodes").getResultList();
+                request.setAttribute("nodes", nodes);
+            } finally {
+                userTransaction.commit();
+            }
+        } catch (Exception e) {
+            throw new PortletException(e);
         }
     }
 
     private void updateView(ActionRequest actionRequest,
-            ActionResponse actionResponse) {
+                            ActionResponse actionResponse) {
         String view_id = actionRequest.getParameter("view_id");
         actionResponse.setRenderParameter("view_id", view_id);
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
-        String name = actionRequest.getParameter("name");
-        String description = actionRequest.getParameter("description");
-        String[] graphsArray = actionRequest.getParameterValues("graph_ids");
-        if (graphsArray == null) {
-            graphsArray = new String[0];
-        }
-        try {
-            PreparedStatement pStmt = con
-                    .prepareStatement("UPDATE views SET name='" + name
-                            + "', description='" + description
-                            + "', graph_count=" + graphsArray.length
-                            + ", modified=CURRENT_TIMESTAMP WHERE view_id="
-                            + view_id);
-            pStmt.executeUpdate();
-            pStmt = con
-                    .prepareStatement("DELETE FROM views_graphs WHERE view_id="
-                            + view_id);
-            pStmt.executeUpdate();
-            if (graphsArray != null)
-                for (int i = 0; i < graphsArray.length; i++) {
-                    pStmt = con
-                            .prepareStatement("INSERT INTO views_graphs VALUES("
-                                    + view_id + "," + graphsArray[i] + ")");
-                    pStmt.executeUpdate();
-                }
-            con.close();
+
+        try {
+            userTransaction.begin();
+            try {
+                View view = entityManager.find(View.class, Integer.parseInt(view_id));
+                view.setName(actionRequest.getParameter("name"));
+                view.setDescription(actionRequest.getParameter("description"));
+            } finally {
+                userTransaction.commit();
+            }
             actionResponse.setRenderParameter("message",
-                    "<font color=\"green\"><strong><li>View " + name
+                    "<font color=\"green\"><strong><li>View " + actionRequest.getParameter("name")
                             + " has been updated</li></strong></font>");
-            return;
-
         } catch (Exception e) {
             actionResponse.setRenderParameter("message",
                     "<font color=\"red\"><strong><li>Error updating View "
-                            + name + "</li></strong></font>" + e.getMessage());
-            return;
+                            + actionRequest.getParameter("name") + "</li></strong></font>" + e.getMessage());
         }
+
     }
 
     private void addView(ActionRequest actionRequest,
-            ActionResponse actionResponse) {
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
+                         ActionResponse actionResponse) {
         String name = actionRequest.getParameter("name");
-        String description = actionRequest.getParameter("description");
-        String[] graphsArray = actionRequest.getParameterValues("graph_ids");
-        if (graphsArray == null) {
-            graphsArray = new String[0];
-        }
-        try {
-            PreparedStatement pStmt = con
-                    .prepareStatement("INSERT INTO views (name, description, graph_count, modified, added) VALUES ('"
-                            + name
-                            + "','"
-                            + description
-                            + "',"
-                            + graphsArray.length
-                            + ",CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)");
-            pStmt.executeUpdate();
-            pStmt = con
-                    .prepareStatement("select view_id from views ORDER BY view_id DESC");
-            ResultSet rs = pStmt.executeQuery();
-            if (rs.next()) {
-                Integer view_id = rs.getInt("view_id");
-                for (int i = 0; i < graphsArray.length; i++) {
-                    pStmt = con
-                            .prepareStatement("INSERT INTO views_graphs VALUES("
-                                    + view_id + "," + graphsArray[i] + ")");
-                    pStmt.executeUpdate();
+        try {
+            userTransaction.begin();
+            try {
+                View view = new View();
+                view.setName(name);
+                view.setDescription(actionRequest.getParameter("description"));
+                String[] graphsArray = actionRequest.getParameterValues("graph_ids");
+                if (graphsArray != null) {
+                    for (String graphIdString: graphsArray) {
+                        int graphId = Integer.parseInt(graphIdString);
+                        Graph graph = entityManager.find(Graph.class, graphId);
+                        view.getGraphs().add(graph);
+                        graph.getViews().add(view);
+                    }
                 }
+                entityManager.persist(view);
+            } finally {
+                userTransaction.commit();
             }
-            con.close();
             actionResponse.setRenderParameter("message",
                     "<font color=\"green\"><strong><li>View " + name
                             + " has been added</li></strong></font>");
@@ -586,94 +625,41 @@
             actionResponse.setRenderParameter("message",
                     "<font color=\"red\"><strong><li>Error adding View " + name
                             + "</li></strong></font>" + e.getMessage());
-        } finally {
-            try {
-                con.close();
-            } catch (Exception e) {
-
-            }
         }
     }
 
     private void updateServer(ActionRequest actionRequest,
-            ActionResponse actionResponse) {
+                              ActionResponse actionResponse) {
         String server_id = actionRequest.getParameter("server_id");
         actionResponse.setRenderParameter("server_id", server_id);
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
-        String name = actionRequest.getParameter("name");
-        String ip = actionRequest.getParameter("ip");
-        String password = actionRequest.getParameter("password");
-        String username = actionRequest.getParameter("username");
-        String snapshot = actionRequest.getParameter("snapshot");
-        String retention = actionRequest.getParameter("retention");
-        Integer port = Integer.parseInt(actionRequest.getParameter("port"));
-        Integer protocol = Integer.parseInt(actionRequest.getParameter("protocol"));
-        // encrypt the password
-        if (password != null && !password.equals("")) {
-            password = EncryptionManager.encrypt(password);
-        }
 
         try {
-            // update the client side db (table = SERVERS)
-            if (password.equals("") || password == null) {
-                PreparedStatement pStmt = con
-                        .prepareStatement("UPDATE servers SET name='"
-                                + name
-                                + "', ip='"
-                                + ip
-                                + "', username='"
-                                + username
-                                + "', modified=CURRENT_TIMESTAMP, last_seen=CURRENT_TIMESTAMP, "
-                                + "port=" + port + ",protocol="+protocol+" WHERE server_id="
-                                + server_id);
-                pStmt.executeUpdate();
-                // when user did not specify the password, just grab it from the
-                // db
-                pStmt = con
-                        .prepareStatement("SELECT password FROM servers WHERE server_id="
-                                + server_id);
-                ResultSet s = pStmt.executeQuery();
-                if (s.next()) {
-                    password = s.getString("password");
-                } else {
-                    actionResponse
-                            .setRenderParameter(
-                                    "message",
-                                    "<font color=\"red\"><strong><li>Error updating server</li></strong></font>"
-                                            + "Password was not found in the database for server_id="
-                                            + server_id);
-                    con.close();
-                    return;
+            userTransaction.begin();
+            try {
+                Node node = entityManager.find(Node.class, server_id);
+                node.setName(actionRequest.getParameter("name"));
+                node.setHost(actionRequest.getParameter("ip"));
+                node.setUserName(actionRequest.getParameter("username"));
+                String password = actionRequest.getParameter("password");
+                if (password != null && !password.equals("")) {
+                    password = EncryptionManager.encrypt(password);
+                    node.setPassword(password);
                 }
-            } else {
-                PreparedStatement pStmt = con
-                        .prepareStatement("UPDATE servers SET name='"
-                                + name
-                                + "', ip='"
-                                + ip
-                                + "', username='"
-                                + username
-                                + "', password='"
-                                + password
-                                + "', modified=CURRENT_TIMESTAMP, last_seen=CURRENT_TIMESTAMP, "
-                                + "port=" + port + ",protocol="+protocol+" WHERE server_id="
-                                + server_id);
-                pStmt.executeUpdate();
-            }
-            con.close();
-            // update the server side db
-            if (snapshot == null || retention == null) {
-                // do not update if we do not know
-            } else {
-                    (new MRCConnector(ip, username, password, port, protocol))
-                        .setSnapshotDuration(Long.parseLong(snapshot) * 1000 * 60);
-                    (new MRCConnector(ip, username, password, port, protocol))
-                        .setSnapshotRetention(Integer.parseInt(retention));
-            }
-            // set success message
-            actionResponse
-                    .setRenderParameter(
+                node.setPort(Integer.parseInt(actionRequest.getParameter("port")));
+                node.setProtocol(actionRequest.getParameter("protocol"));
+                //TODO retention??
+                String snapshot = actionRequest.getParameter("snapshot");
+                String retention = actionRequest.getParameter("retention");
+                if (snapshot != null && retention != null) {
+                    MRCConnector connector = new MRCConnector(node);
+                    connector.setSnapshotDuration(Long.parseLong(snapshot) * 1000 * 60);
+                    connector.setSnapshotRetention(Integer.parseInt(retention));
+                    //close?
+                }
+            } finally {
+                userTransaction.commit();
+            }
+            actionResponse.setRenderParameter(
                             "message",
                             "<font color=\"green\"><strong><li>Server has been updated</li></strong></font>");
         } catch (Exception e) {
@@ -684,340 +670,197 @@
     }
 
     private void addServer(ActionRequest actionRequest,
-            ActionResponse actionResponse) {
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
-        String name = actionRequest.getParameter("name");
-        String ip = actionRequest.getParameter("ip");
-        int protocol = Integer.parseInt(actionRequest.getParameter("protocol"));
-        int port = Integer.parseInt(actionRequest.getParameter("port"));
-        String password = actionRequest.getParameter("password");
-        String username = actionRequest.getParameter("username");
-        // encrypt the password
-        if (password != null && !password.equals("")) {
-            password = EncryptionManager.encrypt(password);
-        }
-        try {
-            PreparedStatement pStmt = con
-                    .prepareStatement("INSERT INTO servers (name, ip, username, password, modified, last_seen, added, port, protocol) VALUES ('"
-                            + name
-                            + "','"
-                            + ip
-                            + "','"
-                            + username
-                            + "','"
-                            + password
-                            + "',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,"
-                            + port
-                            + ","
-                            + protocol + ")");
-            pStmt.executeUpdate();
+                           ActionResponse actionResponse) {
+        try {
+            userTransaction.begin();
+            String name = actionRequest.getParameter("name");
+            String host = actionRequest.getParameter("ip");
+            try {
+                Node node = new Node();
+                node.setName(name);
+                node.setHost(host);
+                node.setUserName(actionRequest.getParameter("username"));
+                String password = actionRequest.getParameter("password");
+                if (password != null && !password.equals("")) {
+                    password = EncryptionManager.encrypt(password);
+                    node.setPassword(password);
+                }
+                node.setPort(Integer.parseInt(actionRequest.getParameter("port")));
+                node.setProtocol(actionRequest.getParameter("protocol"));
+                entityManager.persist(node);
+            } finally {
+                userTransaction.commit();
+            }
             actionResponse.setRenderParameter("message",
                     "<font color=\"green\"><strong><li>Server " + name + " at "
-                            + ip + " has been added.</li></strong></font>");
-
+                            + host + " has been added.</li></strong></font>");
         } catch (Exception e) {
             actionResponse.setRenderParameter("message",
                     "<font color=\"red\"><strong><li>Error adding server</li></strong></font>"
                             + e.getMessage());
-        } finally {
-            try {
-                con.close();
-            } catch (Exception e) {
-
-            }
         }
     }
 
     private void deleteServer(ActionRequest actionRequest,
-            ActionResponse actionResponse) {
+                              ActionResponse actionResponse) {
         String server_id = actionRequest.getParameter("server_id");
         actionResponse.setRenderParameter("server_id", server_id);
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
 
         try {
-            PreparedStatement pStmt = con
-                    .prepareStatement("DELETE FROM graphs WHERE server_id="
-                            + server_id);
-            pStmt.executeUpdate();
-
-            pStmt = con.prepareStatement("DELETE FROM servers WHERE server_id="
-                    + server_id);
-            pStmt.executeUpdate();
-            con.close();
-            actionResponse
-                    .setRenderParameter(
+            userTransaction.begin();
+            try {
+                Node node = entityManager.find(Node.class, server_id);
+                entityManager.remove(node);
+            } finally {
+                userTransaction.commit();
+            }
+            actionResponse.setRenderParameter(
                             "message",
                             "<font color=\"green\"><strong><li>Server and associated graphs have been deleted</li></strong></font>");
-            return;
-
         } catch (Exception e) {
             actionResponse.setRenderParameter("message",
                     "<font color=\"red\"><strong><li>Error deleting server</li></strong></font>"
                             + e.getMessage());
-            return;
         }
     }
 
     private void deleteView(ActionRequest actionRequest,
-            ActionResponse actionResponse) {
+                            ActionResponse actionResponse) {
         String view_id = actionRequest.getParameter("view_id");
         actionResponse.setRenderParameter("view_id", view_id);
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
 
         try {
-            PreparedStatement pStmt = con
-                    .prepareStatement("DELETE FROM views WHERE view_id="
-                            + view_id);
-            pStmt.executeUpdate();
-            pStmt = con
-                    .prepareStatement("DELETE FROM views_graphs WHERE view_id="
-                            + view_id);
-            pStmt.executeUpdate();
-            con.close();
-            actionResponse
-                    .setRenderParameter("message",
+            userTransaction.begin();
+            try {
+                View view = entityManager.find(View.class, Integer.parseInt(view_id));
+                entityManager.remove(view);
+            } finally {
+                userTransaction.commit();
+            }
+            actionResponse.setRenderParameter("message",
                             "<font color=\"green\"><strong><li>View has been deleted</li></strong></font>");
-            return;
-
         } catch (Exception e) {
             actionResponse.setRenderParameter("message",
                     "<font color=\"red\"><strong><li>Error deleting view</li></strong></font>"
                             + e.getMessage());
-            return;
         }
     }
 
     private void addGraph(ActionRequest actionRequest,
-            ActionResponse actionResponse) {
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
-        String name = actionRequest.getParameter("name");
-        String description = actionRequest.getParameter("description");
-        String server_id = actionRequest.getParameter("server_id");
-        String xlabel = actionRequest.getParameter("xlabel");
-        String ylabel = actionRequest.getParameter("ylabel");
-        String timeframe = actionRequest.getParameter("timeframe");
-        String mbean = actionRequest.getParameter("mbean");
-        String dataname1 = actionRequest.getParameter("dataname1");
-        String data1operation = actionRequest.getParameter("data1operation");
-        String operation = actionRequest.getParameter("operation");
-        int showArchive = 0;
-        if (actionRequest.getParameter("showArchive") != null
-                && actionRequest.getParameter("showArchive").equals("on")) {
-            showArchive = 1;
-        }
-
-        if (operation.equals("other")) {
-            operation = actionRequest.getParameter("othermath");
-        }
-        String dataname2 = actionRequest.getParameter("dataname2");
-        String data2operation = actionRequest.getParameter("data2operation");
-        if (data2operation == null)
-            data2operation = "A";
-        try {
-            PreparedStatement pStmt = con
-                    .prepareStatement("INSERT INTO graphs (server_id, name, description, timeframe, mbean, dataname1, xlabel, ylabel, data1operation, operation, data2operation, dataname2, warninglevel1, warninglevel2, added, modified, last_seen, archive) VALUES ("
-                            + server_id
-                            + ",'"
-                            + name
-                            + "','"
-                            + description
-                            + "',"
-                            + timeframe
-                            + ",'"
-                            + mbean
-                            + "','"
-                            + dataname1
-                            + "','"
-                            + xlabel
-                            + "','"
-                            + ylabel
-                            + "','"
-                            + data1operation
-                            + "','"
-                            + operation
-                            + "','"
-                            + data2operation
-                            + "','"
-                            + dataname2
-                            + "',0,0,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,"
-                            + showArchive + ")");
-            pStmt.executeUpdate();
-            con.close();
+                          ActionResponse actionResponse) {
+        Graph graph = new Graph();
+
+        updateGraphFromRequest(actionRequest, graph);
+        try {
+            userTransaction.begin();
+            try {
+                Node node = entityManager.find(Node.class, actionRequest.getParameter("server_id"));
+                graph.setNode(node);
+                entityManager.persist(graph);
+            } finally {
+                userTransaction.commit();
+            }
             actionResponse.setRenderParameter("message",
-                    "<font color=\"green\"><strong><li>Graph " + name
+                    "<font color=\"green\"><strong><li>Graph " + graph.getGraphName1()
                             + " has been added.</li></strong></font>");
-            return;
 
         } catch (Exception e) {
             actionResponse.setRenderParameter("message",
                     "<font color=\"red\"><strong><li>Error adding graph</li></strong></font>"
                             + e.getMessage());
-            return;
         }
     }
 
+    private void updateGraphFromRequest(ActionRequest actionRequest, Graph graph) {
+        graph.setGraphName1(actionRequest.getParameter("name"));
+        graph.setDescription(actionRequest.getParameter("description"));
+        graph.setXlabel(actionRequest.getParameter("xlabel"));
+        graph.setYlabel(actionRequest.getParameter("ylabel"));
+        graph.setTimeFrame(Integer.parseInt(actionRequest.getParameter("timeframe")));
+        graph.setMBeanName(actionRequest.getParameter("mbean"));
+        graph.setDataName1(actionRequest.getParameter("dataname1"));
+        graph.setData1operation(actionRequest.getParameter("data1operation").charAt(0));
+
+        graph.setOperation(actionRequest.getParameter("operation"));
+        if (graph.getOperation().equals("other")) {
+            graph.setOperation(actionRequest.getParameter("othermath"));
+        }
+
+        graph.setShowArchive(actionRequest.getParameter("showArchive") != null
+                && actionRequest.getParameter("showArchive").equals("on"));
+
+        graph.setDataName2(actionRequest.getParameter("dataname2"));
+        graph.setData2operation(actionRequest.getParameter("data2operation") == null? 'A': actionRequest.getParameter("data2operation").charAt(0));
+    }
+
     private void updateGraph(ActionRequest actionRequest,
-            ActionResponse actionResponse) {
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
+                             ActionResponse actionResponse) {
         String graph_id = actionRequest.getParameter("graph_id");
         actionResponse.setRenderParameter("graph_id", graph_id);
-
-        String name = actionRequest.getParameter("name");
-        String description = actionRequest.getParameter("description");
-        String server_id = actionRequest.getParameter("server_id");
-        String xlabel = actionRequest.getParameter("xlabel");
-        String ylabel = actionRequest.getParameter("ylabel");
-        String timeframe = actionRequest.getParameter("timeframe");
-        String mbean = actionRequest.getParameter("mbean");
-        String dataname1 = actionRequest.getParameter("dataname1");
-        String data1operation = actionRequest.getParameter("data1operation");
-        String operation = actionRequest.getParameter("operation");
-        int archive = 0;
-        if (actionRequest.getParameter("showArchive") != null
-                && actionRequest.getParameter("showArchive").equals("on")) {
-            archive = 1;
-        }
-
-        if (operation.equals("other")) {
-            operation = actionRequest.getParameter("othermath");
-        }
-        String dataname2 = actionRequest.getParameter("dataname2");
-        String data2operation = actionRequest.getParameter("data2operation");
-        if (data2operation == null)
-            data2operation = "A";
-        try {
-            PreparedStatement pStmt = con
-                    .prepareStatement("UPDATE graphs SET server_id="
-                            + server_id
-                            + ", name='"
-                            + name
-                            + "', description='"
-                            + description
-                            + "', timeframe="
-                            + timeframe
-                            + ", mbean='"
-                            + mbean
-                            + "', dataname1='"
-                            + dataname1
-                            + "', xlabel='"
-                            + xlabel
-                            + "', ylabel='"
-                            + ylabel
-                            + "', data1operation='"
-                            + data1operation
-                            + "', operation='"
-                            + operation
-                            + "', data2operation='"
-                            + data2operation
-                            + "', dataname2='"
-                            + dataname2
-                            + "', warninglevel1=0, warninglevel2=0, modified=CURRENT_TIMESTAMP, archive="
-                            + archive + " WHERE graph_id=" + graph_id);
-            pStmt.executeUpdate();
-            con.close();
-            actionResponse.setRenderParameter("message",
-                    "<font color=\"green\"><strong><li>Graph " + name
-                            + " has been updated.</li></strong></font>");
-            return;
+        try {
+            userTransaction.begin();
+            try {
+                Graph graph = entityManager.find(Graph.class, Integer.parseInt(graph_id));
+                Node node = entityManager.find(Node.class, actionRequest.getParameter("server_id"));
+                graph.setNode(node);
+                updateGraphFromRequest(actionRequest, graph);
+                actionResponse.setRenderParameter("message",
+                        "<font color=\"green\"><strong><li>Graph " + graph.getGraphName1()
+                                + " has been updated.</li></strong></font>");
+            } finally {
+                userTransaction.commit();
+            }
 
         } catch (Exception e) {
+            log.info("error updating graph", e);
             actionResponse.setRenderParameter("message",
-                    "<font color=\"red\"><strong><li>Error editing graph</li></strong></font>"
+                    "<font color=\"red\"><strong><li>Error updating graph</li></strong></font>"
                             + e.getMessage());
-            return;
         }
     }
 
     private void deleteGraph(ActionRequest actionRequest,
-            ActionResponse actionResponse) {
+                             ActionResponse actionResponse) {
         String graph_id = actionRequest.getParameter("graph_id");
         actionResponse.setRenderParameter("graph_id", graph_id);
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
-
         try {
-            // remove the graph
-            PreparedStatement pStmt = con
-                    .prepareStatement("DELETE FROM graphs WHERE graph_id="
-                            + graph_id);
-            pStmt.executeUpdate();
-            // fetch all views associated with this graph
-            pStmt = con
-                    .prepareStatement("SELECT view_id FROM views_graphs WHERE graph_id="
-                            + graph_id);
-            ResultSet view_ids = pStmt.executeQuery();
-            // reduce the graph_count from all views associated with the graph
-            while (view_ids.next()) {
-                pStmt = con
-                        .prepareStatement("UPDATE views SET graph_count=graph_count-1 WHERE view_id="
-                                + view_ids.getString("view_id"));
-                pStmt.executeUpdate();
-            }
-            // remove the relationship between graphs and views
-            pStmt = con
-                    .prepareStatement("DELETE FROM views_graphs WHERE graph_id="
-                            + graph_id);
-            pStmt.executeUpdate();
-            con.close();
-            actionResponse
-                    .setRenderParameter("message",
-                            "<font color=\"green\"><strong><li>Graph has been deleted</li></strong></font>");
-            return;
+            userTransaction.begin();
+            try {
+                Graph graph = entityManager.find(Graph.class, Integer.parseInt(graph_id));
+                entityManager.remove(graph);
+                actionResponse.setRenderParameter("message",
+                        "<font color=\"green\"><strong><li>Graph " + graph.getGraphName1()
+                                + " has been deleted.</li></strong></font>");
+            } finally {
+                userTransaction.commit();
+            }
 
         } catch (Exception e) {
+            log.info("error deleting graph", e);
             actionResponse.setRenderParameter("message",
                     "<font color=\"red\"><strong><li>Error deleting graph</li></strong></font>"
                             + e.getMessage());
-            return;
         }
     }
 
     private String startTrackingMbean(String server_id, String mbean) {
-        PreparedStatement pStmt = null;
-        ResultSet rs = null;
-        MRCConnector mrc = null;
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
-        String server_ip = null;
-        String username = null;
-        String password = null;
-        int protocol = 0;
-        int port = -1;
-        // fetch server information
-        try {
-            pStmt = con
-                    .prepareStatement("SELECT * FROM servers WHERE server_id="
-                            + server_id);
-            rs = pStmt.executeQuery();
-            if (!rs.next()) {
-                return "<font color=\"red\"><strong><li>DATABASE ERROR: Server id "
-                        + server_id
-                        + " not found in database</li></strong></font>";
-            }
-            server_ip = rs.getString("ip");
-            password = rs.getString("password");
-            username = rs.getString("username");
-            port = rs.getInt("port");
-            protocol = rs.getInt("protocol");
-        } catch (SQLException e) {
+        Node node;
+        try {
+            node = getNodeByName(server_id);
+        } catch (PortletException e) {
             return "<font color=\"red\"><strong><li>DATABASE ERROR: "
                     + e.getMessage() + "</li></strong></font>";
         }
-        // attempt to connect to the mrc server
+        MRCConnector mrc;
         try {
-            con.close();
-            mrc = new MRCConnector(server_ip, username, password, port, protocol);
+            mrc = new MRCConnector(node);
         } catch (Exception e) {
             return "<font color=\"red\"><strong><li>MRC ERROR: Unable to connect to server "
-                    + server_ip
+                    + node.getHost()
                     + ": "
                     + e.getMessage()
                     + "</li></strong></font>";
+
         }
 
         // tell the mrc server to start tracking an mbean
@@ -1025,62 +868,39 @@
             if (mrc.startTrackingMbean(mbean)) {
                 String mbarr[] = mbean.split("name=");
                 return "<font color=\"green\"><strong><li>MBean " + mbarr[1]
-                        + " tracking on server " + rs.getString("name")
+                        + " tracking on server " + node.getName()
                         + "</li></strong></font>";
             } else {
                 String mbarr[] = mbean.split("name=");
                 return "<font color=\"red\"><strong><li>ERROR: MBean "
                         + mbarr[1] + " could <b>NOT</b> be tracked on server "
-                        + rs.getString("name") + "</li></strong></font>";
+                        + node.getName() + "</li></strong></font>";
             }
         } catch (Exception e) {
             return "<font color=\"red\"><strong><li>MRC ERROR: MBean " + mbean
-                    + " could <b>NOT</b> be tracked on server " + server_ip
+                    + " could <b>NOT</b> be tracked on server " + node.getHost()
                     + ": " + e.getMessage() + "</li></strong></font>";
         }
     }
 
     private String stopTrackingMbean(String server_id, String mbean) {
-        PreparedStatement pStmt = null;
-        ResultSet rs = null;
-        MRCConnector mrc = null;
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
-        String server_ip = null;
-        String username = null;
-        String password = null;
-        int port = -1;
-        int protocol = 0;
-        // fetch server's information
-        try {
-            pStmt = con
-                    .prepareStatement("SELECT * FROM servers WHERE server_id="
-                            + server_id);
-            rs = pStmt.executeQuery();
-            if (!rs.next()) {
-                return "<font color=\"red\"><strong><li>DATABASE ERROR: Server id "
-                        + server_id
-                        + " not found in database</li></strong></font>";
-            }
-            server_ip = rs.getString("ip");
-            password = rs.getString("password");
-            username = rs.getString("username");
-            port = rs.getInt("port");
-            protocol = rs.getInt("protocol");
-        } catch (SQLException e) {
+        Node node;
+        try {
+            node = getNodeByName(server_id);
+        } catch (PortletException e) {
             return "<font color=\"red\"><strong><li>DATABASE ERROR: "
                     + e.getMessage() + "</li></strong></font>";
         }
-        // attempt to connect to the mrc-server
+        MRCConnector mrc;
         try {
-            con.close();
-                mrc = new MRCConnector(server_ip, username, password, port, protocol);
-       } catch (Exception e) {
+            mrc = new MRCConnector(node);
+        } catch (Exception e) {
             return "<font color=\"red\"><strong><li>MRC ERROR: Unable to connect to server "
-                    + server_ip
+                    + node.getHost()
                     + ": "
                     + e.getMessage()
                     + "</li></strong></font>";
+
         }
         // tell the mrc-server to stop tracking some mbean
         try {
@@ -1088,174 +908,105 @@
                 String mbarr[] = mbean.split("name=");
                 return "<font color=\"green\"><strong><li>MBean " + mbarr[1]
                         + " removed from tracking on server "
-                        + rs.getString("name") + "</li></strong></font>";
+                        + node.getName() + "</li></strong></font>";
             } else {
                 String mbarr[] = mbean.split("name=");
                 return "<font color=\"red\"><strong><li>ERROR: MBean "
                         + mbarr[1]
                         + " could <b>NOT</b> be removed from tracking on server "
-                        + rs.getString("name") + "</li></strong></font>";
+                        + node.getName() + "</li></strong></font>";
             }
         } catch (Exception e) {
             return "<font color=\"red\"><strong><li>MRC ERROR: MBean " + mbean
                     + " could <b>NOT</b> be removed from tracking on server "
-                    + server_ip + ": " + e.getMessage()
+                    + node.getHost() + ": " + e.getMessage()
                     + "</li></strong></font>";
         }
     }
 
     private String stopThread(String server_id) {
-        PreparedStatement pStmt = null;
-        ResultSet rs = null;
-        MRCConnector mrc = null;
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
-        String server_ip = null;
-        String username = null;
-        String password = null;
-        int port = -1;
-        int protocol = 0;
-        // fetch the server's information
-        try {
-            pStmt = con
-                    .prepareStatement("SELECT * FROM servers WHERE server_id="
-                            + server_id);
-            rs = pStmt.executeQuery();
-            if (!rs.next()) {
-                return "<font color=\"red\"><strong><li>DATABASE ERROR: Server id "
+        Node node;
+        try {
+            node = getNodeByName(server_id);
+        } catch (PortletException e) {
+            log.info("error", e);
+            return "<font color=\"red\"><strong><li>DATABASE ERROR: Server id "
                         + server_id
                         + " not found in database</li></strong></font>";
-            }
-            server_ip = rs.getString("ip");
-            password = rs.getString("password");
-            username = rs.getString("username");
-            port = rs.getInt("port");
-            protocol = rs.getInt("protocol");
-        } catch (SQLException e) {
-            return "<font color=\"red\"><strong><li>DATABASE ERROR: "
-                    + e.getMessage() + "</li></strong></font>";
         }
-        // attempt to connect to the mrc-server
-        try {
-            con.close();
-            mrc = new MRCConnector(server_ip, username, password, port, protocol);
-        } catch (Exception e) {
-            return "<font color=\"red\"><strong><li>MRC ERROR: Unable to connect to server "
-                    + server_ip
-                    + ": "
-                    + e.getMessage()
-                    + "</li></strong></font>";
-        }
-        // tell the mrc-server to stop taking snapshots
         try {
+            MRCConnector mrc = new MRCConnector(node);
             if (mrc.stopSnapshotThread()) {
                 return "<font color=\"green\"><strong><li>Snapshot thread stopped on server "
-                        + rs.getString("name") + "</li></strong></font>";
+                        + server_id + "</li></strong></font>";
             } else {
                 return "<font color=\"red\"><strong><li>ERROR: Snapshot thread could <b>NOT</b> be stopped on server "
-                        + rs.getString("name") + "</li></strong></font>";
+                        + server_id + "</li></strong></font>";
             }
-
         } catch (Exception e) {
             return "<font color=\"red\"><strong><li>MRC ERROR: Snapshot thread could <b>NOT</b> be stopped on server "
-                    + server_ip
+                    + server_id
                     + ": "
                     + e.getMessage()
                     + "</li></strong></font>";
+
         }
     }
 
     private String startThread(String server_id, Long snapshotDuration) {
-        PreparedStatement pStmt = null;
-        ResultSet rs = null;
-        MRCConnector mrc = null;
-        DBManager DBase = new DBManager();
-        Connection con = DBase.getConnection();
-        String server_ip = null;
-        String username = null;
-        String password = null;
-        int port = -1;
-        int protocol = 0;
-        // fetch the server's information
-        try {
-            pStmt = con
-                    .prepareStatement("SELECT * FROM servers WHERE server_id="
-                            + server_id);
-            rs = pStmt.executeQuery();
-            if (!rs.next()) {
-                return "<font color=\"red\"><strong><li>DATABASE ERROR: Server id "
+        Node node;
+        try {
+            node = getNodeByName(server_id);
+        } catch (PortletException e) {
+            log.info("error", e);
+            return "<font color=\"red\"><strong><li>DATABASE ERROR: Server id "
                         + server_id
                         + " not found in database</li></strong></font>";
-            }
-            server_ip = rs.getString("ip");
-            password = rs.getString("password");
-            username = rs.getString("username");
-            port = rs.getInt("port");
-            protocol = rs.getInt("protocol");
-        } catch (SQLException e) {
-            return "<font color=\"red\"><strong><li>DATABASE ERROR: "
-                    + e.getMessage() + "</li></strong></font>";
         }
-        // attempt to connect to the mrc-server
         try {
-            con.close();
-            mrc = new MRCConnector(server_ip, username, password, port, protocol);
-        } catch (Exception e) {
-            return "<font color=\"red\"><strong><li>MRC ERROR: Unable to connect to server "
-                    + server_ip
-                    + ": "
-                    + e.getMessage()
-                    + "</li></strong></font>";
-        }
-        // tell the mrc-server to start the collection of statistics
-        try {
-            if (mrc.startSnapshotThread(new Long(snapshotDuration))) {
+            MRCConnector mrc = new MRCConnector(node);
+            if (mrc.startSnapshotThread(snapshotDuration)) {
                 return "<font color=\"green\"><strong><li>Snapshot thread started on server "
-                        + rs.getString("name") + "</li></strong></font>";
+                        + server_id + "</li></strong></font>";
             } else {
                 return "<font color=\"red\"><strong><li>ERROR: Snapshot thread could <b>NOT</b> be started on server "
-                        + rs.getString("name") + "</li></strong></font>";
+                        + server_id + "</li></strong></font>";
             }
         } catch (Exception e) {
             return "<font color=\"red\"><strong><li>MRC ERROR: Snapshot thread could <b>NOT</b> be started on server "
-                    + server_ip
+                    + server_id
                     + ": "
                     + e.getMessage()
                     + "</li></strong></font>";
+
         }
     }
 
     @Override
     public void init(PortletConfig portletConfig) throws PortletException {
         super.init(portletConfig);
-        normalView = portletConfig.getPortletContext().getRequestDispatcher(
-                NORMALVIEW_JSP);
-        viewViews = portletConfig.getPortletContext().getRequestDispatcher(
-                VIEWVIEWS_JSP);
-        viewServers = portletConfig.getPortletContext().getRequestDispatcher(
-                VIEWSERVERS_JSP);
-        viewGraphs = portletConfig.getPortletContext().getRequestDispatcher(
-                VIEWGRAPHS_JSP);
-        pageView = portletConfig.getPortletContext().getRequestDispatcher(
-                PAGEVIEW_JSP);
-        editView = portletConfig.getPortletContext().getRequestDispatcher(
-                EDITVIEW_JSP);
-        addView = portletConfig.getPortletContext().getRequestDispatcher(
-                ADDVIEW_JSP);
-        addGraph = portletConfig.getPortletContext().getRequestDispatcher(
-                ADDGRAPH_JSP);
-        editGraph = portletConfig.getPortletContext().getRequestDispatcher(
-                EDITGRAPH_JSP);
-        viewServer = portletConfig.getPortletContext().getRequestDispatcher(
-                VIEWSERVER_JSP);
-        editServer = portletConfig.getPortletContext().getRequestDispatcher(
-                EDITSERVER_JSP);
-        addServer = portletConfig.getPortletContext().getRequestDispatcher(
-                ADDSERVER_JSP);
-        helpView = portletConfig.getPortletContext().getRequestDispatcher(
-                HELPVIEW_JSP);
-        editNormalView = portletConfig.getPortletContext()
-                .getRequestDispatcher(EDITNORMALVIEW_JSP);
+        normalView = portletConfig.getPortletContext().getRequestDispatcher(NORMALVIEW_JSP);
+        viewViews = portletConfig.getPortletContext().getRequestDispatcher(VIEWVIEWS_JSP);
+        viewServers = portletConfig.getPortletContext().getRequestDispatcher(VIEWSERVERS_JSP);
+        viewGraphs = portletConfig.getPortletContext().getRequestDispatcher(VIEWGRAPHS_JSP);
+        pageView = portletConfig.getPortletContext().getRequestDispatcher(PAGEVIEW_JSP);
+        editView = portletConfig.getPortletContext().getRequestDispatcher(EDITVIEW_JSP);
+        addView = portletConfig.getPortletContext().getRequestDispatcher(ADDVIEW_JSP);
+        addGraph = portletConfig.getPortletContext().getRequestDispatcher(ADDGRAPH_JSP);
+        editGraph = portletConfig.getPortletContext().getRequestDispatcher(EDITGRAPH_JSP);
+        viewServer = portletConfig.getPortletContext().getRequestDispatcher(VIEWSERVER_JSP);
+        editServer = portletConfig.getPortletContext().getRequestDispatcher(EDITSERVER_JSP);
+        addServer = portletConfig.getPortletContext().getRequestDispatcher(ADDSERVER_JSP);
+        helpView = portletConfig.getPortletContext().getRequestDispatcher(HELPVIEW_JSP);
+        editNormalView = portletConfig.getPortletContext().getRequestDispatcher(EDITNORMALVIEW_JSP);
+
+        try {
+            Context ctx = new InitialContext();
+            userTransaction = (UserTransaction) ctx.lookup("java:comp/UserTransaction");
+            entityManager = (EntityManager) ctx.lookup("java:comp/env/jpa/monitoring");
+        } catch (NamingException e) {
+            throw new PortletException(e);
+        }
     }
 
     @Override

Added: geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/PopUpGraphServlet.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/PopUpGraphServlet.java?rev=720024&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/PopUpGraphServlet.java (added)
+++ geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/PopUpGraphServlet.java Sun Nov 23 10:32:00 2008
@@ -0,0 +1,115 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.geronimo.monitoring.console;
+
+import java.io.IOException;
+
+import javax.servlet.GenericServlet;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.ServletException;
+import javax.servlet.ServletConfig;
+import javax.servlet.RequestDispatcher;
+import javax.annotation.Resource;
+import javax.transaction.UserTransaction;
+import javax.persistence.PersistenceContext;
+import javax.persistence.EntityManager;
+import javax.portlet.RenderRequest;
+import javax.portlet.PortletException;
+
+import org.apache.geronimo.monitoring.console.data.Graph;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public class PopUpGraphServlet extends GenericServlet {
+    @Resource
+    UserTransaction userTransaction;
+
+    @PersistenceContext
+    EntityManager entityManager;
+
+    private RequestDispatcher jspDispatcher;
+
+    /**
+     * Called by the servlet container to indicate to a servlet that the
+     * servlet is being placed into service.  See {@link javax.servlet.Servlet#init}.
+     * <p/>
+     * <p>This implementation stores the {@link javax.servlet.ServletConfig}
+     * object it receives from the servlet container for later use.
+     * When overriding this form of the method, call
+     * <code>super.init(config)</code>.
+     *
+     * @param config the <code>ServletConfig</code> object
+     *               that contains configutation
+     *               information for this servlet
+     * @throws javax.servlet.ServletException if an exception occurs that
+     *                                        interrupts the servlet's normal
+     *                                        operation
+     * @see javax.servlet.UnavailableException
+     */
+
+    @Override
+    public void init(ServletConfig config) throws ServletException {
+        jspDispatcher = config.getServletContext().getRequestDispatcher("/monitoringPopUpGraph.jsp");
+    }
+
+    /**
+     * Called by the servlet container to allow the servlet to respond to
+     * a request.  See {@link javax.servlet.Servlet#service}.
+     * <p/>
+     * <p>This method is declared abstract so subclasses, such as
+     * <code>HttpServlet</code>, must override it.
+     *
+     * @param req the <code>ServletRequest</code> object
+     *            that contains the client's request
+     * @param res the <code>ServletResponse</code> object
+     *            that will contain the servlet's response
+     * @throws javax.servlet.ServletException if an exception occurs that
+     *                                        interferes with the servlet's
+     *                                        normal operation occurred
+     * @throws java.io.IOException            if an input or output
+     *                                        exception occurs
+     */
+
+    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
+        addGraphAttribute(req);
+        jspDispatcher.forward(req, res);
+    }
+
+    private void addGraphAttribute(ServletRequest request) throws ServletException {
+        try {
+            userTransaction.begin();
+            try {
+                String graphIdString = request.getParameter("graph_id");
+                int graphId = Integer.parseInt(graphIdString);
+                Graph graph = (Graph) entityManager.createNamedQuery("graphById").setParameter("id", graphId).getSingleResult();
+                StatsGraph statsGraph = new GraphsBuilder().getStatsGraph(graph);
+                request.setAttribute("statsGraph", statsGraph);
+            } finally {
+                userTransaction.commit();
+            }
+        } catch (Exception e) {
+            throw new ServletException(e);
+        }
+    }
+
+}

Propchange: geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/PopUpGraphServlet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/PopUpGraphServlet.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/PopUpGraphServlet.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/StatsGraph.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/StatsGraph.java?rev=720024&r1=720023&r2=720024&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/StatsGraph.java (original)
+++ geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/StatsGraph.java Sun Nov 23 10:32:00 2008
@@ -18,8 +18,8 @@
 
 import java.text.Format;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 import org.apache.geronimo.monitoring.console.data.Graph;
 
@@ -34,9 +34,9 @@
 
     public StatsGraph(Graph graph,
                       String graphName,
-                      ArrayList<Long> dataSet1,
-                      ArrayList<Long> dataSet2,
-                      ArrayList<Long> snapshotTimes,
+                      List<Long> dataSet1,
+                      List<Long> dataSet2,
+                      List<Long> snapshotTimes,
                       int snapshotDuration
     ) {
         this.graph = graph;
@@ -50,12 +50,11 @@
         this.GraphJS = buildJavaScript(dataSet1, snapshotTimes, dataDisplay);
     }
 
-    private String buildJavaScript(ArrayList<Long> dataSet1, ArrayList<Long> snapshotTimes, String dataDisplay) {
+    private String buildJavaScript(List<Long> dataSet1, List<Long> snapshotTimes, String dataDisplay) {
         String GraphJS = "var " + "graph" + graph.getId()
                 + " = new dojox.charting.Chart2D(\"" + getDivName() + "\");\n"
                 + "graph" + graph.getId()
                 + ".addPlot(\"default\", {type: \"Areas\", tension:3});\n" + "graph"
-//                + ".addPlot(\"default\", {type: \"Areas\"});\n" + "graph"
                 + graph.getId() + ".setTheme(dojox.charting.themes.PlotKit.blue);\n";
 
         // Setup the x tick marks on the chart
@@ -91,7 +90,7 @@
         return GraphJS;
     }
 
-    private String displayData(char data1operation, ArrayList<Long> dataSet1, String operation, char data2operation, ArrayList<Long> dataSet2) {
+    private String displayData(char data1operation, List<Long> dataSet1, String operation, char data2operation, List<Long> dataSet2) {
         String graphJS = "";
         if (data1operation == 'D' && data2operation == 'D') {
             for (int i = 1; i < dataSet1.size(); i++) {
@@ -140,8 +139,8 @@
 
     public StatsGraph(Graph graph,
                       String graphName,
-                      ArrayList<Long> dataSet1,
-                      ArrayList<Long> snapshotTimes, int snapshotDuration
+                      List<Long> dataSet1,
+                      List<Long> snapshotTimes, int snapshotDuration
     ) {
 
         this.graph = graph;
@@ -154,7 +153,7 @@
         this.GraphJS = buildJavaScript(dataSet1, snapshotTimes, dataDisplay);
     }
 
-    private String displayData(char data1operation, ArrayList<Long> dataSet1, String operation) {
+    private String displayData(char data1operation, List<Long> dataSet1, String operation) {
         String graphJS = "";
         if (data1operation == 'D')
             for (int i = 1; i < dataSet1.size(); i++) {

Modified: geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/data/Graph.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/data/Graph.java?rev=720024&r1=720023&r2=720024&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/data/Graph.java (original)
+++ geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/data/Graph.java Sun Nov 23 10:32:00 2008
@@ -20,18 +20,30 @@
 
 package org.apache.geronimo.monitoring.console.data;
 
+import java.util.List;
+import java.util.ArrayList;
+
 import javax.persistence.Entity;
 import javax.persistence.Id;
+import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
+import javax.persistence.JoinTable;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToMany;
+import javax.persistence.CascadeType;
+import javax.persistence.FetchType;
+import javax.persistence.ManyToOne;
+import javax.persistence.GeneratedValue;
 
 /**
- * @version $Rev:$ $Date:$
+ * @version $Rev$ $Date$
  */
-@Entity(name="graph")
-@NamedQuery(name="graphById", query="SELECT a FROM graph a WHERE a.id = :id")
+@Entity(name = "graph")
+@NamedQuery(name = "allGraphs", query = "SELECT a FROM graph a")
 public class Graph {
 
     @Id
+    @GeneratedValue
     private int id;
 //    private String name;
 //    private String description;
@@ -56,7 +68,6 @@
     private String graphName1;
     private String graphName2;
     private int timeFrame;
-    private String server_id;
     private String xlabel;
     private String ylabel;
     private char data1operation = 'A';
@@ -67,31 +78,45 @@
     private String description;
     private boolean showArchive;
 
+//    private String server_id;
 
-    /**
-                                  + "graph_id    INTEGER PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1),"
-                            + "enabled     SMALLINT NOT NULL DEFAULT 1,"
-                            + "server_id   INTEGER NOT NULL DEFAULT 0,"
-                            + "name        VARCHAR(128) UNIQUE NOT NULL,"
-                            + "description LONG VARCHAR DEFAULT NULL,"
-                            + "timeframe   INTEGER NOT NULL DEFAULT 60,"
-                            + "mbean       VARCHAR(512) NOT NULL,"
-                            + "data1operation  CHAR DEFAULT NULL,"
-                            + "dataname1   VARCHAR(128) NOT NULL,"
-                            + "operation   VARCHAR(128) DEFAULT NULL,"
-                            + "data2operation  CHAR DEFAULT NULL,"
-                            + "dataname2   VARCHAR(128) DEFAULT NULL,"
-                            + "xlabel      VARCHAR(128) DEFAULT NULL,"
-                            + "ylabel      VARCHAR(128) DEFAULT NULL,"
-                            + "warninglevel1   FLOAT DEFAULT NULL,"
-                            + "warninglevel2   FLOAT DEFAULT NULL,"
-                            + "color       VARCHAR(6) NOT NULL DEFAULT '1176c2',"
-                            + "last_js     LONG VARCHAR DEFAULT NULL,"
-                            + "added       TIMESTAMP NOT NULL,"
-                            + "modified    TIMESTAMP NOT NULL,"
-                            + "archive     SMALLINT NOT NULL DEFAULT 0,"
-                            + "last_seen   TIMESTAMP NOT NULL" + ")");
+    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE},
+            fetch = FetchType.EAGER)
+    @JoinTable(name = "view_graph",
+            joinColumns = {@JoinColumn(name = "graph_id")},
+            inverseJoinColumns = {@JoinColumn(name = "view_id")}
+    )
+    private List<View> views = new ArrayList<View>();
+
+    @ManyToOne(fetch= FetchType.EAGER, cascade={CascadeType.PERSIST})
+    @JoinColumn(
+        name="node", referencedColumnName="name"
+    )
+    private Node node;
 
+    /**
+     * + "graph_id    INTEGER PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1),"
+     * + "enabled     SMALLINT NOT NULL DEFAULT 1,"
+     * + "server_id   INTEGER NOT NULL DEFAULT 0,"
+     * + "name        VARCHAR(128) UNIQUE NOT NULL,"
+     * + "description LONG VARCHAR DEFAULT NULL,"
+     * + "timeframe   INTEGER NOT NULL DEFAULT 60,"
+     * + "mbean       VARCHAR(512) NOT NULL,"
+     * + "data1operation  CHAR DEFAULT NULL,"
+     * + "dataname1   VARCHAR(128) NOT NULL,"
+     * + "operation   VARCHAR(128) DEFAULT NULL,"
+     * + "data2operation  CHAR DEFAULT NULL,"
+     * + "dataname2   VARCHAR(128) DEFAULT NULL,"
+     * + "xlabel      VARCHAR(128) DEFAULT NULL,"
+     * + "ylabel      VARCHAR(128) DEFAULT NULL,"
+     * + "warninglevel1   FLOAT DEFAULT NULL,"
+     * + "warninglevel2   FLOAT DEFAULT NULL,"
+     * + "color       VARCHAR(6) NOT NULL DEFAULT '1176c2',"
+     * + "last_js     LONG VARCHAR DEFAULT NULL,"
+     * + "added       TIMESTAMP NOT NULL,"
+     * + "modified    TIMESTAMP NOT NULL,"
+     * + "archive     SMALLINT NOT NULL DEFAULT 0,"
+     * + "last_seen   TIMESTAMP NOT NULL" + ")");
      */
 
     public int getId() {
@@ -150,13 +175,13 @@
         this.timeFrame = timeFrame;
     }
 
-    public String getServer_id() {
-        return server_id;
-    }
-
-    public void setServer_id(String server_id) {
-        this.server_id = server_id;
-    }
+//    public String getServer_id() {
+//        return server_id;
+//    }
+//
+//    public void setServer_id(String server_id) {
+//        this.server_id = server_id;
+//    }
 
     public String getXlabel() {
         return xlabel;
@@ -229,4 +254,24 @@
     public void setShowArchive(boolean showArchive) {
         this.showArchive = showArchive;
     }
+
+    public String getIdString() {
+        return "" + id;
+    }
+
+    public List<View> getViews() {
+        return views;
+    }
+
+    public void setViews(List<View> views) {
+        this.views = views;
+    }
+
+    public Node getNode() {
+        return node;
+    }
+
+    public void setNode(Node node) {
+        this.node = node;
+    }
 }