1 17 18 package org.apache.geronimo.console.logmanager; 19 20 import org.apache.commons.logging.Log; 21 import org.apache.commons.logging.LogFactory; 22 import org.apache.geronimo.console.BasePortlet; 23 import org.apache.geronimo.console.util.PortletManager; 24 import org.apache.geronimo.gbean.AbstractName; 25 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory; 26 import org.apache.geronimo.management.geronimo.WebAccessLog; 27 import org.apache.geronimo.management.geronimo.WebContainer; 28 import org.apache.geronimo.management.geronimo.WebManager; 29 30 import javax.portlet.ActionRequest; 31 import javax.portlet.ActionResponse; 32 import javax.portlet.PortletConfig; 33 import javax.portlet.PortletContext; 34 import javax.portlet.PortletException; 35 import javax.portlet.PortletRequestDispatcher; 36 import javax.portlet.RenderRequest; 37 import javax.portlet.RenderResponse; 38 import javax.portlet.WindowState; 39 import java.io.IOException ; 40 import java.util.Calendar ; 41 import java.util.LinkedHashMap ; 42 import java.util.Map ; 43 44 public class WebAccessLogViewerPortlet extends BasePortlet { 45 private final static Log log = LogFactory.getLog(WebAccessLogViewerPortlet.class); 46 47 protected PortletRequestDispatcher searchView; 48 49 protected PortletRequestDispatcher helpView; 50 51 protected void doHelp(RenderRequest renderRequest, 52 RenderResponse renderRespose) throws PortletException, IOException { 53 helpView.include(renderRequest, renderRespose); 54 } 55 56 protected void doView(RenderRequest renderRequest, 57 RenderResponse renderRespose) throws PortletException, IOException { 58 if (WindowState.MINIMIZED.equals(renderRequest.getWindowState())) { 59 return; 60 } 61 62 WebManager[] managers = PortletManager.getCurrentServer(renderRequest).getWebManagers(); 63 64 Map products = new LinkedHashMap (); 66 String chosen = renderRequest.getParameter("selectedContainer"); 67 if(chosen != null) { renderRequest.setAttribute("selectedContainer", chosen); 69 } 70 WebAccessLog chosenLog = null; 71 if(managers != null) { 72 for (int i = 0; i < managers.length; i++) { 73 WebManager manager = managers[i]; 74 AbstractName managerName = PortletManager.getNameFor(renderRequest, manager); 75 WebContainer[] containers = (WebContainer[]) manager.getContainers(); 76 if (containers != null) { 77 for (int j = 0; j < containers.length; j++) { 78 WebContainer container = containers[j]; 79 AbstractName containerName = PortletManager.getNameFor(renderRequest, container); 80 String combined = managerName+"%"+containerName; 81 if(containers.length == 1) { 82 products.put(manager.getProductName(), combined); 83 } else { 84 products.put(manager.getProductName()+" ("+containerName.getName().get(NameFactory.J2EE_NAME)+")", combined); 85 } 86 if(chosenLog == null) { if(chosen == null || chosen.equals(combined)) { 88 chosenLog = PortletManager.getWebAccessLog(renderRequest, managerName, containerName); 89 } 90 } 91 } 92 } else { 93 log.error("No web containers found for manager "+manager.getProductName()); 94 } 95 } 96 } else { 97 log.error("No web managers found!"); 98 } 99 renderRequest.setAttribute("webContainers", products); 100 final String [] logNames = chosenLog.getLogNames(); 101 renderRequest.setAttribute("webLogs", logNames); 102 String logToSearch = renderRequest.getParameter("selectedLog"); 103 if(logToSearch == null) { 104 logToSearch = logNames[0]; 105 } else { boolean found = false; 107 for (int i = 0; i < logNames.length; i++) { 108 String test = logNames[i]; 109 if(test.equals(logToSearch)) { 110 found = true; 111 break; 112 } 113 } 114 if(!found) { logToSearch = logNames[0]; 116 } 117 } 118 119 String action = renderRequest.getParameter("action"); 120 if ("refresh".equals(action)) { 121 } 123 124 125 String startDate = (String ) renderRequest.getParameter("startDate"); 127 String startMonth = (String ) renderRequest.getParameter("startMonth"); 128 String startYear = (String ) renderRequest.getParameter("startYear"); 129 String endDate = (String ) renderRequest.getParameter("endDate"); 130 String endMonth = (String ) renderRequest.getParameter("endMonth"); 131 String endYear = (String ) renderRequest.getParameter("endYear"); 132 133 Calendar cal1 = Calendar.getInstance(), cal2 = Calendar.getInstance(); 134 if (startDate == null || startMonth == null || startYear == null 137 || endDate == null || endMonth == null || endYear == null) { 138 cal1.set(Calendar.MILLISECOND, 0); 140 cal1.set(Calendar.MINUTE, 0); 141 cal1.set(Calendar.SECOND, 0); 142 cal1.set(Calendar.HOUR_OF_DAY, 0); 143 144 cal2.set(Calendar.HOUR_OF_DAY, cal2.getMaximum(Calendar.HOUR_OF_DAY)); 145 cal2.set(Calendar.MINUTE, cal2.getMaximum(Calendar.MINUTE)); 146 cal2.set(Calendar.SECOND, cal2.getMaximum(Calendar.SECOND)); 147 cal2.set(Calendar.MILLISECOND, cal2.getMaximum(Calendar.MILLISECOND)); 148 149 WebAccessLog.SearchResults matchingItems = chosenLog.getMatchingItems(logToSearch, 150 null, null, null, null, cal1.getTime(), cal2.getTime(), null, null); 151 renderRequest.setAttribute("logs", matchingItems.getResults()); 152 renderRequest.setAttribute("logLength", new Integer (matchingItems.getLineCount())); 153 } else { 154 cal1.clear(); 155 cal2.clear(); 156 cal1.set(Calendar.DATE, Integer.parseInt(startDate)); 158 cal1.set(Calendar.MONTH, Integer.parseInt(startMonth)); 159 cal1.set(Calendar.YEAR, Integer.parseInt(startYear)); 160 cal2.set(Calendar.DATE, Integer.parseInt(endDate)); 162 cal2.set(Calendar.MONTH, Integer.parseInt(endMonth)); 163 cal2.set(Calendar.YEAR, Integer.parseInt(endYear)); 164 cal2.set(Calendar.HOUR_OF_DAY, cal2.getMaximum(Calendar.HOUR_OF_DAY)); 165 cal2.set(Calendar.MINUTE, cal2.getMaximum(Calendar.MINUTE)); 166 cal2.set(Calendar.SECOND, cal2.getMaximum(Calendar.SECOND)); 167 cal2.set(Calendar.MILLISECOND, cal2.getMaximum(Calendar.MILLISECOND)); 168 String requestHost = (String ) renderRequest.getParameter("requestHost"); 170 String authUser = (String ) renderRequest.getParameter("authUser"); 171 String requestMethod = (String ) renderRequest.getParameter("requestMethod"); 172 String requestedURI = (String ) renderRequest.getParameter("requestedURI"); 173 boolean ignoreDates = renderRequest.getParameter("ignoreDates") != null; 174 if (ignoreDates) { 175 WebAccessLog.SearchResults matchingItems = chosenLog.getMatchingItems(logToSearch, 176 requestHost, authUser, requestMethod, requestedURI, null, null, null, null); 177 renderRequest.setAttribute("logs", matchingItems.getResults()); 178 renderRequest.setAttribute("logLength", new Integer (matchingItems.getLineCount())); 179 } else { 180 WebAccessLog.SearchResults matchingItems = chosenLog.getMatchingItems(logToSearch, 181 requestHost, authUser, requestMethod, requestedURI, cal1.getTime(), cal2.getTime(), null, null); 182 renderRequest.setAttribute("logs", matchingItems.getResults()); 183 renderRequest.setAttribute("logLength", new Integer (matchingItems.getLineCount())); 184 } 185 if (ignoreDates) renderRequest.setAttribute("ignoreDates", new Boolean (ignoreDates)); 186 renderRequest.setAttribute("requestHost", requestHost); 187 renderRequest.setAttribute("authUser", authUser); 188 renderRequest.setAttribute("requestMethod", requestMethod); 189 renderRequest.setAttribute("requestedURI", requestedURI); 190 191 } 192 renderRequest.setAttribute("toDate", cal2.getTime()); 193 renderRequest.setAttribute("fromDate", cal1.getTime()); 194 searchView.include(renderRequest, renderRespose); 195 } 196 197 public void init(PortletConfig portletConfig) throws PortletException { 198 PortletContext pc = portletConfig.getPortletContext(); 199 searchView = pc.getRequestDispatcher("/WEB-INF/view/webaccesslogmanager/view.jsp"); 200 helpView = pc.getRequestDispatcher("/WEB-INF/view/webaccesslogmanager/help.jsp"); 201 super.init(portletConfig); 202 } 203 204 public void processAction(ActionRequest actionRequest, 205 ActionResponse actionResponse) throws PortletException, IOException { 206 } 208 209 } 210 | Popular Tags |