1 package org
.argeo
.slc
.web
.mvc
.event
;
3 import javax
.servlet
.http
.HttpServletRequest
;
4 import javax
.servlet
.http
.HttpServletResponse
;
6 import org
.apache
.commons
.logging
.Log
;
7 import org
.apache
.commons
.logging
.LogFactory
;
8 import org
.argeo
.slc
.msg
.event
.SlcEvent
;
9 import org
.argeo
.slc
.msg
.event
.SlcEventListener
;
10 import org
.argeo
.slc
.msg
.event
.SlcEventListenerRegister
;
11 import org
.argeo
.slc
.web
.mvc
.AbstractServiceController
;
12 import org
.springframework
.web
.servlet
.ModelAndView
;
14 public class PollEventController
extends AbstractServiceController
{
15 private final static Log log
= LogFactory
.getLog(PollEventController
.class);
17 private SlcEventListener eventListener
;
18 private SlcEventListenerRegister eventListenerRegister
;
19 private Long defaultTimeout
= 10000l;
22 protected void handleServiceRequest(HttpServletRequest request
,
23 HttpServletResponse response
, ModelAndView modelAndView
)
25 String timeoutStr
= request
.getParameter("timeout");
28 if (timeoutStr
!= null)
29 timeout
= Long
.parseLong(timeoutStr
);
31 timeout
= defaultTimeout
;
33 SlcEvent event
= eventListener
.listen(eventListenerRegister
, timeout
);
35 modelAndView
.addObject("event", event
);
37 if (log
.isTraceEnabled())
38 log
.debug("Received event: "
39 + event
.getHeaders().get(SlcEvent
.EVENT_TYPE
));
43 public void setEventListener(SlcEventListener slcEventListener
) {
44 this.eventListener
= slcEventListener
;
47 public void setEventListenerRegister(
48 SlcEventListenerRegister eventListenerRegister
) {
49 this.eventListenerRegister
= eventListenerRegister
;
52 public void setDefaultTimeout(Long defaultTimeout
) {
53 this.defaultTimeout
= defaultTimeout
;