package com.buglabs.app.bugdash2; import java.util.Map; import org.osgi.framework.BundleContext; import com.buglabs.app.bugdash2.web.BUGwebAdminBUGnetServlet; import com.buglabs.app.bugdash2.web.BUGwebAdminHardwareServlet; import com.buglabs.app.bugdash2.web.BUGwebAdminServlet; import com.buglabs.app.bugdash2.web.BUGwebAdminSoftwareServlet; import com.buglabs.app.bugdash2.web.BUGwebAdminSystemServlet; import com.buglabs.app.bugdash2.web.BUGwebAdminUtilsServlet; import com.buglabs.app.bugdash2.web.BUGwebFileServlet; import com.buglabs.osgi.sewing.pub.ISewingService; import com.buglabs.util.osgi.ServiceTrackerUtil.ManagedRunnable; /** * This class acts to construct the bugdash application given * that all dependent services are available. * */ public class DashApplication implements ManagedRunnable { private ISewingService sewingService; private BUGwebAdminServlet mainServlet; private BUGwebAdminHardwareServlet hardwareServlet; private BUGwebAdminSystemServlet systemServlet; private BUGwebAdminSoftwareServlet softwareServlet; private BUGwebAdminBUGnetServlet bugnetServlet; private BUGwebAdminUtilsServlet utilsServlet; private BUGwebFileServlet imageServlet; private final BundleContext context; public DashApplication(BundleContext context) { this.context = context; } @Override public void run(Map<String, Object> services) { LogManager.logInfo("BUGwebAdminServiceTracker: start"); sewingService = (ISewingService) services.get(ISewingService.class.getName()); mainServlet = new BUGwebAdminServlet(); hardwareServlet = new BUGwebAdminHardwareServlet(); systemServlet = new BUGwebAdminSystemServlet(); softwareServlet = new BUGwebAdminSoftwareServlet(); bugnetServlet = new BUGwebAdminBUGnetServlet(); utilsServlet = new BUGwebAdminUtilsServlet(); imageServlet = new BUGwebFileServlet(); sewingService.register(context, "/admin", mainServlet); sewingService.register(context, "/admin_hardware", hardwareServlet); sewingService.register(context, "/admin_system", systemServlet); sewingService.register(context, "/admin_software", softwareServlet); sewingService.register(context, "/admin_bugnet", bugnetServlet); sewingService.register(context, "/admin_util", utilsServlet); sewingService.register(context, "/admin_imageviewer", imageServlet); } @Override public void shutdown() { LogManager.logInfo("BUGwebAdminServiceTracker: stop"); sewingService.unregister(mainServlet); sewingService.unregister(hardwareServlet); sewingService.unregister(systemServlet); sewingService.unregister(softwareServlet); sewingService.unregister(bugnetServlet); sewingService.unregister(utilsServlet); sewingService.unregister(imageServlet); ShellUtil.destroySession(); } }