Refactored event sending function to be more robust and thread safe
This commit is contained in:
parent
102d8aa266
commit
f5f3730281
4 changed files with 6 additions and 9 deletions
|
|
@ -175,14 +175,14 @@ public class EventControllerManager extends HalAbstractControllerManager<HalEven
|
|||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void send(Event event){
|
||||
public void send(Event event, HalEventData eventData){
|
||||
Class<? extends HalEventController> controllerClass = (Class<? extends HalEventController>) event.getControllerClass();
|
||||
HalEventController controller = getControllerInstance(controllerClass);
|
||||
|
||||
if (controller != null) {
|
||||
event.getDeviceData().setTimestamp(System.currentTimeMillis()); // Set timestamp to now
|
||||
controller.send(event.getDeviceConfig(), event.getDeviceData());
|
||||
reportReceived(event.getDeviceConfig(), event.getDeviceData()); // save action to db
|
||||
controller.send(event.getDeviceConfig(), eventData);
|
||||
reportReceived(event.getDeviceConfig(), eventData); // save action to db
|
||||
}
|
||||
else
|
||||
logger.warning("No controller found for event id: "+ event.getId());
|
||||
|
|
|
|||
|
|
@ -31,9 +31,8 @@ public class SendEventAction implements HalAction {
|
|||
if (event != null) {
|
||||
HalEventData dataObj = (HalEventData) event.getDeviceConfig().getDeviceDataClass().getDeclaredConstructor().newInstance();
|
||||
dataObj.setData(data);
|
||||
event.setDeviceData(dataObj);
|
||||
// Send
|
||||
EventControllerManager.getInstance().send(event);
|
||||
EventControllerManager.getInstance().send(event, dataObj);
|
||||
} else
|
||||
logger.warning("Unable to find event with id: "+ event.getId());
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -53,8 +53,7 @@ public class EventOverviewWebPage extends HalWebPage {
|
|||
|
||||
logger.info("Modifying Event(" + id + ") state: " + eventData.toString());
|
||||
Event event = Event.getEvent(db, id);
|
||||
event.setDeviceData(eventData);
|
||||
EventControllerManager.getInstance().send(event);
|
||||
EventControllerManager.getInstance().send(event, eventData);
|
||||
}
|
||||
|
||||
int id = (ObjectUtil.isEmpty(request.get("id")) ? -1 : Integer.parseInt(request.get("id")));
|
||||
|
|
|
|||
|
|
@ -75,8 +75,7 @@ public class OnOffTrait extends DeviceTrait {
|
|||
else
|
||||
eventData.turnOff();
|
||||
|
||||
device.setDeviceData(eventData);
|
||||
EventControllerManager.getInstance().send((Event) device);
|
||||
EventControllerManager.getInstance().send((Event) device, eventData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue