From 335863b3e1653205ee2c5bd5be2903cd1dba7c6c Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 17 May 2013 21:24:02 +0200 Subject: [PATCH] moved LeaderboardDTOCache and LiveLeaderboardUpdater to domain bundle --- .../caching}/LeaderboardDTOCache.java | 3 +-- .../caching}/LiveLeaderboardUpdater.java | 18 ++++++++++++------ .../gwt/ui/server/SailingServiceImpl.java | 4 +++- 3 files changed, 16 insertions(+), 9 deletions(-) rename java/{com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server => com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching}/LeaderboardDTOCache.java (97%) rename java/{com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server => com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching}/LiveLeaderboardUpdater.java (94%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/LeaderboardDTOCache.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LeaderboardDTOCache.java similarity index 97% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/LeaderboardDTOCache.java rename to java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LeaderboardDTOCache.java index 3a9cab6af7f..161bbb9ad92 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/LeaderboardDTOCache.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LeaderboardDTOCache.java @@ -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; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/LiveLeaderboardUpdater.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LiveLeaderboardUpdater.java similarity index 94% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/LiveLeaderboardUpdater.java rename to java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LiveLeaderboardUpdater.java index 4bc978d01a1..2e87f4c340f 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/LiveLeaderboardUpdater.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LiveLeaderboardUpdater.java @@ -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 null 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(); this.columnNamesForWhichCurrentLiveLeaderboardHasTheDetails = new HashSet(); } @@ -249,7 +254,8 @@ public class LiveLeaderboardUpdater implements Runnable { try { final Set 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() + ": " diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index fa488ec5727..75001401e80 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -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); } }