mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-13 22:15:26 +00:00
Initial implementation to generate sample news entries
This commit is contained in:
1 parent
8f8fa42263
commit
783a46eb4e
12 files changed
+108
-83
No files matched your search
-24
@@ -32,8 +32,6 @@ import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sailing.gwt.ui.client.HomeService;
|
||||
import com.sap.sailing.gwt.ui.server.Activator;
|
||||
import com.sap.sailing.gwt.ui.server.ProxiedRemoteServiceServlet;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.news.InfoNewsEntryDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.news.NewsEntryDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventlist.EventListViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO;
|
||||
@@ -51,8 +49,6 @@ import com.sap.sailing.gwt.ui.shared.media.SailingVideoDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.start.EventStageDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.start.StageEventType;
|
||||
import com.sap.sailing.gwt.ui.shared.start.StartViewDTO;
|
||||
import com.sap.sailing.news.EventNewsItem;
|
||||
import com.sap.sailing.news.EventNewsService;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
@@ -78,23 +74,17 @@ public class HomeServiceImpl extends ProxiedRemoteServiceServlet implements Home
|
||||
private static final int MAX_VIDEO_COUNT = 3;
|
||||
|
||||
private final ServiceTracker<RacingEventService, RacingEventService> racingEventServiceTracker;
|
||||
private final ServiceTracker<EventNewsService, EventNewsService> eventNewsServiceTracker;
|
||||
|
||||
public HomeServiceImpl() {
|
||||
BundleContext context = Activator.getDefault();
|
||||
|
||||
racingEventServiceTracker = ServiceTrackerFactory.createAndOpen(context, RacingEventService.class);
|
||||
eventNewsServiceTracker = ServiceTrackerFactory.createAndOpen(context, EventNewsService.class);
|
||||
}
|
||||
|
||||
protected RacingEventService getService() {
|
||||
return racingEventServiceTracker.getService();
|
||||
}
|
||||
|
||||
protected EventNewsService getEventNewsService() {
|
||||
return eventNewsServiceTracker.getService();
|
||||
}
|
||||
|
||||
private interface EventVisitor {
|
||||
void visit(EventBase event, boolean onRemoteServer, URL baseURL);
|
||||
}
|
||||
@@ -435,20 +425,6 @@ public class HomeServiceImpl extends ProxiedRemoteServiceServlet implements Home
|
||||
return dto;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NewsEntryDTO> getNewsForEvent(UUID eventId, Date lastNewsDate) {
|
||||
List<NewsEntryDTO> result = new ArrayList<NewsEntryDTO>();
|
||||
|
||||
Event event = getService().getEvent(eventId);
|
||||
List<EventNewsItem> newsItems = getEventNewsService().getNews(event, lastNewsDate);
|
||||
|
||||
for(EventNewsItem newsItem: newsItems) {
|
||||
NewsEntryDTO newsDTO = new InfoNewsEntryDTO(newsItem.getTitle(), newsItem.getMessage(), newsItem.getCreatedAtDate());
|
||||
result.add(newsDTO);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MediaDTO getMediaForEvent(UUID eventId) {
|
||||
Event event = getService().getEvent(eventId);
|
||||
|
||||
-5
@@ -1,11 +1,8 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.google.gwt.user.client.rpc.RemoteService;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.news.NewsEntryDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventlist.EventListViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO;
|
||||
@@ -21,8 +18,6 @@ public interface HomeService extends RemoteService {
|
||||
|
||||
MediaDTO getMediaForEventSeries(UUID seriesId);
|
||||
|
||||
List<NewsEntryDTO> getNewsForEvent(UUID eventId, Date lastNewsDate);
|
||||
|
||||
EventListViewDTO getEventListView() throws Exception;
|
||||
|
||||
StartViewDTO getStartView() throws Exception;
|
||||
|
||||
-5
@@ -1,11 +1,8 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.news.NewsEntryDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventlist.EventListViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO;
|
||||
@@ -20,8 +17,6 @@ public interface HomeServiceAsync {
|
||||
void getEventViewById(UUID id, AsyncCallback<EventViewDTO> callback);
|
||||
|
||||
void getEventSeriesViewById(UUID id, AsyncCallback<EventSeriesViewDTO> asyncCallback);
|
||||
|
||||
void getNewsForEvent(UUID eventId, Date lastNewsDate, AsyncCallback<List<NewsEntryDTO>> callback);
|
||||
|
||||
void getMediaForEvent(UUID eventId, AsyncCallback<MediaDTO> callback);
|
||||
|
||||
|
||||
+4
-1
@@ -12,6 +12,7 @@ import com.sap.sailing.gwt.ui.shared.dispatch.RequestWrapper;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.Result;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.ResultWrapper;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.rpc.DispatchRPC;
|
||||
import com.sap.sailing.news.EventNewsService;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sse.util.ServiceTrackerFactory;
|
||||
|
||||
@@ -19,16 +20,18 @@ public class DispatchRPCImpl extends ProxiedRemoteServiceServlet implements Disp
|
||||
private static final long serialVersionUID = -245230476512348999L;
|
||||
|
||||
private final ServiceTracker<RacingEventService, RacingEventService> racingEventServiceTracker;
|
||||
private final ServiceTracker<EventNewsService, EventNewsService> eventNewsServiceTracker;
|
||||
|
||||
public DispatchRPCImpl() {
|
||||
final BundleContext context = Activator.getDefault();
|
||||
|
||||
racingEventServiceTracker = ServiceTrackerFactory.createAndOpen(context, RacingEventService.class);
|
||||
eventNewsServiceTracker = ServiceTrackerFactory.createAndOpen(context, EventNewsService.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R extends Result, A extends Action<R>> ResultWrapper<R> execute(RequestWrapper<R, A> request) throws DispatchException {
|
||||
R executionResult = request.getAction().execute(new DispatchContextImpl(request.getCurrentClientTime(), racingEventServiceTracker.getService(), request.getClientLocaleName()));
|
||||
R executionResult = request.getAction().execute(new DispatchContextImpl(request.getCurrentClientTime(), racingEventServiceTracker.getService(), eventNewsServiceTracker.getService(), request.getClientLocaleName()));
|
||||
return new ResultWrapper<R>(executionResult);
|
||||
}
|
||||
|
||||
|
||||
+3
@@ -3,12 +3,15 @@ package com.sap.sailing.gwt.ui.shared.dispatch;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
import com.sap.sailing.news.EventNewsService;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
|
||||
|
||||
public interface DispatchContext {
|
||||
|
||||
RacingEventService getRacingEventService();
|
||||
|
||||
EventNewsService getEventNewsService();
|
||||
|
||||
String getClientLocaleName();
|
||||
|
||||
|
||||
+8
-1
@@ -3,18 +3,21 @@ package com.sap.sailing.gwt.ui.shared.dispatch;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
import com.sap.sailing.news.EventNewsService;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
|
||||
|
||||
public class DispatchContextImpl implements DispatchContext {
|
||||
private final RacingEventService racingEventService;
|
||||
private final EventNewsService eventNewsService;
|
||||
private final Date currentClientTime;
|
||||
// private final Date currentServerTime = new Date();
|
||||
private String clientLocaleName;
|
||||
|
||||
public DispatchContextImpl(Date currentClientTime, RacingEventService racingEventService, String clientLocaleName) {
|
||||
public DispatchContextImpl(Date currentClientTime, RacingEventService racingEventService, EventNewsService eventNewsService, String clientLocaleName) {
|
||||
this.currentClientTime = currentClientTime;
|
||||
this.racingEventService = racingEventService;
|
||||
this.eventNewsService = eventNewsService;
|
||||
this.clientLocaleName = clientLocaleName;
|
||||
}
|
||||
|
||||
@@ -23,6 +26,10 @@ public class DispatchContextImpl implements DispatchContext {
|
||||
return racingEventService;
|
||||
}
|
||||
|
||||
public EventNewsService getEventNewsService() {
|
||||
return eventNewsService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Date getCurrentClientTime() {
|
||||
return currentClientTime;
|
||||
|
||||
+43
-37
@@ -1,23 +1,20 @@
|
||||
package com.sap.sailing.gwt.ui.shared.dispatch.event;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.google.gwt.core.shared.GwtIncompatible;
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.common.BoatClassMasterdata;
|
||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTOImpl;
|
||||
import com.sap.sailing.gwt.server.HomeServiceUtil;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.Action;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.DispatchContext;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.ResultWithTTL;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.news.InfoNewsEntryDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.news.LeaderboardNewsEntryDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.news.RaceCompetitorNewsEntryDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventState;
|
||||
import com.sap.sailing.gwt.ui.shared.media.MediaUtils;
|
||||
import com.sap.sailing.news.EventNewsItem;
|
||||
import com.sap.sailing.news.impl.InfoEventNewsItem;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sse.common.media.MimeType;
|
||||
@@ -48,7 +45,7 @@ public class GetEventOverviewStageAction implements Action<ResultWithTTL<EventOv
|
||||
|
||||
// TODO get correct message
|
||||
EventOverviewStageDTO stage = new EventOverviewStageDTO(null, getStageContent(context, event, state, now));
|
||||
addNews(context, stage);
|
||||
addNews(context, event, stage);
|
||||
return new ResultWithTTL<>(ttl, stage);
|
||||
}
|
||||
|
||||
@@ -129,37 +126,46 @@ public class GetEventOverviewStageAction implements Action<ResultWithTTL<EventOv
|
||||
//
|
||||
// return new EventOverviewTickerStageDTO(null, null, stageImageUrl);
|
||||
}
|
||||
|
||||
@GwtIncompatible
|
||||
private void addNews(DispatchContext dispatchContext, EventOverviewStageDTO stage) {
|
||||
Event event = dispatchContext.getRacingEventService().getEvent(eventId);
|
||||
boolean singleRegatta = HomeServiceUtil.isSingleRegatta(event);
|
||||
|
||||
stage.addNews(new InfoNewsEntryDTO("Sturm", "Heute keine Rennen mehr", new Date(new Date().getTime() - 125000)));
|
||||
stage.addNews(new InfoNewsEntryDTO("Abendbespaßung", "Es gibt Freibier und Wurst!!!", new Date()));
|
||||
stage.addNews(new LeaderboardNewsEntryDTO("Test LB", "505 m", BoatClassMasterdata._5O5.getDisplayName(), new Date(new Date().getTime() - 120000), LeaderboardNewsEntryDTO.Type.NEW_RESULTS));
|
||||
|
||||
LeaderboardNewsEntryDTO lbEntryWithExternalLink = new LeaderboardNewsEntryDTO("Test LB", "Some Regatta", BoatClassMasterdata.LASER_RADIAL.getDisplayName(), new Date(new Date().getTime() - 270000), LeaderboardNewsEntryDTO.Type.NEW_RESULTS);
|
||||
lbEntryWithExternalLink.setExternalURL("http://www.sap.com/");
|
||||
stage.addNews(lbEntryWithExternalLink);
|
||||
|
||||
CompetitorDTOImpl testCompetitor = new CompetitorDTOImpl("Peter Mayer", null, null, null, null, null, null, null, null, null, null, null, null);
|
||||
String regattaName = "470 Men";
|
||||
String race6 = constructRaceName(regattaName, "R6", "Gold", singleRegatta);
|
||||
stage.addNews(new RaceCompetitorNewsEntryDTO(regattaName, "470 R6", race6, BoatClassMasterdata.PIRATE.getDisplayName(), new Date(new Date().getTime() - 1888000), testCompetitor, RaceCompetitorNewsEntryDTO.Type.CRASH));
|
||||
String race7 = constructRaceName(regattaName, "R7", "Gold", singleRegatta);
|
||||
stage.addNews(new RaceCompetitorNewsEntryDTO(regattaName, "470 R7", race7, BoatClassMasterdata.PIRATE.getDisplayName(), new Date(new Date().getTime() - 1337000), testCompetitor, RaceCompetitorNewsEntryDTO.Type.WINNER));
|
||||
}
|
||||
|
||||
private String constructRaceName(String regattaDisplayName, String raceName, String fleetName, boolean singleRegatta) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if(!singleRegatta) {
|
||||
sb.append(regattaDisplayName).append(" - ");
|
||||
@GwtIncompatible
|
||||
private void addNews(DispatchContext dispatchContext, Event event, EventOverviewStageDTO stage) {
|
||||
// TODO correct date
|
||||
List<EventNewsItem> newsItems = dispatchContext.getEventNewsService().getNews(event, event.getStartDate().asDate());
|
||||
|
||||
for(EventNewsItem newsItem: newsItems) {
|
||||
if(newsItem instanceof InfoEventNewsItem) {
|
||||
stage.addNews(new InfoNewsEntryDTO((InfoEventNewsItem) newsItem));
|
||||
}
|
||||
}
|
||||
sb.append(raceName);
|
||||
if(fleetName != null && !fleetName.isEmpty() && !LeaderboardNameConstants.DEFAULT_FLEET_NAME.equals(fleetName)) {
|
||||
sb.append(" - ").append(fleetName);
|
||||
}
|
||||
return sb.toString();
|
||||
// TODO test contents
|
||||
//
|
||||
// boolean singleRegatta = HomeServiceUtil.isSingleRegatta(event);
|
||||
//
|
||||
// stage.addNews(new InfoNewsEntryDTO("Sturm", "Heute keine Rennen mehr", new Date(new Date().getTime() - 125000)));
|
||||
// stage.addNews(new InfoNewsEntryDTO("Abendbespaßung", "Es gibt Freibier und Wurst!!!", new Date()));
|
||||
// stage.addNews(new LeaderboardNewsEntryDTO("Test LB", "505 m", BoatClassMasterdata._5O5.getDisplayName(), new Date(new Date().getTime() - 120000), LeaderboardNewsEntryDTO.Type.NEW_RESULTS));
|
||||
//
|
||||
// LeaderboardNewsEntryDTO lbEntryWithExternalLink = new LeaderboardNewsEntryDTO("Test LB", "Some Regatta", BoatClassMasterdata.LASER_RADIAL.getDisplayName(), new Date(new Date().getTime() - 270000), LeaderboardNewsEntryDTO.Type.NEW_RESULTS);
|
||||
// lbEntryWithExternalLink.setExternalURL("http://www.sap.com/");
|
||||
// stage.addNews(lbEntryWithExternalLink);
|
||||
//
|
||||
// CompetitorDTOImpl testCompetitor = new CompetitorDTOImpl("Peter Mayer", null, null, null, null, null, null, null, null, null, null, null, null);
|
||||
// String regattaName = "470 Men";
|
||||
// String race6 = constructRaceName(regattaName, "R6", "Gold", singleRegatta);
|
||||
// stage.addNews(new RaceCompetitorNewsEntryDTO(regattaName, "470 R6", race6, BoatClassMasterdata.PIRATE.getDisplayName(), new Date(new Date().getTime() - 1888000), testCompetitor, RaceCompetitorNewsEntryDTO.Type.CRASH));
|
||||
// String race7 = constructRaceName(regattaName, "R7", "Gold", singleRegatta);
|
||||
// stage.addNews(new RaceCompetitorNewsEntryDTO(regattaName, "470 R7", race7, BoatClassMasterdata.PIRATE.getDisplayName(), new Date(new Date().getTime() - 1337000), testCompetitor, RaceCompetitorNewsEntryDTO.Type.WINNER));
|
||||
}
|
||||
//
|
||||
// private String constructRaceName(String regattaDisplayName, String raceName, String fleetName, boolean singleRegatta) {
|
||||
// StringBuilder sb = new StringBuilder();
|
||||
// if(!singleRegatta) {
|
||||
// sb.append(regattaDisplayName).append(" - ");
|
||||
// }
|
||||
// sb.append(raceName);
|
||||
// if(fleetName != null && !fleetName.isEmpty() && !LeaderboardNameConstants.DEFAULT_FLEET_NAME.equals(fleetName)) {
|
||||
// sb.append(" - ").append(fleetName);
|
||||
// }
|
||||
// return sb.toString();
|
||||
// }
|
||||
}
|
||||
+7
-5
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.shared.dispatch.news;
|
||||
|
||||
import java.util.Date;
|
||||
import com.google.gwt.core.shared.GwtIncompatible;
|
||||
import com.sap.sailing.news.impl.InfoEventNewsItem;
|
||||
|
||||
public class InfoNewsEntryDTO extends NewsEntryDTO {
|
||||
|
||||
@@ -11,10 +12,11 @@ public class InfoNewsEntryDTO extends NewsEntryDTO {
|
||||
private InfoNewsEntryDTO() {
|
||||
}
|
||||
|
||||
public InfoNewsEntryDTO(String title, String subtitle, Date timestamp) {
|
||||
super(timestamp);
|
||||
this.title = title;
|
||||
this.subtitle = subtitle;
|
||||
@GwtIncompatible
|
||||
public InfoNewsEntryDTO(InfoEventNewsItem item) {
|
||||
super(item.getCreatedAtDate());
|
||||
this.title = item.getTitle();
|
||||
this.subtitle = item.getMessage();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-3
@@ -5,7 +5,7 @@ import java.util.Date;
|
||||
public class LeaderboardNewsEntryDTO extends NewsEntryDTO {
|
||||
|
||||
public enum Type {
|
||||
NEW_RESULTS
|
||||
RESULTS_UPDATE
|
||||
}
|
||||
|
||||
private String leaderboardName;
|
||||
@@ -39,8 +39,8 @@ public class LeaderboardNewsEntryDTO extends NewsEntryDTO {
|
||||
@Override
|
||||
public String getMessage() {
|
||||
switch (type) {
|
||||
case NEW_RESULTS:
|
||||
return "New results are available";
|
||||
case RESULTS_UPDATE:
|
||||
return "Result update";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.news.EventNewsItem;
|
||||
|
||||
public class AbstractEventNewsItem extends AbstractNewsItem implements EventNewsItem {
|
||||
public abstract class AbstractEventNewsItem extends AbstractNewsItem implements EventNewsItem {
|
||||
private UUID eventId;
|
||||
|
||||
public AbstractEventNewsItem(UUID eventId, String title, String message, Date createdAtDate, String category, URL relatedItemLink) {
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.sap.sailing.news.impl;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
public class InfoEventNewsItem extends AbstractEventNewsItem {
|
||||
public InfoEventNewsItem(UUID eventId, String title, String message, Date createdAtDate, String category,
|
||||
URL relatedItemLink) {
|
||||
super(eventId, title, message, createdAtDate, category, relatedItemLink);
|
||||
}
|
||||
|
||||
public InfoEventNewsItem(UUID eventId, String title, String message, Date createdAtDate, String category) {
|
||||
super(eventId, title, message, createdAtDate, category);
|
||||
}
|
||||
|
||||
}
|
||||
+22
-1
@@ -3,6 +3,9 @@ package com.sap.sailing.news.impl;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.news.EventNewsItem;
|
||||
@@ -10,12 +13,30 @@ import com.sap.sailing.news.EventNewsProvider;
|
||||
import com.sap.sailing.news.LimitedQueue;
|
||||
|
||||
public class SimpleDemoEventNewsProvider implements EventNewsProvider {
|
||||
private final LinkedList<? extends EventNewsItem> newsQueue;
|
||||
private final LinkedList<EventNewsItem> newsQueue;
|
||||
|
||||
private final Timer timer = new Timer();
|
||||
|
||||
public SimpleDemoEventNewsProvider() {
|
||||
newsQueue = new LimitedQueue<>(10);
|
||||
|
||||
final UUID eventId = UUID.fromString("406cffc2-b491-4f7e-b78e-a21abd97006a");
|
||||
// final UUID eventId = UUID.fromString("406cffc2-b491-4f7e-b78e-a21abd97006a");
|
||||
|
||||
timer.scheduleAtFixedRate(new TimerTask() {
|
||||
int counter=1;
|
||||
@Override
|
||||
public void run() {
|
||||
newsQueue.add(new InfoEventNewsItem(eventId, "Test Entry " + counter, "Content for Test Entry "+counter, new Date(), null));
|
||||
counter++;
|
||||
}
|
||||
}, 5_000, 30_000);
|
||||
}
|
||||
|
||||
protected void finalize() throws Throwable {
|
||||
timer.cancel();
|
||||
};
|
||||
|
||||
@Override
|
||||
public Collection<? extends EventNewsItem> getNews(Event event) {
|
||||
// Iterable<LeaderboardGroup> leaderboardGroups = event.getLeaderboardGroups();
|
||||
|
||||
Reference in new issue
Block a user