2 * Copyright (C) 2007-2012 Mathieu Baudier
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org
.argeo
.slc
.web
.mvc
.provisioning
;
18 import java
.io
.IOException
;
19 import java
.io
.Writer
;
21 import javax
.servlet
.ServletException
;
22 import javax
.servlet
.http
.HttpServletRequest
;
23 import javax
.servlet
.http
.HttpServletResponse
;
25 import org
.argeo
.slc
.NameVersion
;
26 import org
.argeo
.slc
.build
.ModularDistribution
;
27 import org
.springframework
.web
.HttpRequestHandler
;
29 /** List of modules for a distribution. */
30 public abstract class AbstractAvailableModules
implements HttpRequestHandler
{
31 protected abstract void print(Writer out
, String baseUrl
,
32 ModularDistribution md
) throws IOException
;
34 public final void handleRequest(HttpServletRequest request
,
35 HttpServletResponse response
) throws ServletException
, IOException
{
36 response
.setContentType(getContentType());
38 ModularDistribution md
= (ModularDistribution
) request
39 .getAttribute("modularDistribution");
41 String baseUrl
= "http://" + request
.getServerName() + ":"
42 + request
.getServerPort() + request
.getContextPath()
43 + request
.getServletPath() + "/" + md
.getName() + "/"
44 + md
.getVersion() + "/";
46 print(response
.getWriter(), baseUrl
, md
);
49 public String
getContentType() {
53 protected String
jarUrl(String baseUrl
, NameVersion nameVersion
) {
54 return baseUrl
+ jarFileName(nameVersion
);
57 protected String
jarFileName(NameVersion nameVersion
) {
58 return nameVersion
.getName() + "-" + nameVersion
.getVersion() + ".jar";