1 package org
.argeo
.slc
.web
.mvc
.provisioning
;
3 import java
.io
.IOException
;
6 import javax
.servlet
.ServletException
;
7 import javax
.servlet
.http
.HttpServletRequest
;
8 import javax
.servlet
.http
.HttpServletResponse
;
10 import org
.argeo
.slc
.build
.ModularDistribution
;
11 import org
.argeo
.slc
.build
.NameVersion
;
12 import org
.springframework
.web
.HttpRequestHandler
;
14 import common
.BaseUnit
;
16 /** List of modules for a distribution. */
17 public abstract class AbstractAvailableModules
implements HttpRequestHandler
{
18 protected abstract void print(Writer out
, String baseUrl
,
19 ModularDistribution md
) throws IOException
;
21 public final void handleRequest(HttpServletRequest request
,
22 HttpServletResponse response
) throws ServletException
, IOException
{
23 response
.setContentType(getContentType());
25 ModularDistribution md
= (ModularDistribution
) request
26 .getAttribute("modularDistribution");
28 String baseUrl
= "http://" + request
.getServerName() + ":"
29 + request
.getServerPort() + request
.getContextPath()
30 + request
.getServletPath() + "/" + md
.getName() + "/"
31 + md
.getVersion() + "/";
33 print(response
.getWriter(), baseUrl
, md
);
36 public String
getContentType() {
40 protected String
jarUrl(String baseUrl
, NameVersion nameVersion
) {
41 return baseUrl
+ jarFileName(nameVersion
);
44 protected String
jarFileName(NameVersion nameVersion
) {
45 return nameVersion
.getName() + "-" + nameVersion
.getVersion() + ".jar";