2 * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
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.
17 package org
.argeo
.slc
.web
.mvc
.provisioning
;
19 import java
.io
.IOException
;
20 import java
.io
.Writer
;
22 import javax
.servlet
.ServletException
;
23 import javax
.servlet
.http
.HttpServletRequest
;
24 import javax
.servlet
.http
.HttpServletResponse
;
26 import org
.argeo
.slc
.build
.ModularDistribution
;
27 import org
.argeo
.slc
.build
.NameVersion
;
28 import org
.springframework
.web
.HttpRequestHandler
;
30 /** List of modules for a distribution. */
31 public abstract class AbstractAvailableModules
implements HttpRequestHandler
{
32 protected abstract void print(Writer out
, String baseUrl
,
33 ModularDistribution md
) throws IOException
;
35 public final void handleRequest(HttpServletRequest request
,
36 HttpServletResponse response
) throws ServletException
, IOException
{
37 response
.setContentType(getContentType());
39 ModularDistribution md
= (ModularDistribution
) request
40 .getAttribute("modularDistribution");
42 String baseUrl
= "http://" + request
.getServerName() + ":"
43 + request
.getServerPort() + request
.getContextPath()
44 + request
.getServletPath() + "/" + md
.getName() + "/"
45 + md
.getVersion() + "/";
47 print(response
.getWriter(), baseUrl
, md
);
50 public String
getContentType() {
54 protected String
jarUrl(String baseUrl
, NameVersion nameVersion
) {
55 return baseUrl
+ jarFileName(nameVersion
);
58 protected String
jarFileName(NameVersion nameVersion
) {
59 return nameVersion
.getName() + "-" + nameVersion
.getVersion() + ".jar";