--- a/src/java/de/uapcore/lightpit/modules/ModuleManagerModule.java Sun Apr 08 16:51:15 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,94 +0,0 @@ -/* - * 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; - } - } -}