21ec82364b4f85e8bc48f85be21ac7469ab68015
[percentcodec] / examples / spring / src / main / java / de / halbekunst / juplo / examples / spring / FaultyController.java
1 package de.halbekunst.juplo.examples.spring;
2
3 import de.halbekunst.juplo.cachecontrol.annotations.CacheSeconds;
4 import de.halbekunst.juplo.cachecontrol.annotations.Cacheable;
5 import de.halbekunst.juplo.cachecontrol.annotations.LastModified;
6 import java.util.Date;
7 import java.util.HashMap;
8 import java.util.Map;
9 import java.util.TreeMap;
10 import javax.servlet.http.HttpServletRequest;
11 import org.springframework.stereotype.Controller;
12 import org.springframework.web.bind.annotation.RequestMapping;
13 import org.springframework.web.servlet.ModelAndView;
14
15
16 /**
17  * Simple Spring-MVC Controller
18  * @author kai
19  */
20 @Controller
21 @Cacheable(eager=true)
22 public class FaultyController
23 {
24   public static final String ACCESS_TIME = FaultyController.class.getCanonicalName() + ".ACCESS_TIME";
25   public static final Integer DEFAULT_MAX_AGE = 60;
26
27   private final static long lastModified = System.currentTimeMillis();
28
29   @CacheSeconds
30   public int cacheSeconds(HttpServletRequest request) {
31     return DEFAULT_MAX_AGE;
32   }
33
34   @LastModified
35   public long lastModified(HttpServletRequest request) {
36     return lastModified;
37   }
38
39   @RequestMapping("/faulty-controller.html")
40   public ModelAndView process(HttpServletRequest request)
41   {
42     throw new RuntimeException("Oh, no!");
43   }
44 }