Coverage Report - net.admin4j.ui.servlets.LogLevelServlet
 
Classes in this File Line Coverage Branch Coverage Complexity
LogLevelServlet
52%
24/46
35%
5/14
7
 
 1  
 package net.admin4j.ui.servlets;
 2  
 
 3  
 import java.io.IOException;
 4  
 import java.util.ArrayList;
 5  
 import java.util.HashMap;
 6  
 import java.util.List;
 7  
 import java.util.Map;
 8  
 
 9  
 import javax.servlet.ServletException;
 10  
 import javax.servlet.http.HttpServletRequest;
 11  
 import javax.servlet.http.HttpServletResponse;
 12  
 
 13  
 import net.admin4j.config.Admin4JConfiguration;
 14  
 import net.admin4j.deps.commons.lang3.StringUtils;
 15  
 import net.admin4j.log.LogManager;
 16  
 import net.admin4j.log.LogManagerRegistry;
 17  
 import net.admin4j.util.Admin4jRuntimeException;
 18  
 import net.admin4j.vo.LoggerProductVO;
 19  
 
 20  
 
 21  6
 public class LogLevelServlet extends AdminDisplayServlet 
 22  
 {
 23  
         private static final long serialVersionUID = -2723639589464533505L;
 24  
         
 25  
         public static final String CHANGE_TYPE_SHOW_MORE = "showMore";
 26  
         public static final String CHANGE_TYPE_SHOW_LESS = "showLess";
 27  
         public static final String CHANGE_TYPE_CLEAR = "clear";
 28  
     public static final String NONE = "None";
 29  
     
 30  
     public static final String PUBLIC_HANDLE="logLevel";
 31  
     
 32  
         @Override
 33  
         protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
 34  
         {
 35  3
                 response.setContentType("text/html");
 36  
 
 37  3
                 List<LoggerProductVO> logList = new ArrayList<LoggerProductVO>();
 38  3
                 Map<String, LogManager> logManagerMap = new HashMap<String, LogManager>();
 39  3
                 for (LogManager logManager: LogManagerRegistry.getAvailableLogManagerSet()) {
 40  9
                     logList.add( new LoggerProductVO(logManager.getLoggerSoftwareProductName(), logManager.findLoggers()));
 41  9
                     logManagerMap.put(logManager.getLoggerSoftwareProductName(), logManager);
 42  
                 }
 43  
                 
 44  3
                 String message = performLogLevelChange(request, logManagerMap);
 45  
                 
 46  3
                 logList = new ArrayList<LoggerProductVO>();
 47  3
                 logManagerMap = new HashMap<String, LogManager>();
 48  3
                 for (LogManager logManager: LogManagerRegistry.getAvailableLogManagerSet()) {
 49  9
             logList.add( new LoggerProductVO(logManager.getLoggerSoftwareProductName(), logManager.findLoggers()));
 50  9
             logManagerMap.put(logManager.getLoggerSoftwareProductName(), logManager);
 51  
         }
 52  
                 
 53  3
         Map<String,Object> variableMap = new HashMap<String,Object>();
 54  3
         variableMap.put("message", message);
 55  3
         variableMap.put("loggerList", logList);
 56  3
         variableMap.put("configuration", new Admin4JConfiguration());
 57  
                 
 58  3
         displayFreeMarkerPage(request, response, "logLevelServletDisplay.ftl", variableMap);
 59  3
         }
 60  
         
 61  
 
 62  
         private String performLogLevelChange(HttpServletRequest request, Map<String, LogManager> logManagerMap)
 63  
         {
 64  3
                 String requestedLoggerType = request.getParameter("loggerType");
 65  3
                 String requestedLoggerName = request.getParameter("loggerName");
 66  3
                 String requestedChangeType = request.getParameter("changeType");
 67  
 
 68  0
                 if (StringUtils.isBlank(requestedLoggerType))
 69  3
                         return "";
 70  
                 
 71  0
                 LogManager logManager = logManagerMap.get(requestedLoggerType);
 72  0
                 if (logManager == null) {
 73  0
                     logger.error("Something's wrong -- Log Manager not listed.", 
 74  
                             new Admin4jRuntimeException("Something's wrong -- Log MAnager not listed.")
 75  
                             .addContextValue("requestedLoggerType", requestedLoggerType));
 76  0
                     return "Something's wrong -- Log Manager not listed.";
 77  
                 }
 78  
                 
 79  0
                 if (CHANGE_TYPE_SHOW_MORE.equals(requestedChangeType)) {
 80  
                     try {
 81  0
                 return requestedLoggerName + ":Changed to level: " + logManager.performLogLevelChange(requestedLoggerName, LogManager.LogIncrementType.SHOW_MORE);
 82  0
             } catch (RuntimeException e) {
 83  0
                 logger.error("Error increasing log level", e);
 84  0
                 return "Error changing log level.  More details in the log.";
 85  
             }
 86  
                 }
 87  0
                 else if (CHANGE_TYPE_SHOW_LESS.equals(requestedChangeType)) {
 88  
                     try {
 89  0
                         return requestedLoggerName + ":Changed to level: " + logManager.performLogLevelChange(requestedLoggerName, LogManager.LogIncrementType.SHOW_LESS);
 90  0
                     } catch (RuntimeException e) {
 91  0
                 logger.error("Error decreasing log level", e);
 92  0
                 return "Error changing log level.  More details in the log.";
 93  
             }
 94  
                 }
 95  0
                 else if (CHANGE_TYPE_CLEAR.equals(requestedChangeType)) {
 96  
                     try {
 97  0
                         logManager.performLogLevelChange(requestedLoggerName, LogManager.LogIncrementType.CLEAR);
 98  0
                         return requestedLoggerName + ": cleared";
 99  0
                     } catch (RuntimeException e) {
 100  0
                 logger.error("Error clearing log level", e);
 101  0
                 return "Error changing log level.  More details in the log.";
 102  
             }
 103  
         }
 104  
                 else
 105  0
                         return "The loggerType requested was not found: "+requestedLoggerType;
 106  
         }
 107  
         
 108  
         /* (non-Javadoc)
 109  
      * @see net.admin4j.ui.servlets.Admin4JServlet#getServletLabel()
 110  
      */
 111  
     @Override
 112  
     public String getServletLabel() {
 113  3
         return "Log Level Manager";
 114  
     }
 115  
 }