001 /** 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.geronimo.monitoring.console; 018 019 import java.io.IOException; 020 import java.sql.Connection; 021 import java.sql.PreparedStatement; 022 import java.sql.ResultSet; 023 import java.sql.SQLException; 024 import java.sql.Statement; 025 026 import javax.portlet.ActionRequest; 027 import javax.portlet.ActionResponse; 028 import javax.portlet.GenericPortlet; 029 import javax.portlet.PortletConfig; 030 import javax.portlet.PortletException; 031 import javax.portlet.PortletRequestDispatcher; 032 import javax.portlet.RenderRequest; 033 import javax.portlet.RenderResponse; 034 035 import org.apache.geronimo.monitoring.console.util.DBManager; 036 import org.apache.geronimo.crypto.EncryptionManager; 037 038 /** 039 * STATS 040 */ 041 public class MonitoringPortlet extends GenericPortlet { 042 043 private static final String NORMALVIEW_JSP = "/WEB-INF/view/monitoringNormal.jsp"; 044 045 private static final String VIEWVIEWS_JSP = "/WEB-INF/view/monitoringViews.jsp"; 046 047 private static final String VIEWSERVERS_JSP = "/WEB-INF/view/monitoringServers.jsp"; 048 049 private static final String VIEWGRAPHS_JSP = "/WEB-INF/view/monitoringGraphs.jsp"; 050 051 private static final String PAGEVIEW_JSP = "/WEB-INF/view/monitoringPage.jsp"; 052 053 private static final String EDITVIEW_JSP = "/WEB-INF/view/monitoringEditView.jsp"; 054 055 private static final String ADDVIEW_JSP = "/WEB-INF/view/monitoringAddView.jsp"; 056 057 private static final String ADDGRAPH_JSP = "/WEB-INF/view/monitoringAddGraph.jsp"; 058 059 private static final String EDITGRAPH_JSP = "/WEB-INF/view/monitoringEditGraph.jsp"; 060 061 private static final String VIEWSERVER_JSP = "/WEB-INF/view/monitoringViewServer.jsp"; 062 063 private static final String EDITSERVER_JSP = "/WEB-INF/view/monitoringEditServer.jsp"; 064 065 private static final String ADDSERVER_JSP = "/WEB-INF/view/monitoringAddServer.jsp"; 066 067 private static final String HELPVIEW_JSP = "/WEB-INF/view/monitoringHelp.jsp"; 068 069 private static final String EDITNORMALVIEW_JSP = "/WEB-INF/view/monitoringEdit.jsp"; 070 071 private PortletRequestDispatcher normalView; 072 073 private PortletRequestDispatcher viewViews; 074 075 private PortletRequestDispatcher viewServers; 076 077 private PortletRequestDispatcher viewGraphs; 078 079 private PortletRequestDispatcher pageView; 080 081 private PortletRequestDispatcher editView; 082 083 private PortletRequestDispatcher addView; 084 085 private PortletRequestDispatcher addGraph; 086 087 private PortletRequestDispatcher editGraph; 088 089 private PortletRequestDispatcher viewServer; 090 091 private PortletRequestDispatcher editServer; 092 093 private PortletRequestDispatcher addServer; 094 095 private PortletRequestDispatcher helpView; 096 097 private PortletRequestDispatcher editNormalView; 098 099 @Override 100 public void processAction(ActionRequest actionRequest, 101 ActionResponse actionResponse) throws PortletException, IOException { 102 String action = actionRequest.getParameter("action"); 103 actionResponse.setRenderParameter("action", action); 104 if (action.equals("showView")) { 105 String view_id = actionRequest.getParameter("view_id"); 106 actionResponse.setRenderParameter("view_id", view_id); 107 } else if (action.equals("showAllViews")) { 108 // no parameters needed to be redirected to doView() 109 } else if (action.equals("showAllServers")) { 110 // no parameters needed to be redirected to doView() 111 } else if (action.equals("showAllGraphs")) { 112 // no parameters needed to be redirected to doView() 113 } else if (action.equals("showEditView")) { 114 String view_id = actionRequest.getParameter("view_id"); 115 actionResponse.setRenderParameter("view_id", view_id); 116 } else if (action.equals("saveEditView")) { 117 updateView(actionRequest, actionResponse); 118 } else if (action.equals("showAddView")) { 119 // no parameters needed to be redirected to doView() 120 } else if (action.equals("saveAddView")) { 121 addView(actionRequest, actionResponse); 122 } else if (action.equals("showAddGraph")) { 123 String server_id = actionRequest.getParameter("server_id"); 124 if (server_id != null) 125 actionResponse.setRenderParameter("server_id", server_id); 126 127 String mbean = actionRequest.getParameter("mbean"); 128 if (mbean != null) 129 actionResponse.setRenderParameter("mbean", mbean); 130 131 String dataname = actionRequest.getParameter("dataname"); 132 if (dataname != null) 133 actionResponse.setRenderParameter("dataname", dataname); 134 } else if (action.equals("saveAddGraph")) { 135 addGraph(actionRequest, actionResponse); 136 } else if (action.equals("showEditGraph")) { 137 String graph_id = actionRequest.getParameter("graph_id"); 138 actionResponse.setRenderParameter("graph_id", graph_id); 139 } else if (action.equals("saveEditGraph")) { 140 updateGraph(actionRequest, actionResponse); 141 } else if (action.equals("deleteGraph")) { 142 deleteGraph(actionRequest, actionResponse); 143 } else if (action.equals("deleteView")) { 144 deleteView(actionRequest, actionResponse); 145 } else if (action.equals("showServer")) { 146 String server_id = actionRequest.getParameter("server_id"); 147 actionResponse.setRenderParameter("server_id", server_id); 148 } else if (action.equals("showEditServer")) { 149 String server_id = actionRequest.getParameter("server_id"); 150 actionResponse.setRenderParameter("server_id", server_id); 151 } else if (action.equals("saveEditServer")) { 152 updateServer(actionRequest, actionResponse); 153 } else if (action.equals("showAddServer")) { 154 // no parameters needed to be redirected to doView() 155 } else if (action.equals("deleteServer")) { 156 deleteServer(actionRequest, actionResponse); 157 } else if (action.equals("saveAddServer")) { 158 addServer(actionRequest, actionResponse); 159 } else if (action.equals("startTrackingMbean")) { 160 String server_id = actionRequest.getParameter("server_id"); 161 actionResponse.setRenderParameter("server_id", server_id); 162 String mbean = actionRequest.getParameter("mbean"); 163 actionResponse.setRenderParameter("mbean", mbean); 164 } else if (action.equals("stopTrackingMbean")) { 165 String server_id = actionRequest.getParameter("server_id"); 166 actionResponse.setRenderParameter("server_id", server_id); 167 String mbean = actionRequest.getParameter("mbean"); 168 actionResponse.setRenderParameter("mbean", mbean); 169 } else if (action.equals("stopThread") 170 || action.equals("disableServerViewQuery")) { 171 String server_id = actionRequest.getParameter("server_id"); 172 String message = stopThread(server_id); 173 actionResponse.setRenderParameter("server_id", server_id); 174 actionResponse.setRenderParameter("message", message); 175 } else if (action.equals("startThread") 176 || action.equals("enableServerViewQuery")) { 177 String server_id = actionRequest.getParameter("server_id"); 178 String snapshotDuration = actionRequest 179 .getParameter("snapshotDuration"); 180 String message = startThread(server_id, new Long(snapshotDuration)); 181 actionResponse.setRenderParameter("message", message); 182 actionResponse.setRenderParameter("server_id", server_id); 183 actionResponse.setRenderParameter("snapshotDuration", 184 snapshotDuration); 185 } else if (action.equals("disableServer") 186 || action.equals("disableEditServer")) { 187 String server_id = actionRequest.getParameter("server_id"); 188 actionResponse.setRenderParameter("server_id", server_id); 189 ; 190 actionResponse.setRenderParameter("message", alterServerState( 191 server_id, false)); 192 } else if (action.equals("enableServer") 193 || action.equals("enableEditServer")) { 194 String server_id = actionRequest.getParameter("server_id"); 195 actionResponse.setRenderParameter("message", alterServerState( 196 server_id, true)); 197 actionResponse.setRenderParameter("server_id", server_id); 198 ; 199 } else if (action.equals("testAddServerConnection")) { 200 String name = actionRequest.getParameter("name"); 201 String ip = actionRequest.getParameter("ip"); 202 String username = actionRequest.getParameter("username"); 203 String password = actionRequest.getParameter("password"); 204 String password2 = actionRequest.getParameter("password2"); 205 Integer port = Integer.parseInt(actionRequest.getParameter("port")); 206 Integer protocol = Integer.parseInt(actionRequest.getParameter("protocol")); 207 String message = testConnection(name, ip, username, password, port, protocol); 208 actionResponse.setRenderParameter("message", message); 209 actionResponse.setRenderParameter("name", name); 210 actionResponse.setRenderParameter("username", username); 211 actionResponse.setRenderParameter("ip", ip); 212 actionResponse.setRenderParameter("password", password); 213 actionResponse.setRenderParameter("password2", password2); 214 actionResponse.setRenderParameter("port", "" + port); 215 actionResponse.setRenderParameter("protocol", "" + protocol); 216 } else if (action.equals("testEditServerConnection")) { 217 String name = actionRequest.getParameter("name"); 218 String ip = actionRequest.getParameter("ip"); 219 String username = actionRequest.getParameter("username"); 220 String password = actionRequest.getParameter("password"); 221 String password2 = actionRequest.getParameter("password2"); 222 String server_id = actionRequest.getParameter("server_id"); 223 String snapshot = actionRequest.getParameter("snapshot"); 224 String retention = actionRequest.getParameter("retention"); 225 Integer port = Integer.parseInt(actionRequest.getParameter("port")); 226 Integer protocol = Integer.parseInt(actionRequest.getParameter("protocol")); 227 if(snapshot == null) { 228 snapshot = ""; 229 } 230 if(retention == null) { 231 retention = ""; 232 } 233 String message = testConnection(name, ip, username, password, port, protocol); 234 actionResponse.setRenderParameter("message", message); 235 actionResponse.setRenderParameter("name", name); 236 actionResponse.setRenderParameter("username", username); 237 actionResponse.setRenderParameter("ip", ip); 238 actionResponse.setRenderParameter("password", password); 239 actionResponse.setRenderParameter("password2", password2); 240 actionResponse.setRenderParameter("snapshot", snapshot); 241 actionResponse.setRenderParameter("server_id", server_id); 242 actionResponse.setRenderParameter("retention", retention); 243 actionResponse.setRenderParameter("port", "" + port); 244 actionResponse.setRenderParameter("protocol", "" + protocol); 245 } 246 } 247 248 private String testConnection(String name, String ip, String username, 249 String password, int port, int protocol) { 250 try { 251 MRCConnector mrc = new MRCConnector(ip, username, password, port, protocol); 252 253 return "<font color=\"green\"><strong><li>Connection was successfully established.</li></strong></font>"; 254 } catch (Exception e) { 255 return "<font color=\"red\"><strong><li>Failed to create a connection to server.</li></strong></font>"; 256 } 257 } 258 259 private String alterServerState(String server_id, boolean b) { 260 Connection conn = (new DBManager()).getConnection(); 261 String message = ""; 262 String name = ""; 263 try { 264 PreparedStatement pStmt = conn 265 .prepareStatement("SELECT * FROM servers WHERE server_id=" 266 + server_id); 267 ResultSet rs = pStmt.executeQuery(); 268 if (rs.next()) { 269 name = rs.getString("name"); 270 } 271 rs.close(); 272 conn.close(); 273 conn = (new DBManager()).getConnection(); 274 Statement stmt = conn.createStatement(); 275 if (!b) { 276 stmt 277 .executeUpdate("UPDATE SERVERS SET ENABLED = 0 WHERE SERVER_ID=" 278 + server_id); 279 stmt 280 .executeUpdate("UPDATE GRAPHS SET ENABLED = 0 WHERE SERVER_ID=" 281 + server_id); 282 message = "<font color=\"green\"><strong><li>Server " + name 283 + " was successfully disabled.</li></strong></font>"; 284 } else { 285 stmt 286 .executeUpdate("UPDATE SERVERS SET ENABLED = 1 WHERE SERVER_ID=" 287 + server_id); 288 stmt 289 .executeUpdate("UPDATE GRAPHS SET ENABLED = 1 WHERE SERVER_ID=" 290 + server_id); 291 message = "<font color=\"green\"><strong><li>Server " + name 292 + " was successfully enabled.</li></strong></font>"; 293 } 294 } catch (SQLException e) { 295 if (!b) 296 message = "<font color=\"red\"><strong><li>[ERROR] Server with server_id = " 297 + server_id 298 + " could not be disabled.</li></strong></font>"; 299 else 300 message = "<font color=\"red\"><strong><li>[ERROR] Server with server_id = " 301 + server_id 302 + " could not be enabled.</li></strong></font>"; 303 } finally { 304 if (conn != null) { 305 try { 306 conn.close(); 307 } catch (Exception e) { 308 309 } 310 } 311 } 312 return message; 313 } 314 315 @Override 316 public void doView(RenderRequest request, RenderResponse response) 317 throws PortletException, IOException { 318 String action = request.getParameter("action"); 319 if (action == null) 320 action = "showNormal"; 321 if (action.equals("showView")) { 322 String view_id = request.getParameter("view_id"); 323 request.setAttribute("view_id", view_id); 324 pageView.include(request, response); 325 } else if (action.equals("showAllViews")) { 326 request.setAttribute("message", ""); 327 viewViews.include(request, response); 328 } else if (action.equals("showAllServers")) { 329 request.setAttribute("message", ""); 330 viewServers.include(request, response); 331 } else if (action.equals("showAllGraphs")) { 332 request.setAttribute("message", ""); 333 viewGraphs.include(request, response); 334 } else if (action.equals("showServer")) { 335 String server_id = request.getParameter("server_id"); 336 request.setAttribute("server_id", server_id); 337 viewServer.include(request, response); 338 } else if (action.equals("startTrackingMbean")) { 339 String server_id = request.getParameter("server_id"); 340 request.setAttribute("server_id", server_id); 341 String mbean = request.getParameter("mbean"); 342 request.setAttribute("mbean", mbean); 343 String message = startTrackingMbean(server_id, mbean); 344 request.setAttribute("message", message); 345 viewServer.include(request, response); 346 } else if (action.equals("stopTrackingMbean")) { 347 String server_id = request.getParameter("server_id"); 348 request.setAttribute("server_id", server_id); 349 String mbean = request.getParameter("mbean"); 350 request.setAttribute("mbean", mbean); 351 String message = stopTrackingMbean(server_id, mbean); 352 request.setAttribute("message", message); 353 viewServer.include(request, response); 354 } else if (action.equals("stopThread")) { 355 String server_id = request.getParameter("server_id"); 356 String message = request.getParameter("message"); 357 request.setAttribute("message", message); 358 normalView.include(request, response); 359 } else if (action.equals("startThread")) { 360 String server_id = request.getParameter("server_id"); 361 Long snapshotDuration = java.lang.Long.parseLong( 362 request.getParameter("snapshotDuration")); 363 String message = request.getParameter("message"); 364 request.setAttribute("message", message); 365 normalView.include(request, response); 366 } else if (action.equals("disableServerViewQuery") || action.equals("enableServerViewQuery")) { 367 String server_id = request.getParameter("server_id"); 368 String message = request.getParameter("message"); 369 request.setAttribute("message", message); 370 request.setAttribute("server_id", server_id); 371 viewServer.include(request, response); 372 } else { 373 request.setAttribute("message", request.getParameter("message")); 374 normalView.include(request, response); 375 } 376 } 377 378 @Override 379 protected void doHelp(RenderRequest renderRequest, 380 RenderResponse renderResponse) throws PortletException, IOException { 381 helpView.include(renderRequest, renderResponse); 382 } 383 384 @Override 385 protected void doEdit(RenderRequest request, RenderResponse response) 386 throws PortletException, IOException { 387 String action = request.getParameter("action"); 388 if (action == null) 389 action = "showNormal"; 390 if (action.equals("showEditView")) { 391 String view_id = request.getParameter("view_id"); 392 request.setAttribute("view_id", view_id); 393 editView.include(request, response); 394 } else if (action.equals("saveEditView")) { 395 String view_id = request.getParameter("view_id"); 396 request.setAttribute("view_id", view_id); 397 String message = request.getParameter("message"); 398 request.setAttribute("message", message); 399 editView.include(request, response); 400 } else if (action.equals("showAddView")) { 401 addView.include(request, response); 402 } else if (action.equals("saveAddView")) { 403 String message = request.getParameter("message"); 404 request.setAttribute("message", message); 405 normalView.include(request, response); 406 } else if (action.equals("showAddGraph")) { 407 String server_id = request.getParameter("server_id"); 408 request.setAttribute("server_id", server_id); 409 String mbean = request.getParameter("mbean"); 410 request.setAttribute("mbean", mbean); 411 String dataname = request.getParameter("dataname"); 412 request.setAttribute("dataname", dataname); 413 addGraph.include(request, response); 414 } else if (action.equals("saveAddGraph")) { 415 String message = request.getParameter("message"); 416 request.setAttribute("message", message); 417 normalView.include(request, response); 418 } else if (action.equals("showEditGraph")) { 419 String graph_id = request.getParameter("graph_id"); 420 request.setAttribute("graph_id", graph_id); 421 editGraph.include(request, response); 422 } else if (action.equals("saveEditGraph")) { 423 String graph_id = request.getParameter("graph_id"); 424 request.setAttribute("graph_id", graph_id); 425 String message = request.getParameter("message"); 426 request.setAttribute("message", message); 427 editGraph.include(request, response); 428 } else if (action.equals("deleteGraph")) { 429 String message = request.getParameter("message"); 430 request.setAttribute("message", message); 431 normalView.include(request, response); 432 } else if (action.equals("deleteView")) { 433 String message = request.getParameter("message"); 434 request.setAttribute("message", message); 435 normalView.include(request, response); 436 } else if (action.equals("showEditServer")) { 437 String server_id = request.getParameter("server_id"); 438 request.setAttribute("server_id", server_id); 439 editServer.include(request, response); 440 } else if (action.equals("saveEditServer")) { 441 String server_id = request.getParameter("server_id"); 442 request.setAttribute("server_id", server_id); 443 String message = request.getParameter("message"); 444 request.setAttribute("message", message); 445 editServer.include(request, response); 446 } else if (action.equals("showAddServer")) { 447 addServer.include(request, response); 448 } else if (action.equals("saveAddServer")) { 449 String message = request.getParameter("message"); 450 request.setAttribute("message", message); 451 normalView.include(request, response); 452 } else if (action.equals("deleteServer")) { 453 String message = request.getParameter("message"); 454 request.setAttribute("message", message); 455 normalView.include(request, response); 456 } else if (action.equals("testAddServerConnection")) { 457 request.setAttribute("name", request.getParameter("name")); 458 request.setAttribute("ip", request.getParameter("ip")); 459 request.setAttribute("username", request.getParameter("username")); 460 request.setAttribute("password", request.getParameter("password")); 461 request 462 .setAttribute("password2", request 463 .getParameter("password2")); 464 request.setAttribute("message", request.getParameter("message")); 465 request.setAttribute("port", request.getParameter("port")); 466 addServer.include(request, response); 467 } else if (action.equals("testEditServerConnection")) { 468 request.setAttribute("name", request.getParameter("name")); 469 request.setAttribute("ip", request.getParameter("ip")); 470 request.setAttribute("port", request.getParameter("port")); 471 request.setAttribute("username", request.getParameter("username")); 472 request.setAttribute("password", request.getParameter("password")); 473 request 474 .setAttribute("password2", request 475 .getParameter("password2")); 476 request.setAttribute("message", request.getParameter("message")); 477 request 478 .setAttribute("server_id", request 479 .getParameter("server_id")); 480 request.setAttribute("snapshot", request.getParameter("snapshot")); 481 request 482 .setAttribute("retention", request 483 .getParameter("retention")); 484 editServer.include(request, response); 485 } else if (action.equals("disableEditServer") 486 || action.equals("enableEditServer")) { 487 request.setAttribute("message", request.getParameter("message")); 488 request 489 .setAttribute("server_id", request 490 .getParameter("server_id")); 491 editServer.include(request, response); 492 } else if (action.equals("disableServer") 493 || action.equals("enableServer")) { 494 request.setAttribute("message", request.getParameter("message")); 495 request 496 .setAttribute("server_id", request 497 .getParameter("server_id")); 498 normalView.include(request, response); 499 } else { 500 normalView.include(request, response); 501 } 502 } 503 504 private void updateView(ActionRequest actionRequest, 505 ActionResponse actionResponse) { 506 String view_id = actionRequest.getParameter("view_id"); 507 actionResponse.setRenderParameter("view_id", view_id); 508 DBManager DBase = new DBManager(); 509 Connection con = DBase.getConnection(); 510 String name = actionRequest.getParameter("name"); 511 String description = actionRequest.getParameter("description"); 512 String[] graphsArray = actionRequest.getParameterValues("graph_ids"); 513 if (graphsArray == null) { 514 graphsArray = new String[0]; 515 } 516 try { 517 PreparedStatement pStmt = con 518 .prepareStatement("UPDATE views SET name='" + name 519 + "', description='" + description 520 + "', graph_count=" + graphsArray.length 521 + ", modified=CURRENT_TIMESTAMP WHERE view_id=" 522 + view_id); 523 pStmt.executeUpdate(); 524 pStmt = con 525 .prepareStatement("DELETE FROM views_graphs WHERE view_id=" 526 + view_id); 527 pStmt.executeUpdate(); 528 if (graphsArray != null) 529 for (int i = 0; i < graphsArray.length; i++) { 530 pStmt = con 531 .prepareStatement("INSERT INTO views_graphs VALUES(" 532 + view_id + "," + graphsArray[i] + ")"); 533 pStmt.executeUpdate(); 534 } 535 con.close(); 536 actionResponse.setRenderParameter("message", 537 "<font color=\"green\"><strong><li>View " + name 538 + " has been updated</li></strong></font>"); 539 return; 540 541 } catch (Exception e) { 542 actionResponse.setRenderParameter("message", 543 "<font color=\"red\"><strong><li>Error updating View " 544 + name + "</li></strong></font>" + e.getMessage()); 545 return; 546 } 547 } 548 549 private void addView(ActionRequest actionRequest, 550 ActionResponse actionResponse) { 551 DBManager DBase = new DBManager(); 552 Connection con = DBase.getConnection(); 553 String name = actionRequest.getParameter("name"); 554 String description = actionRequest.getParameter("description"); 555 String[] graphsArray = actionRequest.getParameterValues("graph_ids"); 556 if (graphsArray == null) { 557 graphsArray = new String[0]; 558 } 559 try { 560 PreparedStatement pStmt = con 561 .prepareStatement("INSERT INTO views (name, description, graph_count, modified, added) VALUES ('" 562 + name 563 + "','" 564 + description 565 + "'," 566 + graphsArray.length 567 + ",CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)"); 568 pStmt.executeUpdate(); 569 pStmt = con 570 .prepareStatement("select view_id from views ORDER BY view_id DESC"); 571 ResultSet rs = pStmt.executeQuery(); 572 if (rs.next()) { 573 Integer view_id = rs.getInt("view_id"); 574 for (int i = 0; i < graphsArray.length; i++) { 575 pStmt = con 576 .prepareStatement("INSERT INTO views_graphs VALUES(" 577 + view_id + "," + graphsArray[i] + ")"); 578 pStmt.executeUpdate(); 579 } 580 } 581 con.close(); 582 actionResponse.setRenderParameter("message", 583 "<font color=\"green\"><strong><li>View " + name 584 + " has been added</li></strong></font>"); 585 } catch (Exception e) { 586 actionResponse.setRenderParameter("message", 587 "<font color=\"red\"><strong><li>Error adding View " + name 588 + "</li></strong></font>" + e.getMessage()); 589 } finally { 590 try { 591 con.close(); 592 } catch (Exception e) { 593 594 } 595 } 596 } 597 598 private void updateServer(ActionRequest actionRequest, 599 ActionResponse actionResponse) { 600 String server_id = actionRequest.getParameter("server_id"); 601 actionResponse.setRenderParameter("server_id", server_id); 602 DBManager DBase = new DBManager(); 603 Connection con = DBase.getConnection(); 604 String name = actionRequest.getParameter("name"); 605 String ip = actionRequest.getParameter("ip"); 606 String password = actionRequest.getParameter("password"); 607 String username = actionRequest.getParameter("username"); 608 String snapshot = actionRequest.getParameter("snapshot"); 609 String retention = actionRequest.getParameter("retention"); 610 Integer port = Integer.parseInt(actionRequest.getParameter("port")); 611 Integer protocol = Integer.parseInt(actionRequest.getParameter("protocol")); 612 // encrypt the password 613 if (password != null && !password.equals("")) { 614 password = EncryptionManager.encrypt(password); 615 } 616 617 try { 618 // update the client side db (table = SERVERS) 619 if (password.equals("") || password == null) { 620 PreparedStatement pStmt = con 621 .prepareStatement("UPDATE servers SET name='" 622 + name 623 + "', ip='" 624 + ip 625 + "', username='" 626 + username 627 + "', modified=CURRENT_TIMESTAMP, last_seen=CURRENT_TIMESTAMP, " 628 + "port=" + port + ",protocol="+protocol+" WHERE server_id=" 629 + server_id); 630 pStmt.executeUpdate(); 631 // when user did not specify the password, just grab it from the 632 // db 633 pStmt = con 634 .prepareStatement("SELECT password FROM servers WHERE server_id=" 635 + server_id); 636 ResultSet s = pStmt.executeQuery(); 637 if (s.next()) { 638 password = s.getString("password"); 639 } else { 640 actionResponse 641 .setRenderParameter( 642 "message", 643 "<font color=\"red\"><strong><li>Error updating server</li></strong></font>" 644 + "Password was not found in the database for server_id=" 645 + server_id); 646 con.close(); 647 return; 648 } 649 } else { 650 PreparedStatement pStmt = con 651 .prepareStatement("UPDATE servers SET name='" 652 + name 653 + "', ip='" 654 + ip 655 + "', username='" 656 + username 657 + "', password='" 658 + password 659 + "', modified=CURRENT_TIMESTAMP, last_seen=CURRENT_TIMESTAMP, " 660 + "port=" + port + ",protocol="+protocol+" WHERE server_id=" 661 + server_id); 662 pStmt.executeUpdate(); 663 } 664 con.close(); 665 // update the server side db 666 if (snapshot == null || retention == null) { 667 // do not update if we do not know 668 } else { 669 (new MRCConnector(ip, username, password, port, protocol)) 670 .setSnapshotDuration(Long.parseLong(snapshot) * 1000 * 60); 671 (new MRCConnector(ip, username, password, port, protocol)) 672 .setSnapshotRetention(Integer.parseInt(retention)); 673 } 674 // set success message 675 actionResponse 676 .setRenderParameter( 677 "message", 678 "<font color=\"green\"><strong><li>Server has been updated</li></strong></font>"); 679 } catch (Exception e) { 680 actionResponse.setRenderParameter("message", 681 "<font color=\"red\"><strong><li>Error updating server</li></strong></font>" 682 + e.getMessage()); 683 } 684 } 685 686 private void addServer(ActionRequest actionRequest, 687 ActionResponse actionResponse) { 688 DBManager DBase = new DBManager(); 689 Connection con = DBase.getConnection(); 690 String name = actionRequest.getParameter("name"); 691 String ip = actionRequest.getParameter("ip"); 692 int protocol = Integer.parseInt(actionRequest.getParameter("protocol")); 693 int port = Integer.parseInt(actionRequest.getParameter("port")); 694 String password = actionRequest.getParameter("password"); 695 String username = actionRequest.getParameter("username"); 696 // encrypt the password 697 if (password != null && !password.equals("")) { 698 password = EncryptionManager.encrypt(password); 699 } 700 try { 701 PreparedStatement pStmt = con 702 .prepareStatement("INSERT INTO servers (name, ip, username, password, modified, last_seen, added, port, protocol) VALUES ('" 703 + name 704 + "','" 705 + ip 706 + "','" 707 + username 708 + "','" 709 + password 710 + "',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP," 711 + port 712 + "," 713 + protocol + ")"); 714 pStmt.executeUpdate(); 715 actionResponse.setRenderParameter("message", 716 "<font color=\"green\"><strong><li>Server " + name + " at " 717 + ip + " has been added.</li></strong></font>"); 718 719 } catch (Exception e) { 720 actionResponse.setRenderParameter("message", 721 "<font color=\"red\"><strong><li>Error adding server</li></strong></font>" 722 + e.getMessage()); 723 } finally { 724 try { 725 con.close(); 726 } catch (Exception e) { 727 728 } 729 } 730 } 731 732 private void deleteServer(ActionRequest actionRequest, 733 ActionResponse actionResponse) { 734 String server_id = actionRequest.getParameter("server_id"); 735 actionResponse.setRenderParameter("server_id", server_id); 736 DBManager DBase = new DBManager(); 737 Connection con = DBase.getConnection(); 738 739 try { 740 PreparedStatement pStmt = con 741 .prepareStatement("DELETE FROM graphs WHERE server_id=" 742 + server_id); 743 pStmt.executeUpdate(); 744 745 pStmt = con.prepareStatement("DELETE FROM servers WHERE server_id=" 746 + server_id); 747 pStmt.executeUpdate(); 748 con.close(); 749 actionResponse 750 .setRenderParameter( 751 "message", 752 "<font color=\"green\"><strong><li>Server and associated graphs have been deleted</li></strong></font>"); 753 return; 754 755 } catch (Exception e) { 756 actionResponse.setRenderParameter("message", 757 "<font color=\"red\"><strong><li>Error deleting server</li></strong></font>" 758 + e.getMessage()); 759 return; 760 } 761 } 762 763 private void deleteView(ActionRequest actionRequest, 764 ActionResponse actionResponse) { 765 String view_id = actionRequest.getParameter("view_id"); 766 actionResponse.setRenderParameter("view_id", view_id); 767 DBManager DBase = new DBManager(); 768 Connection con = DBase.getConnection(); 769 770 try { 771 PreparedStatement pStmt = con 772 .prepareStatement("DELETE FROM views WHERE view_id=" 773 + view_id); 774 pStmt.executeUpdate(); 775 pStmt = con 776 .prepareStatement("DELETE FROM views_graphs WHERE view_id=" 777 + view_id); 778 pStmt.executeUpdate(); 779 con.close(); 780 actionResponse 781 .setRenderParameter("message", 782 "<font color=\"green\"><strong><li>View has been deleted</li></strong></font>"); 783 return; 784 785 } catch (Exception e) { 786 actionResponse.setRenderParameter("message", 787 "<font color=\"red\"><strong><li>Error deleting view</li></strong></font>" 788 + e.getMessage()); 789 return; 790 } 791 } 792 793 private void addGraph(ActionRequest actionRequest, 794 ActionResponse actionResponse) { 795 DBManager DBase = new DBManager(); 796 Connection con = DBase.getConnection(); 797 String name = actionRequest.getParameter("name"); 798 String description = actionRequest.getParameter("description"); 799 String server_id = actionRequest.getParameter("server_id"); 800 String xlabel = actionRequest.getParameter("xlabel"); 801 String ylabel = actionRequest.getParameter("ylabel"); 802 String timeframe = actionRequest.getParameter("timeframe"); 803 String mbean = actionRequest.getParameter("mbean"); 804 String dataname1 = actionRequest.getParameter("dataname1"); 805 String data1operation = actionRequest.getParameter("data1operation"); 806 String operation = actionRequest.getParameter("operation"); 807 int showArchive = 0; 808 if (actionRequest.getParameter("showArchive") != null 809 && actionRequest.getParameter("showArchive").equals("on")) { 810 showArchive = 1; 811 } 812 813 if (operation.equals("other")) { 814 operation = actionRequest.getParameter("othermath"); 815 } 816 String dataname2 = actionRequest.getParameter("dataname2"); 817 String data2operation = actionRequest.getParameter("data2operation"); 818 if (data2operation == null) 819 data2operation = "A"; 820 try { 821 PreparedStatement pStmt = con 822 .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 (" 823 + server_id 824 + ",'" 825 + name 826 + "','" 827 + description 828 + "'," 829 + timeframe 830 + ",'" 831 + mbean 832 + "','" 833 + dataname1 834 + "','" 835 + xlabel 836 + "','" 837 + ylabel 838 + "','" 839 + data1operation 840 + "','" 841 + operation 842 + "','" 843 + data2operation 844 + "','" 845 + dataname2 846 + "',0,0,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP," 847 + showArchive + ")"); 848 pStmt.executeUpdate(); 849 con.close(); 850 actionResponse.setRenderParameter("message", 851 "<font color=\"green\"><strong><li>Graph " + name 852 + " has been added.</li></strong></font>"); 853 return; 854 855 } catch (Exception e) { 856 actionResponse.setRenderParameter("message", 857 "<font color=\"red\"><strong><li>Error adding graph</li></strong></font>" 858 + e.getMessage()); 859 return; 860 } 861 } 862 863 private void updateGraph(ActionRequest actionRequest, 864 ActionResponse actionResponse) { 865 DBManager DBase = new DBManager(); 866 Connection con = DBase.getConnection(); 867 String graph_id = actionRequest.getParameter("graph_id"); 868 actionResponse.setRenderParameter("graph_id", graph_id); 869 870 String name = actionRequest.getParameter("name"); 871 String description = actionRequest.getParameter("description"); 872 String server_id = actionRequest.getParameter("server_id"); 873 String xlabel = actionRequest.getParameter("xlabel"); 874 String ylabel = actionRequest.getParameter("ylabel"); 875 String timeframe = actionRequest.getParameter("timeframe"); 876 String mbean = actionRequest.getParameter("mbean"); 877 String dataname1 = actionRequest.getParameter("dataname1"); 878 String data1operation = actionRequest.getParameter("data1operation"); 879 String operation = actionRequest.getParameter("operation"); 880 int archive = 0; 881 if (actionRequest.getParameter("showArchive") != null 882 && actionRequest.getParameter("showArchive").equals("on")) { 883 archive = 1; 884 } 885 886 if (operation.equals("other")) { 887 operation = actionRequest.getParameter("othermath"); 888 } 889 String dataname2 = actionRequest.getParameter("dataname2"); 890 String data2operation = actionRequest.getParameter("data2operation"); 891 if (data2operation == null) 892 data2operation = "A"; 893 try { 894 PreparedStatement pStmt = con 895 .prepareStatement("UPDATE graphs SET server_id=" 896 + server_id 897 + ", name='" 898 + name 899 + "', description='" 900 + description 901 + "', timeframe=" 902 + timeframe 903 + ", mbean='" 904 + mbean 905 + "', dataname1='" 906 + dataname1 907 + "', xlabel='" 908 + xlabel 909 + "', ylabel='" 910 + ylabel 911 + "', data1operation='" 912 + data1operation 913 + "', operation='" 914 + operation 915 + "', data2operation='" 916 + data2operation 917 + "', dataname2='" 918 + dataname2 919 + "', warninglevel1=0, warninglevel2=0, modified=CURRENT_TIMESTAMP, archive=" 920 + archive + " WHERE graph_id=" + graph_id); 921 pStmt.executeUpdate(); 922 con.close(); 923 actionResponse.setRenderParameter("message", 924 "<font color=\"green\"><strong><li>Graph " + name 925 + " has been updated.</li></strong></font>"); 926 return; 927 928 } catch (Exception e) { 929 actionResponse.setRenderParameter("message", 930 "<font color=\"red\"><strong><li>Error editing graph</li></strong></font>" 931 + e.getMessage()); 932 return; 933 } 934 } 935 936 private void deleteGraph(ActionRequest actionRequest, 937 ActionResponse actionResponse) { 938 String graph_id = actionRequest.getParameter("graph_id"); 939 actionResponse.setRenderParameter("graph_id", graph_id); 940 DBManager DBase = new DBManager(); 941 Connection con = DBase.getConnection(); 942 943 try { 944 // remove the graph 945 PreparedStatement pStmt = con 946 .prepareStatement("DELETE FROM graphs WHERE graph_id=" 947 + graph_id); 948 pStmt.executeUpdate(); 949 // fetch all views associated with this graph 950 pStmt = con 951 .prepareStatement("SELECT view_id FROM views_graphs WHERE graph_id=" 952 + graph_id); 953 ResultSet view_ids = pStmt.executeQuery(); 954 // reduce the graph_count from all views associated with the graph 955 while (view_ids.next()) { 956 pStmt = con 957 .prepareStatement("UPDATE views SET graph_count=graph_count-1 WHERE view_id=" 958 + view_ids.getString("view_id")); 959 pStmt.executeUpdate(); 960 } 961 // remove the relationship between graphs and views 962 pStmt = con 963 .prepareStatement("DELETE FROM views_graphs WHERE graph_id=" 964 + graph_id); 965 pStmt.executeUpdate(); 966 con.close(); 967 actionResponse 968 .setRenderParameter("message", 969 "<font color=\"green\"><strong><li>Graph has been deleted</li></strong></font>"); 970 return; 971 972 } catch (Exception e) { 973 actionResponse.setRenderParameter("message", 974 "<font color=\"red\"><strong><li>Error deleting graph</li></strong></font>" 975 + e.getMessage()); 976 return; 977 } 978 } 979 980 private String startTrackingMbean(String server_id, String mbean) { 981 PreparedStatement pStmt = null; 982 ResultSet rs = null; 983 MRCConnector mrc = null; 984 DBManager DBase = new DBManager(); 985 Connection con = DBase.getConnection(); 986 String server_ip = null; 987 String username = null; 988 String password = null; 989 int protocol = 0; 990 int port = -1; 991 // fetch server information 992 try { 993 pStmt = con 994 .prepareStatement("SELECT * FROM servers WHERE server_id=" 995 + server_id); 996 rs = pStmt.executeQuery(); 997 if (!rs.next()) { 998 return "<font color=\"red\"><strong><li>DATABASE ERROR: Server id " 999 + server_id 1000 + " not found in database</li></strong></font>"; 1001 } 1002 server_ip = rs.getString("ip"); 1003 password = rs.getString("password"); 1004 username = rs.getString("username"); 1005 port = rs.getInt("port"); 1006 protocol = rs.getInt("protocol"); 1007 } catch (SQLException e) { 1008 return "<font color=\"red\"><strong><li>DATABASE ERROR: " 1009 + e.getMessage() + "</li></strong></font>"; 1010 } 1011 // attempt to connect to the mrc server 1012 try { 1013 con.close(); 1014 mrc = new MRCConnector(server_ip, username, password, port, protocol); 1015 } catch (Exception e) { 1016 return "<font color=\"red\"><strong><li>MRC ERROR: Unable to connect to server " 1017 + server_ip 1018 + ": " 1019 + e.getMessage() 1020 + "</li></strong></font>"; 1021 } 1022 1023 // tell the mrc server to start tracking an mbean 1024 try { 1025 if (mrc.startTrackingMbean(mbean)) { 1026 String mbarr[] = mbean.split("name="); 1027 return "<font color=\"green\"><strong><li>MBean " + mbarr[1] 1028 + " tracking on server " + rs.getString("name") 1029 + "</li></strong></font>"; 1030 } else { 1031 String mbarr[] = mbean.split("name="); 1032 return "<font color=\"red\"><strong><li>ERROR: MBean " 1033 + mbarr[1] + " could <b>NOT</b> be tracked on server " 1034 + rs.getString("name") + "</li></strong></font>"; 1035 } 1036 } catch (Exception e) { 1037 return "<font color=\"red\"><strong><li>MRC ERROR: MBean " + mbean 1038 + " could <b>NOT</b> be tracked on server " + server_ip 1039 + ": " + e.getMessage() + "</li></strong></font>"; 1040 } 1041 } 1042 1043 private String stopTrackingMbean(String server_id, String mbean) { 1044 PreparedStatement pStmt = null; 1045 ResultSet rs = null; 1046 MRCConnector mrc = null; 1047 DBManager DBase = new DBManager(); 1048 Connection con = DBase.getConnection(); 1049 String server_ip = null; 1050 String username = null; 1051 String password = null; 1052 int port = -1; 1053 int protocol = 0; 1054 // fetch server's information 1055 try { 1056 pStmt = con 1057 .prepareStatement("SELECT * FROM servers WHERE server_id=" 1058 + server_id); 1059 rs = pStmt.executeQuery(); 1060 if (!rs.next()) { 1061 return "<font color=\"red\"><strong><li>DATABASE ERROR: Server id " 1062 + server_id 1063 + " not found in database</li></strong></font>"; 1064 } 1065 server_ip = rs.getString("ip"); 1066 password = rs.getString("password"); 1067 username = rs.getString("username"); 1068 port = rs.getInt("port"); 1069 protocol = rs.getInt("protocol"); 1070 } catch (SQLException e) { 1071 return "<font color=\"red\"><strong><li>DATABASE ERROR: " 1072 + e.getMessage() + "</li></strong></font>"; 1073 } 1074 // attempt to connect to the mrc-server 1075 try { 1076 con.close(); 1077 mrc = new MRCConnector(server_ip, username, password, port, protocol); 1078 } catch (Exception e) { 1079 return "<font color=\"red\"><strong><li>MRC ERROR: Unable to connect to server " 1080 + server_ip 1081 + ": " 1082 + e.getMessage() 1083 + "</li></strong></font>"; 1084 } 1085 // tell the mrc-server to stop tracking some mbean 1086 try { 1087 if (mrc.stopTrackingMbean(mbean)) { 1088 String mbarr[] = mbean.split("name="); 1089 return "<font color=\"green\"><strong><li>MBean " + mbarr[1] 1090 + " removed from tracking on server " 1091 + rs.getString("name") + "</li></strong></font>"; 1092 } else { 1093 String mbarr[] = mbean.split("name="); 1094 return "<font color=\"red\"><strong><li>ERROR: MBean " 1095 + mbarr[1] 1096 + " could <b>NOT</b> be removed from tracking on server " 1097 + rs.getString("name") + "</li></strong></font>"; 1098 } 1099 } catch (Exception e) { 1100 return "<font color=\"red\"><strong><li>MRC ERROR: MBean " + mbean 1101 + " could <b>NOT</b> be removed from tracking on server " 1102 + server_ip + ": " + e.getMessage() 1103 + "</li></strong></font>"; 1104 } 1105 } 1106 1107 private String stopThread(String server_id) { 1108 PreparedStatement pStmt = null; 1109 ResultSet rs = null; 1110 MRCConnector mrc = null; 1111 DBManager DBase = new DBManager(); 1112 Connection con = DBase.getConnection(); 1113 String server_ip = null; 1114 String username = null; 1115 String password = null; 1116 int port = -1; 1117 int protocol = 0; 1118 // fetch the server's information 1119 try { 1120 pStmt = con 1121 .prepareStatement("SELECT * FROM servers WHERE server_id=" 1122 + server_id); 1123 rs = pStmt.executeQuery(); 1124 if (!rs.next()) { 1125 return "<font color=\"red\"><strong><li>DATABASE ERROR: Server id " 1126 + server_id 1127 + " not found in database</li></strong></font>"; 1128 } 1129 server_ip = rs.getString("ip"); 1130 password = rs.getString("password"); 1131 username = rs.getString("username"); 1132 port = rs.getInt("port"); 1133 protocol = rs.getInt("protocol"); 1134 } catch (SQLException e) { 1135 return "<font color=\"red\"><strong><li>DATABASE ERROR: " 1136 + e.getMessage() + "</li></strong></font>"; 1137 } 1138 // attempt to connect to the mrc-server 1139 try { 1140 con.close(); 1141 mrc = new MRCConnector(server_ip, username, password, port, protocol); 1142 } catch (Exception e) { 1143 return "<font color=\"red\"><strong><li>MRC ERROR: Unable to connect to server " 1144 + server_ip 1145 + ": " 1146 + e.getMessage() 1147 + "</li></strong></font>"; 1148 } 1149 // tell the mrc-server to stop taking snapshots 1150 try { 1151 if (mrc.stopSnapshotThread()) { 1152 return "<font color=\"green\"><strong><li>Snapshot thread stopped on server " 1153 + rs.getString("name") + "</li></strong></font>"; 1154 } else { 1155 return "<font color=\"red\"><strong><li>ERROR: Snapshot thread could <b>NOT</b> be stopped on server " 1156 + rs.getString("name") + "</li></strong></font>"; 1157 } 1158 1159 } catch (Exception e) { 1160 return "<font color=\"red\"><strong><li>MRC ERROR: Snapshot thread could <b>NOT</b> be stopped on server " 1161 + server_ip 1162 + ": " 1163 + e.getMessage() 1164 + "</li></strong></font>"; 1165 } 1166 } 1167 1168 private String startThread(String server_id, Long snapshotDuration) { 1169 PreparedStatement pStmt = null; 1170 ResultSet rs = null; 1171 MRCConnector mrc = null; 1172 DBManager DBase = new DBManager(); 1173 Connection con = DBase.getConnection(); 1174 String server_ip = null; 1175 String username = null; 1176 String password = null; 1177 int port = -1; 1178 int protocol = 0; 1179 // fetch the server's information 1180 try { 1181 pStmt = con 1182 .prepareStatement("SELECT * FROM servers WHERE server_id=" 1183 + server_id); 1184 rs = pStmt.executeQuery(); 1185 if (!rs.next()) { 1186 return "<font color=\"red\"><strong><li>DATABASE ERROR: Server id " 1187 + server_id 1188 + " not found in database</li></strong></font>"; 1189 } 1190 server_ip = rs.getString("ip"); 1191 password = rs.getString("password"); 1192 username = rs.getString("username"); 1193 port = rs.getInt("port"); 1194 protocol = rs.getInt("protocol"); 1195 } catch (SQLException e) { 1196 return "<font color=\"red\"><strong><li>DATABASE ERROR: " 1197 + e.getMessage() + "</li></strong></font>"; 1198 } 1199 // attempt to connect to the mrc-server 1200 try { 1201 con.close(); 1202 mrc = new MRCConnector(server_ip, username, password, port, protocol); 1203 } catch (Exception e) { 1204 return "<font color=\"red\"><strong><li>MRC ERROR: Unable to connect to server " 1205 + server_ip 1206 + ": " 1207 + e.getMessage() 1208 + "</li></strong></font>"; 1209 } 1210 // tell the mrc-server to start the collection of statistics 1211 try { 1212 if (mrc.startSnapshotThread(new Long(snapshotDuration))) { 1213 return "<font color=\"green\"><strong><li>Snapshot thread started on server " 1214 + rs.getString("name") + "</li></strong></font>"; 1215 } else { 1216 return "<font color=\"red\"><strong><li>ERROR: Snapshot thread could <b>NOT</b> be started on server " 1217 + rs.getString("name") + "</li></strong></font>"; 1218 } 1219 } catch (Exception e) { 1220 return "<font color=\"red\"><strong><li>MRC ERROR: Snapshot thread could <b>NOT</b> be started on server " 1221 + server_ip 1222 + ": " 1223 + e.getMessage() 1224 + "</li></strong></font>"; 1225 } 1226 } 1227 1228 @Override 1229 public void init(PortletConfig portletConfig) throws PortletException { 1230 super.init(portletConfig); 1231 normalView = portletConfig.getPortletContext().getRequestDispatcher( 1232 NORMALVIEW_JSP); 1233 viewViews = portletConfig.getPortletContext().getRequestDispatcher( 1234 VIEWVIEWS_JSP); 1235 viewServers = portletConfig.getPortletContext().getRequestDispatcher( 1236 VIEWSERVERS_JSP); 1237 viewGraphs = portletConfig.getPortletContext().getRequestDispatcher( 1238 VIEWGRAPHS_JSP); 1239 pageView = portletConfig.getPortletContext().getRequestDispatcher( 1240 PAGEVIEW_JSP); 1241 editView = portletConfig.getPortletContext().getRequestDispatcher( 1242 EDITVIEW_JSP); 1243 addView = portletConfig.getPortletContext().getRequestDispatcher( 1244 ADDVIEW_JSP); 1245 addGraph = portletConfig.getPortletContext().getRequestDispatcher( 1246 ADDGRAPH_JSP); 1247 editGraph = portletConfig.getPortletContext().getRequestDispatcher( 1248 EDITGRAPH_JSP); 1249 viewServer = portletConfig.getPortletContext().getRequestDispatcher( 1250 VIEWSERVER_JSP); 1251 editServer = portletConfig.getPortletContext().getRequestDispatcher( 1252 EDITSERVER_JSP); 1253 addServer = portletConfig.getPortletContext().getRequestDispatcher( 1254 ADDSERVER_JSP); 1255 helpView = portletConfig.getPortletContext().getRequestDispatcher( 1256 HELPVIEW_JSP); 1257 editNormalView = portletConfig.getPortletContext() 1258 .getRequestDispatcher(EDITNORMALVIEW_JSP); 1259 } 1260 1261 @Override 1262 public void destroy() { 1263 normalView = null; 1264 viewViews = null; 1265 viewServers = null; 1266 viewGraphs = null; 1267 pageView = null; 1268 editView = null; 1269 addView = null; 1270 addGraph = null; 1271 editGraph = null; 1272 viewServer = null; 1273 editServer = null; 1274 addServer = null; 1275 helpView = null; 1276 editNormalView = null; 1277 super.destroy(); 1278 } 1279 }