mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-12 15:21:00 +00:00
moved LeaderboardDTOCache and LiveLeaderboardUpdater to domain bundle
This commit is contained in:
1 parent
336516d39c
commit
335863b3e1
3 files changed
+16
-9
No files matched your search
+1
-2
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.gwt.ui.server;
|
||||
package com.sap.sailing.domain.leaderboard.caching;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
@@ -26,7 +26,6 @@ import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardCacheManager;
|
||||
import com.sap.sailing.domain.leaderboard.ScoreCorrection;
|
||||
import com.sap.sailing.domain.leaderboard.ScoreCorrectionListener;
|
||||
import com.sap.sailing.domain.leaderboard.caching.LeaderboardCache;
|
||||
import com.sap.sailing.domain.tracking.RaceChangeListener;
|
||||
import com.sap.sailing.domain.tracking.TrackedRegattaRegistry;
|
||||
import com.sap.sailing.util.impl.LockUtil;
|
||||
+12
-6
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.gwt.ui.server;
|
||||
package com.sap.sailing.domain.leaderboard.caching;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
@@ -8,11 +8,13 @@ import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.common.NoWindException;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.tracking.TrackedRegattaRegistry;
|
||||
|
||||
/**
|
||||
* Computing a leaderboard live, particularly when the fleet tracked is large, requires considerable resources.
|
||||
@@ -54,8 +56,6 @@ public class LiveLeaderboardUpdater implements Runnable {
|
||||
|
||||
private final Leaderboard leaderboard;
|
||||
|
||||
private final SailingServiceImpl sailingService;
|
||||
|
||||
/**
|
||||
* Live leaderboard results containing column details for all column names in
|
||||
* {@link #columnNamesForWhichCurrentLiveLeaderboardHasTheDetails}. May be <code>null</code> if
|
||||
@@ -100,10 +100,15 @@ public class LiveLeaderboardUpdater implements Runnable {
|
||||
* takes longer than {@link #UPDATE_TIMEOUT_IN_MILLIS} milliseconds.
|
||||
*/
|
||||
private Thread thread;
|
||||
|
||||
private TrackedRegattaRegistry trackedRegattaRegistry;
|
||||
|
||||
private DomainFactory baseDomainFactory;
|
||||
|
||||
public LiveLeaderboardUpdater(Leaderboard leaderboard, SailingServiceImpl sailingService) {
|
||||
public LiveLeaderboardUpdater(Leaderboard leaderboard, TrackedRegattaRegistry trackedRegattaRegistry, DomainFactory baseDomainFactory) {
|
||||
this.leaderboard = leaderboard;
|
||||
this.sailingService = sailingService;
|
||||
this.trackedRegattaRegistry = trackedRegattaRegistry;
|
||||
this.baseDomainFactory = baseDomainFactory;
|
||||
this.timePointOfLastRequestForColumnDetails = new HashMap<String, TimePoint>();
|
||||
this.columnNamesForWhichCurrentLiveLeaderboardHasTheDetails = new HashSet<String>();
|
||||
}
|
||||
@@ -249,7 +254,8 @@ public class LiveLeaderboardUpdater implements Runnable {
|
||||
try {
|
||||
final Set<String> namesOfRaceColumnsForWhichToLoadLegDetails = getColumnNamesForWhichToFetchDetails(timePoint);
|
||||
LeaderboardDTO newCacheValue = leaderboard.computeDTO(timePoint,
|
||||
namesOfRaceColumnsForWhichToLoadLegDetails, /* waitForLatestAnalyses */false, sailingService.getService(), sailingService.getBaseDomainFactory());
|
||||
namesOfRaceColumnsForWhichToLoadLegDetails, /* waitForLatestAnalyses */false,
|
||||
trackedRegattaRegistry, baseDomainFactory);
|
||||
updateCacheContents(namesOfRaceColumnsForWhichToLoadLegDetails, newCacheValue);
|
||||
} catch (NoWindException e) {
|
||||
logger.info("Unable to update cached leaderboard results for leaderboard " + leaderboard.getName() + ": "
|
||||
+3
-1
@@ -122,6 +122,8 @@ import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.leaderboard.MetaLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.caching.LeaderboardDTOCache;
|
||||
import com.sap.sailing.domain.leaderboard.caching.LiveLeaderboardUpdater;
|
||||
import com.sap.sailing.domain.persistence.DomainObjectFactory;
|
||||
import com.sap.sailing.domain.persistence.MongoFactory;
|
||||
import com.sap.sailing.domain.persistence.MongoObjectFactory;
|
||||
@@ -435,7 +437,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
synchronized (leaderboardByNameLiveUpdaters) {
|
||||
liveLeaderboardUpdater = leaderboardByNameLiveUpdaters.get(leaderboardName);
|
||||
if (liveLeaderboardUpdater == null) {
|
||||
liveLeaderboardUpdater = new LiveLeaderboardUpdater(leaderboard, this);
|
||||
liveLeaderboardUpdater = new LiveLeaderboardUpdater(leaderboard, this.getService(), baseDomainFactory);
|
||||
leaderboardByNameLiveUpdaters.put(leaderboardName, liveLeaderboardUpdater);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user