]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/provisioning/BundleJarInterceptor.java
Provisioning
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / web / mvc / provisioning / BundleJarInterceptor.java
1 package org.argeo.slc.web.mvc.provisioning;
2
3 import java.util.StringTokenizer;
4
5 import javax.servlet.http.HttpServletRequest;
6 import javax.servlet.http.HttpServletResponse;
7
8 import org.argeo.slc.SlcException;
9 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
10
11 public class BundleJarInterceptor extends HandlerInterceptorAdapter {
12
13 @Override
14 public boolean preHandle(HttpServletRequest request,
15 HttpServletResponse response, Object handler) throws Exception {
16 String path = request.getPathInfo();
17 StringTokenizer stS = new StringTokenizer(path, "/");
18 String fileName = null;
19 while (stS.hasMoreTokens()) {
20 String token = stS.nextToken();
21 if (!stS.hasMoreTokens()) {
22 fileName = token;
23 }
24 }
25
26 int ind_ = fileName.indexOf('-');
27 String moduleName;
28 if (ind_ > -1)
29 moduleName = fileName.substring(0, ind_);
30 else
31 throw new SlcException("Cannot determine version for " + fileName);
32
33 String versionAndExtension = fileName.substring(ind_ + 1);
34 int indExt = versionAndExtension.lastIndexOf('.');
35 String moduleVersion = versionAndExtension.substring(0, indExt);
36
37 request.setAttribute("moduleName", moduleName);
38 request.setAttribute("moduleVersion", moduleVersion);
39
40 return true;
41 }
42 }