]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/provisioning/EclipseUpdateSiteInterceptor.java
Upload of distributions
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / web / mvc / provisioning / EclipseUpdateSiteInterceptor.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 EclipseUpdateSiteInterceptor extends HandlerInterceptorAdapter {
12 public final static String RELEASE = "RELEASE";
13 public final static String LATEST = "LATEST";
14
15 @Override
16 public boolean preHandle(HttpServletRequest request,
17 HttpServletResponse response, Object handler) throws Exception {
18 String path = request.getPathInfo();
19 StringTokenizer stS = new StringTokenizer(path, "/");
20 String type = null;
21 pathTokenizer: while (stS.hasMoreTokens()) {
22 String token = stS.nextToken();
23 if (token.equals("plugins") || token.equals("features")) {
24 type = token;
25 break pathTokenizer;
26 }
27 }
28
29 if (type == null || !stS.hasMoreTokens())
30 throw new SlcException("Cannot determine file name from path "
31 + path);
32
33 String fileName = stS.nextToken();
34
35 int ind_ = fileName.indexOf('_');
36 String moduleName;
37 if (ind_ > -1)
38 moduleName = fileName.substring(0, ind_);
39 else
40 throw new SlcException("Cannot determine version for " + fileName);
41
42 String versionAndExtension = fileName.substring(ind_ + 1);
43 int indExt = versionAndExtension.lastIndexOf('.');
44 String moduleVersion = versionAndExtension.substring(0, indExt);
45
46 request.setAttribute("moduleName", moduleName);
47 request.setAttribute("moduleVersion", moduleVersion);
48
49 return true;
50 }
51 }