1 package org
.argeo
.slc
.web
.mvc
;
3 import java
.io
.Serializable
;
4 import java
.util
.ArrayList
;
6 import java
.util
.Vector
;
8 import org
.argeo
.slc
.msg
.event
.SlcEventListenerDescriptor
;
9 import org
.argeo
.slc
.msg
.event
.SlcEventListenerRegister
;
10 import org
.springframework
.web
.context
.request
.RequestContextHolder
;
12 public class WebSlcEventListenerRegister
implements SlcEventListenerRegister
,
14 public final static String ATTR_EVENT_LISTENER
= "slcEventListener";
16 static final long serialVersionUID
= 1l;
18 //private String clientId = UUID.randomUUID().toString();
21 private List
<SlcEventListenerDescriptor
> descriptors
= new Vector
<SlcEventListenerDescriptor
>();
23 public synchronized void addEventListenerDescriptor(
24 SlcEventListenerDescriptor eventListenerDescriptor
) {
25 if (descriptors
.contains(eventListenerDescriptor
))
26 descriptors
.remove(eventListenerDescriptor
);
27 descriptors
.add(eventListenerDescriptor
);
30 public synchronized void removeEventListenerDescriptor(
31 SlcEventListenerDescriptor eventListenerDescriptor
) {
32 descriptors
.remove(eventListenerDescriptor
);
35 public synchronized List
<SlcEventListenerDescriptor
> getDescriptorsCopy() {
36 return new ArrayList
<SlcEventListenerDescriptor
>(descriptors
);
39 // public SlcEvent listen(SlcEventListener eventListener, Long timeout) {
40 // return eventListener.listen(clientId, getDescriptorsCopy(), timeout);
43 // public void init() {
44 // clientId = getSessionId();
47 // if (log.isDebugEnabled())
48 // log.debug("Initialized web event listener " + clientId);
51 // public void close() {
53 // if (log.isDebugEnabled())
54 // log.debug("Closed web event listener " + clientId);
57 // protected void checkClientId() {
58 // String sessionId = getSessionId();
59 // if (clientId == null || !clientId.equals(sessionId))
60 // throw new SlcException("Client id " + clientId
61 // + " not consistent with web session id " + sessionId);
64 // protected String getSessionId() {
65 // return RequestContextHolder.currentRequestAttributes().getSessionId();
68 public String
getId() {
69 return RequestContextHolder
.currentRequestAttributes().getSessionId();