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
018 package org.apache.geronimo.console.logmanager;
019
020 import java.io.IOException;
021
022 import javax.portlet.ActionRequest;
023 import javax.portlet.ActionResponse;
024 import javax.portlet.PortletConfig;
025 import javax.portlet.PortletContext;
026 import javax.portlet.PortletException;
027 import javax.portlet.PortletRequestDispatcher;
028 import javax.portlet.RenderRequest;
029 import javax.portlet.RenderResponse;
030 import javax.portlet.WindowState;
031
032 import org.apache.geronimo.console.BasePortlet;
033 import org.apache.geronimo.console.util.PortletManager;
034 import org.apache.geronimo.system.logging.SystemLog;
035
036 public class LogManagerPortlet extends BasePortlet {
037
038 protected PortletRequestDispatcher normalView;
039
040 protected PortletRequestDispatcher helpView;
041
042 protected void doHelp(RenderRequest renderRequest,
043 RenderResponse renderRespose) throws PortletException, IOException {
044 helpView.include(renderRequest, renderRespose);
045 }
046
047 protected void doView(RenderRequest renderRequest,
048 RenderResponse renderRespose) throws PortletException, IOException {
049 if (WindowState.MINIMIZED.equals(renderRequest.getWindowState())) {
050 return;
051 }
052 SystemLog log = PortletManager.getCurrentSystemLog(renderRequest);
053 renderRequest.setAttribute("configFile", log.getConfigFileName());
054 // renderRequest.setAttribute("configuration", LogHelper.getConfiguration());
055 renderRequest.setAttribute("logLevel", log.getRootLoggerLevel());
056 try{
057 renderRequest.setAttribute("refreshPeriod", new Integer(log.getRefreshPeriodSeconds()));
058 }catch(NumberFormatException e){
059 //ignore
060 }
061
062 normalView.include(renderRequest, renderRespose);
063 }
064
065 public void init(PortletConfig portletConfig) throws PortletException {
066 PortletContext pc = portletConfig.getPortletContext();
067 normalView = pc.getRequestDispatcher("/WEB-INF/view/logmanager/view.jsp");
068 helpView = pc.getRequestDispatcher("/WEB-INF/view/logmanager/help.jsp");
069 super.init(portletConfig);
070 }
071
072 public void processAction(ActionRequest actionRequest,
073 ActionResponse actionResponse) throws PortletException, IOException {
074 SystemLog log = PortletManager.getCurrentSystemLog(actionRequest);
075
076 String action = actionRequest.getParameter("action");
077 String logLevel = actionRequest.getParameter("logLevel");
078 String configFile = actionRequest.getParameter("configFile");
079 String configuration = actionRequest.getParameter("append");
080 String refreshPeriod = actionRequest.getParameter("refreshPeriod");
081 String currentLevel = log.getRootLoggerLevel();
082
083 if ("update".equals(action)) {
084 if (refreshPeriod != null) {
085 int refreshPeriodInt = 0;
086 try{
087 refreshPeriodInt = Integer.parseInt(refreshPeriod);
088 }catch(NumberFormatException e){
089 //ignore
090 }
091 if (refreshPeriodInt != log.getRefreshPeriodSeconds()) {
092 log.setRefreshPeriodSeconds(refreshPeriodInt);
093 }
094 }
095 if (!log.getConfigFileName().equals(configFile)) {
096 log.setConfigFileName(configFile);
097 }
098 if (!currentLevel.equals(logLevel)) {
099 log.setRootLoggerLevel(logLevel);
100 }
101 }
102 }
103 }