]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/controllers/EventController.java
Remove unused method in SLC Agent interface
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / web / mvc / controllers / EventController.java
1 /*
2 * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 package org.argeo.slc.web.mvc.controllers;
18
19 import org.apache.commons.logging.Log;
20 import org.apache.commons.logging.LogFactory;
21 import org.argeo.slc.msg.ExecutionAnswer;
22 import org.argeo.slc.msg.event.SlcEvent;
23 import org.argeo.slc.msg.event.SlcEventListener;
24 import org.argeo.slc.msg.event.SlcEventListenerDescriptor;
25 import org.argeo.slc.msg.event.SlcEventListenerRegister;
26 import org.springframework.stereotype.Controller;
27 import org.springframework.web.bind.annotation.RequestMapping;
28 import org.springframework.web.bind.annotation.RequestParam;
29
30 @Controller
31 public class EventController {
32
33 private final static Log log = LogFactory.getLog(EventController.class);
34
35 private Long defaultTimeout = 10000l;
36
37 // IoC
38 private SlcEventListener eventListener = null;
39 // the following bean as a Session scope.
40 private SlcEventListenerRegister eventListenerRegister;
41
42 // Business Methods
43 @RequestMapping("/addEventListener.service")
44 public ExecutionAnswer addEventListener(
45 @RequestParam(SlcEvent.EVENT_TYPE) String eventType,
46 @RequestParam(value = SlcEvent.EVENT_FILTER, required = false) String eventFilter) {
47
48 eventListenerRegister
49 .addEventListenerDescriptor(new SlcEventListenerDescriptor(
50 eventType, eventFilter));
51 if (log.isTraceEnabled()) {
52 log.trace("Registered listener on register "
53 + eventListenerRegister.getId() + " for type " + eventType
54 + ", filter=" + eventFilter);
55 log.trace("Nb of registered descriptors : "
56 + eventListenerRegister.getDescriptorsCopy().size());
57 }
58 return ExecutionAnswer.ok("Execution completed properly");
59
60 }
61
62 @RequestMapping("/removeEventListener.service")
63 public ExecutionAnswer removeEventListener(
64 @RequestParam(SlcEvent.EVENT_TYPE) String eventType,
65 @RequestParam(value = SlcEvent.EVENT_FILTER, required = false) String eventFilter) {
66
67 eventListenerRegister
68 .removeEventListenerDescriptor(new SlcEventListenerDescriptor(
69 eventType, eventFilter));
70 if (log.isTraceEnabled()) {
71 log.trace("Removed listener from register "
72 + eventListenerRegister.getId() + " for type " + eventType
73 + ", filter=" + eventFilter);
74 log.trace("Nb of registered descriptors : "
75 + eventListenerRegister.getDescriptorsCopy().size());
76 }
77 return ExecutionAnswer.ok("Execution completed properly");
78 }
79
80 @RequestMapping("/pollEvent.service")
81 public Object pollEvent(
82 @RequestParam(value = "timeout", required = false) String timeoutStr) {
83 final Long timeout;
84 if (timeoutStr != null)
85 timeout = Long.parseLong(timeoutStr);
86 else
87 timeout = defaultTimeout;
88 if (log.isTraceEnabled()) {
89 log.trace("Begin poolEvent.service :"
90 + " Nb of registered descriptors : "
91 + eventListenerRegister.getDescriptorsCopy().size());
92 }
93 SlcEvent event = eventListener.listen(eventListenerRegister.getId(),
94 eventListenerRegister.getDescriptorsCopy(), timeout);
95 if (event != null) {
96 if (log.isTraceEnabled())
97 log.trace("Event heard : " + event.toString());
98 return event;
99 } else {
100 if (log.isTraceEnabled())
101 log.trace("No Event heard - Time out: ");
102 return ExecutionAnswer.ok("Execution completed properly");
103 }
104
105 }
106
107 public void setEventListenerRegister(
108 SlcEventListenerRegister eventListenerRegister) {
109 this.eventListenerRegister = eventListenerRegister;
110 }
111
112 public void setDefaultTimeout(Long defaultTimeout) {
113 this.defaultTimeout = defaultTimeout;
114 }
115
116 public void setEventListener(SlcEventListener eventListener) {
117 this.eventListener = eventListener;
118 }
119 }