# HG changeset patch # User Mike Becker # Date 1513355994 -3600 # Node ID 20a9b2bc90638680750ff845fa0ff1307b2cb168 # Parent 2dfdb79b53443b0c1b9309910c3133b3bd986454 makes LightPITServlet abstract diff -r 2dfdb79b5344 -r 20a9b2bc9063 src/java/de/uapcore/lightpit/AbstractLightPITServlet.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/uapcore/lightpit/AbstractLightPITServlet.java Fri Dec 15 17:39:54 2017 +0100 @@ -0,0 +1,55 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright 2017 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; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * A special implementation of a HTTPServlet which is focused on implementing + * the necessary functionality for {@link LightPITModule}s. + */ +public abstract class AbstractLightPITServlet extends HttpServlet { + + @Override + protected final void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + + resp.getWriter().println("It works!"); + } + + @Override + protected final void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + } + +} diff -r 2dfdb79b5344 -r 20a9b2bc9063 src/java/de/uapcore/lightpit/LightPITServlet.java --- a/src/java/de/uapcore/lightpit/LightPITServlet.java Sun Dec 10 16:10:14 2017 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - * - * Copyright 2017 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; - -import java.io.IOException; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * A special implementation of a HTTPServlet which is focused on implementing - * the necessary functionality for {@link LightPITModule}s. - */ -public class LightPITServlet extends HttpServlet { - - @Override - protected final void doGet(HttpServletRequest req, HttpServletResponse resp) - throws ServletException, IOException { - - resp.getWriter().println("It works!"); - } - - @Override - protected final void doPost(HttpServletRequest req, HttpServletResponse resp) - throws ServletException, IOException { - } - -} diff -r 2dfdb79b5344 -r 20a9b2bc9063 src/java/de/uapcore/lightpit/ModuleManager.java --- a/src/java/de/uapcore/lightpit/ModuleManager.java Sun Dec 10 16:10:14 2017 +0100 +++ b/src/java/de/uapcore/lightpit/ModuleManager.java Fri Dec 15 17:39:54 2017 +0100 @@ -70,26 +70,28 @@ try { final Class scclass = Class.forName(reg.getClassName()); - final boolean lpservlet = LightPITServlet.class.isAssignableFrom(scclass); + final boolean lpservlet = AbstractLightPITServlet.class.isAssignableFrom(scclass); final boolean lpmodule = scclass.isAnnotationPresent(LightPITModule.class); if (lpservlet && !lpmodule) { LOG.warn( - "Servlet is a LightPITServlet but is missing the module annotation: {}", + "{} is a LightPIT Servlet but is missing the module annotation.", reg.getClassName() ); } else if (!lpservlet && lpmodule) { LOG.warn( - "Servlet is annotated as a LightPITModule but does not extend LightPITServlet: {}", - reg.getClassName() + "{} is annotated as a LightPIT Module but does not extend {}.", + reg.getClassName(), + AbstractLightPITServlet.class.getSimpleName() ); } return lpservlet && lpmodule; } catch (ClassNotFoundException ex) { LOG.error( - "Servlet registration refers to a class which cannot be found by the class loader: {}", - reg.getClassName() + "Servlet registration refers to class {} which cannot be found by the class loader (Reason: {})", + reg.getClassName(), + ex.getMessage() ); return false; } diff -r 2dfdb79b5344 -r 20a9b2bc9063 src/java/de/uapcore/lightpit/modules/HomeModule.java --- a/src/java/de/uapcore/lightpit/modules/HomeModule.java Sun Dec 10 16:10:14 2017 +0100 +++ b/src/java/de/uapcore/lightpit/modules/HomeModule.java Fri Dec 15 17:39:54 2017 +0100 @@ -30,7 +30,7 @@ import de.uapcore.lightpit.Constants; import de.uapcore.lightpit.LightPITModule; -import de.uapcore.lightpit.LightPITServlet; +import de.uapcore.lightpit.AbstractLightPITServlet; import javax.servlet.annotation.WebServlet; /** @@ -43,6 +43,6 @@ name = "HomeModule", urlPatterns = Constants.HOME_NODE+"*" ) -public class HomeModule extends LightPITServlet { +public class HomeModule extends AbstractLightPITServlet { } diff -r 2dfdb79b5344 -r 20a9b2bc9063 src/java/de/uapcore/lightpit/modules/VersionsModule.java --- a/src/java/de/uapcore/lightpit/modules/VersionsModule.java Sun Dec 10 16:10:14 2017 +0100 +++ b/src/java/de/uapcore/lightpit/modules/VersionsModule.java Fri Dec 15 17:39:54 2017 +0100 @@ -29,7 +29,7 @@ package de.uapcore.lightpit.modules; import de.uapcore.lightpit.LightPITModule; -import de.uapcore.lightpit.LightPITServlet; +import de.uapcore.lightpit.AbstractLightPITServlet; import javax.servlet.annotation.WebServlet; @@ -40,6 +40,6 @@ name = "VersionsModule", urlPatterns = "/versions/*" ) -public class VersionsModule extends LightPITServlet { +public class VersionsModule extends AbstractLightPITServlet { }