Sun, 08 Apr 2018 16:51:15 +0200
smaller main menu with better main menu buttons
/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2018 Mike Becker. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * */ package de.uapcore.lightpit.modules; import de.uapcore.lightpit.LightPITModule; import de.uapcore.lightpit.AbstractLightPITServlet; import de.uapcore.lightpit.HttpMethod; import de.uapcore.lightpit.LightPITModule.ELProxy; import de.uapcore.lightpit.RequestMapping; import de.uapcore.lightpit.ResponseType; import de.uapcore.lightpit.entities.CoreDAOFactory; import de.uapcore.lightpit.entities.Module; import java.io.IOException; import java.sql.Connection; import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.Optional; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Entry point for the application. */ @LightPITModule( bundleBaseName = "de.uapcore.lightpit.resources.localization.modmgmt", modulePath = "modmgmt" ) @WebServlet( name = "ModuleManagerModule", urlPatterns = "/modmgmt/*" ) public final class ModuleManagerModule extends AbstractLightPITServlet { private static final Logger LOG = LoggerFactory.getLogger(ModuleManagerModule.class); private static final String REQ_ATTR_MODULES = "modules"; @RequestMapping(method = HttpMethod.GET) public ResponseType handle(HttpServletRequest req, HttpServletResponse resp) throws IOException { Optional<DataSource> ds = getDatabaseFacade().getDataSource(); if (ds.isPresent()) { try (Connection conn = ds.get().getConnection()) { final List<Module> modules = CoreDAOFactory.getModuleDao(getDatabaseFacade().getSQLDialect()).listAll(conn); final Map<String, LightPITModule> registeredModules = getModuleManager().getRegisteredModules(); modules.forEach((mod) -> mod.setAnnotatedInfos(ELProxy.convert(registeredModules.get(mod.getClassname())))); req.setAttribute(REQ_ATTR_MODULES, modules); setDynamicFragment(req, "modules"); return ResponseType.HTML_FULL; } catch (SQLException ex) { LOG.error("Unexpected SQL Exception", ex); resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return ResponseType.NONE; } } else { resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return ResponseType.NONE; } } }