diff -r 89e3e6e28b69 -r 737ab27e37b3 src/java/de/uapcore/lightpit/Functions.java --- a/src/java/de/uapcore/lightpit/Functions.java Sat Dec 16 20:19:28 2017 +0100 +++ b/src/java/de/uapcore/lightpit/Functions.java Sun Dec 17 01:45:28 2017 +0100 @@ -28,6 +28,8 @@ */ package de.uapcore.lightpit; +import java.util.Optional; +import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,12 +44,27 @@ return Constants.JSP_PATH_PREFIX + filename; } - public static String fullyQualifiedName(String base, String name) { + public static String fqn(String base, String name) { return base+"."+name; } - public static String fullyQualifiedName(Class clazz, String name) { - return fullyQualifiedName(clazz.getName(), name); + public static String fqn(Class clazz, String name) { + return fqn(clazz.getName(), name); + } + + public static String fullPath(LightPITModule module, RequestMapping mapping) { + StringBuilder sb = new StringBuilder(); + sb.append(module.modulePath()); + sb.append('/'); + if (!mapping.requestPath().isEmpty()) { + sb.append(mapping.requestPath().isEmpty()); + sb.append('/'); + } + return sb.toString(); + } + + public static String fullPath(HttpServletRequest req) { + return req.getServletPath() + Optional.ofNullable(req.getPathInfo()).orElse(""); } /** @@ -60,15 +77,15 @@ * @return the module path */ public static String modulePathOf(Class clazz) { - LightPITModule moduleInfo = clazz.getAnnotation(LightPITModule.class); - if (moduleInfo == null) { + Optional moduleInfo = Optional.ofNullable(clazz.getAnnotation(LightPITModule.class)); + if (moduleInfo.isPresent()) { + return moduleInfo.get().modulePath(); + } else { LOG.warn( "{} is a LightPIT Servlet but is missing the module annotation.", clazz.getName() ); return "/error/404.html"; - } else { - return moduleInfo.modulePath(); } }