1 package org
.argeo
.slc
.web
.mvc
.provisioning
;
3 import java
.io
.IOException
;
5 import javax
.servlet
.ServletException
;
6 import javax
.servlet
.http
.HttpServletRequest
;
7 import javax
.servlet
.http
.HttpServletResponse
;
9 import org
.apache
.commons
.io
.IOUtils
;
10 import org
.apache
.commons
.logging
.Log
;
11 import org
.apache
.commons
.logging
.LogFactory
;
12 import org
.argeo
.slc
.StreamReadable
;
13 import org
.argeo
.slc
.UnsupportedException
;
14 import org
.argeo
.slc
.build
.Distribution
;
15 import org
.argeo
.slc
.build
.ModularDistribution
;
16 import org
.springframework
.web
.HttpRequestHandler
;
18 public class BundleHandler
implements HttpRequestHandler
{
19 private final static Log log
= LogFactory
.getLog(BundleHandler
.class);
21 public void handleRequest(HttpServletRequest request
,
22 HttpServletResponse response
) throws ServletException
, IOException
{
23 String path
= request
.getPathInfo();
25 if (log
.isDebugEnabled())
26 log
.debug("Bundle jar Requested: " + path
);
27 response
.setContentType("application/java-archive");
29 String moduleName
= request
.getParameter("moduleName");
30 if (moduleName
== null)
31 moduleName
= request
.getAttribute("moduleName").toString();
32 String moduleVersion
= request
.getParameter("moduleVersion");
33 if (moduleVersion
== null)
34 moduleVersion
= request
.getAttribute("moduleVersion").toString();
36 ModularDistribution modularDistribution
= (ModularDistribution
) request
37 .getAttribute("modularDistribution");
38 Distribution distribution
= modularDistribution
.getModuleDistribution(
39 moduleName
, moduleVersion
);
40 if (distribution
instanceof StreamReadable
)
41 IOUtils
.copy(((StreamReadable
) distribution
).getInputStream(),
42 response
.getOutputStream());
44 throw new UnsupportedException("distribution", distribution
);