package com.buglabs.app.bugdash2.controller.system; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.buglabs.app.bugdash2.LogFile; import com.buglabs.app.bugdash2.controller.ApplicationController; import com.buglabs.osgi.sewing.pub.util.RequestParameters; import freemarker.template.SimpleHash; import freemarker.template.SimpleList; import freemarker.template.SimpleScalar; import freemarker.template.TemplateModelRoot; public abstract class LogController extends ApplicationController { private Map logs; public Map getLogs() { return logs; } public final String tailLog(String path) { return "tail -f " + path; } public abstract String getOSGiLogPath(); public abstract String getMessagesPath(); public LogController() { this.logs = new HashMap(); this.logs.put("OSGi", new LogFile("OSGi log", getOSGiLogPath(), this)); this.logs.put("messages", new LogFile("Messages log", getMessagesPath(), this)); } public String getTemplateName() { return "system_display_logs.fml"; } public TemplateModelRoot get(RequestParameters params, HttpServletRequest req, HttpServletResponse resp) { SimpleList logs_list = new SimpleList(); Iterator itr = logs.keySet().iterator(); Object current; while (itr.hasNext()) { SimpleHash item = new SimpleHash(); current = itr.next(); LogFile logfile = (LogFile)logs.get(current); item.put("key", current.toString()); item.put("description", logfile.getDescription()); item.put("path", logfile.getPath()); item.put("updatedAt", new SimpleScalar(logfile.getUpdatedAt().toString())); item.put("size", logfile.getSize()); logs_list.add(item); } SimpleHash root = new SimpleHash(); root.put("logs_list", logs_list); return root; } }