009d307a03b5ba192d096d622e58b60480b6b6c0
java/com.google.gwt.servlet/.settings/com.gwtplugins.gwt.eclipse.core.prefs
| ... | ... | @@ -0,0 +1,2 @@ |
| 1 | +//gwtVersion_/com.google.gwt.servlet/lib= |
|
| 2 | +eclipse.preferences.version=1 |
java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogConnectivityParams.java
| ... | ... | @@ -20,6 +20,7 @@ import com.sap.sailing.domain.common.racelog.tracking.DoesNotHaveRegattaLogExcep |
| 20 | 20 | import com.sap.sailing.domain.common.racelog.tracking.RaceNotCreatedException; |
| 21 | 21 | import com.sap.sailing.domain.leaderboard.Leaderboard; |
| 22 | 22 | import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver; |
| 23 | +import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 23 | 24 | import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
| 24 | 25 | import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
| 25 | 26 | import com.sap.sailing.domain.regattalike.HasRegattaLike; |
| ... | ... | @@ -70,15 +71,15 @@ public class RaceLogConnectivityParams extends AbstractRaceTrackingConnectivityP |
| 70 | 71 | @Override |
| 71 | 72 | public RaceTracker createRaceTracker(TrackedRegattaRegistry trackedRegattaRegistry, WindStore windStore, |
| 72 | 73 | RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, long timeoutInMilliseconds, |
| 73 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) { |
|
| 74 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) { |
|
| 74 | 75 | return createRaceTracker(regatta, trackedRegattaRegistry, windStore, raceLogResolver, leaderboardGroupResolver, timeoutInMilliseconds, |
| 75 | - raceTrackingHandler, markPassingRaceFingerprintRegistry); |
|
| 76 | + raceTrackingHandler, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry); |
|
| 76 | 77 | } |
| 77 | 78 | |
| 78 | 79 | @Override |
| 79 | 80 | public RaceTracker createRaceTracker(Regatta regatta, TrackedRegattaRegistry trackedRegattaRegistry, |
| 80 | 81 | WindStore windStore, RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, long timeoutInMilliseconds, |
| 81 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) { |
|
| 82 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) { |
|
| 82 | 83 | if (regatta == null) { |
| 83 | 84 | BoatClass boatClass = new RaceInformationFinder(getRaceLog()).analyze().getBoatClass(); |
| 84 | 85 | regatta = trackedRegattaRegistry.getOrCreateDefaultRegatta( |
java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingTrackingConnectivityParameters.java
| ... | ... | @@ -4,6 +4,7 @@ package com.sap.sailing.domain.swisstimingadapter.impl; |
| 4 | 4 | import com.sap.sailing.domain.base.BoatClass; |
| 5 | 5 | import com.sap.sailing.domain.base.Regatta; |
| 6 | 6 | import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver; |
| 7 | +import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 7 | 8 | import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
| 8 | 9 | import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
| 9 | 10 | import com.sap.sailing.domain.racelog.RaceLogStore; |
| ... | ... | @@ -76,7 +77,7 @@ public class SwissTimingTrackingConnectivityParameters extends AbstractRaceTrack |
| 76 | 77 | @Override |
| 77 | 78 | public RaceTracker createRaceTracker(TrackedRegattaRegistry trackedRegattaRegistry, WindStore windStore, |
| 78 | 79 | RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, long timeoutInMilliseconds, |
| 79 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws Exception { |
|
| 80 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws Exception { |
|
| 80 | 81 | return swissTimingFactory.createRaceTracker(raceLogStore, regattaLogStore, windStore, domainFactory, trackedRegattaRegistry, raceLogResolver, |
| 81 | 82 | this, raceTrackingHandler, markPassingRaceFingerprintRegistry); |
| 82 | 83 | } |
| ... | ... | @@ -84,7 +85,7 @@ public class SwissTimingTrackingConnectivityParameters extends AbstractRaceTrack |
| 84 | 85 | @Override |
| 85 | 86 | public RaceTracker createRaceTracker(Regatta regatta, TrackedRegattaRegistry trackedRegattaRegistry, |
| 86 | 87 | WindStore windStore, RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, long timeoutInMilliseconds, |
| 87 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws Exception { |
|
| 88 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws Exception { |
|
| 88 | 89 | return swissTimingFactory.createRaceTracker(regatta, windStore, domainFactory, trackedRegattaRegistry, raceLogResolver, raceLogStore, |
| 89 | 90 | regattaLogStore, this, raceTrackingHandler, markPassingRaceFingerprintRegistry); |
| 90 | 91 | } |
java/com.sap.sailing.domain.swisstimingreplayadapter.test/src/com/sap/sailing/domain/swisstimingreplayadapter/test/SwissTimingReplayAdapterServiceTest.java
| ... | ... | @@ -189,7 +189,7 @@ public class SwissTimingReplayAdapterServiceTest { |
| 189 | 189 | SwissTimingReplayToDomainAdapter replayListener = new SwissTimingReplayToDomainAdapter(null, /* raceName */ "SAW005906", |
| 190 | 190 | "SAW005906", /* boatClass */ null, DomainFactory.INSTANCE, new DummyTrackedRegattaRegistry(), /* useInternalMarkPassingAlgorithm */ false, |
| 191 | 191 | mock(RaceLogAndTrackedRaceResolver.class), EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, /* tracker creator */ null, |
| 192 | - new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null); |
|
| 192 | + new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null, /*maneuverRaceFingerprintRegistry*/ null); |
|
| 193 | 193 | new SwissTimingReplayParserImpl().readData(getClass().getResourceAsStream("/SAW005906.20120805.replay"), replayListener); |
| 194 | 194 | Iterable<? extends TrackedRace> trackedRaces = replayListener.getTrackedRaces(); |
| 195 | 195 | assertFalse(Util.isEmpty(trackedRaces)); |
| ... | ... | @@ -205,7 +205,7 @@ public class SwissTimingReplayAdapterServiceTest { |
| 205 | 205 | SwissTimingReplayToDomainAdapter replayListener = new SwissTimingReplayToDomainAdapter(null, /* raceName */ "SAW005905", |
| 206 | 206 | "SAW005905", /* boatClass */ null, DomainFactory.INSTANCE, new DummyTrackedRegattaRegistry(), /* useInternalMarkPassingAlgorithm */ false, |
| 207 | 207 | mock(RaceLogAndTrackedRaceResolver.class), EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, /* tracker creator */ null, |
| 208 | - new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null); |
|
| 208 | + new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null, /*maneuverRaceFingerprintRegistry*/ null); |
|
| 209 | 209 | new SwissTimingReplayParserImpl().readData(getClass().getResourceAsStream("/SAW005905.20120805.replay"), replayListener); |
| 210 | 210 | Iterable<? extends TrackedRace> trackedRaces = replayListener.getTrackedRaces(); |
| 211 | 211 | TrackedRace trackedRace = trackedRaces.iterator().next(); |
java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayConnectivityParameters.java
| ... | ... | @@ -3,6 +3,7 @@ package com.sap.sailing.domain.swisstimingreplayadapter.impl; |
| 3 | 3 | import com.sap.sailing.domain.base.RaceDefinition; |
| 4 | 4 | import com.sap.sailing.domain.base.Regatta; |
| 5 | 5 | import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver; |
| 6 | +import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 6 | 7 | import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
| 7 | 8 | import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
| 8 | 9 | import com.sap.sailing.domain.racelog.RaceLogStore; |
| ... | ... | @@ -141,12 +142,12 @@ public class SwissTimingReplayConnectivityParameters extends AbstractRaceTrackin |
| 141 | 142 | @Override |
| 142 | 143 | public RaceTracker createRaceTracker(TrackedRegattaRegistry trackedRegattaRegistry, final WindStore windStore, |
| 143 | 144 | RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, |
| 144 | - long timeoutInMilliseconds, RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws Exception { |
|
| 145 | + long timeoutInMilliseconds, RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws Exception { |
|
| 145 | 146 | SwissTimingReplayToDomainAdapter listener = new SwissTimingReplayToDomainAdapter(/* regatta */ null, raceName, |
| 146 | 147 | raceID, domainFactory.getBaseDomainFactory().getOrCreateBoatClass(boatClassName), domainFactory, |
| 147 | 148 | trackedRegattaRegistry, useInternalMarkPassingAlgorithm, raceLogResolver, raceLogStore, |
| 148 | 149 | regattaLogStore, l->new SwissTimingReplayRaceTracker(windStore, l, this), |
| 149 | - raceTrackingHandler, markPassingRaceFingerprintRegistry); |
|
| 150 | + raceTrackingHandler, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry); |
|
| 150 | 151 | replayService.loadRaceData(link, listener); |
| 151 | 152 | return listener.getTracker(); |
| 152 | 153 | } |
| ... | ... | @@ -154,12 +155,12 @@ public class SwissTimingReplayConnectivityParameters extends AbstractRaceTrackin |
| 154 | 155 | @Override |
| 155 | 156 | public RaceTracker createRaceTracker(Regatta regatta, TrackedRegattaRegistry trackedRegattaRegistry, |
| 156 | 157 | WindStore windStore, RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, |
| 157 | - long timeoutInMilliseconds, RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws Exception { |
|
| 158 | + long timeoutInMilliseconds, RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws Exception { |
|
| 158 | 159 | SwissTimingReplayToDomainAdapter listener = new SwissTimingReplayToDomainAdapter(regatta, raceName, |
| 159 | 160 | raceID, domainFactory.getBaseDomainFactory().getOrCreateBoatClass(boatClassName), |
| 160 | 161 | domainFactory, trackedRegattaRegistry, useInternalMarkPassingAlgorithm, raceLogResolver, |
| 161 | 162 | raceLogStore, regattaLogStore, l->new SwissTimingReplayRaceTracker(windStore, l, this), |
| 162 | - raceTrackingHandler, markPassingRaceFingerprintRegistry); |
|
| 163 | + raceTrackingHandler, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry); |
|
| 163 | 164 | replayService.loadRaceData(link, listener); |
| 164 | 165 | return listener.getTracker(); |
| 165 | 166 | } |
java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java
| ... | ... | @@ -37,6 +37,7 @@ import com.sap.sailing.domain.common.impl.WindImpl; |
| 37 | 37 | import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID; |
| 38 | 38 | import com.sap.sailing.domain.common.tracking.GPSFixMoving; |
| 39 | 39 | import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; |
| 40 | +import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 40 | 41 | import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
| 41 | 42 | import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
| 42 | 43 | import com.sap.sailing.domain.racelog.RaceLogStore; |
| ... | ... | @@ -186,12 +187,13 @@ public class SwissTimingReplayToDomainAdapter extends SwissTimingReplayAdapter i |
| 186 | 187 | * be obtained from {@link #getTracker()}. This tracker's {@link RaceTracker.RaceCreationListener}s will |
| 187 | 188 | * be {@link SwissTimingReplayRaceTracker#notifyRaceCreationListeners() notified} when this adapter has |
| 188 | 189 | * created the race. |
| 190 | + * @param maneuverRaceFingerprintRegistry |
|
| 189 | 191 | */ |
| 190 | 192 | public SwissTimingReplayToDomainAdapter(Regatta regatta, String raceName, String raceIdForRaceDefinition, |
| 191 | 193 | BoatClass boatClass, DomainFactory domainFactory, |
| 192 | 194 | TrackedRegattaRegistry trackedRegattaRegistry, boolean useInternalMarkPassingAlgorithm, RaceLogAndTrackedRaceResolver raceLogResolver, |
| 193 | 195 | RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, TrackerConstructor trackerConstructor, |
| 194 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) { |
|
| 196 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) { |
|
| 195 | 197 | this.tracker = trackerConstructor == null ? null : trackerConstructor.createTracker(this); |
| 196 | 198 | this.raceLogResolver = raceLogResolver; |
| 197 | 199 | this.markPassingRaceFingerprintRegistry = markPassingRaceFingerprintRegistry; |
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateTest.java
| ... | ... | @@ -108,7 +108,7 @@ public class CourseUpdateTest extends AbstractTracTracLiveTest { |
| 108 | 108 | /* delayToLiveInMillis */0l, /* millisecondsOverWhichToAverageWind */30000, /* simulator */null, /* courseDesignUpdateURI */ |
| 109 | 109 | null, /* tracTracUsername */null, /* tracTracPassword */null, getEventSubscriber(), getRaceSubscriber(), |
| 110 | 110 | /*ignoreTracTracMarkPassings*/false, mock(RaceLogAndTrackedRaceResolver.class), mock(LeaderboardGroupResolver.class), RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, |
| 111 | - new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null) { |
|
| 111 | + new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null, /*maneuverRaceFingerprintRegistry*/ null) { |
|
| 112 | 112 | @Override |
| 113 | 113 | protected void handleEvent(Triple<IControlRoute, Long, Void> event) { |
| 114 | 114 | super.handleEvent(event); |
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MultipleClassesInRegattaTest.java
| ... | ... | @@ -59,28 +59,28 @@ public class MultipleClassesInRegattaTest { |
| 59 | 59 | EmptyRegattaLogStore.INSTANCE, EmptyWindStore.INSTANCE, new DummyTrackedRegattaRegistry(), |
| 60 | 60 | mock(RaceLogAndTrackedRaceResolver.class), mock(LeaderboardGroupResolver.class), createConnectivityParams(httpAndHost, liveURI, storedURI, courseDesignUpdateURI, |
| 61 | 61 | tracTracUsername, tracTracPassword, "cce678c8-97e6-11e0-9aed-406186cbf87c"), RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, |
| 62 | - new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null); |
|
| 62 | + new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null, /* maneuverRaceFingerprintRegistry */ null); |
|
| 63 | 63 | kiwotest2 = domainFactory |
| 64 | 64 | .createRaceTracker( |
| 65 | 65 | EmptyRaceLogStore.INSTANCE, |
| 66 | 66 | EmptyRegattaLogStore.INSTANCE, EmptyWindStore.INSTANCE, new DummyTrackedRegattaRegistry(), |
| 67 | 67 | mock(RaceLogAndTrackedRaceResolver.class), mock(LeaderboardGroupResolver.class), createConnectivityParams(httpAndHost, liveURI, storedURI, courseDesignUpdateURI, |
| 68 | 68 | tracTracUsername, tracTracPassword, "11290bd6-97e7-11e0-9aed-406186cbf87c"), RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, |
| 69 | - new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null); |
|
| 69 | + new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null, /* maneuverRaceFingerprintRegistry */ null); |
|
| 70 | 70 | kiwotest3 = domainFactory |
| 71 | 71 | .createRaceTracker( |
| 72 | 72 | EmptyRaceLogStore.INSTANCE, |
| 73 | 73 | EmptyRegattaLogStore.INSTANCE, EmptyWindStore.INSTANCE, new DummyTrackedRegattaRegistry(), |
| 74 | 74 | mock(RaceLogAndTrackedRaceResolver.class), mock(LeaderboardGroupResolver.class), createConnectivityParams(httpAndHost, liveURI, storedURI, courseDesignUpdateURI, |
| 75 | 75 | tracTracUsername, tracTracPassword, "39635b24-97e7-11e0-9aed-406186cbf87c"), RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, |
| 76 | - new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null); |
|
| 76 | + new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null, /* maneuverRaceFingerprintRegistry */ null); |
|
| 77 | 77 | weym470may112014_2 = domainFactory |
| 78 | 78 | .createRaceTracker( |
| 79 | 79 | EmptyRaceLogStore.INSTANCE, |
| 80 | 80 | EmptyRegattaLogStore.INSTANCE, EmptyWindStore.INSTANCE, new DummyTrackedRegattaRegistry(), |
| 81 | 81 | mock(RaceLogAndTrackedRaceResolver.class), mock(LeaderboardGroupResolver.class), createConnectivityParams(httpAndHost, liveURI, storedURI, courseDesignUpdateURI, |
| 82 | 82 | tracTracUsername, tracTracPassword, "04498426-7dfd-11e0-8236-406186cbf87c"), RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, |
| 83 | - new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null); |
|
| 83 | + new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null, /* maneuverRaceFingerprintRegistry */ null); |
|
| 84 | 84 | |
| 85 | 85 | assertEquals("STG", kiwotest1.getRegatta().getBoatClass().getName()); |
| 86 | 86 | assertEquals("5O5", kiwotest2.getRegatta().getBoatClass().getName()); |
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OnlineTracTracBasedTest.java
| ... | ... | @@ -133,7 +133,7 @@ public abstract class OnlineTracTracBasedTest extends AbstractTracTracLiveTest i |
| 133 | 133 | ArrayList<Receiver> receivers = new ArrayList<Receiver>(); |
| 134 | 134 | for (Receiver r : domainFactory.getUpdateReceivers(trackedRegatta, getTracTracRace(), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */0l, /* simulator */null, createRaceDefinitionSet(), |
| 135 | 135 | /* trackedRegattaRegistry */ null, |
| 136 | - mock(RaceLogAndTrackedRaceResolver.class), /* markPassingRaceFingerprintRegistry */ null, mock(LeaderboardGroupResolver.class), /* courseDesignUpdateURI */null, /* tracTracPassword */ |
|
| 136 | + mock(RaceLogAndTrackedRaceResolver.class), /* markPassingRaceFingerprintRegistry */ null,/* maneuverRaceFingerprintRegistry */ null, mock(LeaderboardGroupResolver.class), /* courseDesignUpdateURI */null, /* tracTracPassword */ |
|
| 137 | 137 | /* tracTracUsername */null, null, getEventSubscriber(), getRaceSubscriber(), /*ignoreTracTracMarkPassings*/ false, |
| 138 | 138 | RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, new DefaultRaceTrackingHandler(), /* raceAndCompetitorStatusWithRaceLogReconciler */ null, receiverTypes)) { |
| 139 | 139 | receivers.add(r); |
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReceiveMarkPassingDataTest.java
| ... | ... | @@ -120,7 +120,7 @@ public class ReceiveMarkPassingDataTest extends AbstractTracTracLiveTest { |
| 120 | 120 | public void addRaceDefinition(RaceDefinition race, DynamicTrackedRace trackedRace) { |
| 121 | 121 | } |
| 122 | 122 | }, /* trackedRegattaRegistry */null, |
| 123 | - mock(RaceLogAndTrackedRaceResolver.class), /* markPassingRaceFingerprintRegistry */ null, mock(LeaderboardGroupResolver.class), /* courseDesignUpdateURI */null, /* tracTracPassword */ |
|
| 123 | + mock(RaceLogAndTrackedRaceResolver.class), /* markPassingRaceFingerprintRegistry */ null,/*maneuverRaceFingerprintRegistry*/ null, mock(LeaderboardGroupResolver.class), /* courseDesignUpdateURI */null, /* tracTracPassword */ |
|
| 124 | 124 | /* tracTracUsername */null, null, getEventSubscriber(), getRaceSubscriber(), /*ignoreTracTracMarkPassings*/ false, |
| 125 | 125 | RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, new DefaultRaceTrackingHandler(), |
| 126 | 126 | /* raceAndCompetitorStatusWithRaceLogReconciler */ null, ReceiverType.RACECOURSE, ReceiverType.MARKPOSITIONS, ReceiverType.RACESTARTFINISH, ReceiverType.RAWPOSITIONS)) { |
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReceiveTrackingDataTest.java
| ... | ... | @@ -89,7 +89,7 @@ public class ReceiveTrackingDataTest extends AbstractTracTracLiveTest { |
| 89 | 89 | public void addRaceDefinition(RaceDefinition race, DynamicTrackedRace trackedRace) { |
| 90 | 90 | } |
| 91 | 91 | }, |
| 92 | - /* trackedRegattaRegistry */null, mock(RaceLogAndTrackedRaceResolver.class), /* markPassingRaceFingerprintRegistry */ null, mock(LeaderboardGroupResolver.class), /* courseDesignUpdateURI */ |
|
| 92 | + /* trackedRegattaRegistry */null, mock(RaceLogAndTrackedRaceResolver.class), /* markPassingRaceFingerprintRegistry */ null, /*maneuverRaceFingerprintRegistry*/ null, mock(LeaderboardGroupResolver.class), /* courseDesignUpdateURI */ |
|
| 93 | 93 | getTracTracRace(), null, /* tracTracUsername */null, /* tracTracPassword */null, getEventSubscriber(), getRaceSubscriber(), /*ignoreTracTracMarkPassings*/ false, |
| 94 | 94 | RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, new DefaultRaceTrackingHandler(), /* raceAndCompetitorStatusWithRaceLogReconciler */ null)) { |
| 95 | 95 | receiver.subscribe(); |
| ... | ... | @@ -103,7 +103,7 @@ public class ReceiveTrackingDataTest extends AbstractTracTracLiveTest { |
| 103 | 103 | @Override |
| 104 | 104 | public void addRaceDefinition(RaceDefinition race, DynamicTrackedRace trackedRace) { |
| 105 | 105 | } |
| 106 | - }, /* trackedRegattaRegistry */null, mock(RaceLogAndTrackedRaceResolver.class), /* markPassingRaceFingerprintRegistry */ null, mock(LeaderboardGroupResolver.class), /* courseDesignUpdateURI */ |
|
| 106 | + }, /* trackedRegattaRegistry */null, mock(RaceLogAndTrackedRaceResolver.class), /* markPassingRaceFingerprintRegistry */ null, /*maneuverRaceFingerprintRegistry*/ null, mock(LeaderboardGroupResolver.class), /* courseDesignUpdateURI */ |
|
| 107 | 107 | getTracTracRace(), null, /* tracTracUsername */null, /* tracTracPassword */null, getEventSubscriber(), getRaceSubscriber(), /*ignoreTracTracMarkPassings*/ false, |
| 108 | 108 | RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, new DefaultRaceTrackingHandler(), /* raceAndCompetitorStatusWithRaceLogReconciler */ null)); |
| 109 | 109 | } |
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UnicodeCharactersInCompetitorNamesTest.java
| ... | ... | @@ -73,7 +73,7 @@ public class UnicodeCharactersInCompetitorNamesTest { |
| 73 | 73 | /* preferReplayIfAvailable */ false, /* timeoutInMillis */ (int) RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, |
| 74 | 74 | /* useOfficialEventsToUpdateRaceLog */ false, /* liveURIFromConfiguration */ null, /* storedURIFromConfiguration */ null), |
| 75 | 75 | RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, |
| 76 | - new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null); |
|
| 76 | + new DefaultRaceTrackingHandler(), /* markPassingRaceFingerprintRegistry */ null, /* maneuverRaceFingerprintRegistry */ null); |
|
| 77 | 77 | |
| 78 | 78 | Iterable<Competitor> competitors = fourtyninerYellow_2.getRaceHandle().getRace().getCompetitors(); |
| 79 | 79 | for (Competitor competitor : competitors) { |
java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/DomainFactory.java
| ... | ... | @@ -28,6 +28,7 @@ import com.sap.sailing.domain.base.Waypoint; |
| 28 | 28 | import com.sap.sailing.domain.common.PassingInstruction; |
| 29 | 29 | import com.sap.sailing.domain.common.tracking.GPSFixMoving; |
| 30 | 30 | import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver; |
| 31 | +import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 31 | 32 | import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
| 32 | 33 | import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
| 33 | 34 | import com.sap.sailing.domain.racelog.RaceLogStore; |
| ... | ... | @@ -154,7 +155,7 @@ public interface DomainFactory { |
| 154 | 155 | WindStore windStore, TrackedRegattaRegistry trackedRegattaRegistry, RaceLogAndTrackedRaceResolver raceLogResolver, |
| 155 | 156 | LeaderboardGroupResolver leaderboardGroupResolver, |
| 156 | 157 | RaceTrackingConnectivityParametersImpl connectivityParams, long timeoutInMilliseconds, |
| 157 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws URISyntaxException, SubscriberInitializationException, |
|
| 158 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws URISyntaxException, SubscriberInitializationException, |
|
| 158 | 159 | IOException, InterruptedException, CreateModelException, TimeOutException; |
| 159 | 160 | |
| 160 | 161 | /** |
| ... | ... | @@ -165,7 +166,7 @@ public interface DomainFactory { |
| 165 | 166 | WindStore windStore, TrackedRegattaRegistry trackedRegattaRegistry, RaceLogAndTrackedRaceResolver raceLogResolver, |
| 166 | 167 | LeaderboardGroupResolver leaderboardGroupResolver, |
| 167 | 168 | RaceTrackingConnectivityParametersImpl connectivityParams, long timeoutInMilliseconds, |
| 168 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) |
|
| 169 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) |
|
| 169 | 170 | throws MalformedURLException, FileNotFoundException, URISyntaxException, CreateModelException, |
| 170 | 171 | SubscriberInitializationException, IOException, InterruptedException, TimeOutException; |
| 171 | 172 | |
| ... | ... | @@ -188,7 +189,7 @@ public interface DomainFactory { |
| 188 | 189 | */ |
| 189 | 190 | Iterable<Receiver> getUpdateReceivers(DynamicTrackedRegatta trackedRegatta, long delayToLiveInMillis, |
| 190 | 191 | Simulator simulator, WindStore windStore, DynamicRaceDefinitionSet raceDefinitionSetToUpdate, TrackedRegattaRegistry trackedRegattaRegistry, |
| 191 | - RaceLogAndTrackedRaceResolver raceLogResolver, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, LeaderboardGroupResolver leaderboardGroupResolver, |
|
| 192 | + RaceLogAndTrackedRaceResolver raceLogResolver, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry, LeaderboardGroupResolver leaderboardGroupResolver, |
|
| 192 | 193 | IRace tractracRace, URI courseDesignUpdateURI, String tracTracUsername, |
| 193 | 194 | String tracTracPassword, IEventSubscriber eventSubscriber, IRaceSubscriber raceSubscriber, boolean useInternalMarkPassingAlgorithm, |
| 194 | 195 | long timeoutInMilliseconds, RaceTrackingHandler raceTrackingHandler, RaceAndCompetitorStatusWithRaceLogReconciler raceAndCompetitorStatusWithRaceLogReconciler); |
| ... | ... | @@ -222,7 +223,7 @@ public interface DomainFactory { |
| 222 | 223 | DynamicRaceDefinitionSet raceDefinitionSetToUpdate, URI courseDesignUpdateURI, UUID tracTracEventUuid, |
| 223 | 224 | String tracTracUsername, String tracTracPassword, boolean ignoreTracTracMarkPassings, |
| 224 | 225 | RaceLogAndTrackedRaceResolver raceLogResolver, Consumer<DynamicTrackedRace> runBeforeExposingRace, IRace tractracRace, |
| 225 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry); |
|
| 226 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry); |
|
| 226 | 227 | |
| 227 | 228 | /** |
| 228 | 229 | * The record may be for a single mark or a gate. If for a gate, the {@link ControlPointPositionData#getIndex() |
| ... | ... | @@ -241,10 +242,16 @@ public interface DomainFactory { |
| 241 | 242 | */ |
| 242 | 243 | Iterable<Receiver> getUpdateReceivers(DynamicTrackedRegatta trackedRegatta, IRace tractracRace, WindStore windStore, |
| 243 | 244 | long delayToLiveInMillis, Simulator simulator, DynamicRaceDefinitionSet raceDefinitionSetToUpdate, TrackedRegattaRegistry trackedRegattaRegistry, |
| 244 | - RaceLogAndTrackedRaceResolver raceLogResolver, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, LeaderboardGroupResolver leaderboardGroupResolver, |
|
| 245 | + RaceLogAndTrackedRaceResolver raceLogResolver, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry, LeaderboardGroupResolver leaderboardGroupResolver, |
|
| 245 | 246 | URI courseDesignUpdateURI, String tracTracUsername, String tracTracPassword, IEventSubscriber eventSubscriber, IRaceSubscriber raceSubscriber, boolean ignoreTracTracMarkPassings, |
| 246 | 247 | long timeoutInMilliseconds, RaceTrackingHandler raceTrackingHandler, RaceAndCompetitorStatusWithRaceLogReconciler raceAndCompetitorStatusWithRaceLogReconciler, ReceiverType... types); |
| 247 | 248 | |
| 249 | +// Iterable<Receiver> getUpdateReceivers(DynamicTrackedRegatta trackedRegatta, IRace tractracRace, WindStore windStore, |
|
| 250 | +// long delayToLiveInMillis, Simulator simulator, DynamicRaceDefinitionSet raceDefinitionSetToUpdate, |
|
| 251 | +// TrackedRegattaRegistry trackedRegattaRegistry, RaceLogAndTrackedRaceResolver raceLogResolver, |
|
| 252 | +// MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, |
|
| 253 | +// ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry); |
|
| 254 | + |
|
| 248 | 255 | JSONService parseJSONURLWithRaceRecords(URL jsonURL, boolean loadClientParams) throws IOException, ParseException, org.json.simple.parser.ParseException, URISyntaxException; |
| 249 | 256 | |
| 250 | 257 | /** |
| ... | ... | @@ -350,4 +357,5 @@ public interface DomainFactory { |
| 350 | 357 | * start/stop invocations. |
| 351 | 358 | */ |
| 352 | 359 | IEventSubscriber getOrCreateEventSubscriber(IEvent tractracEvent, URI liveURI, URI storedURI); |
| 360 | + |
|
| 353 | 361 | } |
java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java
| ... | ... | @@ -63,6 +63,7 @@ import com.sap.sailing.domain.leaderboard.Leaderboard; |
| 63 | 63 | import com.sap.sailing.domain.leaderboard.LeaderboardGroup; |
| 64 | 64 | import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver; |
| 65 | 65 | import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; |
| 66 | +import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 66 | 67 | import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
| 67 | 68 | import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
| 68 | 69 | import com.sap.sailing.domain.racelog.RaceLogStore; |
| ... | ... | @@ -536,7 +537,7 @@ public class DomainFactoryImpl implements DomainFactory { |
| 536 | 537 | @Override |
| 537 | 538 | public Iterable<Receiver> getUpdateReceivers(DynamicTrackedRegatta trackedRegatta, IRace tractracRace, |
| 538 | 539 | WindStore windStore, long delayToLiveInMillis, Simulator simulator, DynamicRaceDefinitionSet raceDefinitionSetToUpdate, |
| 539 | - TrackedRegattaRegistry trackedRegattaRegistry, RaceLogAndTrackedRaceResolver raceLogResolver, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, |
|
| 540 | + TrackedRegattaRegistry trackedRegattaRegistry, RaceLogAndTrackedRaceResolver raceLogResolver, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry, |
|
| 540 | 541 | LeaderboardGroupResolver leaderboardGroupResolver, URI updateURI, String tracTracUsername, |
| 541 | 542 | String tracTracPassword, IEventSubscriber eventSubscriber, IRaceSubscriber raceSubscriber, |
| 542 | 543 | boolean useInternalMarkPassingAlgorithm, long timeoutInMilliseconds, |
| ... | ... | @@ -552,7 +553,7 @@ public class DomainFactoryImpl implements DomainFactory { |
| 552 | 553 | WindTrack.DEFAULT_MILLISECONDS_OVER_WHICH_TO_AVERAGE_WIND, simulator, updateURI, |
| 553 | 554 | tracTracUsername, tracTracPassword, eventSubscriber, raceSubscriber, |
| 554 | 555 | useInternalMarkPassingAlgorithm, raceLogResolver, leaderboardGroupResolver, timeoutInMilliseconds, |
| 555 | - raceTrackingHandler, markPassingRaceFingerprintRegistry)); |
|
| 556 | + raceTrackingHandler, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry)); |
|
| 556 | 557 | break; |
| 557 | 558 | case MARKPOSITIONS: |
| 558 | 559 | result.add(new MarkPositionReceiver( |
| ... | ... | @@ -588,7 +589,7 @@ public class DomainFactoryImpl implements DomainFactory { |
| 588 | 589 | public Iterable<Receiver> getUpdateReceivers(DynamicTrackedRegatta trackedRegatta, |
| 589 | 590 | long delayToLiveInMillis, Simulator simulator, WindStore windStore, |
| 590 | 591 | DynamicRaceDefinitionSet raceDefinitionSetToUpdate, TrackedRegattaRegistry trackedRegattaRegistry, RaceLogAndTrackedRaceResolver raceLogResolver, |
| 591 | - MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, LeaderboardGroupResolver leaderboardGroupResolver, IRace tractracRace, |
|
| 592 | + MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry, LeaderboardGroupResolver leaderboardGroupResolver, IRace tractracRace, |
|
| 592 | 593 | URI updateURI, String tracTracUsername, String tracTracPassword, |
| 593 | 594 | IEventSubscriber eventSubscriber, IRaceSubscriber raceSubscriber, boolean useInternalMarkPassingAlgorithm, |
| 594 | 595 | long timeoutInMilliseconds, |
| ... | ... | @@ -600,7 +601,7 @@ public class DomainFactoryImpl implements DomainFactory { |
| 600 | 601 | receiverTypes.add(ReceiverType.COMPETITOR); |
| 601 | 602 | } |
| 602 | 603 | return getUpdateReceivers(trackedRegatta, tractracRace, windStore, delayToLiveInMillis, simulator, |
| 603 | - raceDefinitionSetToUpdate, trackedRegattaRegistry, raceLogResolver, markPassingRaceFingerprintRegistry, leaderboardGroupResolver, |
|
| 604 | + raceDefinitionSetToUpdate, trackedRegattaRegistry, raceLogResolver, markPassingRaceFingerprintRegistry,maneuverRaceFingerprintRegistry, leaderboardGroupResolver, |
|
| 604 | 605 | updateURI, tracTracUsername, tracTracPassword, eventSubscriber, |
| 605 | 606 | raceSubscriber, useInternalMarkPassingAlgorithm, timeoutInMilliseconds, raceTrackingHandler, |
| 606 | 607 | raceAndCompetitorStatusWithRaceLogReconciler, receiverTypes.toArray(new ReceiverType[receiverTypes.size()])); |
| ... | ... | @@ -659,7 +660,7 @@ public class DomainFactoryImpl implements DomainFactory { |
| 659 | 660 | URI tracTracUpdateURI, UUID tracTracEventUuid, String tracTracUsername, String tracTracPassword, |
| 660 | 661 | boolean ignoreTracTracMarkPassings, RaceLogAndTrackedRaceResolver raceLogResolver, |
| 661 | 662 | Consumer<DynamicTrackedRace> runBeforeExposingRace, IRace tractracRace, |
| 662 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) { |
|
| 663 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) { |
|
| 663 | 664 | synchronized (raceCache) { |
| 664 | 665 | RaceDefinition raceDefinition = raceCache.get(raceId); |
| 665 | 666 | if (raceDefinition == null) { |
| ... | ... | @@ -690,7 +691,7 @@ public class DomainFactoryImpl implements DomainFactory { |
| 690 | 691 | } |
| 691 | 692 | trackedRace = createTrackedRace(trackedRegatta, raceDefinition, sidelines, windStore, |
| 692 | 693 | delayToLiveInMillis, millisecondsOverWhichToAverageWind, raceDefinitionSetToUpdate, ignoreTracTracMarkPassings, |
| 693 | - raceLogResolver, raceTrackingHandler, trackingConnectorInfo, markPassingRaceFingerprintRegistry); |
|
| 694 | + raceLogResolver, raceTrackingHandler, trackingConnectorInfo, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry); |
|
| 694 | 695 | logger.info("Added race " + raceDefinition + " to regatta " + trackedRegatta.getRegatta()); |
| 695 | 696 | if (runBeforeExposingRace != null) { |
| 696 | 697 | logger.fine("Running callback for tracked race creation for "+trackedRace.getRace()); |
| ... | ... | @@ -778,12 +779,12 @@ public class DomainFactoryImpl implements DomainFactory { |
| 778 | 779 | Iterable<Sideline> sidelines, WindStore windStore, long delayToLiveInMillis, |
| 779 | 780 | long millisecondsOverWhichToAverageWind, DynamicRaceDefinitionSet raceDefinitionSetToUpdate, |
| 780 | 781 | boolean useMarkPassingCalculator, RaceLogAndTrackedRaceResolver raceLogResolver, |
| 781 | - RaceTrackingHandler raceTrackingHandler, TrackingConnectorInfo trackingConnectorInfo, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) { |
|
| 782 | + RaceTrackingHandler raceTrackingHandler, TrackingConnectorInfo trackingConnectorInfo, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) { |
|
| 782 | 783 | return raceTrackingHandler.createTrackedRace(trackedRegatta, race, sidelines, |
| 783 | 784 | windStore, delayToLiveInMillis, millisecondsOverWhichToAverageWind, |
| 784 | 785 | /* time over which to average speed: */ race.getBoatClass().getApproximateManeuverDurationInMilliseconds(), |
| 785 | 786 | raceDefinitionSetToUpdate, useMarkPassingCalculator, raceLogResolver, Optional.empty(), |
| 786 | - trackingConnectorInfo, markPassingRaceFingerprintRegistry, /*maneuverRaceFingerprintRegistry*/ null); |
|
| 787 | + trackingConnectorInfo, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry); |
|
| 787 | 788 | } |
| 788 | 789 | |
| 789 | 790 | /** |
| ... | ... | @@ -1031,10 +1032,10 @@ public class DomainFactoryImpl implements DomainFactory { |
| 1031 | 1032 | WindStore windStore, TrackedRegattaRegistry trackedRegattaRegistry, RaceLogAndTrackedRaceResolver raceLogResolver, |
| 1032 | 1033 | LeaderboardGroupResolver leaderboardGroupResolver, |
| 1033 | 1034 | RaceTrackingConnectivityParametersImpl connectivityParams, long timeoutInMilliseconds, |
| 1034 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) |
|
| 1035 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) |
|
| 1035 | 1036 | throws URISyntaxException, SubscriberInitializationException, IOException, InterruptedException, CreateModelException, TimeOutException { |
| 1036 | 1037 | return new TracTracRaceTrackerImpl(this, raceLogStore, regattaLogStore, windStore, trackedRegattaRegistry, |
| 1037 | - raceLogResolver, leaderboardGroupResolver, connectivityParams, timeoutInMilliseconds, raceTrackingHandler, markPassingRaceFingerprintRegistry); |
|
| 1038 | + raceLogResolver, leaderboardGroupResolver, connectivityParams, timeoutInMilliseconds, raceTrackingHandler, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry); |
|
| 1038 | 1039 | } |
| 1039 | 1040 | |
| 1040 | 1041 | @Override |
| ... | ... | @@ -1042,10 +1043,10 @@ public class DomainFactoryImpl implements DomainFactory { |
| 1042 | 1043 | WindStore windStore, TrackedRegattaRegistry trackedRegattaRegistry, RaceLogAndTrackedRaceResolver raceLogResolver, |
| 1043 | 1044 | LeaderboardGroupResolver leaderboardGroupResolver, |
| 1044 | 1045 | RaceTrackingConnectivityParametersImpl connectivityParams, long timeoutInMilliseconds, |
| 1045 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws URISyntaxException, CreateModelException, |
|
| 1046 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws URISyntaxException, CreateModelException, |
|
| 1046 | 1047 | SubscriberInitializationException, IOException, InterruptedException, TimeOutException { |
| 1047 | 1048 | return new TracTracRaceTrackerImpl(regatta, this, raceLogStore, regattaLogStore, windStore, trackedRegattaRegistry, |
| 1048 | - raceLogResolver, leaderboardGroupResolver, connectivityParams, timeoutInMilliseconds, raceTrackingHandler, markPassingRaceFingerprintRegistry); |
|
| 1049 | + raceLogResolver, leaderboardGroupResolver, connectivityParams, timeoutInMilliseconds, raceTrackingHandler, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry); |
|
| 1049 | 1050 | } |
| 1050 | 1051 | |
| 1051 | 1052 | @Override |
java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java
| ... | ... | @@ -21,6 +21,7 @@ import com.sap.sailing.domain.base.Regatta; |
| 21 | 21 | import com.sap.sailing.domain.base.Sideline; |
| 22 | 22 | import com.sap.sailing.domain.common.PassingInstruction; |
| 23 | 23 | import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver; |
| 24 | +import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 24 | 25 | import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
| 25 | 26 | import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
| 26 | 27 | import com.sap.sailing.domain.shared.tracking.impl.TrackingConnectorInfoImpl; |
| ... | ... | @@ -73,6 +74,7 @@ public class RaceCourseReceiver extends AbstractReceiverWithQueue<IControlRoute, |
| 73 | 74 | private final boolean useInternalMarkPassingAlgorithm; |
| 74 | 75 | private final RaceLogAndTrackedRaceResolver raceLogResolver; |
| 75 | 76 | private final MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry; |
| 77 | + private final ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry; |
|
| 76 | 78 | private final LeaderboardGroupResolver leaderboardGroupResolver; |
| 77 | 79 | |
| 78 | 80 | private final RaceTrackingHandler raceTrackingHandler; |
| ... | ... | @@ -83,11 +85,12 @@ public class RaceCourseReceiver extends AbstractReceiverWithQueue<IControlRoute, |
| 83 | 85 | URI updateURI, String tracTracUsername, String tracTracPassword, |
| 84 | 86 | IEventSubscriber eventSubscriber, IRaceSubscriber raceSubscriber, boolean useInternalMarkPassingAlgorithm, |
| 85 | 87 | RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, long timeoutInMilliseconds, |
| 86 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) { |
|
| 88 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) { |
|
| 87 | 89 | super(domainFactory, tractracEvent, trackedRegatta, simulator, eventSubscriber, raceSubscriber, timeoutInMilliseconds); |
| 88 | 90 | this.tractracRace = tractracRace; |
| 89 | 91 | this.raceLogResolver = raceLogResolver; |
| 90 | 92 | this.markPassingRaceFingerprintRegistry = markPassingRaceFingerprintRegistry; |
| 93 | + this.maneuverRaceFingerprintRegistry = maneuverRaceFingerprintRegistry; |
|
| 91 | 94 | this.leaderboardGroupResolver = leaderboardGroupResolver; |
| 92 | 95 | this.millisecondsOverWhichToAverageWind = millisecondsOverWhichToAverageWind; |
| 93 | 96 | this.delayToLiveInMillis = delayToLiveInMillis; |
| ... | ... | @@ -179,7 +182,7 @@ public class RaceCourseReceiver extends AbstractReceiverWithQueue<IControlRoute, |
| 179 | 182 | getTrackedRegatta().getRegatta().getBoatClass(), competitorAndBoats, course, sidelines, windStore, delayToLiveInMillis, |
| 180 | 183 | millisecondsOverWhichToAverageWind, raceDefinitionSetToUpdate, tracTracUpdateURI, |
| 181 | 184 | getTracTracEvent().getId(), tracTracUsername, tracTracPassword, useInternalMarkPassingAlgorithm, raceLogResolver, tr->updateRaceTimes(tractracRace, tr), tractracRace, |
| 182 | - raceTrackingHandler, markPassingRaceFingerprintRegistry); |
|
| 185 | + raceTrackingHandler, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry); |
|
| 183 | 186 | addAllMarksFromCourseArea(trackedRace); |
| 184 | 187 | if (getSimulator() != null) { |
| 185 | 188 | getSimulator().setTrackedRace(trackedRace); |
java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceTrackingConnectivityParametersImpl.java
| ... | ... | @@ -9,6 +9,7 @@ import java.util.logging.Logger; |
| 9 | 9 | |
| 10 | 10 | import com.sap.sailing.domain.base.Regatta; |
| 11 | 11 | import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver; |
| 12 | +import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 12 | 13 | import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
| 13 | 14 | import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
| 14 | 15 | import com.sap.sailing.domain.racelog.RaceLogStore; |
| ... | ... | @@ -133,21 +134,21 @@ public class RaceTrackingConnectivityParametersImpl extends AbstractRaceTracking |
| 133 | 134 | @Override |
| 134 | 135 | public RaceTracker createRaceTracker(TrackedRegattaRegistry trackedRegattaRegistry, WindStore windStore, |
| 135 | 136 | RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, |
| 136 | - long timeoutInMilliseconds, RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws URISyntaxException, |
|
| 137 | + long timeoutInMilliseconds, RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws URISyntaxException, |
|
| 137 | 138 | CreateModelException, SubscriberInitializationException, IOException, InterruptedException, TimeOutException { |
| 138 | 139 | RaceTracker tracker = domainFactory.createRaceTracker(raceLogStore, regattaLogStore, windStore, |
| 139 | 140 | trackedRegattaRegistry, raceLogResolver, leaderboardGroupResolver, this, timeoutInMilliseconds, |
| 140 | - raceTrackingHandler, markPassingRaceFingerprintRegistry); |
|
| 141 | + raceTrackingHandler, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry); |
|
| 141 | 142 | return tracker; |
| 142 | 143 | } |
| 143 | 144 | |
| 144 | 145 | @Override |
| 145 | 146 | public RaceTracker createRaceTracker(Regatta regatta, TrackedRegattaRegistry trackedRegattaRegistry, |
| 146 | 147 | WindStore windStore, RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, |
| 147 | - long timeoutInMilliseconds, RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws Exception { |
|
| 148 | + long timeoutInMilliseconds, RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws Exception { |
|
| 148 | 149 | RaceTracker tracker = domainFactory.createRaceTracker(regatta, raceLogStore, regattaLogStore, windStore, |
| 149 | 150 | trackedRegattaRegistry, raceLogResolver, leaderboardGroupResolver, this, timeoutInMilliseconds, |
| 150 | - raceTrackingHandler, markPassingRaceFingerprintRegistry); |
|
| 151 | + raceTrackingHandler, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry); |
|
| 151 | 152 | return tracker; |
| 152 | 153 | } |
| 153 | 154 |
java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/TracTracRaceTrackerImpl.java
| ... | ... | @@ -28,6 +28,7 @@ import com.sap.sailing.domain.base.Regatta; |
| 28 | 28 | import com.sap.sailing.domain.base.Series; |
| 29 | 29 | import com.sap.sailing.domain.common.TrackedRaceStatusEnum; |
| 30 | 30 | import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver; |
| 31 | +import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 31 | 32 | import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
| 32 | 33 | import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
| 33 | 34 | import com.sap.sailing.domain.racelog.RaceLogStore; |
| ... | ... | @@ -276,11 +277,11 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl<RaceTrackin |
| 276 | 277 | WindStore windStore, TrackedRegattaRegistry trackedRegattaRegistry, |
| 277 | 278 | RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, |
| 278 | 279 | RaceTrackingConnectivityParametersImpl connectivityParams, long timeoutInMilliseconds, |
| 279 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws URISyntaxException, SubscriberInitializationException, |
|
| 280 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws URISyntaxException, SubscriberInitializationException, |
|
| 280 | 281 | IOException, InterruptedException, CreateModelException, TimeOutException { |
| 281 | 282 | this(/* regatta */ null, domainFactory, raceLogStore, regattaLogStore, windStore, trackedRegattaRegistry, |
| 282 | 283 | raceLogResolver, leaderboardGroupResolver, connectivityParams, timeoutInMilliseconds, |
| 283 | - raceTrackingHandler, markPassingRaceFingerprintRegistry); |
|
| 284 | + raceTrackingHandler, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry); |
|
| 284 | 285 | } |
| 285 | 286 | |
| 286 | 287 | /** |
| ... | ... | @@ -301,7 +302,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl<RaceTrackin |
| 301 | 302 | RegattaLogStore regattaLogStore, WindStore windStore, TrackedRegattaRegistry trackedRegattaRegistry, |
| 302 | 303 | RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, |
| 303 | 304 | RaceTrackingConnectivityParametersImpl connectivityParams, long timeoutInMilliseconds, |
| 304 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) |
|
| 305 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) |
|
| 305 | 306 | throws URISyntaxException, SubscriberInitializationException, IOException, InterruptedException, CreateModelException, TimeOutException { |
| 306 | 307 | super(connectivityParams); |
| 307 | 308 | final URL paramURL = connectivityParams.getParamURL(); |
| ... | ... | @@ -418,7 +419,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl<RaceTrackin |
| 418 | 419 | trackedRegatta = trackedRegattaRegistry.getOrCreateTrackedRegatta(this.regatta); |
| 419 | 420 | receivers = new HashSet<Receiver>(); |
| 420 | 421 | for (Receiver receiver : domainFactory.getUpdateReceivers(getTrackedRegatta(), delayToLiveInMillis, |
| 421 | - simulator, windStore, this, trackedRegattaRegistry, raceLogResolver, markPassingRaceFingerprintRegistry, leaderboardGroupResolver, |
|
| 422 | + simulator, windStore, this, trackedRegattaRegistry, raceLogResolver, markPassingRaceFingerprintRegistry, maneuverRaceFingerprintRegistry, leaderboardGroupResolver, |
|
| 422 | 423 | tractracRace, tracTracUpdateURI, tracTracUsername, tracTracPassword, eventSubscriber, |
| 423 | 424 | raceSubscriber, useInternalMarkPassingAlgorithm, timeoutInMilliseconds, raceTrackingHandler, reconciler)) { |
| 424 | 425 | receivers.add(receiver); |
java/com.sap.sailing.domain.yellowbrickadapter/src/com/sap/sailing/domain/yellowbrickadapter/YellowBrickRaceTrackingConnectivityParams.java
| ... | ... | @@ -3,6 +3,7 @@ package com.sap.sailing.domain.yellowbrickadapter; |
| 3 | 3 | import com.sap.sailing.domain.base.DomainFactory; |
| 4 | 4 | import com.sap.sailing.domain.base.Regatta; |
| 5 | 5 | import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver; |
| 6 | +import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 6 | 7 | import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
| 7 | 8 | import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
| 8 | 9 | import com.sap.sailing.domain.racelog.RaceLogStore; |
| ... | ... | @@ -46,7 +47,7 @@ public class YellowBrickRaceTrackingConnectivityParams extends AbstractRaceTrack |
| 46 | 47 | @Override |
| 47 | 48 | public RaceTracker createRaceTracker(TrackedRegattaRegistry trackedRegattaRegistry, WindStore windStore, |
| 48 | 49 | RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, |
| 49 | - long timeoutInMilliseconds, RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws Exception { |
|
| 50 | + long timeoutInMilliseconds, RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws Exception { |
|
| 50 | 51 | return new YellowBrickRaceTrackerImpl(this, /* regatta */ null, trackedRegattaRegistry, windStore, |
| 51 | 52 | raceLogResolver, leaderboardGroupResolver, timeoutInMilliseconds, raceTrackingHandler, raceLogStore, |
| 52 | 53 | regattaLogStore, baseDomainFactory, yellowBrickTrackingAdapter); |
| ... | ... | @@ -56,7 +57,7 @@ public class YellowBrickRaceTrackingConnectivityParams extends AbstractRaceTrack |
| 56 | 57 | public RaceTracker createRaceTracker(Regatta regatta, TrackedRegattaRegistry trackedRegattaRegistry, |
| 57 | 58 | WindStore windStore, RaceLogAndTrackedRaceResolver raceLogResolver, |
| 58 | 59 | LeaderboardGroupResolver leaderboardGroupResolver, long timeoutInMilliseconds, |
| 59 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws Exception { |
|
| 60 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws Exception { |
|
| 60 | 61 | return new YellowBrickRaceTrackerImpl(this, regatta, trackedRegattaRegistry, windStore, raceLogResolver, |
| 61 | 62 | leaderboardGroupResolver, timeoutInMilliseconds, raceTrackingHandler, raceLogStore, regattaLogStore, |
| 62 | 63 | baseDomainFactory, yellowBrickTrackingAdapter); |
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverhash/impl/ManeuverCacheDelegate.java
| ... | ... | @@ -4,9 +4,8 @@ import java.util.ArrayList; |
| 4 | 4 | import java.util.Collections; |
| 5 | 5 | import java.util.List; |
| 6 | 6 | import java.util.Map; |
| 7 | -import java.util.Set; |
|
| 8 | -import java.util.logging.Level; |
|
| 9 | -import java.util.logging.Logger; |
|
| 7 | + |
|
| 8 | +//import java.util.logging.Logger; |
|
| 10 | 9 | |
| 11 | 10 | import com.sap.sailing.domain.base.CPUMeteringType; |
| 12 | 11 | import com.sap.sailing.domain.base.Competitor; |
| ... | ... | @@ -15,23 +14,23 @@ import com.sap.sailing.domain.maneuverdetection.ManeuverDetector; |
| 15 | 14 | import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprint; |
| 16 | 15 | import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintFactory; |
| 17 | 16 | import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
| 18 | -import com.sap.sailing.domain.tracking.DynamicTrackedRace; |
|
| 19 | 17 | import com.sap.sailing.domain.tracking.Maneuver; |
| 18 | +import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; |
|
| 20 | 19 | import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl; |
| 21 | 20 | import com.sap.sse.common.Duration; |
| 22 | 21 | import com.sap.sse.util.ManeuverCache; |
| 23 | 22 | import com.sap.sse.util.SmartFutureCache; |
| 24 | 23 | import com.sap.sse.util.SmartFutureCache.AbstractCacheUpdater; |
| 25 | 24 | import com.sap.sse.util.SmartFutureCache.EmptyUpdateInterval; |
| 26 | -import com.sap.sse.util.SmartFutureCache.UpdateInterval; |
|
| 25 | + |
|
| 27 | 26 | |
| 28 | 27 | public class ManeuverCacheDelegate implements ManeuverCache<Competitor, List<Maneuver>, EmptyUpdateInterval> { |
| 29 | 28 | |
| 30 | 29 | |
| 31 | 30 | private final TrackedRaceImpl race; |
| 32 | - private static final Logger logger = Logger.getLogger(ManeuverCacheDelegate.class.getName()); |
|
| 31 | + // private static final Logger logger = Logger.getLogger(ManeuverCacheDelegate.class.getName()); |
|
| 33 | 32 | private final ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry; |
| 34 | - private ManeuverCache<Competitor, List<Maneuver>, EmptyUpdateInterval> maneuverCache; |
|
| 33 | +// private ManeuverCache<Competitor, List<Maneuver>, EmptyUpdateInterval> maneuverCache; |
|
| 35 | 34 | private ManeuverFromDatabase cache; |
| 36 | 35 | private SmartFutureCache<Competitor, List<Maneuver>, EmptyUpdateInterval> smartFutureCache; |
| 37 | 36 | Map<Competitor, List<Maneuver>> maneuvers; |
| ... | ... | @@ -44,7 +43,7 @@ public class ManeuverCacheDelegate implements ManeuverCache<Competitor, List<Man |
| 44 | 43 | super(); |
| 45 | 44 | this.race = race; |
| 46 | 45 | this.maneuverRaceFingerprintRegistry = maneuverRaceFingerprintRegistry; |
| 47 | - this.cache = new ManeuverFromDatabase( false, race, maneuverRaceFingerprintRegistry); |
|
| 46 | + this.cache = new ManeuverFromDatabase( false, (DynamicTrackedRaceImpl) race, maneuverRaceFingerprintRegistry); |
|
| 48 | 47 | this.smartFutureCache = new SmartFutureCache<Competitor, List<Maneuver>, EmptyUpdateInterval>( |
| 49 | 48 | new AbstractCacheUpdater<Competitor, List<Maneuver>, EmptyUpdateInterval>() { |
| 50 | 49 | @Override |
| ... | ... | @@ -191,7 +190,7 @@ public class ManeuverCacheDelegate implements ManeuverCache<Competitor, List<Man |
| 191 | 190 | if (cachesSuspended) { |
| 192 | 191 | triggerManeuverCacheInvalidationForAllCompetitors = true; |
| 193 | 192 | } else { |
| 194 | - maneuverCache.triggerUpdate(competitor, /* updateInterval */null); |
|
| 193 | + triggerUpdate(competitor, /* updateInterval */null); |
|
| 195 | 194 | } |
| 196 | 195 | } |
| 197 | 196 | } |
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverhash/impl/ManeuverFromDatabase.java
| ... | ... | @@ -2,19 +2,23 @@ package com.sap.sailing.domain.maneuverhash.impl; |
| 2 | 2 | |
| 3 | 3 | import java.util.List; |
| 4 | 4 | import java.util.Map; |
| 5 | +import java.util.Map.Entry; |
|
| 5 | 6 | import java.util.logging.Level; |
| 6 | 7 | import java.util.logging.Logger; |
| 8 | +import java.util.stream.Collectors; |
|
| 7 | 9 | |
| 8 | 10 | import com.sap.sailing.domain.base.Competitor; |
| 9 | 11 | import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
| 12 | +import com.sap.sailing.domain.shared.tracking.impl.TimedComparator; |
|
| 10 | 13 | import com.sap.sailing.domain.tracking.Maneuver; |
| 11 | -import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl; |
|
| 14 | +import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; |
|
| 15 | +//import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl; |
|
| 12 | 16 | import com.sap.sse.util.ManeuverCache; |
| 13 | 17 | import com.sap.sse.util.SmartFutureCache.EmptyUpdateInterval; |
| 14 | 18 | |
| 15 | 19 | public class ManeuverFromDatabase implements ManeuverCache<Competitor, List<Maneuver>, EmptyUpdateInterval> { |
| 16 | 20 | |
| 17 | - public ManeuverFromDatabase(boolean suspended, TrackedRaceImpl race, |
|
| 21 | + public ManeuverFromDatabase(boolean suspended, DynamicTrackedRaceImpl race, |
|
| 18 | 22 | ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) { |
| 19 | 23 | super(); |
| 20 | 24 | this.suspended = suspended; |
| ... | ... | @@ -23,7 +27,7 @@ public class ManeuverFromDatabase implements ManeuverCache<Competitor, List<Mane |
| 23 | 27 | } |
| 24 | 28 | |
| 25 | 29 | boolean suspended; |
| 26 | - private TrackedRaceImpl race; |
|
| 30 | + private DynamicTrackedRaceImpl race; |
|
| 27 | 31 | private ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry; |
| 28 | 32 | private static final Logger logger = Logger.getLogger(ManeuverFromDatabase.class.getName()); |
| 29 | 33 | Map<Competitor, List<Maneuver>> maneuvers; |
| ... | ... | @@ -36,10 +40,10 @@ public class ManeuverFromDatabase implements ManeuverCache<Competitor, List<Mane |
| 36 | 40 | |
| 37 | 41 | private void updateManeuversFromRegistry() { |
| 38 | 42 | maneuvers = maneuverRaceFingerprintRegistry.loadManeuvers(race, race.getRace().getCourse()); |
| 39 | -// for (final Entry<Competitor,List<Maneuver>> e : maneuverRaceFingerprintRegistry.loadManeuvers( |
|
| 40 | -// race, race.getRace().getCourse()).entrySet()) { |
|
| 41 | -//// race.updateManeuvers(e.getKey(), e.getValue().stream().sorted(TimedComparator.INSTANCE).collect(Collectors.toList())); |
|
| 42 | -// } |
|
| 43 | + for (final Entry<Competitor, List<Maneuver>> e : maneuverRaceFingerprintRegistry.loadManeuvers( |
|
| 44 | + race, race.getRace().getCourse()).entrySet()) { |
|
| 45 | + race.updateManeuvers(e.getKey(), e.getValue().stream().sorted(TimedComparator.INSTANCE).collect(Collectors.toList())); |
|
| 46 | + } |
|
| 43 | 47 | } |
| 44 | 48 | |
| 45 | 49 | public void suspend() { |
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverhash/impl/ManeuverFromDatabaseTest.java
| ... | ... | @@ -1,64 +0,0 @@ |
| 1 | -package com.sap.sailing.domain.maneuverhash.impl; |
|
| 2 | - |
|
| 3 | -import java.util.List; |
|
| 4 | -import java.util.Map; |
|
| 5 | -import java.util.Map.Entry; |
|
| 6 | -import java.util.stream.Collectors; |
|
| 7 | - |
|
| 8 | -import com.sap.sailing.domain.base.Competitor; |
|
| 9 | -import com.sap.sailing.domain.base.Waypoint; |
|
| 10 | -import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprint; |
|
| 11 | -import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 12 | -import com.sap.sailing.domain.tracking.DynamicTrackedRace; |
|
| 13 | -import com.sap.sailing.domain.tracking.Maneuver; |
|
| 14 | -import com.sap.sailing.domain.tracking.MarkPassing; |
|
| 15 | -import com.sap.sailing.domain.tracking.impl.TimedComparator; |
|
| 16 | -import com.sap.sse.util.SmartFutureCache; |
|
| 17 | - |
|
| 18 | -public class ManeuverFromDatabaseTest extends SmartFutureCache{ |
|
| 19 | - private final DynamicTrackedRace race; |
|
| 20 | - private final ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry; |
|
| 21 | - |
|
| 22 | - public ManeuverFromDatabaseTest(CacheUpdater cacheUpdateComputer, String nameForLocks,DynamicTrackedRace race, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry ) { |
|
| 23 | - super(cacheUpdateComputer, nameForLocks); |
|
| 24 | - this.race = race; |
|
| 25 | - this.maneuverRaceFingerprintRegistry = maneuverRaceFingerprintRegistry; |
|
| 26 | - // TODO Auto-generated constructor stub |
|
| 27 | - } |
|
| 28 | - |
|
| 29 | - |
|
| 30 | - public void resume() { |
|
| 31 | - ManeuverRaceFingerprint fingerprint; |
|
| 32 | - race.getRace().getCourse().lockForRead(); |
|
| 33 | - try { |
|
| 34 | - synchronized (this) { |
|
| 35 | - if (maneuverRaceFingerprintRegistry != null) { |
|
| 36 | - fingerprint = maneuverRaceFingerprintRegistry.getManeuverRaceFingerprint(race.getRaceIdentifier()); |
|
| 37 | - } else { |
|
| 38 | - fingerprint = null; |
|
| 39 | - } |
|
| 40 | - if (fingerprint != null && fingerprint.matches(race)) { |
|
| 41 | - |
|
| 42 | - } |
|
| 43 | - |
|
| 44 | - } |
|
| 45 | - |
|
| 46 | - } finally { |
|
| 47 | - race.getRace().getCourse().unlockAfterRead(); |
|
| 48 | - } |
|
| 49 | - } |
|
| 50 | - |
|
| 51 | - private void updateManeuversFromRegistry() { |
|
| 52 | - Map<Competitor, List<Maneuver>> maneuvers = maneuverRaceFingerprintRegistry.loadManeuvers( |
|
| 53 | - race, race.getRace().getCourse()); |
|
| 54 | - for (final Competitor e : maneuvers.keySet()) { |
|
| 55 | - List<Maneuver> competitorManeuvers = maneuvers.get(e); |
|
| 56 | - |
|
| 57 | - race.updateManeuvers(e, competitorManeuvers.stream().sorted(TimedComparator.INSTANCE).collect(Collectors.toList())); |
|
| 58 | - |
|
| 59 | - |
|
| 60 | - } |
|
| 61 | - } |
|
| 62 | - |
|
| 63 | - |
|
| 64 | -} |
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/RaceTrackingConnectivityParameters.java
| ... | ... | @@ -6,6 +6,7 @@ import com.sap.sailing.domain.base.Fleet; |
| 6 | 6 | import com.sap.sailing.domain.base.Regatta; |
| 7 | 7 | import com.sap.sailing.domain.base.Series; |
| 8 | 8 | import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver; |
| 9 | +import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 9 | 10 | import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
| 10 | 11 | import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
| 11 | 12 | |
| ... | ... | @@ -43,7 +44,7 @@ public interface RaceTrackingConnectivityParameters extends Serializable { |
| 43 | 44 | */ |
| 44 | 45 | RaceTracker createRaceTracker(TrackedRegattaRegistry trackedRegattaRegistry, WindStore windStore, |
| 45 | 46 | RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, long timeoutInMilliseconds, |
| 46 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws Exception; |
|
| 47 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws Exception; |
|
| 47 | 48 | |
| 48 | 49 | /** |
| 49 | 50 | * Starts a {@link RaceTracker}, associating the resulting races with the {@link Regatta} passed as argument instead |
| ... | ... | @@ -58,7 +59,7 @@ public interface RaceTrackingConnectivityParameters extends Serializable { |
| 58 | 59 | */ |
| 59 | 60 | RaceTracker createRaceTracker(Regatta regatta, TrackedRegattaRegistry trackedRegattaRegistry, WindStore windStore, |
| 60 | 61 | RaceLogAndTrackedRaceResolver raceLogResolver, LeaderboardGroupResolver leaderboardGroupResolver, long timeoutInMilliseconds, |
| 61 | - RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry) throws Exception; |
|
| 62 | + RaceTrackingHandler raceTrackingHandler, MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) throws Exception; |
|
| 62 | 63 | |
| 63 | 64 | /** |
| 64 | 65 | * Deliver an ID object equal to that of the {@link RaceTracker#getID()} delivered by the {@link RaceTracker} |
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java
| ... | ... | @@ -942,7 +942,7 @@ DynamicTrackedRace, GPSTrackListener<Competitor, GPSFixMoving> { |
| 942 | 942 | @Override |
| 943 | 943 | public void updateManeuvers(Competitor competitor, Iterable<Maneuver> maneuvers) { |
| 944 | 944 | final CompetitorResult resultFromRaceLog = competitorResultsFromRaceLog.get(competitor); |
| 945 | - updateManeuversNotConsideringFinishingTimesFromRaceLog(competitor, maneuvers); |
|
| 945 | + updateManeuversConsideringFinishingTimesFromRaceLog(competitor, maneuvers, resultFromRaceLog); |
|
| 946 | 946 | } |
| 947 | 947 | |
| 948 | 948 | |
| ... | ... | @@ -950,17 +950,18 @@ DynamicTrackedRace, GPSTrackListener<Competitor, GPSFixMoving> { |
| 950 | 950 | |
| 951 | 951 | |
| 952 | 952 | |
| 953 | - private void updateManeuversNotConsideringFinishingTimesFromRaceLog(Competitor competitor, |
|
| 954 | - Iterable<Maneuver> maneuvers) { |
|
| 955 | -// LockUtil.lockForRead(getSerializationLock()); // keep serializer from reading the mark passings collections |
|
| 956 | -// try { |
|
| 953 | + private void updateManeuversConsideringFinishingTimesFromRaceLog(Competitor competitor, |
|
| 954 | + Iterable<Maneuver> maneuvers, CompetitorResult resultFromRaceLog) { |
|
| 955 | + LockUtil.lockForRead(getSerializationLock()); // keep serializer from reading the mark passings collections |
|
| 956 | + try { |
|
| 957 | 957 | // List<Maneuver> oldManeuvers = new ArrayList<Maneuver>(); |
| 958 | -//// MarkPassing oldStartMarkPassing = null; |
|
| 958 | +// TimePoint finishTime = resultFromRaceLog.getFinishingTime(); |
|
| 959 | +// MarkPassing oldStartMarkPassing = null; |
|
| 959 | 960 | // boolean requiresStartTimeUpdate = true; |
| 960 | -// final NavigableSet<Maneuver> maneuversForCompetitor = getManeuvers(competitor); |
|
| 961 | +// final Iterable<Maneuver> maneuversForCompetitor = getManeuvers(competitor, false); |
|
| 961 | 962 | // lockForRead(maneuversForCompetitor); |
| 962 | 963 | // try { |
| 963 | -// for (MarkPassing oldMarkPassing : maneuversForCompetitor) { |
|
| 964 | +// for (Maneuver oldMarkPassing : maneuversForCompetitor) { |
|
| 964 | 965 | // if (oldStartMarkPassing == null) { |
| 965 | 966 | // oldStartMarkPassing = oldMarkPassing; |
| 966 | 967 | // } |
| ... | ... | @@ -1035,7 +1036,7 @@ DynamicTrackedRace, GPSTrackListener<Competitor, GPSFixMoving> { |
| 1035 | 1036 | // } |
| 1036 | 1037 | // } |
| 1037 | 1038 | // } finally { |
| 1038 | -// LockUtil.unlockAfterWrite(markPassingsLock); |
|
| 1039 | +// LockUtil.unlockAfterWrite(maneuversLock); |
|
| 1039 | 1040 | // getRace().getCourse().unlockAfterRead(); |
| 1040 | 1041 | // } |
| 1041 | 1042 | // updated(timePointOfLatestEvent); |
| ... | ... | @@ -1048,9 +1049,9 @@ DynamicTrackedRace, GPSTrackListener<Competitor, GPSFixMoving> { |
| 1048 | 1049 | // invalidateEndTime(); |
| 1049 | 1050 | // // notify *after* all mark passings have been re-established; should avoid flicker |
| 1050 | 1051 | // notifyListeners(competitor, oldMarkPassings, markPassings); |
| 1051 | -// } finally { |
|
| 1052 | -// LockUtil.unlockAfterRead(getSerializationLock()); |
|
| 1053 | -// } |
|
| 1052 | + } finally { |
|
| 1053 | + LockUtil.unlockAfterRead(getSerializationLock()); |
|
| 1054 | + } |
|
| 1054 | 1055 | |
| 1055 | 1056 | } |
| 1056 | 1057 |
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRegattaImpl.java
| ... | ... | @@ -1,19 +1,18 @@ |
| 1 | 1 | package com.sap.sailing.domain.tracking.impl; |
| 2 | 2 | |
| 3 | -import java.util.Optional; |
|
| 3 | +//import java.util.Optional; |
|
| 4 | 4 | |
| 5 | 5 | import com.sap.sailing.domain.base.RaceDefinition; |
| 6 | 6 | import com.sap.sailing.domain.base.Regatta; |
| 7 | -import com.sap.sailing.domain.base.Sideline; |
|
| 8 | -import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 9 | -import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
|
| 10 | -import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
|
| 11 | -import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; |
|
| 7 | +//import com.sap.sailing.domain.base.Sideline; |
|
| 8 | +//import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
|
| 9 | +//import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
|
| 10 | +//import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver; |
|
| 11 | +//import com.sap.sailing.domain.shared.tracking.TrackingConnectorInfo; |
|
| 12 | +//import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; |
|
| 12 | 13 | import com.sap.sailing.domain.tracking.DynamicTrackedRace; |
| 13 | 14 | import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; |
| 14 | -import com.sap.sailing.domain.tracking.TrackingConnectorInfo; |
|
| 15 | -import com.sap.sailing.domain.tracking.WindStore; |
|
| 16 | -import com.sap.sse.util.ThreadLocalTransporter; |
|
| 15 | + |
|
| 17 | 16 | |
| 18 | 17 | public class DynamicTrackedRegattaImpl extends TrackedRegattaImpl implements DynamicTrackedRegatta { |
| 19 | 18 | private static final long serialVersionUID = -90155868534737120L; |
| ... | ... | @@ -38,15 +37,4 @@ public class DynamicTrackedRegattaImpl extends TrackedRegattaImpl implements Dyn |
| 38 | 37 | return (DynamicTrackedRace) super.getExistingTrackedRace(race); |
| 39 | 38 | } |
| 40 | 39 | |
| 41 | - @Override |
|
| 42 | - public DynamicTrackedRace createTrackedRace(RaceDefinition raceDefinition, Iterable<Sideline> sidelines, |
|
| 43 | - WindStore windStore, long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, |
|
| 44 | - long millisecondsOverWhichToAverageSpeed, DynamicRaceDefinitionSet raceDefinitionSetToUpdate, |
|
| 45 | - boolean useInternalMarkPassingAlgorithm, RaceLogAndTrackedRaceResolver raceLogResolver, |
|
| 46 | - Optional<ThreadLocalTransporter> beforeAndAfterNotificationHandler, |
|
| 47 | - TrackingConnectorInfo trackingConnectorInfo, |
|
| 48 | - MarkPassingRaceFingerprintRegistry markPassingRaceFingerprintRegistry, ManeuverRaceFingerprintRegistry maneuverRaceFingerprintRegistry) { |
|
| 49 | - // TODO Auto-generated method stub |
|
| 50 | - return null; |
|
| 51 | - } |
|
| 52 | 40 | } |
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java
| ... | ... | @@ -64,7 +64,7 @@ import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.ReadonlyRac |
| 64 | 64 | import com.sap.sailing.domain.abstractlog.regatta.RegattaLog; |
| 65 | 65 | import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogDefinedMarkAnalyzer; |
| 66 | 66 | import com.sap.sailing.domain.base.Boat; |
| 67 | -import com.sap.sailing.domain.base.CPUMeteringType; |
|
| 67 | +//import com.sap.sailing.domain.base.CPUMeteringType; |
|
| 68 | 68 | import com.sap.sailing.domain.base.Competitor; |
| 69 | 69 | import com.sap.sailing.domain.base.ControlPoint; |
| 70 | 70 | import com.sap.sailing.domain.base.Course; |
| ... | ... | @@ -135,7 +135,6 @@ import com.sap.sailing.domain.maneuverdetection.ShortTimeAfterLastHitCache; |
| 135 | 135 | import com.sap.sailing.domain.maneuverdetection.impl.IncrementalManeuverDetectorImpl; |
| 136 | 136 | import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprintRegistry; |
| 137 | 137 | import com.sap.sailing.domain.maneuverhash.impl.ManeuverCacheDelegate; |
| 138 | -import com.sap.sailing.domain.maneuverhash.impl.ManeuverFromDatabase; |
|
| 139 | 138 | import com.sap.sailing.domain.markpassingcalculation.MarkPassingCalculator; |
| 140 | 139 | import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintRegistry; |
| 141 | 140 | import com.sap.sailing.domain.orc.ORCPerformanceCurveRankingMetric; |
| ... | ... | @@ -193,10 +192,9 @@ import com.sap.sse.concurrent.NamedReentrantReadWriteLock; |
| 193 | 192 | import com.sap.sse.shared.util.impl.ApproximateTime; |
| 194 | 193 | import com.sap.sse.shared.util.impl.ArrayListNavigableSet; |
| 195 | 194 | import com.sap.sse.util.IdentityWrapper; |
| 196 | -import com.sap.sse.util.ManeuverCache; |
|
| 197 | -import com.sap.sse.util.SmartFutureCache; |
|
| 198 | -import com.sap.sse.util.SmartFutureCache.AbstractCacheUpdater; |
|
| 199 | -import com.sap.sse.util.SmartFutureCache.EmptyUpdateInterval; |
|
| 195 | +//import com.sap.sse.util.SmartFutureCache; |
|
| 196 | +//import com.sap.sse.util.SmartFutureCache.AbstractCacheUpdater; |
|
| 197 | +//import com.sap.sse.util.SmartFutureCache.EmptyUpdateInterval; |
|
| 200 | 198 | import com.sap.sse.util.impl.FutureTaskWithTracingGet; |
| 201 | 199 | |
| 202 | 200 | import difflib.DiffUtils; |
| ... | ... | @@ -386,7 +384,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl |
| 386 | 384 | * Whether during {@link #cachesSuspended suspended caches mode} the maneuver re-calculation was triggered; will lead |
| 387 | 385 | * to triggering the maneuver re-calculation when caches are {@link #resumeAllCachesNotUpdatingWhileLoading() resumed}. |
| 388 | 386 | */ |
| 389 | - private boolean triggerManeuverCacheInvalidationForAllCompetitors; |
|
| 387 | + //private boolean triggerManeuverCacheInvalidationForAllCompetitors; |
|
| 390 | 388 | |
| 391 | 389 | /** |
| 392 | 390 | * Keys are the {@link RaceLog#getId() IDs} of the race logs that are stored as values. |
java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java
| ... | ... | @@ -92,7 +92,7 @@ public class TestStoringAndRetrievingWindTracksTest extends AbstractTracTracLive |
| 92 | 92 | @Override |
| 93 | 93 | public void addRaceDefinition(RaceDefinition race, DynamicTrackedRace trackedRace) { |
| 94 | 94 | } |
| 95 | - }, /* trackedRegattaRegistry */ null, mock(RaceLogAndTrackedRaceResolver.class), /* markPassingRaceFingerprintRegistry */ null, |
|
| 95 | + }, /* trackedRegattaRegistry */ null, mock(RaceLogAndTrackedRaceResolver.class), /* markPassingRaceFingerprintRegistry */ null, /*maneuverRaceFingerprintRegistry*/ null, |
|
| 96 | 96 | mock(LeaderboardGroupResolver.class), /*courseDesignUpdateURI*/ null, /*tracTracUsername*/ null, /*tracTracPassword*/ null, getEventSubscriber(), getRaceSubscriber(), /*ignoreTracTracMarkPassings*/ false, |
| 97 | 97 | RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, new DefaultRaceTrackingHandler(), /* raceAndCompetitorStatusWithRaceLogReconciler */ null, ReceiverType.RACECOURSE); |
| 98 | 98 | addListenersForStoredDataAndStartController(typeControllers); |
java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java
| ... | ... | @@ -2081,11 +2081,11 @@ Replicator { |
| 2081 | 2081 | if (regatta == null) { |
| 2082 | 2082 | // create tracker and use an existing or create a default regatta |
| 2083 | 2083 | tracker = params.createRaceTracker(this, windStore, /* raceLogResolver */ this, /* leaderboardGroupResolver */ this, timeoutInMilliseconds, |
| 2084 | - raceTrackingHandler, /* markPassingRaceFingerprintRegistry */ this); |
|
| 2084 | + raceTrackingHandler, /* markPassingRaceFingerprintRegistry */ this, /*maneuverRaceFingerprintRegistry*/ this); |
|
| 2085 | 2085 | } else { |
| 2086 | 2086 | // use the regatta selected by the RaceIdentifier regattaToAddTo |
| 2087 | 2087 | tracker = params.createRaceTracker(regatta, this, windStore, /* raceLogResolver */ this, /* leaderboardGroupResolver */ this, timeoutInMilliseconds, |
| 2088 | - raceTrackingHandler, /* markPassingRaceFingerprintRegistry */ this); |
|
| 2088 | + raceTrackingHandler, /* markPassingRaceFingerprintRegistry */ this, /*maneuverRaceFingerprintRegistry*/ this); |
|
| 2089 | 2089 | assert tracker.getRegatta() == regatta; |
| 2090 | 2090 | } |
| 2091 | 2091 | LockUtil.lockForWrite(raceTrackersByRegattaLock); |