From 72067dc1349c788676b4e3dc82abab24faa838f0 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer <paul-christian.volkmer@mni.thm.de> Date: Tue, 3 Jun 2014 20:15:48 +0200 Subject: [PATCH] Removed obsolete application event handling The removed implementation used events wich were never published in any part of the application. --- .../de/thm/arsnova/events/ARSnovaEvent.java | 57 --------------- .../arsnova/events/ARSnovaEventListener.java | 27 -------- .../java/de/thm/arsnova/events/Publisher.java | 22 ------ .../de/thm/arsnova/events/package-info.java | 1 - .../arsnova/services/UserSessionService.java | 12 ++-- .../services/UserSessionServiceImpl.java | 69 +++++-------------- .../arsnova/socket/ARSnovaSocketIOServer.java | 15 ---- 7 files changed, 22 insertions(+), 181 deletions(-) delete mode 100644 src/main/java/de/thm/arsnova/events/ARSnovaEvent.java delete mode 100644 src/main/java/de/thm/arsnova/events/ARSnovaEventListener.java delete mode 100644 src/main/java/de/thm/arsnova/events/Publisher.java delete mode 100644 src/main/java/de/thm/arsnova/events/package-info.java diff --git a/src/main/java/de/thm/arsnova/events/ARSnovaEvent.java b/src/main/java/de/thm/arsnova/events/ARSnovaEvent.java deleted file mode 100644 index 5701edc6..00000000 --- a/src/main/java/de/thm/arsnova/events/ARSnovaEvent.java +++ /dev/null @@ -1,57 +0,0 @@ -package de.thm.arsnova.events; - -import org.springframework.context.ApplicationEvent; - -import de.thm.arsnova.entities.User; - -public class ARSnovaEvent extends ApplicationEvent { - - private static final long serialVersionUID = 1L; - - private String sessionKey; - private User user; - private final String eventName; - private final Object data; - private final Destination destination; - - public enum Destination { - USER, - SESSION - }; - - public ARSnovaEvent(Object source, String sKey, String eName, Object d) { - super(source); - this.data = d; - this.eventName = eName; - this.sessionKey = sKey; - this.destination = Destination.SESSION; - } - - public ARSnovaEvent(Object source, User recipient, String eName, Object d) { - super(source); - this.data = d; - this.eventName = eName; - this.user = recipient; - this.destination = Destination.USER; - } - - public String getSessionKey() { - return sessionKey; - } - - public String getEventName() { - return eventName; - } - - public Object getData() { - return data; - } - - public User getRecipient() { - return user; - } - - public Destination getDestinationType() { - return destination; - } -} diff --git a/src/main/java/de/thm/arsnova/events/ARSnovaEventListener.java b/src/main/java/de/thm/arsnova/events/ARSnovaEventListener.java deleted file mode 100644 index cdc0ce47..00000000 --- a/src/main/java/de/thm/arsnova/events/ARSnovaEventListener.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.thm.arsnova.events; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationListener; -import org.springframework.stereotype.Component; - -import de.thm.arsnova.services.UserSessionService; -import de.thm.arsnova.socket.ARSnovaSocketIOServer; - -@Component -public class ARSnovaEventListener implements ApplicationListener<ARSnovaEvent> { - - public static final Logger LOGGER = LoggerFactory.getLogger(ARSnovaEventListener.class); - - @Autowired - private ARSnovaSocketIOServer socketIoServer; - - @Autowired - private UserSessionService userSessionService; - - @Override - public void onApplicationEvent(ARSnovaEvent event) { - userSessionService.sendEventViaWebSocket(socketIoServer, event); - } -} diff --git a/src/main/java/de/thm/arsnova/events/Publisher.java b/src/main/java/de/thm/arsnova/events/Publisher.java deleted file mode 100644 index ac5b64fa..00000000 --- a/src/main/java/de/thm/arsnova/events/Publisher.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.thm.arsnova.events; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.stereotype.Service; - -@Service -public class Publisher implements ApplicationContextAware { - - @Autowired - private ApplicationContext context; - - @Override - public void setApplicationContext(ApplicationContext c) { - this.context = c; - } - - public void publish(ARSnovaEvent event) { - this.context.publishEvent(event); - } -} diff --git a/src/main/java/de/thm/arsnova/events/package-info.java b/src/main/java/de/thm/arsnova/events/package-info.java deleted file mode 100644 index ff9ff756..00000000 --- a/src/main/java/de/thm/arsnova/events/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package de.thm.arsnova.events; diff --git a/src/main/java/de/thm/arsnova/services/UserSessionService.java b/src/main/java/de/thm/arsnova/services/UserSessionService.java index 170030f6..6390634f 100644 --- a/src/main/java/de/thm/arsnova/services/UserSessionService.java +++ b/src/main/java/de/thm/arsnova/services/UserSessionService.java @@ -4,11 +4,9 @@ import java.util.UUID; import de.thm.arsnova.entities.Session; import de.thm.arsnova.entities.User; -import de.thm.arsnova.events.ARSnovaEvent; -import de.thm.arsnova.socket.ARSnovaSocketIOServer; public interface UserSessionService { - + enum Role { STUDENT, SPEAKER @@ -16,18 +14,16 @@ public interface UserSessionService { void setUser(User user); User getUser(); - + void setSession(Session session); Session getSession(); - + void setSocketId(UUID socketId); UUID getSocketId(); void setRole(Role role); Role getRole(); - + boolean inSession(); boolean isAuthenticated(); - - void sendEventViaWebSocket(ARSnovaSocketIOServer server, ARSnovaEvent event); } diff --git a/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java b/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java index 1a2c2287..b08c58cf 100644 --- a/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java @@ -11,9 +11,6 @@ import org.springframework.stereotype.Component; import de.thm.arsnova.entities.Session; import de.thm.arsnova.entities.User; -import de.thm.arsnova.events.ARSnovaEvent; -import de.thm.arsnova.events.ARSnovaEvent.Destination; -import de.thm.arsnova.socket.ARSnovaSocketIOServer; @Component @Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS) @@ -21,16 +18,16 @@ public class UserSessionServiceImpl implements UserSessionService, Serializable private static final long serialVersionUID = 1L; private static final Logger LOGGER = LoggerFactory.getLogger(UserSessionServiceImpl.class); - + private User user; private Session session; private UUID socketId; private Role role; @Override - public void setUser(User u) { - this.user = u; - this.user.setRole(this.role); + public void setUser(final User u) { + user = u; + user.setRole(role); } @Override @@ -39,79 +36,49 @@ public class UserSessionServiceImpl implements UserSessionService, Serializable } @Override - public void setSession(Session s) { - this.session = s; + public void setSession(final Session s) { + session = s; } @Override public Session getSession() { - return this.session; + return session; } @Override - public void setSocketId(UUID sId) { - this.socketId = sId; + public void setSocketId(final UUID sId) { + socketId = sId; } @Override public UUID getSocketId() { - return this.socketId; + return socketId; } private boolean hasConnectedWebSocket() { return getSocketId() != null; } - + @Override public boolean inSession() { - return ( - this.isAuthenticated() - && this.getSession() != null - ); - } - - @Override - public boolean isAuthenticated() { - return ( - this.getUser() != null - && this.getRole() != null - ); + return isAuthenticated() + && getSession() != null; } @Override - public void sendEventViaWebSocket(ARSnovaSocketIOServer server, ARSnovaEvent event) { - if (event == null) { - LOGGER.info("Trying to send NULL event"); - return; - } - - if ( - event.getDestinationType() == Destination.SESSION - && hasConnectedWebSocket() - && session != null - && event.getSessionKey().equals(session.getKeyword()) - ) { - server.sendToClient(getSocketId(), event); - } - - if ( - event.getDestinationType() == Destination.USER - && hasConnectedWebSocket() - && user != null - && event.getRecipient().getUsername().equals(user.getUsername()) - ) { - server.sendToClient(getSocketId(), event); - } + public boolean isAuthenticated() { + return getUser() != null + && getRole() != null; } @Override - public void setRole(Role r) { + public void setRole(final Role r) { role = r; if (user != null) { user.setRole(role); } } - + @Override public Role getRole() { return role; diff --git a/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java b/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java index f67b8fe0..e1c85a03 100644 --- a/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java +++ b/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java @@ -27,7 +27,6 @@ import com.corundumstudio.socketio.parser.Packet; import com.corundumstudio.socketio.parser.PacketType; import de.thm.arsnova.entities.User; -import de.thm.arsnova.events.ARSnovaEvent; import de.thm.arsnova.exceptions.NoContentException; import de.thm.arsnova.services.IFeedbackService; import de.thm.arsnova.services.ISessionService; @@ -305,20 +304,6 @@ public class ARSnovaSocketIOServer { broadcastInSession(sessionKey, "lecQuestionAvail", lecturerQuestionId); } - /** Sends event to a websocket connection identified by UUID - * - * @param sessionId The UUID of the websocket ID - * @param event The event to be send to client - * TODO This method is unimplemented! - */ - public void sendToClient(final UUID sessionId, final ARSnovaEvent event) { - for (final SocketIOClient c : server.getAllClients()) { - if (c.getSessionId().equals(sessionId)) { - break; - } - } - } - public void broadcastInSession(final String sessionKey, final String eventName, final Object data) { /** * collect a list of users which are in the current session iterate over -- GitLab