From 49d4ffdb0a3c3947be8a322ce93e2404a1b0571e Mon Sep 17 00:00:00 2001 From: Daniel Gerhardt <code@dgerhardt.net> Date: Thu, 8 Nov 2018 14:51:31 +0100 Subject: [PATCH] Get rid of visitor pattern for event handling @EventListener is used for handler methods instead of implementing a visitor interface. --- .../de/thm/arsnova/cache/CacheBusterImpl.java | 103 ++---------- .../arsnova/cache/CacheBusterListener.java | 42 ----- .../java/de/thm/arsnova/config/AppConfig.java | 6 - .../de/thm/arsnova/event/ArsnovaEvent.java | 2 - .../arsnova/event/ArsnovaEventVisitor.java | 86 ---------- .../thm/arsnova/event/ChangeScoreEvent.java | 5 - .../event/DeleteAllLectureAnswersEvent.java | 5 - .../DeleteAllPreparationAnswersEvent.java | 5 - .../event/DeleteAllQuestionsAnswersEvent.java | 5 - .../event/DeleteAllQuestionsEvent.java | 5 - .../thm/arsnova/event/DeleteAnswerEvent.java | 5 - .../thm/arsnova/event/DeleteCommentEvent.java | 5 - .../event/DeleteFeedbackForRoomsEvent.java | 5 - .../arsnova/event/DeleteQuestionEvent.java | 5 - .../de/thm/arsnova/event/DeleteRoomEvent.java | 5 - .../thm/arsnova/event/FeatureChangeEvent.java | 5 - .../arsnova/event/FlipFlashcardsEvent.java | 5 - .../thm/arsnova/event/LockFeedbackEvent.java | 5 - .../thm/arsnova/event/LockQuestionEvent.java | 5 - .../thm/arsnova/event/LockQuestionsEvent.java | 5 - .../de/thm/arsnova/event/LockVoteEvent.java | 5 - .../de/thm/arsnova/event/LockVotesEvent.java | 5 - .../de/thm/arsnova/event/NewAnswerEvent.java | 5 - .../de/thm/arsnova/event/NewCommentEvent.java | 5 - .../thm/arsnova/event/NewFeedbackEvent.java | 5 - .../thm/arsnova/event/NewQuestionEvent.java | 5 - .../de/thm/arsnova/event/NewRoomEvent.java | 5 - .../thm/arsnova/event/PiRoundCancelEvent.java | 5 - .../event/PiRoundDelayedStartEvent.java | 5 - .../de/thm/arsnova/event/PiRoundEndEvent.java | 5 - .../thm/arsnova/event/PiRoundResetEvent.java | 5 - .../de/thm/arsnova/event/StatusRoomEvent.java | 5 - .../arsnova/event/UnlockQuestionEvent.java | 5 - .../arsnova/event/UnlockQuestionsEvent.java | 5 - .../de/thm/arsnova/event/UnlockVoteEvent.java | 5 - .../thm/arsnova/event/UnlockVotesEvent.java | 5 - .../score/ScoreCalculatorFactoryImpl.java | 109 ++++--------- .../score/ScoreCalculatorListener.java | 42 ----- .../websocket/ArsnovaSocketioServerImpl.java | 147 +++++++----------- .../ArsnovaSocketioServerListener.java | 41 ----- 40 files changed, 95 insertions(+), 638 deletions(-) delete mode 100644 src/main/java/de/thm/arsnova/cache/CacheBusterListener.java delete mode 100644 src/main/java/de/thm/arsnova/event/ArsnovaEventVisitor.java delete mode 100644 src/main/java/de/thm/arsnova/service/score/ScoreCalculatorListener.java delete mode 100644 src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerListener.java diff --git a/src/main/java/de/thm/arsnova/cache/CacheBusterImpl.java b/src/main/java/de/thm/arsnova/cache/CacheBusterImpl.java index 719a3ed96..32f2b858b 100644 --- a/src/main/java/de/thm/arsnova/cache/CacheBusterImpl.java +++ b/src/main/java/de/thm/arsnova/cache/CacheBusterImpl.java @@ -19,6 +19,7 @@ package de.thm.arsnova.cache; import de.thm.arsnova.event.*; import org.springframework.cache.annotation.CacheEvict; +import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; /** @@ -26,105 +27,29 @@ import org.springframework.stereotype.Component; * caches, e.g, for a specific session. */ @Component -public class CacheBusterImpl implements CacheBuster, ArsnovaEventVisitor { +public class CacheBusterImpl implements CacheBuster { @CacheEvict(value = "statistics", allEntries = true) - @Override - public void visit(NewCommentEvent event) { } + @EventListener + public void handleNewComment(NewCommentEvent event) { } @CacheEvict(value = "statistics", allEntries = true) - @Override - public void visit(DeleteCommentEvent event) { } - - @Override - public void visit(NewQuestionEvent event) { } - - @Override - public void visit(UnlockQuestionEvent event) { } - - @Override - public void visit(UnlockQuestionsEvent newQuestionsEvent) { } - - @Override - public void visit(LockQuestionEvent lockQuestionEvent) { } - - @Override - public void visit(LockQuestionsEvent lockQuestionsEvent) { } + @EventListener + public void handleDeleteComment(DeleteCommentEvent event) { } @CacheEvict(value = "answerlists", key = "#event.content.id") - @Override - public void visit(NewAnswerEvent event) { } - - @Override - public void visit(DeleteAnswerEvent event) { } - - @Override - public void visit(DeleteQuestionEvent event) { } - - @Override - public void visit(DeleteAllQuestionsEvent event) { } - - @Override - public void visit(DeleteAllQuestionsAnswersEvent event) { } - - @Override - public void visit(DeleteAllPreparationAnswersEvent event) { } - - @Override - public void visit(DeleteAllLectureAnswersEvent event) { } - - @Override - public void visit(NewFeedbackEvent event) { } - - @Override - public void visit(DeleteFeedbackForRoomsEvent event) { } - - @Override - public void visit(StatusRoomEvent event) { } + @EventListener + public void handleNewAnswer(NewAnswerEvent event) { } @CacheEvict(value = "statistics", allEntries = true) - @Override - public void visit(ChangeScoreEvent changeLearningProgress) { } - - @Override - public void visit(PiRoundDelayedStartEvent piRoundDelayedStartEvent) { } - - @Override - public void visit(PiRoundEndEvent piRoundEndEvent) { } - - @Override - public void visit(PiRoundCancelEvent piRoundCancelEvent) { } - - @Override - public void visit(PiRoundResetEvent piRoundResetEvent) { } + @EventListener + public void handleChangeScore(ChangeScoreEvent changeLearningProgress) { } @CacheEvict(value = "statistics", allEntries = true) - @Override - public void visit(NewRoomEvent newSessionEvent) { } + @EventListener + public void handleewRoom(NewRoomEvent newSessionEvent) { } @CacheEvict(value = "statistics", allEntries = true) - @Override - public void visit(DeleteRoomEvent deleteSessionEvent) { } - - @Override - public void visit(LockVoteEvent lockVoteEvent) { } - - @Override - public void visit(LockVotesEvent lockVotesEvent) { } - - @Override - public void visit(UnlockVoteEvent unlockVoteEvent) { } - - @Override - public void visit(UnlockVotesEvent unlockVotesEvent) { } - - @Override - public void visit(FeatureChangeEvent featureChangeEvent) { } - - @Override - public void visit(LockFeedbackEvent lockFeedbackEvent) { } - - @Override - public void visit(FlipFlashcardsEvent flipFlashcardsEvent) { } - + @EventListener + public void handleDeleteRoom(DeleteRoomEvent deleteSessionEvent) { } } diff --git a/src/main/java/de/thm/arsnova/cache/CacheBusterListener.java b/src/main/java/de/thm/arsnova/cache/CacheBusterListener.java deleted file mode 100644 index 07baa6499..000000000 --- a/src/main/java/de/thm/arsnova/cache/CacheBusterListener.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * This file is part of ARSnova Backend. - * Copyright (C) 2012-2018 The ARSnova Team and Contributors - * - * ARSnova Backend is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ARSnova Backend is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -package de.thm.arsnova.cache; - -import de.thm.arsnova.event.ArsnovaEvent; -import de.thm.arsnova.event.ArsnovaEventVisitor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationListener; -import org.springframework.stereotype.Component; - -/** - * Listener registration for the cache buster. - * - * Note that this class is necessary in order for the annotations to work. - */ -@Component -public class CacheBusterListener implements ApplicationListener<ArsnovaEvent> { - - @Autowired - private CacheBuster cacheBuster; - - @Override - public void onApplicationEvent(ArsnovaEvent event) { - event.accept((ArsnovaEventVisitor) cacheBuster); - } - -} diff --git a/src/main/java/de/thm/arsnova/config/AppConfig.java b/src/main/java/de/thm/arsnova/config/AppConfig.java index 2df34dc2e..5b3338833 100644 --- a/src/main/java/de/thm/arsnova/config/AppConfig.java +++ b/src/main/java/de/thm/arsnova/config/AppConfig.java @@ -34,7 +34,6 @@ import de.thm.arsnova.web.PathApiVersionContentNegotiationStrategy; import de.thm.arsnova.web.ResponseInterceptorHandler; import de.thm.arsnova.websocket.ArsnovaSocketioServer; import de.thm.arsnova.websocket.ArsnovaSocketioServerImpl; -import de.thm.arsnova.websocket.ArsnovaSocketioServerListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.config.PropertiesFactoryBean; @@ -275,11 +274,6 @@ public class AppConfig implements WebMvcConfigurer { return socketioServer; } - @Bean - public ArsnovaSocketioServerListener arsnovaSocketListener() { - return new ArsnovaSocketioServerListener(); - } - @Bean public CacheManager cacheManager() { return new ConcurrentMapCacheManager(); diff --git a/src/main/java/de/thm/arsnova/event/ArsnovaEvent.java b/src/main/java/de/thm/arsnova/event/ArsnovaEvent.java index 8c5ac9498..f6d6f6e79 100644 --- a/src/main/java/de/thm/arsnova/event/ArsnovaEvent.java +++ b/src/main/java/de/thm/arsnova/event/ArsnovaEvent.java @@ -30,6 +30,4 @@ public abstract class ArsnovaEvent extends ApplicationEvent { super(source); } - public abstract void accept(ArsnovaEventVisitor visitor); - } diff --git a/src/main/java/de/thm/arsnova/event/ArsnovaEventVisitor.java b/src/main/java/de/thm/arsnova/event/ArsnovaEventVisitor.java deleted file mode 100644 index 4587c4284..000000000 --- a/src/main/java/de/thm/arsnova/event/ArsnovaEventVisitor.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * This file is part of ARSnova Backend. - * Copyright (C) 2012-2018 The ARSnova Team and Contributors - * - * ARSnova Backend is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ARSnova Backend is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -package de.thm.arsnova.event; - -/** - * Listeners wanting to receive ARSnova's internal events should implement this interface. - */ -public interface ArsnovaEventVisitor { - - void visit(NewCommentEvent newCommentEvent); - - void visit(DeleteCommentEvent deleteCommentEvent); - - void visit(NewQuestionEvent newQuestionEvent); - - void visit(UnlockQuestionEvent unlockQuestionEvent); - - void visit(UnlockQuestionsEvent newQuestionsEvent); - - void visit(LockQuestionEvent lockQuestionEvent); - - void visit(LockQuestionsEvent lockQuestionsEvent); - - void visit(NewAnswerEvent newAnswerEvent); - - void visit(DeleteAnswerEvent deleteAnswerEvent); - - void visit(DeleteQuestionEvent deleteQuestionEvent); - - void visit(DeleteAllQuestionsEvent deleteAllQuestionsEvent); - - void visit(DeleteAllQuestionsAnswersEvent deleteAllAnswersEvent); - - void visit(DeleteAllPreparationAnswersEvent deleteAllPreparationAnswersEvent); - - void visit(DeleteAllLectureAnswersEvent deleteAllLectureAnswersEvent); - - void visit(NewFeedbackEvent newFeedbackEvent); - - void visit(DeleteFeedbackForRoomsEvent deleteFeedbackEvent); - - void visit(StatusRoomEvent statusSessionEvent); - - void visit(ChangeScoreEvent changeLearningProgress); - - void visit(PiRoundDelayedStartEvent piRoundDelayedStartEvent); - - void visit(PiRoundEndEvent piRoundEndEvent); - - void visit(PiRoundCancelEvent piRoundCancelEvent); - - void visit(PiRoundResetEvent piRoundResetEvent); - - void visit(NewRoomEvent newSessionEvent); - - void visit(DeleteRoomEvent deleteSessionEvent); - - void visit(LockVoteEvent lockVoteEvent); - - void visit(LockVotesEvent lockVotesEvent); - - void visit(UnlockVoteEvent unlockVoteEvent); - - void visit(UnlockVotesEvent unlockVotesEvent); - - void visit(FeatureChangeEvent featureChangeEvent); - - void visit(LockFeedbackEvent lockFeedbackEvent); - - void visit(FlipFlashcardsEvent flipFlashcardsEvent); -} diff --git a/src/main/java/de/thm/arsnova/event/ChangeScoreEvent.java b/src/main/java/de/thm/arsnova/event/ChangeScoreEvent.java index e67fc341e..46cbaf639 100644 --- a/src/main/java/de/thm/arsnova/event/ChangeScoreEvent.java +++ b/src/main/java/de/thm/arsnova/event/ChangeScoreEvent.java @@ -30,9 +30,4 @@ public class ChangeScoreEvent extends RoomEvent { super(source, room); } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/DeleteAllLectureAnswersEvent.java b/src/main/java/de/thm/arsnova/event/DeleteAllLectureAnswersEvent.java index 210ede956..3ed09bb70 100644 --- a/src/main/java/de/thm/arsnova/event/DeleteAllLectureAnswersEvent.java +++ b/src/main/java/de/thm/arsnova/event/DeleteAllLectureAnswersEvent.java @@ -30,9 +30,4 @@ public class DeleteAllLectureAnswersEvent extends RoomEvent { super(source, room); } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/DeleteAllPreparationAnswersEvent.java b/src/main/java/de/thm/arsnova/event/DeleteAllPreparationAnswersEvent.java index 94d7a67c4..a85f12e2f 100644 --- a/src/main/java/de/thm/arsnova/event/DeleteAllPreparationAnswersEvent.java +++ b/src/main/java/de/thm/arsnova/event/DeleteAllPreparationAnswersEvent.java @@ -29,9 +29,4 @@ public class DeleteAllPreparationAnswersEvent extends RoomEvent { public DeleteAllPreparationAnswersEvent(Object source, Room room) { super(source, room); } - - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } } diff --git a/src/main/java/de/thm/arsnova/event/DeleteAllQuestionsAnswersEvent.java b/src/main/java/de/thm/arsnova/event/DeleteAllQuestionsAnswersEvent.java index eb587c213..bf7142ed6 100644 --- a/src/main/java/de/thm/arsnova/event/DeleteAllQuestionsAnswersEvent.java +++ b/src/main/java/de/thm/arsnova/event/DeleteAllQuestionsAnswersEvent.java @@ -29,9 +29,4 @@ public class DeleteAllQuestionsAnswersEvent extends RoomEvent { public DeleteAllQuestionsAnswersEvent(Object source, Room room) { super(source, room); } - - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } } diff --git a/src/main/java/de/thm/arsnova/event/DeleteAllQuestionsEvent.java b/src/main/java/de/thm/arsnova/event/DeleteAllQuestionsEvent.java index 7dd76e612..a6cd9558a 100644 --- a/src/main/java/de/thm/arsnova/event/DeleteAllQuestionsEvent.java +++ b/src/main/java/de/thm/arsnova/event/DeleteAllQuestionsEvent.java @@ -31,9 +31,4 @@ public class DeleteAllQuestionsEvent extends RoomEvent { super(source, room); } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/DeleteAnswerEvent.java b/src/main/java/de/thm/arsnova/event/DeleteAnswerEvent.java index eb9f816bf..8a7aa4ba1 100644 --- a/src/main/java/de/thm/arsnova/event/DeleteAnswerEvent.java +++ b/src/main/java/de/thm/arsnova/event/DeleteAnswerEvent.java @@ -34,11 +34,6 @@ public class DeleteAnswerEvent extends RoomEvent { this.content = content; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - public Content getQuestion() { return content; } diff --git a/src/main/java/de/thm/arsnova/event/DeleteCommentEvent.java b/src/main/java/de/thm/arsnova/event/DeleteCommentEvent.java index f62f3c64e..82ba83d10 100644 --- a/src/main/java/de/thm/arsnova/event/DeleteCommentEvent.java +++ b/src/main/java/de/thm/arsnova/event/DeleteCommentEvent.java @@ -34,11 +34,6 @@ public class DeleteCommentEvent extends RoomEvent { this.comment = comment; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - public Comment getQuestion() { return comment; } diff --git a/src/main/java/de/thm/arsnova/event/DeleteFeedbackForRoomsEvent.java b/src/main/java/de/thm/arsnova/event/DeleteFeedbackForRoomsEvent.java index 38b5cfca9..1bf031450 100644 --- a/src/main/java/de/thm/arsnova/event/DeleteFeedbackForRoomsEvent.java +++ b/src/main/java/de/thm/arsnova/event/DeleteFeedbackForRoomsEvent.java @@ -46,9 +46,4 @@ public class DeleteFeedbackForRoomsEvent extends ArsnovaEvent { return userId; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/DeleteQuestionEvent.java b/src/main/java/de/thm/arsnova/event/DeleteQuestionEvent.java index b2a40f6cf..bfafb5fe7 100644 --- a/src/main/java/de/thm/arsnova/event/DeleteQuestionEvent.java +++ b/src/main/java/de/thm/arsnova/event/DeleteQuestionEvent.java @@ -38,9 +38,4 @@ public class DeleteQuestionEvent extends RoomEvent { return this.content; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/DeleteRoomEvent.java b/src/main/java/de/thm/arsnova/event/DeleteRoomEvent.java index 2e470d680..a650c51a6 100644 --- a/src/main/java/de/thm/arsnova/event/DeleteRoomEvent.java +++ b/src/main/java/de/thm/arsnova/event/DeleteRoomEvent.java @@ -31,9 +31,4 @@ public class DeleteRoomEvent extends RoomEvent { super(source, room); } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/FeatureChangeEvent.java b/src/main/java/de/thm/arsnova/event/FeatureChangeEvent.java index 890425edb..447631a91 100644 --- a/src/main/java/de/thm/arsnova/event/FeatureChangeEvent.java +++ b/src/main/java/de/thm/arsnova/event/FeatureChangeEvent.java @@ -30,9 +30,4 @@ public class FeatureChangeEvent extends RoomEvent { super(source, room); } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/FlipFlashcardsEvent.java b/src/main/java/de/thm/arsnova/event/FlipFlashcardsEvent.java index 10a17302f..5b94f9a21 100644 --- a/src/main/java/de/thm/arsnova/event/FlipFlashcardsEvent.java +++ b/src/main/java/de/thm/arsnova/event/FlipFlashcardsEvent.java @@ -29,9 +29,4 @@ public class FlipFlashcardsEvent extends RoomEvent { public FlipFlashcardsEvent(Object source, Room room) { super(source, room); } - - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } } diff --git a/src/main/java/de/thm/arsnova/event/LockFeedbackEvent.java b/src/main/java/de/thm/arsnova/event/LockFeedbackEvent.java index b7a39b6b9..1f907db30 100644 --- a/src/main/java/de/thm/arsnova/event/LockFeedbackEvent.java +++ b/src/main/java/de/thm/arsnova/event/LockFeedbackEvent.java @@ -29,9 +29,4 @@ public class LockFeedbackEvent extends RoomEvent { public LockFeedbackEvent(Object source, Room room) { super(source, room); } - - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } } diff --git a/src/main/java/de/thm/arsnova/event/LockQuestionEvent.java b/src/main/java/de/thm/arsnova/event/LockQuestionEvent.java index 54bc9ff6a..2b0e38bd4 100644 --- a/src/main/java/de/thm/arsnova/event/LockQuestionEvent.java +++ b/src/main/java/de/thm/arsnova/event/LockQuestionEvent.java @@ -38,9 +38,4 @@ public class LockQuestionEvent extends RoomEvent { return this.content; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/LockQuestionsEvent.java b/src/main/java/de/thm/arsnova/event/LockQuestionsEvent.java index 8c892967d..fb27e4e6c 100644 --- a/src/main/java/de/thm/arsnova/event/LockQuestionsEvent.java +++ b/src/main/java/de/thm/arsnova/event/LockQuestionsEvent.java @@ -40,9 +40,4 @@ public class LockQuestionsEvent extends RoomEvent { return this.contents; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/LockVoteEvent.java b/src/main/java/de/thm/arsnova/event/LockVoteEvent.java index 1463e12e0..07456ac7b 100644 --- a/src/main/java/de/thm/arsnova/event/LockVoteEvent.java +++ b/src/main/java/de/thm/arsnova/event/LockVoteEvent.java @@ -59,9 +59,4 @@ public class LockVoteEvent extends RoomEvent { map.put("variant", getGroup()); return map; } - - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } } diff --git a/src/main/java/de/thm/arsnova/event/LockVotesEvent.java b/src/main/java/de/thm/arsnova/event/LockVotesEvent.java index a18cf1499..ebff38234 100644 --- a/src/main/java/de/thm/arsnova/event/LockVotesEvent.java +++ b/src/main/java/de/thm/arsnova/event/LockVotesEvent.java @@ -40,9 +40,4 @@ public class LockVotesEvent extends RoomEvent { return this.contents; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/NewAnswerEvent.java b/src/main/java/de/thm/arsnova/event/NewAnswerEvent.java index bdf775c00..462494d98 100644 --- a/src/main/java/de/thm/arsnova/event/NewAnswerEvent.java +++ b/src/main/java/de/thm/arsnova/event/NewAnswerEvent.java @@ -41,11 +41,6 @@ public class NewAnswerEvent extends RoomEvent { this.content = content; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - public Answer getAnswer() { return answer; } diff --git a/src/main/java/de/thm/arsnova/event/NewCommentEvent.java b/src/main/java/de/thm/arsnova/event/NewCommentEvent.java index 3ad2620ea..0ccf30272 100644 --- a/src/main/java/de/thm/arsnova/event/NewCommentEvent.java +++ b/src/main/java/de/thm/arsnova/event/NewCommentEvent.java @@ -38,9 +38,4 @@ public class NewCommentEvent extends RoomEvent { return comment; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/NewFeedbackEvent.java b/src/main/java/de/thm/arsnova/event/NewFeedbackEvent.java index f9bcdc525..d663f2bb5 100644 --- a/src/main/java/de/thm/arsnova/event/NewFeedbackEvent.java +++ b/src/main/java/de/thm/arsnova/event/NewFeedbackEvent.java @@ -30,9 +30,4 @@ public class NewFeedbackEvent extends RoomEvent { super(source, room); } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/NewQuestionEvent.java b/src/main/java/de/thm/arsnova/event/NewQuestionEvent.java index 4cf0da993..53281dcea 100644 --- a/src/main/java/de/thm/arsnova/event/NewQuestionEvent.java +++ b/src/main/java/de/thm/arsnova/event/NewQuestionEvent.java @@ -37,9 +37,4 @@ public class NewQuestionEvent extends RoomEvent { public Content getQuestion() { return content; } - - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } } diff --git a/src/main/java/de/thm/arsnova/event/NewRoomEvent.java b/src/main/java/de/thm/arsnova/event/NewRoomEvent.java index 4dd067ba6..222fa7c0f 100644 --- a/src/main/java/de/thm/arsnova/event/NewRoomEvent.java +++ b/src/main/java/de/thm/arsnova/event/NewRoomEvent.java @@ -30,9 +30,4 @@ public class NewRoomEvent extends RoomEvent { super(source, room); } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/PiRoundCancelEvent.java b/src/main/java/de/thm/arsnova/event/PiRoundCancelEvent.java index 969d4a68a..27cf4351d 100644 --- a/src/main/java/de/thm/arsnova/event/PiRoundCancelEvent.java +++ b/src/main/java/de/thm/arsnova/event/PiRoundCancelEvent.java @@ -31,9 +31,4 @@ public class PiRoundCancelEvent extends PiRoundEndEvent { super(source, room, content); } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/PiRoundDelayedStartEvent.java b/src/main/java/de/thm/arsnova/event/PiRoundDelayedStartEvent.java index b8880c367..43ac5f59b 100644 --- a/src/main/java/de/thm/arsnova/event/PiRoundDelayedStartEvent.java +++ b/src/main/java/de/thm/arsnova/event/PiRoundDelayedStartEvent.java @@ -47,11 +47,6 @@ public class PiRoundDelayedStartEvent extends RoomEvent { this.startTime = new Date(); } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - public String getQuestionId() { return questionId; } diff --git a/src/main/java/de/thm/arsnova/event/PiRoundEndEvent.java b/src/main/java/de/thm/arsnova/event/PiRoundEndEvent.java index ebd864bf7..064ba458d 100644 --- a/src/main/java/de/thm/arsnova/event/PiRoundEndEvent.java +++ b/src/main/java/de/thm/arsnova/event/PiRoundEndEvent.java @@ -40,11 +40,6 @@ public class PiRoundEndEvent extends RoomEvent { this.group = content.getGroups().toArray(new String[1])[0]; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - public String getContentId() { return contentId; } diff --git a/src/main/java/de/thm/arsnova/event/PiRoundResetEvent.java b/src/main/java/de/thm/arsnova/event/PiRoundResetEvent.java index a7045abfd..4d5d773ea 100644 --- a/src/main/java/de/thm/arsnova/event/PiRoundResetEvent.java +++ b/src/main/java/de/thm/arsnova/event/PiRoundResetEvent.java @@ -40,11 +40,6 @@ public class PiRoundResetEvent extends RoomEvent { this.group = content.getGroups().toArray(new String[1])[0]; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - public String getContentId() { return contentId; } diff --git a/src/main/java/de/thm/arsnova/event/StatusRoomEvent.java b/src/main/java/de/thm/arsnova/event/StatusRoomEvent.java index a981d2f31..d91026fde 100644 --- a/src/main/java/de/thm/arsnova/event/StatusRoomEvent.java +++ b/src/main/java/de/thm/arsnova/event/StatusRoomEvent.java @@ -30,9 +30,4 @@ public class StatusRoomEvent extends RoomEvent { super(source, room); } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/UnlockQuestionEvent.java b/src/main/java/de/thm/arsnova/event/UnlockQuestionEvent.java index 5e09ed349..3a53ff442 100644 --- a/src/main/java/de/thm/arsnova/event/UnlockQuestionEvent.java +++ b/src/main/java/de/thm/arsnova/event/UnlockQuestionEvent.java @@ -38,9 +38,4 @@ public class UnlockQuestionEvent extends RoomEvent { return this.content; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/UnlockQuestionsEvent.java b/src/main/java/de/thm/arsnova/event/UnlockQuestionsEvent.java index a4e5d8c6a..50c66f05a 100644 --- a/src/main/java/de/thm/arsnova/event/UnlockQuestionsEvent.java +++ b/src/main/java/de/thm/arsnova/event/UnlockQuestionsEvent.java @@ -40,9 +40,4 @@ public class UnlockQuestionsEvent extends RoomEvent { return this.contents; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/event/UnlockVoteEvent.java b/src/main/java/de/thm/arsnova/event/UnlockVoteEvent.java index 962f7c546..d6206d6db 100644 --- a/src/main/java/de/thm/arsnova/event/UnlockVoteEvent.java +++ b/src/main/java/de/thm/arsnova/event/UnlockVoteEvent.java @@ -57,9 +57,4 @@ public class UnlockVoteEvent extends RoomEvent { map.put("variant", getGroup()); return map; } - - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } } diff --git a/src/main/java/de/thm/arsnova/event/UnlockVotesEvent.java b/src/main/java/de/thm/arsnova/event/UnlockVotesEvent.java index fdc50180a..cf5fe5f2c 100644 --- a/src/main/java/de/thm/arsnova/event/UnlockVotesEvent.java +++ b/src/main/java/de/thm/arsnova/event/UnlockVotesEvent.java @@ -40,9 +40,4 @@ public class UnlockVotesEvent extends RoomEvent { return this.contents; } - @Override - public void accept(ArsnovaEventVisitor visitor) { - visitor.visit(this); - } - } diff --git a/src/main/java/de/thm/arsnova/service/score/ScoreCalculatorFactoryImpl.java b/src/main/java/de/thm/arsnova/service/score/ScoreCalculatorFactoryImpl.java index 78acff908..d8267dfae 100644 --- a/src/main/java/de/thm/arsnova/service/score/ScoreCalculatorFactoryImpl.java +++ b/src/main/java/de/thm/arsnova/service/score/ScoreCalculatorFactoryImpl.java @@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; +import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; /** @@ -31,7 +32,7 @@ import org.springframework.stereotype.Component; * This class additionally clears all score caches and reports this via event system. */ @Component -public class ScoreCalculatorFactoryImpl implements ArsnovaEventVisitor, ScoreCalculatorFactory, ApplicationEventPublisherAware { +public class ScoreCalculatorFactoryImpl implements ScoreCalculatorFactory, ApplicationEventPublisherAware { @Autowired private SessionStatisticsRepository sessionStatisticsRepository; @@ -50,141 +51,87 @@ public class ScoreCalculatorFactoryImpl implements ArsnovaEventVisitor, ScoreCal return scoreCalculator; } - @Override - public void visit(NewCommentEvent event) { } - - @Override - public void visit(DeleteCommentEvent deleteCommentEvent) { } - @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(NewQuestionEvent event) { + @EventListener + public void handleNewQuestion(NewQuestionEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(UnlockQuestionEvent event) { + @EventListener + public void handleUnlockQuestion(UnlockQuestionEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(UnlockQuestionsEvent event) { + @EventListener + public void handleUnlockQuestions(UnlockQuestionsEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(LockQuestionEvent event) { + @EventListener + public void handleLockQuestion(LockQuestionEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(LockQuestionsEvent event) { + @EventListener + public void handleLockQuestions(LockQuestionsEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(NewAnswerEvent event) { + @EventListener + public void handleNewAnswer(NewAnswerEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(DeleteAnswerEvent event) { + @EventListener + public void handleDeleteAnswer(DeleteAnswerEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(DeleteQuestionEvent event) { + @EventListener + public void handleDeleteQuestion(DeleteQuestionEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(DeleteAllQuestionsEvent event) { + @EventListener + public void handleDeleteAllQuestions(DeleteAllQuestionsEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(DeleteAllQuestionsAnswersEvent event) { + @EventListener + public void handleDeleteAllQuestionsAnswers(DeleteAllQuestionsAnswersEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(DeleteAllPreparationAnswersEvent event) { + @EventListener + public void handleDeleteAllPreparationAnswers(DeleteAllPreparationAnswersEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(DeleteAllLectureAnswersEvent event) { + @EventListener + public void handleDeleteAllLectureAnswers(DeleteAllLectureAnswersEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @CacheEvict(value = "score", key = "#event.Room") - @Override - public void visit(PiRoundResetEvent event) { + @EventListener + public void handlePiRoundReset(PiRoundResetEvent event) { this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @Override - public void visit(NewFeedbackEvent newFeedbackEvent) { } - - @Override - public void visit(DeleteFeedbackForRoomsEvent deleteFeedbackEvent) { } - - @Override - public void visit(StatusRoomEvent statusSessionEvent) { } - - @Override - public void visit(ChangeScoreEvent changeLearningProgress) { } - - @Override - public void visit(PiRoundDelayedStartEvent piRoundDelayedStartEvent) { } - - @Override - public void visit(PiRoundEndEvent piRoundEndEvent) { } - - @Override - public void visit(PiRoundCancelEvent piRoundCancelEvent) { } - - @Override - public void visit(NewRoomEvent event) { } - - @Override - public void visit(DeleteRoomEvent event) { } - @Override public void setApplicationEventPublisher(ApplicationEventPublisher publisher) { this.publisher = publisher; } - @Override - public void visit(LockVoteEvent lockVoteEvent) { } - - @Override - public void visit(LockVotesEvent lockVotesEvent) { } - - @Override - public void visit(UnlockVoteEvent unlockVoteEvent) { } - - @Override - public void visit(UnlockVotesEvent unlockVotesEvent) { } - - @Override - public void visit(FeatureChangeEvent featureChangeEvent) { } - - @Override - public void visit(LockFeedbackEvent lockFeedbackEvent) { } - - @Override - public void visit(FlipFlashcardsEvent flipFlashcardsEvent) { } - } diff --git a/src/main/java/de/thm/arsnova/service/score/ScoreCalculatorListener.java b/src/main/java/de/thm/arsnova/service/score/ScoreCalculatorListener.java deleted file mode 100644 index d78cc8863..000000000 --- a/src/main/java/de/thm/arsnova/service/score/ScoreCalculatorListener.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * This file is part of ARSnova Backend. - * Copyright (C) 2012-2018 The ARSnova Team and Contributors - * - * ARSnova Backend is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ARSnova Backend is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -package de.thm.arsnova.service.score; - -import de.thm.arsnova.event.ArsnovaEvent; -import de.thm.arsnova.event.ArsnovaEventVisitor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationListener; -import org.springframework.stereotype.Component; - -/** - * Listener registration for the score. - * - * Note that this class is necessary in order for the annotations to work. - */ -@Component -public class ScoreCalculatorListener implements ApplicationListener<ArsnovaEvent> { - - @Autowired - private ScoreCalculatorFactory scoreCalculatorFactory; - - @Override - public void onApplicationEvent(ArsnovaEvent event) { - event.accept((ArsnovaEventVisitor) scoreCalculatorFactory); - } - -} diff --git a/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java b/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java index 0e20156df..5636c66ae 100644 --- a/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java +++ b/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java @@ -48,6 +48,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Required; +import org.springframework.context.event.EventListener; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; @@ -67,7 +68,7 @@ import java.util.UUID; * Web socket implementation based on Socket.io. */ @Component -public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, ArsnovaEventVisitor { +public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer { @Autowired private FeedbackService feedbackService; @@ -489,40 +490,40 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova } } - @Override - public void visit(NewQuestionEvent event) { + @EventListener + public void handleNewQuestion(NewQuestionEvent event) { this.reportContentAvailable(event.getRoom(), Collections.singletonList(event.getQuestion())); } - @Override - public void visit(UnlockQuestionEvent event) { + @EventListener + public void handleUnlockQuestion(UnlockQuestionEvent event) { this.reportContentAvailable(event.getRoom(), Collections.singletonList(event.getQuestion())); } - @Override - public void visit(LockQuestionEvent event) { + @EventListener + public void handleLockQuestion(LockQuestionEvent event) { this.reportContentsLocked(event.getRoom(), Collections.singletonList(event.getQuestion())); } - @Override - public void visit(UnlockQuestionsEvent event) { + @EventListener + public void handleUnlockQuestions(UnlockQuestionsEvent event) { this.reportContentAvailable(event.getRoom(), event.getQuestions()); } - @Override - public void visit(LockQuestionsEvent event) { + @EventListener + public void handleLockQuestions(LockQuestionsEvent event) { this.reportContentsLocked(event.getRoom(), event.getQuestions()); } - @Override - public void visit(NewCommentEvent event) { + @EventListener + public void handleNewComment(NewCommentEvent event) { this.reportCommentAvailable(event.getRoom(), event.getQuestion()); } @Async - @Override - @Timed(name = "visit.NewAnswerEvent") - public void visit(NewAnswerEvent event) { + @EventListener + @Timed + public void handleNewAnswer(NewAnswerEvent event) { final String roomId = event.getRoom().getId(); this.reportAnswersToContentAvailable(event.getRoom(), new Content(event.getContent())); broadcastInRoom(roomId, "countQuestionAnswersByQuestionId", answerService.countAnswersAndAbstentionsInternal(event.getContent().getId())); @@ -540,9 +541,9 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova } @Async - @Override - @Timed(name = "visit.DeleteAnswerEvent") - public void visit(DeleteAnswerEvent event) { + @EventListener + @Timed + public void handleDeleteAnswer(DeleteAnswerEvent event) { final String roomId = event.getRoom().getId(); this.reportAnswersToContentAvailable(event.getRoom(), new Content(event.getQuestion())); // We do not know which user's answer was deleted, so we can't update his 'unanswered' list of questions... @@ -552,49 +553,49 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova } @Async - @Override - @Timed(name = "visit.PiRoundDelayedStartEvent") - public void visit(PiRoundDelayedStartEvent event) { + @EventListener + @Timed + public void handlePiRoundDelayedStart(PiRoundDelayedStartEvent event) { final String roomId = event.getRoom().getId(); broadcastInRoom(roomId, "startDelayedPiRound", event.getPiRoundInformations()); } @Async - @Override - @Timed(name = "visit.PiRoundEndEvent") - public void visit(PiRoundEndEvent event) { + @EventListener + @Timed + public void handlePiRoundEnd(PiRoundEndEvent event) { final String roomId = event.getRoom().getId(); broadcastInRoom(roomId, "endPiRound", event.getPiRoundEndInformations()); } @Async - @Override - @Timed(name = "visit.PiRoundCancelEvent") - public void visit(PiRoundCancelEvent event) { + @EventListener + @Timed + public void handlePiRoundCancel(PiRoundCancelEvent event) { final String roomId = event.getRoom().getId(); broadcastInRoom(roomId, "cancelPiRound", event.getContentId()); } - @Override - public void visit(PiRoundResetEvent event) { + @EventListener + public void handlePiRoundReset(PiRoundResetEvent event) { final String roomId = event.getRoom().getId(); broadcastInRoom(roomId, "resetPiRound", event.getPiRoundResetInformations()); } - @Override - public void visit(LockVoteEvent event) { + @EventListener + public void handleLockVote(LockVoteEvent event) { final String roomId = event.getRoom().getId(); broadcastInRoom(roomId, "lockVote", event.getVotingAdmission()); } - @Override - public void visit(UnlockVoteEvent event) { + @EventListener + public void handleUnlockVote(UnlockVoteEvent event) { final String roomId = event.getRoom().getId(); broadcastInRoom(roomId, "unlockVote", event.getVotingAdmission()); } - @Override - public void visit(LockVotesEvent event) { + @EventListener + public void handleLockVotes(LockVotesEvent event) { List<Content> contents = new ArrayList<>(); for (de.thm.arsnova.model.Content q : event.getQuestions()) { contents.add(new Content(q)); @@ -602,8 +603,8 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova broadcastInRoom(event.getRoom().getId(), "lockVotes", contents); } - @Override - public void visit(UnlockVotesEvent event) { + @EventListener + public void handleUnlockVotes(UnlockVotesEvent event) { List<Content> contents = new ArrayList<>(); for (de.thm.arsnova.model.Content q : event.getQuestions()) { contents.add(new Content(q)); @@ -611,8 +612,8 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova broadcastInRoom(event.getRoom().getId(), "unlockVotes", contents); } - @Override - public void visit(FeatureChangeEvent event) { + @EventListener + public void handleFeatureChange(FeatureChangeEvent event) { final String roomId = event.getRoom().getId(); final de.thm.arsnova.model.Room.Settings settings = event.getRoom().getSettings(); broadcastInRoom(roomId, "featureChange", toV2Migrator.migrate(settings)); @@ -623,76 +624,34 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova } } - @Override - public void visit(LockFeedbackEvent event) { + @EventListener + public void handleLockFeedback(LockFeedbackEvent event) { broadcastInRoom(event.getRoom().getId(), "lockFeedback", event.getRoom().getSettings().isFeedbackLocked()); } - @Override - public void visit(FlipFlashcardsEvent event) { + @EventListener + public void handleFlipFlashcards(FlipFlashcardsEvent event) { // broadcastInRoom(event.getRoom().getId(), "flipFlashcards", event.getRoom().getFlipFlashcards()); } - @Override - public void visit(DeleteQuestionEvent deleteQuestionEvent) { - // TODO Auto-generated method stub - - } - - @Override - public void visit(DeleteAllQuestionsEvent event) { - // TODO Auto-generated method stub - - } - - @Override - public void visit(DeleteAllQuestionsAnswersEvent deleteAllAnswersEvent) { - // TODO Auto-generated method stub - - } - - @Override - public void visit(DeleteAllPreparationAnswersEvent deleteAllPreparationAnswersEvent) { - // TODO Auto-generated method stub - - } - - @Override - public void visit(DeleteAllLectureAnswersEvent deleteAllLectureAnswersEvent) { - // TODO Auto-generated method stub - - } - - @Override - public void visit(DeleteCommentEvent deleteCommentEvent) { - // TODO Auto-generated method stub - - } - - @Override - public void visit(NewFeedbackEvent event) { + @EventListener + public void handleNewFeedback(NewFeedbackEvent event) { this.reportUpdatedFeedbackForRoom(event.getRoom()); } - @Override - public void visit(DeleteFeedbackForRoomsEvent event) { + @EventListener + public void handleDeleteFeedbackForRooms(DeleteFeedbackForRoomsEvent event) { this.reportDeletedFeedback(event.getUserId(), event.getSessions()); } - @Override - public void visit(StatusRoomEvent event) { + @EventListener + public void handleStatusRoom(StatusRoomEvent event) { this.reportRoomStatus(event.getRoom().getId(), !event.getRoom().isClosed()); } - @Override - public void visit(ChangeScoreEvent event) { + @EventListener + public void handleChangeScore(ChangeScoreEvent event) { broadcastInRoom(event.getRoom().getId(), "learningProgressChange", null); } - - @Override - public void visit(NewRoomEvent event) { } - - @Override - public void visit(DeleteRoomEvent event) { } } diff --git a/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerListener.java b/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerListener.java deleted file mode 100644 index 1d69bc792..000000000 --- a/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerListener.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * This file is part of ARSnova Backend. - * Copyright (C) 2012-2018 The ARSnova Team and Contributors - * - * ARSnova Backend is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ARSnova Backend is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -package de.thm.arsnova.websocket; - -import de.thm.arsnova.event.ArsnovaEvent; -import de.thm.arsnova.event.ArsnovaEventVisitor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationListener; -import org.springframework.stereotype.Component; - -/** - * An external Listener is required because otherwise the event methods are not called through a Spring proxy. - * This would result in Spring method annotations not working. - */ -@Component -public class ArsnovaSocketioServerListener implements ApplicationListener<ArsnovaEvent> { - - @Autowired - private ArsnovaSocketioServer socketioServer; - - @Override - public void onApplicationEvent(ArsnovaEvent event) { - event.accept((ArsnovaEventVisitor) socketioServer); - } - -} -- GitLab