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
= null;
19 private SlcEventListenerRegister eventListenerRegister
;
20 private Long defaultTimeout
= 10000l;
23 protected void handleServiceRequest(HttpServletRequest request
,
24 HttpServletResponse response
, ModelAndView modelAndView
)
26 String timeoutStr
= request
.getParameter("timeout");
29 if (timeoutStr
!= null)
30 timeout
= Long
.parseLong(timeoutStr
);
32 timeout
= defaultTimeout
;
34 SlcEvent event
= eventListener
.listen(eventListenerRegister
.getId(),
35 eventListenerRegister
.getDescriptorsCopy(), timeout
);
37 modelAndView
.addObject("event", event
);
39 if (log
.isTraceEnabled())
40 log
.debug("Received event: "
41 + event
.getHeaders().get(SlcEvent
.EVENT_TYPE
));
45 public void setEventListenerRegister(
46 SlcEventListenerRegister eventListenerRegister
) {
47 this.eventListenerRegister
= eventListenerRegister
;
50 public void setDefaultTimeout(Long defaultTimeout
) {
51 this.defaultTimeout
= defaultTimeout
;
54 public void setEventListener(SlcEventListener eventListener
) {
55 this.eventListener
= eventListener
;