]> git.argeo.org Git - gpl/argeo-slc.git/blob - AbstractAvailableModules.java
d56a5af05548ef0ba903dc009d17b8b0181f9f81
[gpl/argeo-slc.git] / AbstractAvailableModules.java
1 package org.argeo.slc.web.mvc.provisioning;
2
3 import java.io.IOException;
4 import java.io.Writer;
5
6 import javax.servlet.ServletException;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9
10 import org.argeo.slc.build.ModularDistribution;
11 import org.argeo.slc.build.NameVersion;
12 import org.springframework.web.HttpRequestHandler;
13
14 /** List of modules for a distribution. */
15 public abstract class AbstractAvailableModules implements HttpRequestHandler {
16 protected abstract void print(Writer out, String baseUrl,
17 ModularDistribution md) throws IOException;
18
19 public final void handleRequest(HttpServletRequest request,
20 HttpServletResponse response) throws ServletException, IOException {
21 response.setContentType(getContentType());
22
23 ModularDistribution md = (ModularDistribution) request
24 .getAttribute("modularDistribution");
25
26 String baseUrl = "http://" + request.getServerName() + ":"
27 + request.getServerPort() + request.getContextPath()
28 + request.getServletPath() + "/" + md.getName() + "/"
29 + md.getVersion() + "/";
30
31 print(response.getWriter(), baseUrl, md);
32 }
33
34 public String getContentType() {
35 return "text/plain";
36 }
37
38 protected String jarUrl(String baseUrl, NameVersion nameVersion) {
39 return baseUrl + jarFileName(nameVersion);
40 }
41
42 protected String jarFileName(NameVersion nameVersion) {
43 return nameVersion.getName() + "-" + nameVersion.getVersion() + ".jar";
44 }
45
46 }