From 7d6d72785e42b5b249d1f0ea3a7dda9128991a2f Mon Sep 17 00:00:00 2001 From: Armin Zamani Date: Sat, 9 Feb 2013 01:10:39 +0100 Subject: [PATCH] removed all RaceLog methods from TrackedRace and TrackedRaceImpl and DynamicTrackedRace changed TrackedRaceImpl constructor again, all calling methods are changed appropriately --- .../EndToEndListeningStoreAndFowardTest.java | 7 +- .../swisstimingadapter/DomainFactory.java | 3 +- .../SwissTimingFactory.java | 5 +- .../impl/DomainFactoryImpl.java | 5 +- .../impl/SwissTimingFactoryImpl.java | 10 +- .../impl/SwissTimingRaceTrackerImpl.java | 13 +-- ...sTimingTrackingConnectivityParameters.java | 9 +- .../SwissTimingReplayToDomainAdapter.java | 3 +- .../sap/sailing/domain/test/CourseTest.java | 7 +- .../sailing/domain/test/CourseUpdateTest.java | 4 +- .../test/MultipleClassesInRegattaTest.java | 12 +-- .../domain/test/OnlineTracTracBasedTest.java | 9 +- ...LogEventsOnConstructedTrackedRaceTest.java | 94 +++++++++---------- .../sailing/domain/test/ReachingLegTest.java | 4 +- .../test/ReceiveMarkPassingDataTest.java | 3 +- .../domain/test/ReceiveTrackingDataTest.java | 9 +- .../sailing/domain/test/TrackBasedTest.java | 4 +- ...nicodeCharactersInCompetitorNamesTest.java | 3 +- .../com/sap/sailing/domain/test/WindTest.java | 4 +- .../domain/test/mock/MockedTrackedRace.java | 36 ++----- ...ockedTrackedRaceWithStartTimeAndRanks.java | 16 +--- .../domain/tractracadapter/DomainFactory.java | 22 ++--- .../impl/DomainFactoryImpl.java | 31 +++--- .../impl/RaceCourseReceiver.java | 9 +- ...aceTrackingConnectivityParametersImpl.java | 9 +- .../impl/TracTracRaceTrackerImpl.java | 19 ++-- .../domain/tracking/DynamicTrackedRace.java | 5 +- .../tracking/DynamicTrackedRegatta.java | 3 +- .../sailing/domain/tracking/TrackedRace.java | 16 +--- .../domain/tracking/TrackedRegatta.java | 5 +- .../tracking/impl/DynamicTrackedRaceImpl.java | 33 +------ .../impl/DynamicTrackedRegattaImpl.java | 9 +- .../domain/tracking/impl/TrackedRaceImpl.java | 70 ++------------ .../tracking/impl/TrackedRegattaImpl.java | 5 +- .../gwt/ui/server/SailingServiceImpl.java | 7 +- .../TestStoringAndRetrievingRaceLogsTest.java | 5 +- ...estStoringAndRetrievingWindTracksTest.java | 9 +- .../sailing/server/gateway/impl/AdminApp.java | 28 +----- .../rc/ModifyRaceLogJsonExportServlet.java | 2 +- .../test/TrackRaceReplicationTest.java | 6 +- .../TrackedRaceContentsReplicationTest.java | 10 +- .../server/test/RaceTrackerStartStopTest.java | 7 +- .../sailing/server/test/RaceTrackerTest.java | 10 +- .../sailing/server/RacingEventService.java | 18 ++-- .../server/impl/RacingEventServiceImpl.java | 34 +++---- .../CreateTrackedRace.java | 19 +--- .../RecordRaceLogEvent.java | 5 +- 47 files changed, 195 insertions(+), 461 deletions(-) diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/EndToEndListeningStoreAndFowardTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/EndToEndListeningStoreAndFowardTest.java index 7ce8ba84ae1..9c916ff2f7a 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/EndToEndListeningStoreAndFowardTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/EndToEndListeningStoreAndFowardTest.java @@ -22,13 +22,12 @@ import org.junit.Test; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; -import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Competitor; +import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.swisstimingadapter.MessageType; import com.sap.sailing.domain.swisstimingadapter.SailMasterConnector; import com.sap.sailing.domain.swisstimingadapter.SailMasterTransceiver; @@ -65,7 +64,6 @@ public class EndToEndListeningStoreAndFowardTest { private SwissTimingFactory swissTimingFactory; private EmptyWindStore emptyWindStore; - private EmptyRaceLogStore emptyRaceLogStore; private RacingEventService racingEventService; private List raceHandles; @@ -85,7 +83,6 @@ public class EndToEndListeningStoreAndFowardTest { sendingStream = sendingSocket.getOutputStream(); swissTimingFactory = SwissTimingFactory.INSTANCE; emptyWindStore = EmptyWindStore.INSTANCE; - emptyRaceLogStore = EmptyRaceLogStore.INSTANCE; transceiver = swissTimingFactory.createSailMasterTransceiver(); DBCollection lastMessageCountCollection = db.getCollection(CollectionNames.LAST_MESSAGE_COUNT.name()); lastMessageCountCollection.update(new BasicDBObject(), @@ -339,7 +336,7 @@ public class EndToEndListeningStoreAndFowardTest { for (String raceToTrack : racesToTrack) { RacesHandle raceHandle = racingEventService.addSwissTimingRace(/* regattaToAddTo */ null /* use a default regatta */, raceToTrack, "localhost", /* canSendRequests */ - CLIENT_PORT, false, emptyWindStore, -1, emptyRaceLogStore); + CLIENT_PORT, false, emptyWindStore, -1); raceHandles.add(raceHandle); if (connector == null) { connector = racingEventService.getSwissTimingFactory().getOrCreateSailMasterConnector("localhost", diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/DomainFactory.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/DomainFactory.java index b853ec57ff6..f6327ec4822 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/DomainFactory.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/DomainFactory.java @@ -11,7 +11,6 @@ import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.swisstimingadapter.impl.DomainFactoryImpl; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.MarkPassing; @@ -50,7 +49,7 @@ public interface DomainFactory { RaceTrackingConnectivityParameters createTrackingConnectivityParameters(String hostname, int port, String raceID, boolean canSendRequests, long delayToLiveInMillis, - SwissTimingFactory swissTimingFactory, DomainFactory domainFactory, WindStore windStore, RaceLogStore raceLogStore, + SwissTimingFactory swissTimingFactory, DomainFactory domainFactory, WindStore windStore, RaceSpecificMessageLoader messageLoader); BoatClass getOrCreateBoatClassFromRaceID(String raceID); diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SwissTimingFactory.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SwissTimingFactory.java index 76dee37bc54..7705e87a902 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SwissTimingFactory.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SwissTimingFactory.java @@ -6,7 +6,6 @@ import java.text.ParseException; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.swisstimingadapter.impl.SwissTimingFactoryImpl; import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; @@ -52,11 +51,11 @@ public interface SwissTimingFactory { SwissTimingConfiguration createSwissTimingConfiguration(String name, String hostname, int port, boolean canSendRequests); - SwissTimingRaceTracker createRaceTracker(String raceID, String hostname, int port, boolean canSendRequests, long delayToLiveInMillis, WindStore windStore, RaceSpecificMessageLoader messageLoader, DomainFactory domainFactory, TrackedRegattaRegistry trackedRegattaRegistry, RaceLogStore raceLogStore) throws InterruptedException, UnknownHostException, IOException, ParseException; + SwissTimingRaceTracker createRaceTracker(String raceID, String hostname, int port, boolean canSendRequests, long delayToLiveInMillis, WindStore windStore, RaceSpecificMessageLoader messageLoader, DomainFactory domainFactory, TrackedRegattaRegistry trackedRegattaRegistry) throws InterruptedException, UnknownHostException, IOException, ParseException; RaceTracker createRaceTracker(Regatta regatta, String raceID, String hostname, int port, boolean canSendRequests, long delayToLiveInMillis, WindStore windStore, RaceSpecificMessageLoader messageLoader, DomainFactory domainFactory, - TrackedRegattaRegistry trackedRegattaRegistry, RaceLogStore raceLogStore) throws UnknownHostException, InterruptedException, + TrackedRegattaRegistry trackedRegattaRegistry) throws UnknownHostException, InterruptedException, IOException, ParseException; Race createRace(String raceId, String description, TimePoint startTime); diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java index 608ce695a38..4833fe1a2c4 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java @@ -30,7 +30,6 @@ import com.sap.sailing.domain.common.ScoringSchemeType; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.swisstimingadapter.Course; import com.sap.sailing.domain.swisstimingadapter.DomainFactory; import com.sap.sailing.domain.swisstimingadapter.Fix; @@ -308,10 +307,10 @@ public class DomainFactoryImpl implements DomainFactory { @Override public RaceTrackingConnectivityParameters createTrackingConnectivityParameters(String hostname, int port, String raceID, boolean canSendRequests, long delayToLiveInMillis, - SwissTimingFactory swissTimingFactory, DomainFactory domainFactory, WindStore windStore, RaceLogStore raceLogStore, + SwissTimingFactory swissTimingFactory, DomainFactory domainFactory, WindStore windStore, RaceSpecificMessageLoader messageLoader) { return new SwissTimingTrackingConnectivityParameters(hostname, port, raceID, canSendRequests, delayToLiveInMillis, - swissTimingFactory, domainFactory, windStore, raceLogStore, messageLoader); + swissTimingFactory, domainFactory, windStore, messageLoader); } } diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingFactoryImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingFactoryImpl.java index 164e5ff6a78..82cacd70241 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingFactoryImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingFactoryImpl.java @@ -9,7 +9,6 @@ import java.util.Map; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.Util.Triple; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.swisstimingadapter.DomainFactory; import com.sap.sailing.domain.swisstimingadapter.Race; import com.sap.sailing.domain.swisstimingadapter.RaceSpecificMessageLoader; @@ -81,20 +80,19 @@ public class SwissTimingFactoryImpl implements SwissTimingFactory { @Override public SwissTimingRaceTracker createRaceTracker(String raceID, String hostname, int port, boolean canSendRequests, long delayToLiveInMillis, WindStore windStore, RaceSpecificMessageLoader messageLoader, DomainFactory domainFactory, - TrackedRegattaRegistry trackedRegattaRegistry, RaceLogStore raceLogStore) throws InterruptedException, UnknownHostException, IOException, + TrackedRegattaRegistry trackedRegattaRegistry) throws InterruptedException, UnknownHostException, IOException, ParseException { return new SwissTimingRaceTrackerImpl(raceID, hostname, port, windStore, domainFactory, this, messageLoader, - trackedRegattaRegistry, canSendRequests, delayToLiveInMillis, raceLogStore); + trackedRegattaRegistry, canSendRequests, delayToLiveInMillis); } @Override public RaceTracker createRaceTracker(Regatta regatta, String raceID, String hostname, int port, boolean canSendRequests, long delayToLiveInMillis, WindStore windStore, RaceSpecificMessageLoader messageLoader, - DomainFactory domainFactory, TrackedRegattaRegistry trackedRegattaRegistry, - RaceLogStore raceLogStore) throws UnknownHostException, + DomainFactory domainFactory, TrackedRegattaRegistry trackedRegattaRegistry) throws UnknownHostException, InterruptedException, IOException, ParseException { return new SwissTimingRaceTrackerImpl(regatta, raceID, hostname, port, windStore, domainFactory, this, - messageLoader, trackedRegattaRegistry, canSendRequests, delayToLiveInMillis, raceLogStore); + messageLoader, trackedRegattaRegistry, canSendRequests, delayToLiveInMillis); } @Override diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java index 963582273df..23fbaac7ebb 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java @@ -24,7 +24,6 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.TrackedRaceStatusEnum; import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.domain.common.impl.Util.Triple; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.swisstimingadapter.Course; import com.sap.sailing.domain.swisstimingadapter.DomainFactory; import com.sap.sailing.domain.swisstimingadapter.Fix; @@ -63,7 +62,6 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen private final Triple id; private final Regatta regatta; private final WindStore windStore; - private final RaceLogStore raceLogStore; private RaceDefinition race; private Course course; @@ -76,17 +74,15 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen protected SwissTimingRaceTrackerImpl(String raceID, String hostname, int port, WindStore windStore, DomainFactory domainFactory, SwissTimingFactory factory, RaceSpecificMessageLoader messageLoader, - TrackedRegattaRegistry trackedRegattaRegistry, boolean canSendRequests, long delayToLiveInMillis, - RaceLogStore raceLogStore) throws InterruptedException, + TrackedRegattaRegistry trackedRegattaRegistry, boolean canSendRequests, long delayToLiveInMillis) throws InterruptedException, UnknownHostException, IOException, ParseException { this(domainFactory.getOrCreateDefaultRegatta(raceID, trackedRegattaRegistry), raceID, hostname, port, windStore, domainFactory, factory, - messageLoader, trackedRegattaRegistry, canSendRequests, delayToLiveInMillis, raceLogStore); + messageLoader, trackedRegattaRegistry, canSendRequests, delayToLiveInMillis); } protected SwissTimingRaceTrackerImpl(Regatta regatta, String raceID, String hostname, int port, WindStore windStore, DomainFactory domainFactory, SwissTimingFactory factory, RaceSpecificMessageLoader messageLoader, - TrackedRegattaRegistry trackedRegattaRegistry, boolean canSendRequests, long delayToLiveInMillis, - RaceLogStore raceLogStore) throws InterruptedException, + TrackedRegattaRegistry trackedRegattaRegistry, boolean canSendRequests, long delayToLiveInMillis) throws InterruptedException, UnknownHostException, IOException, ParseException { super(); this.regatta = regatta; @@ -95,7 +91,6 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen this.raceID = raceID; this.messageLoader = messageLoader; this.windStore = windStore; - this.raceLogStore = raceLogStore; this.id = createID(raceID, hostname, port); connector.addSailMasterListener(raceID, this); trackedRegatta = trackedRegattaRegistry.getOrCreateTrackedRegatta(regatta); @@ -305,7 +300,7 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen // we already know our single RaceDefinition assert SwissTimingRaceTrackerImpl.this.race == race; } - }, raceLogStore); + }); logger.info("Created SwissTiming RaceDefinition and TrackedRace for "+race.getName()); } diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingTrackingConnectivityParameters.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingTrackingConnectivityParameters.java index ca92804f417..ad7e0ca7655 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingTrackingConnectivityParameters.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingTrackingConnectivityParameters.java @@ -1,7 +1,6 @@ package com.sap.sailing.domain.swisstimingadapter.impl; import com.sap.sailing.domain.base.Regatta; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.swisstimingadapter.DomainFactory; import com.sap.sailing.domain.swisstimingadapter.RaceSpecificMessageLoader; import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; @@ -18,12 +17,11 @@ public class SwissTimingTrackingConnectivityParameters implements RaceTrackingCo private final SwissTimingFactory swissTimingFactory; private final DomainFactory domainFactory; private final WindStore windStore; - private final RaceLogStore raceLogStore; private final RaceSpecificMessageLoader messageLoader; private final long delayToLiveInMillis; public SwissTimingTrackingConnectivityParameters(String hostname, int port, String raceID, boolean canSendRequests, long delayToLiveInMillis, - SwissTimingFactory swissTimingFactory, DomainFactory domainFactory, WindStore windStore, RaceLogStore raceLogStore, + SwissTimingFactory swissTimingFactory, DomainFactory domainFactory, WindStore windStore, RaceSpecificMessageLoader messageLoader) { super(); this.hostname = hostname; @@ -34,21 +32,20 @@ public class SwissTimingTrackingConnectivityParameters implements RaceTrackingCo this.swissTimingFactory = swissTimingFactory; this.domainFactory = domainFactory; this.windStore = windStore; - this.raceLogStore = raceLogStore; this.messageLoader = messageLoader; } @Override public RaceTracker createRaceTracker(TrackedRegattaRegistry trackedRegattaRegistry) throws Exception { return swissTimingFactory.createRaceTracker(raceID, hostname, port, canSendRequests, delayToLiveInMillis, windStore, messageLoader, - domainFactory, trackedRegattaRegistry, raceLogStore); + domainFactory, trackedRegattaRegistry); } @Override public RaceTracker createRaceTracker(Regatta regatta, TrackedRegattaRegistry trackedRegattaRegistry) throws Exception { return swissTimingFactory.createRaceTracker(regatta, raceID, hostname, port, canSendRequests, delayToLiveInMillis, windStore, messageLoader, - domainFactory, trackedRegattaRegistry, raceLogStore); + domainFactory, trackedRegattaRegistry); } @Override diff --git a/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java b/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java index 301e404ae31..e093e1435d8 100644 --- a/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java +++ b/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java @@ -35,7 +35,6 @@ import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.swisstimingadapter.DomainFactory; import com.sap.sailing.domain.swisstimingreplayadapter.CompetitorStatus; import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayListener; @@ -309,7 +308,7 @@ public class SwissTimingReplayToDomainAdapter extends SwissTimingReplayAdapter { createTrackedRace(race, EmptyWindStore.INSTANCE, TrackedRace.DEFAULT_LIVE_DELAY_IN_MILLISECONDS, WindTrack.DEFAULT_MILLISECONDS_OVER_WHICH_TO_AVERAGE_WIND, /* time over which to average speed: */ race.getBoatClass().getApproximateManeuverDurationInMilliseconds(), - /* raceDefinitionSetToUpdate */ null, EmptyRaceLogStore.INSTANCE); + /* raceDefinitionSetToUpdate */ null); trackedRace.setStatus(new TrackedRaceStatusImpl(TrackedRaceStatusEnum.LOADING, 0)); TimePoint bestStartTimeKnownSoFar = bestStartTimePerRaceID.get(currentRaceID); if (bestStartTimeKnownSoFar != null) { diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java index 0110b2fe52e..d0af98bb745 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java @@ -25,7 +25,6 @@ import com.sap.sailing.domain.base.impl.MarkImpl; import com.sap.sailing.domain.base.impl.RaceDefinitionImpl; import com.sap.sailing.domain.base.impl.WaypointImpl; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedLeg; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; @@ -244,8 +243,7 @@ public class CourseTest { hasso), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 3000, /* millisecondsOverWhichToAverageWind */ 30000, - /* millisecondsOverWhichToAverageSpeed */ 8000, - EmptyRaceLogStore.INSTANCE); + /* millisecondsOverWhichToAverageSpeed */ 8000); assertLegStructure(course, trackedRace); course.removeWaypoint(0); assertLegStructure(course, trackedRace); @@ -275,8 +273,7 @@ public class CourseTest { hasso), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 3000, /* millisecondsOverWhichToAverageWind */ 30000, - /* millisecondsOverWhichToAverageSpeed */ 8000, - EmptyRaceLogStore.INSTANCE); + /* millisecondsOverWhichToAverageSpeed */ 8000); assertLegStructure(course, trackedRace); final WaypointImpl wp1_5 = new WaypointImpl(new MarkImpl("Test Mark 1.5")); assertWaypointIndexes(course); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateTest.java index 00e2a6b54cb..52427b9e1f1 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateTest.java @@ -31,7 +31,6 @@ import com.sap.sailing.domain.base.impl.MarkImpl; import com.sap.sailing.domain.base.impl.WaypointImpl; import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.domain.common.impl.Util.Triple; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.TrackedLeg; @@ -78,8 +77,7 @@ public class CourseUpdateTest extends AbstractTracTracLiveTest { @Override public void addRaceDefinition(RaceDefinition race) {} }, /* delayToLiveInMillis */ 0l, - /* millisecondsOverWhichToAverageWind */ 30000, /* simulator */ null, - EmptyRaceLogStore.INSTANCE) { + /* millisecondsOverWhichToAverageWind */ 30000, /* simulator */ null) { @Override protected void handleEvent(Triple event) { super.handleEvent(event); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MultipleClassesInRegattaTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MultipleClassesInRegattaTest.java index b26406bc462..aeb1f24f2b6 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MultipleClassesInRegattaTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MultipleClassesInRegattaTest.java @@ -15,7 +15,6 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; import com.sap.sailing.domain.tractracadapter.DomainFactory; import com.sap.sailing.domain.tractracadapter.TracTracConnectionConstants; @@ -51,28 +50,25 @@ public class MultipleClassesInRegattaTest { httpAndHost+"/events/event_20110505_SailingTea/clientparams.php?event=event_20110505_SailingTea&race=cce678c8-97e6-11e0-9aed-406186cbf87c"), new URI(liveURI), new URI(storedURI), /* startOfTracking */ null, /* endOfTracking */ null, /* delayToLiveInMillis */ 0l, /* simulateWithStartTimeNow */ false, - EmptyWindStore.INSTANCE, new DummyTrackedRegattaRegistry(), EmptyRaceLogStore.INSTANCE); + EmptyWindStore.INSTANCE, new DummyTrackedRegattaRegistry()); kiwotest2 = domainFactory .createRaceTracker( new URL( httpAndHost+"/events/event_20110505_SailingTea/clientparams.php?event=event_20110505_SailingTea&race=11290bd6-97e7-11e0-9aed-406186cbf87c"), new URI(liveURI), new URI(storedURI), - /* startOfTracking */ null, /* endOfTracking */ null, /* delayToLiveInMillis */ 0l, /* simulateWithStartTimeNow */ false, EmptyWindStore.INSTANCE, new DummyTrackedRegattaRegistry(), - EmptyRaceLogStore.INSTANCE); + /* startOfTracking */ null, /* endOfTracking */ null, /* delayToLiveInMillis */ 0l, /* simulateWithStartTimeNow */ false, EmptyWindStore.INSTANCE, new DummyTrackedRegattaRegistry()); kiwotest3 = domainFactory .createRaceTracker( new URL( httpAndHost+"/events/event_20110505_SailingTea/clientparams.php?event=event_20110505_SailingTea&race=39635b24-97e7-11e0-9aed-406186cbf87c"), new URI(liveURI), new URI(storedURI), - /* startOfTracking */ null, /* endOfTracking */ null, /* delayToLiveInMillis */ 0l, /* simulateWithStartTimeNow */ false, EmptyWindStore.INSTANCE, new DummyTrackedRegattaRegistry(), - EmptyRaceLogStore.INSTANCE); + /* startOfTracking */ null, /* endOfTracking */ null, /* delayToLiveInMillis */ 0l, /* simulateWithStartTimeNow */ false, EmptyWindStore.INSTANCE, new DummyTrackedRegattaRegistry()); weym470may112014_2 = domainFactory .createRaceTracker( new URL( httpAndHost+"/events/event_20110505_SailingTea/clientparams.php?event=event_20110505_SailingTea&race=04498426-7dfd-11e0-8236-406186cbf87c"), new URI(liveURI), new URI(storedURI), - /* startOfTracking */ null, /* endOfTracking */ null, /* delayToLiveInMillis */ 0l, /* simulateWithStartTimeNow */ false, EmptyWindStore.INSTANCE, new DummyTrackedRegattaRegistry(), - EmptyRaceLogStore.INSTANCE); + /* startOfTracking */ null, /* endOfTracking */ null, /* delayToLiveInMillis */ 0l, /* simulateWithStartTimeNow */ false, EmptyWindStore.INSTANCE, new DummyTrackedRegattaRegistry()); assertEquals("STG", kiwotest1.getRegatta().getBoatClass().getName()); assertEquals("505", kiwotest2.getRegatta().getBoatClass().getName()); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OnlineTracTracBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OnlineTracTracBasedTest.java index 8e5e7475381..16aa16a6e9f 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OnlineTracTracBasedTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OnlineTracTracBasedTest.java @@ -17,19 +17,18 @@ import java.util.regex.Pattern; import org.junit.Before; -import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.Regatta; +import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreePosition; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; -import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.DynamicTrackedRace; +import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; import com.sap.sailing.domain.tracking.impl.GPSFixImpl; @@ -90,7 +89,7 @@ public abstract class OnlineTracTracBasedTest extends AbstractTracTracLiveTest { throws InterruptedException { setStoredDataLoaded(false); ArrayList receivers = new ArrayList(); - for (Receiver r : domainFactory.getUpdateReceivers(trackedRegatta, getTracTracEvent(), EmptyWindStore.INSTANCE, EmptyRaceLogStore.INSTANCE, + for (Receiver r : domainFactory.getUpdateReceivers(trackedRegatta, getTracTracEvent(), EmptyWindStore.INSTANCE, /* startOfTracking */null, /* endOfTracking */null, /* delayToLiveInMillis */0l, /* simulator */ null, new DynamicRaceDefinitionSet() { @Override diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceLogEventsOnConstructedTrackedRaceTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceLogEventsOnConstructedTrackedRaceTest.java index aac27243303..a0ddc0cbe28 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceLogEventsOnConstructedTrackedRaceTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceLogEventsOnConstructedTrackedRaceTest.java @@ -1,25 +1,15 @@ package com.sap.sailing.domain.test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - import java.util.ArrayList; import java.util.GregorianCalendar; import java.util.List; import org.junit.Before; -import org.junit.Test; +import org.junit.Ignore; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.impl.CompetitorImpl; import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.racelog.Flags; -import com.sap.sailing.domain.racelog.RaceLogEventFactory; -import com.sap.sailing.domain.racelog.RaceLog; -import com.sap.sailing.domain.racelog.RaceLogFlagEvent; -import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent; public class RaceLogEventsOnConstructedTrackedRaceTest extends TrackBasedTest { @@ -43,51 +33,51 @@ public class RaceLogEventsOnConstructedTrackedRaceTest extends TrackBasedTest { setTrackedRace(createTestTrackedRace("Kieler Woche", "505 Race 2", "505", competitors, start)); } - @Test + @Ignore public void testRaceLogExists() { - RaceLog track = getTrackedRace().getRaceLog(); - assertNotNull(track); - - track.lockForRead(); - try { - assertEquals(Util.size(track.getRawFixes()), 0); - assertEquals(Util.size(track.getFixes()), 0); - } finally { - track.unlockAfterRead(); - } +// RaceLog track = getTrackedRace().getRaceLog(); +// assertNotNull(track); +// +// track.lockForRead(); +// try { +// assertEquals(Util.size(track.getRawFixes()), 0); +// assertEquals(Util.size(track.getFixes()), 0); +// } finally { +// track.unlockAfterRead(); +// } } - @Test + @Ignore public void testRaceLogInsertSomeEvents() { - RaceLog track = getTrackedRace().getRaceLog(); - assertNotNull(track); - - TimePoint t1 = MillisecondsTimePoint.now(); - TimePoint t2 = new MillisecondsTimePoint(t1.asMillis() - 1000); - TimePoint t3 = new MillisecondsTimePoint(t1.asMillis() - 4000); - TimePoint t4 = new MillisecondsTimePoint(t1.asMillis() - 5000); - TimePoint t5 = new MillisecondsTimePoint(t1.asMillis() - 10000); - - int passId = 0; - RaceLogFlagEvent rcEvent1 = RaceLogEventFactory.INSTANCE.createFlagEvent(t1, passId, Flags.CLASS, Flags.NONE, false); - RaceLogFlagEvent rcEvent2 = RaceLogEventFactory.INSTANCE.createFlagEvent(t2, passId, Flags.PAPA, Flags.NONE, false); - RaceLogFlagEvent rcEvent3 = RaceLogEventFactory.INSTANCE.createFlagEvent(t3, passId, Flags.PAPA, Flags.NONE, true); - RaceLogFlagEvent rcEvent4 = RaceLogEventFactory.INSTANCE.createFlagEvent(t4, passId, Flags.CLASS, Flags.NONE, true); - RaceLogStartTimeEvent rcEvent5 = RaceLogEventFactory.INSTANCE.createStartTimeEvent(t5, passId, t1); - - getTrackedRace().recordRaceLogEvent(rcEvent1); - getTrackedRace().recordRaceLogEvent(rcEvent2); - getTrackedRace().recordRaceLogEvent(rcEvent3); - getTrackedRace().recordRaceLogEvent(rcEvent4); - getTrackedRace().recordRaceLogEvent(rcEvent5); - - track.lockForRead(); - try { - assertEquals(Util.size(track.getRawFixes()), 5); - assertEquals(Util.size(track.getFixes()), 5); - } finally { - track.unlockAfterRead(); - } +// RaceLog track = getTrackedRace().getRaceLog(); +// assertNotNull(track); +// +// TimePoint t1 = MillisecondsTimePoint.now(); +// TimePoint t2 = new MillisecondsTimePoint(t1.asMillis() - 1000); +// TimePoint t3 = new MillisecondsTimePoint(t1.asMillis() - 4000); +// TimePoint t4 = new MillisecondsTimePoint(t1.asMillis() - 5000); +// TimePoint t5 = new MillisecondsTimePoint(t1.asMillis() - 10000); +// +// int passId = 0; +// RaceLogFlagEvent rcEvent1 = RaceLogEventFactory.INSTANCE.createFlagEvent(t1, passId, Flags.CLASS, Flags.NONE, false); +// RaceLogFlagEvent rcEvent2 = RaceLogEventFactory.INSTANCE.createFlagEvent(t2, passId, Flags.PAPA, Flags.NONE, false); +// RaceLogFlagEvent rcEvent3 = RaceLogEventFactory.INSTANCE.createFlagEvent(t3, passId, Flags.PAPA, Flags.NONE, true); +// RaceLogFlagEvent rcEvent4 = RaceLogEventFactory.INSTANCE.createFlagEvent(t4, passId, Flags.CLASS, Flags.NONE, true); +// RaceLogStartTimeEvent rcEvent5 = RaceLogEventFactory.INSTANCE.createStartTimeEvent(t5, passId, t1); +// +// getTrackedRace().recordRaceLogEvent(rcEvent1); +// getTrackedRace().recordRaceLogEvent(rcEvent2); +// getTrackedRace().recordRaceLogEvent(rcEvent3); +// getTrackedRace().recordRaceLogEvent(rcEvent4); +// getTrackedRace().recordRaceLogEvent(rcEvent5); +// +// track.lockForRead(); +// try { +// assertEquals(Util.size(track.getRawFixes()), 5); +// assertEquals(Util.size(track.getFixes()), 5); +// } finally { +// track.unlockAfterRead(); +// } } } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java index f3b8f4a7ce5..541ae427f18 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java @@ -40,7 +40,6 @@ import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.WindSourceImpl; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedLeg; @@ -102,8 +101,7 @@ public class ReachingLegTest extends TrackBasedTest { DynamicTrackedRace trackedRace = new DynamicTrackedRaceImpl(trackedRegatta, race, EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 0, /* millisecondsOverWhichToAverageWind */ 30000, /* millisecondsOverWhichToAverageSpeed */ 30000, - /* delay for wind estimation cache invalidation */ 0, - EmptyRaceLogStore.INSTANCE); + /* delay for wind estimation cache invalidation */ 0); // in this simplified artificial course, the top mark is exactly north of the right leeward gate, the offset // mark is slightly west of the top mark; wind from the north makes the leg from top to offset a reaching leg Position leftPosition = new DegreePosition(0, -0.00001); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReceiveMarkPassingDataTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReceiveMarkPassingDataTest.java index af6303d9238..baacc1b9b02 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReceiveMarkPassingDataTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReceiveMarkPassingDataTest.java @@ -15,7 +15,6 @@ import org.junit.Test; import com.maptrack.client.io.TypeController; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Waypoint; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl; @@ -96,7 +95,7 @@ public class ReceiveMarkPassingDataTest extends AbstractTracTracLiveTest { receivers.add(receiver); for (Receiver r : DomainFactory.INSTANCE.getUpdateReceivers( new DynamicTrackedRegattaImpl(DomainFactory.INSTANCE.getOrCreateDefaultRegatta(getTracTracEvent(), /* trackedRegattaRegistry */ null)), - getTracTracEvent(), EmptyWindStore.INSTANCE, EmptyRaceLogStore.INSTANCE, /* startOfTracking */ null, /* endOfTracking */ null, /* delayToLiveInMillis */ 0l, + getTracTracEvent(), EmptyWindStore.INSTANCE, /* startOfTracking */ null, /* endOfTracking */ null, /* delayToLiveInMillis */ 0l, /* simulator */ null, new DynamicRaceDefinitionSet() { @Override public void addRaceDefinition(RaceDefinition race) {} diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReceiveTrackingDataTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReceiveTrackingDataTest.java index fd19410d418..6f31b4f72ff 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReceiveTrackingDataTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReceiveTrackingDataTest.java @@ -12,12 +12,11 @@ import org.junit.Test; import com.maptrack.client.io.TypeController; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.RaceDefinition; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; +import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; -import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.DynamicTrackedRace; +import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.RaceChangeListener; @@ -84,7 +83,7 @@ public class ReceiveTrackingDataTest extends AbstractTracTracLiveTest { @Override public void addRaceDefinition(RaceDefinition race) { } - }, /* trackedRegattaRegistry */ null, EmptyRaceLogStore.INSTANCE)) { + }, /* trackedRegattaRegistry */ null)) { for (TypeController raceListener : receiver.getTypeControllersAndStart()) { listeners.add(raceListener); } @@ -95,7 +94,7 @@ public class ReceiveTrackingDataTest extends AbstractTracTracLiveTest { @Override public void addRaceDefinition(RaceDefinition race) { } - }, /* trackedRegattaRegistry */ null, EmptyRaceLogStore.INSTANCE)); + }, /* trackedRegattaRegistry */ null)); } @Test diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java index b0d4d82aceb..9c5b93e78be 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java @@ -33,7 +33,6 @@ import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.WindSourceImpl; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedRegatta; @@ -112,8 +111,7 @@ public abstract class TrackBasedTest { DynamicTrackedRace trackedRace = new DynamicTrackedRaceImpl(trackedRegatta, race, EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 0, /* millisecondsOverWhichToAverageWind */ 30000, /* millisecondsOverWhichToAverageSpeed */ 30000, - /* delay for wind estimation cache invalidation */ 0, - EmptyRaceLogStore.INSTANCE); + /* delay for wind estimation cache invalidation */ 0); // in this simplified artificial course, the top mark is exactly north of the right leeward gate DegreePosition topPosition = new DegreePosition(54.48, 10.24); TimePoint afterTheRace = new MillisecondsTimePoint(timePointForFixes.asMillis() + 36000000); // 10h after the fix time diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UnicodeCharactersInCompetitorNamesTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UnicodeCharactersInCompetitorNamesTest.java index 78df6a962c3..0b8ecf5cc7c 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UnicodeCharactersInCompetitorNamesTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UnicodeCharactersInCompetitorNamesTest.java @@ -14,7 +14,6 @@ import org.junit.Before; import org.junit.Test; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; import com.sap.sailing.domain.tractracadapter.DomainFactory; import com.sap.sailing.domain.tractracadapter.TracTracConnectionConstants; @@ -55,7 +54,7 @@ public class UnicodeCharactersInCompetitorNamesTest { + TracTracConnectionConstants.PORT_STORED), /* startOfTracking */null, /* endOfTracking */null, /* delayToLiveInMillis */0l, /* simulateWithStartTimeNow */ false, EmptyWindStore.INSTANCE, - new DummyTrackedRegattaRegistry(), EmptyRaceLogStore.INSTANCE); + new DummyTrackedRegattaRegistry()); Iterable competitors = fourtyninerYellow_2.getRacesHandle().getRaces().iterator().next() .getCompetitors(); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java index c5bcfa4ce14..2cd533e0d24 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java @@ -36,7 +36,6 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.Wind; @@ -269,8 +268,7 @@ public class WindTest { boatClass, Collections.singleton(competitor)), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 1000, /* millisecondsOverWhichToAverageWind */ 30000, - /* millisecondsOverWhichToAverageSpeed */ 30000, - EmptyRaceLogStore.INSTANCE); + /* millisecondsOverWhichToAverageSpeed */ 30000); TimePoint start = MillisecondsTimePoint.now(); TimePoint topMarkRounding = start.plus(30000); TimePoint finish = topMarkRounding.plus(30000); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java index 07358226e76..43626fb6a1b 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java @@ -5,33 +5,31 @@ import java.util.List; import java.util.NavigableSet; import com.sap.sailing.domain.base.BoatClass; -import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Competitor; +import com.sap.sailing.domain.base.Leg; +import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceColumnListener; +import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.RegattaListener; -import com.sap.sailing.domain.base.Leg; -import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Series; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.Distance; -import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; -import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.Position; +import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; +import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.Tack; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.ScoringScheme; -import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLog; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; -import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.DynamicTrackedRace; +import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.Maneuver; @@ -453,7 +451,7 @@ public class MockedTrackedRace implements DynamicTrackedRace { @Override public DynamicTrackedRace createTrackedRace(RaceDefinition raceDefinition, WindStore windStore, long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, - DynamicRaceDefinitionSet raceDefinitionSetToUpdate, RaceLogStore raceLogStore) { + DynamicRaceDefinitionSet raceDefinitionSetToUpdate) { // TODO Auto-generated method stub return null; } @@ -706,12 +704,6 @@ public class MockedTrackedRace implements DynamicTrackedRace { return null; } - @Override - public void recordRaceLogEvent(RaceLogEvent event) { - // TODO Auto-generated method stub - - } - @Override public void lockForRead(Iterable markPassings) { // TODO Auto-generated method stub @@ -723,20 +715,8 @@ public class MockedTrackedRace implements DynamicTrackedRace { // TODO Auto-generated method stub } - @Override - public void waitUntilRaceLogLoadingComplete() - throws InterruptedException { - // TODO Auto-generated method stub - - } - @Override - public RaceLogStore getRaceLogStore() { - // TODO Auto-generated method stub - return null; - } - - @Override + @Override public TrackedRaceStatus getStatus() { // TODO Auto-generated method stub return null; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java index 3eaaaacea7a..aa2517dfdf2 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java @@ -5,9 +5,9 @@ import java.util.Collections; import java.util.List; import java.util.NavigableSet; -import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Leg; +import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.base.impl.CourseImpl; @@ -22,7 +22,6 @@ import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.RaceLog; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.GPSFixTrack; @@ -471,19 +470,6 @@ public class MockedTrackedRaceWithStartTimeAndRanks implements TrackedRace { // TODO Auto-generated method stub } - @Override - public void waitUntilRaceLogLoadingComplete() - throws InterruptedException { - // TODO Auto-generated method stub - - } - - @Override - public RaceLogStore getRaceLogStore() { - // TODO Auto-generated method stub - return null; - } - @Override public TrackedRaceStatus getStatus() { // TODO Auto-generated method stub diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/DomainFactory.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/DomainFactory.java index 4ac6315f968..3d8543d3e58 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/DomainFactory.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/DomainFactory.java @@ -12,8 +12,8 @@ import java.util.List; import com.maptrack.client.io.TypeController; import com.sap.sailing.domain.base.BoatClass; -import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Course; +import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Nationality; import com.sap.sailing.domain.base.Person; import com.sap.sailing.domain.base.RaceDefinition; @@ -22,7 +22,6 @@ import com.sap.sailing.domain.base.Team; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; @@ -123,23 +122,19 @@ public interface DomainFactory { * Provides the capability to obtain the {@link WindTrack}s for the different wind sources. A trivial * implementation is {@link EmptyWindStore} which simply provides new, empty tracks. This is always * available but loses track of the wind, e.g., during server restarts. - * @param raceLogStore - * Provides the capability to obtain the {@link RaceLog} for the race. A trivial - * implementation is {@link EmptyRaceLogStore} which simply provides new, empty tracks. This is always - * available but loses track of race log events, e.g., during server restarts. */ TracTracRaceTracker createRaceTracker(URL paramURL, URI liveURI, URI storedURI, TimePoint startOfTracking, TimePoint endOfTracking, long delayToLiveInMillis, boolean simulateWithStartTimeNow, WindStore windStore, - TrackedRegattaRegistry trackedRegattaRegistry, RaceLogStore raceLogStore) throws MalformedURLException, FileNotFoundException, + TrackedRegattaRegistry trackedRegattaRegistry) throws MalformedURLException, FileNotFoundException, URISyntaxException; /** - * Same as {@link #createRaceTracker(URL, URI, URI, TimePoint, TimePoint, WindStore, TrackedRegattaRegistry, RaceLogStore)}, only that + * Same as {@link #createRaceTracker(URL, URI, URI, TimePoint, TimePoint, WindStore, TrackedRegattaRegistry)}, only that * a predefined {@link Regatta} is used to hold the resulting races. */ RaceTracker createRaceTracker(Regatta regatta, URL paramURL, URI liveURI, URI storedURI, TimePoint startOfTracking, TimePoint endOfTracking, long delayToLiveInMillis, boolean simulateWithStartTimeNow, WindStore windStore, - TrackedRegattaRegistry trackedRegattaRegistry, RaceLogStore raceLogStore) throws MalformedURLException, FileNotFoundException, + TrackedRegattaRegistry trackedRegattaRegistry) throws MalformedURLException, FileNotFoundException, URISyntaxException; BoatClass getOrCreateBoatClass(CompetitorClass competitorClass); @@ -170,7 +165,7 @@ public interface DomainFactory { Iterable getUpdateReceivers(DynamicTrackedRegatta trackedRegatta, Event tractracEvent, TimePoint startOfTracking, TimePoint endOfTracking, long delayToLiveInMillis, Simulator simulator, WindStore windStore, DynamicRaceDefinitionSet raceDefinitionSetToUpdate, - TrackedRegattaRegistry trackedRegattaRegistry, RaceLogStore raceLogStore); + TrackedRegattaRegistry trackedRegattaRegistry); /** * Creates a {@link RaceDefinition} from a TracTrac {@link Race} and a domain {@link Course} definition. The @@ -191,7 +186,7 @@ public interface DomainFactory { */ DynamicTrackedRace getOrCreateRaceDefinitionAndTrackedRace(TrackedRegatta trackedRegatta, Race race, Course course, WindStore windStore, long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, - DynamicRaceDefinitionSet raceDefinitionSetToUpdate, RaceLogStore raceLogStore); + DynamicRaceDefinitionSet raceDefinitionSetToUpdate); /** * The record may be for a single mark or a gate. If for a gate, the @@ -204,7 +199,7 @@ public interface DomainFactory { MarkPassing createMarkPassing(TimePoint timePoint, Waypoint passed, com.sap.sailing.domain.base.Competitor competitor); - Iterable getUpdateReceivers(DynamicTrackedRegatta trackedRegatta, Event tractracEvent, WindStore windStore, RaceLogStore raceLogStore, + Iterable getUpdateReceivers(DynamicTrackedRegatta trackedRegatta, Event tractracEvent, WindStore windStore, TimePoint startOfTracking, TimePoint endOfTracking, long delayToLiveInMillis, Simulator simulator, DynamicRaceDefinitionSet raceDefinitionSetToUpdate, TrackedRegattaRegistry trackedRegattaRegistry, ReceiverType... types); JSONService parseJSONURL(URL jsonURL) throws IOException, ParseException, org.json.simple.parser.ParseException, URISyntaxException; @@ -240,8 +235,7 @@ public interface DomainFactory { Pair, BoatClass> getCompetitorsAndDominantBoatClass(Race race); RaceTrackingConnectivityParameters createTrackingConnectivityParameters(URL paramURL, URI liveURI, URI storedURI, - TimePoint startOfTracking, TimePoint endOfTracking, long delayToLiveInMillis, boolean simulateWithStartTimeNow, WindStore windStore, - RaceLogStore raceLogStore); + TimePoint startOfTracking, TimePoint endOfTracking, long delayToLiveInMillis, boolean simulateWithStartTimeNow, WindStore windStore); /** * Removes all knowledge about tractracRace which includes removing it from the race cache, from the * {@link com.sap.sailing.domain.base.Regatta} and, if a {@link TrackedRace} for the corresponding diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java index 31c86625a23..a2860bbdf7e 100644 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java @@ -46,7 +46,6 @@ import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; @@ -349,7 +348,7 @@ public class DomainFactoryImpl implements DomainFactory { @Override public Iterable getUpdateReceivers(DynamicTrackedRegatta trackedRegatta, - com.tractrac.clientmodule.Event tractracEvent, WindStore windStore, RaceLogStore raceLogStore, TimePoint startOfTracking, + com.tractrac.clientmodule.Event tractracEvent, WindStore windStore, TimePoint startOfTracking, TimePoint endOfTracking, long delayToLiveInMillis, Simulator simulator, DynamicRaceDefinitionSet raceDefinitionSetToUpdate, TrackedRegattaRegistry trackedRegattaRegistry, ReceiverType... types) { @@ -360,7 +359,7 @@ public class DomainFactoryImpl implements DomainFactory { result.add(new RaceCourseReceiver( this, trackedRegatta, tractracEvent, windStore, raceDefinitionSetToUpdate, delayToLiveInMillis, - WindTrack.DEFAULT_MILLISECONDS_OVER_WHICH_TO_AVERAGE_WIND, simulator, raceLogStore)); + WindTrack.DEFAULT_MILLISECONDS_OVER_WHICH_TO_AVERAGE_WIND, simulator)); break; case MARKPOSITIONS: result.add(new MarkPositionReceiver( @@ -387,8 +386,8 @@ public class DomainFactoryImpl implements DomainFactory { public Iterable getUpdateReceivers(DynamicTrackedRegatta trackedRegatta, com.tractrac.clientmodule.Event tractracEvent, TimePoint startOfTracking, TimePoint endOfTracking, long delayToLiveInMillis, Simulator simulator, WindStore windStore, - DynamicRaceDefinitionSet raceDefinitionSetToUpdate, TrackedRegattaRegistry trackedRegattaRegistry, RaceLogStore raceLogStore) { - return getUpdateReceivers(trackedRegatta, tractracEvent, windStore, raceLogStore, startOfTracking, endOfTracking, + DynamicRaceDefinitionSet raceDefinitionSetToUpdate, TrackedRegattaRegistry trackedRegattaRegistry) { + return getUpdateReceivers(trackedRegatta, tractracEvent, windStore, startOfTracking, endOfTracking, delayToLiveInMillis, simulator, raceDefinitionSetToUpdate, trackedRegattaRegistry, ReceiverType.RACECOURSE, ReceiverType.MARKPASSINGS, ReceiverType.MARKPOSITIONS, ReceiverType.RACESTARTFINISH, ReceiverType.RAWPOSITIONS); @@ -448,7 +447,7 @@ public class DomainFactoryImpl implements DomainFactory { @Override public DynamicTrackedRace getOrCreateRaceDefinitionAndTrackedRace(TrackedRegatta trackedRegatta, Race race, Course course, WindStore windStore, long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, - DynamicRaceDefinitionSet raceDefinitionSetToUpdate, RaceLogStore raceLogStore) { + DynamicRaceDefinitionSet raceDefinitionSetToUpdate) { synchronized (raceCache) { RaceDefinition raceDefinition = raceCache.get(race); if (raceDefinition == null) { @@ -460,7 +459,7 @@ public class DomainFactoryImpl implements DomainFactory { if (raceDefinition.getBoatClass() == trackedRegatta.getRegatta().getBoatClass()) { trackedRegatta.getRegatta().addRace(raceDefinition); DynamicTrackedRace trackedRace = createTrackedRace(trackedRegatta, raceDefinition, windStore, - delayToLiveInMillis, millisecondsOverWhichToAverageWind, raceDefinitionSetToUpdate, raceLogStore); + delayToLiveInMillis, millisecondsOverWhichToAverageWind, raceDefinitionSetToUpdate); logger.info("Added race "+raceDefinition+" to regatta "+trackedRegatta.getRegatta()); synchronized (raceCache) { raceCache.put(race, raceDefinition); @@ -480,12 +479,11 @@ public class DomainFactoryImpl implements DomainFactory { } private DynamicTrackedRace createTrackedRace(TrackedRegatta trackedRegatta, RaceDefinition race, WindStore windStore, - long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, DynamicRaceDefinitionSet raceDefinitionSetToUpdate, - RaceLogStore raceLogStore) { + long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, DynamicRaceDefinitionSet raceDefinitionSetToUpdate) { return trackedRegatta.createTrackedRace(race, windStore, delayToLiveInMillis, millisecondsOverWhichToAverageWind, /* time over which to average speed: */ race.getBoatClass().getApproximateManeuverDurationInMilliseconds(), - raceDefinitionSetToUpdate, raceLogStore); + raceDefinitionSetToUpdate); } @Override @@ -550,20 +548,19 @@ public class DomainFactoryImpl implements DomainFactory { @Override public TracTracRaceTracker createRaceTracker(URL paramURL, URI liveURI, URI storedURI, TimePoint startOfTracking, TimePoint endOfTracking, long delayToLiveInMillis, boolean simulateWithStartTimeNow, WindStore windStore, - TrackedRegattaRegistry trackedRegattaRegistry, RaceLogStore raceLogStore) throws MalformedURLException, FileNotFoundException, + TrackedRegattaRegistry trackedRegattaRegistry) throws MalformedURLException, FileNotFoundException, URISyntaxException { return new TracTracRaceTrackerImpl(this, paramURL, liveURI, storedURI, startOfTracking, endOfTracking, delayToLiveInMillis, - simulateWithStartTimeNow, windStore, trackedRegattaRegistry, raceLogStore); + simulateWithStartTimeNow, windStore, trackedRegattaRegistry); } @Override public RaceTracker createRaceTracker(Regatta regatta, URL paramURL, URI liveURI, URI storedURI, TimePoint startOfTracking, TimePoint endOfTracking, long delayToLiveInMillis, - boolean simulateWithStartTimeNow, WindStore windStore, TrackedRegattaRegistry trackedRegattaRegistry, - RaceLogStore raceLogStore) + boolean simulateWithStartTimeNow, WindStore windStore, TrackedRegattaRegistry trackedRegattaRegistry) throws MalformedURLException, FileNotFoundException, URISyntaxException { return new TracTracRaceTrackerImpl(regatta, this, paramURL, liveURI, storedURI, startOfTracking, endOfTracking, delayToLiveInMillis, - simulateWithStartTimeNow, windStore, trackedRegattaRegistry, raceLogStore); + simulateWithStartTimeNow, windStore, trackedRegattaRegistry); } @Override @@ -579,9 +576,9 @@ public class DomainFactoryImpl implements DomainFactory { @Override public RaceTrackingConnectivityParameters createTrackingConnectivityParameters(URL paramURL, URI liveURI, URI storedURI, TimePoint startOfTracking, TimePoint endOfTracking, long delayToLiveInMillis, - boolean simulateWithStartTimeNow, WindStore windStore, RaceLogStore raceLogStore) { + boolean simulateWithStartTimeNow, WindStore windStore) { return new RaceTrackingConnectivityParametersImpl(paramURL, liveURI, storedURI, startOfTracking, endOfTracking, - delayToLiveInMillis, simulateWithStartTimeNow, windStore, this, raceLogStore); + delayToLiveInMillis, simulateWithStartTimeNow, windStore, this); } } diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java index e15fd10828d..8db693642be 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java @@ -11,7 +11,6 @@ import com.sap.sailing.domain.base.Course; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.impl.Util.Triple; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; @@ -41,13 +40,12 @@ public class RaceCourseReceiver extends AbstractReceiverWithQueue(); Set typeControllers = new HashSet(); for (Receiver receiver : domainFactory.getUpdateReceivers(getTrackedRegatta(), tractracEvent, startOfTracking, - endOfTracking, delayToLiveInMillis, simulator, windStore, this, trackedRegattaRegistry, raceLogStore)) { + endOfTracking, delayToLiveInMillis, simulator, windStore, this, trackedRegattaRegistry)) { receivers.add(receiver); for (TypeController typeController : receiver.getTypeControllersAndStart()) { typeControllers.add(typeController); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DynamicTrackedRace.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DynamicTrackedRace.java index c593201fa82..652ff9bd997 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DynamicTrackedRace.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DynamicTrackedRace.java @@ -1,10 +1,9 @@ package com.sap.sailing.domain.tracking; -import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Competitor; +import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.WindSource; -import com.sap.sailing.domain.racelog.RaceLogEvent; public interface DynamicTrackedRace extends TrackedRace { void recordFix(Competitor competitor, GPSFixMoving fix); @@ -14,8 +13,6 @@ public interface DynamicTrackedRace extends TrackedRace { void recordWind(Wind wind, WindSource windSource); void removeWind(Wind wind, WindSource windSource); - - void recordRaceLogEvent(RaceLogEvent event); /** * The raw, updating feed of a single competitor participating in this race diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DynamicTrackedRegatta.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DynamicTrackedRegatta.java index 9ecf46df302..907197e36a6 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DynamicTrackedRegatta.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DynamicTrackedRegatta.java @@ -1,7 +1,6 @@ package com.sap.sailing.domain.tracking; import com.sap.sailing.domain.base.RaceDefinition; -import com.sap.sailing.domain.racelog.RaceLogStore; public interface DynamicTrackedRegatta extends TrackedRegatta { @@ -20,6 +19,6 @@ public interface DynamicTrackedRegatta extends TrackedRegatta { */ DynamicTrackedRace createTrackedRace(RaceDefinition raceDefinition, WindStore windStore, long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, - DynamicRaceDefinitionSet raceDefinitionSetToUpdate, RaceLogStore raceLogStore); + DynamicRaceDefinitionSet raceDefinitionSetToUpdate); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java index a98db13b450..a809decbb64 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java @@ -5,10 +5,10 @@ import java.util.List; import java.util.NavigableSet; import java.util.SortedSet; -import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Course; import com.sap.sailing.domain.base.Leg; +import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.base.impl.DouglasPeucker; @@ -24,7 +24,6 @@ import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.RaceLog; -import com.sap.sailing.domain.racelog.RaceLogStore; /** * Live tracking data of a single race. The race follows a defined {@link Course} with a sequence of {@link Leg}s. The @@ -455,20 +454,9 @@ public interface TrackedRace extends Serializable { void waitUntilWindLoadingComplete() throws InterruptedException; /** - * Returns the race log event track for this race or creates it if it did not exist yet + * Returns the race log event track for this race */ RaceLog getRaceLog(); - - /** - * When provided with a {@link RaceLogStore} during construction, the tracked race will asynchronously load the race log event - * data for this tracked race from the race log store in a background thread and update this tracked race with the results. - * Clients that want to wait for the race log event loading process to complete can do so by calling this method which will block - * until the race log event loading has completed. - */ - void waitUntilRaceLogLoadingComplete() throws InterruptedException; - - RaceLogStore getRaceLogStore(); - TrackedRaceStatus getStatus(); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRegatta.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRegatta.java index a1a79ba054e..a26039fd572 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRegatta.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRegatta.java @@ -4,11 +4,10 @@ import java.io.Serializable; import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.racelog.RaceLogStore; /** * Manages a set of {@link TrackedRace} objects that belong to the same {@link Regatta} (regatta, sailing regatta for a @@ -42,7 +41,7 @@ public interface TrackedRegatta extends Serializable { */ DynamicTrackedRace createTrackedRace(RaceDefinition raceDefinition, WindStore windStore, long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, - DynamicRaceDefinitionSet raceDefinitionSetToUpdate, RaceLogStore raceLogStore); + DynamicRaceDefinitionSet raceDefinitionSetToUpdate); /** * Obtains the tracked race for race. Blocks until the tracked race has been created diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java index b510a94a4c8..dce5479760c 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java @@ -25,8 +25,6 @@ import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.domain.common.impl.WindSourceImpl; -import com.sap.sailing.domain.racelog.RaceLogEvent; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; @@ -58,9 +56,9 @@ public class DynamicTrackedRaceImpl extends TrackedRaceImpl implements public DynamicTrackedRaceImpl(TrackedRegatta trackedRegatta, RaceDefinition race, WindStore windStore, long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, - long delayForCacheInvalidationOfWindEstimation, RaceLogStore raceLogStore) { + long delayForCacheInvalidationOfWindEstimation) { super(trackedRegatta, race, windStore, delayToLiveInMillis, millisecondsOverWhichToAverageWind, millisecondsOverWhichToAverageSpeed, - delayForCacheInvalidationOfWindEstimation, raceLogStore); + delayForCacheInvalidationOfWindEstimation); this.raceIsKnownToStartUpwind = race.getBoatClass().typicallyStartsUpwind(); if (!raceIsKnownToStartUpwind) { Set windSourcesToExclude = new HashSet(); @@ -96,9 +94,9 @@ public class DynamicTrackedRaceImpl extends TrackedRaceImpl implements */ public DynamicTrackedRaceImpl(TrackedRegatta trackedRegatta, RaceDefinition race, WindStore windStore, long delayToLiveInMillis, - long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, RaceLogStore raceLogStore) { + long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed) { this(trackedRegatta, race, windStore, delayToLiveInMillis, millisecondsOverWhichToAverageWind, millisecondsOverWhichToAverageSpeed, - millisecondsOverWhichToAverageWind/2, raceLogStore); + millisecondsOverWhichToAverageWind/2); } @Override @@ -638,27 +636,4 @@ public class DynamicTrackedRaceImpl extends TrackedRaceImpl implements return raceIsKnownToStartUpwind; } - @Override - public void recordRaceLogEvent(RaceLogEvent event) { - getRaceLog().add(event); - updated(/* time point */null); // TODO: updated has to be understood better, for now it shall have the same behaviour as in recordWind - //TODO triggerRaceStateCalculation(); - notifyListeners(event); - } - - private void notifyListeners(RaceLogEvent event) { - RaceChangeListener[] listeners; - synchronized (getListeners()) { - listeners = getListeners().toArray(new RaceChangeListener[getListeners().size()]); - } - for (RaceChangeListener listener : listeners) { - try { - listener.raceLogEventReceived(event); - } catch (Throwable t) { - logger.log(Level.SEVERE, "RaceChangeListener " + listener + " threw exception " + t.getMessage()); - logger.throwing(DynamicTrackedRaceImpl.class.getName(), "notifyListeners(RaceLogEvent)", t); - } - } - } - } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRegattaImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRegattaImpl.java index 9d7f1ad36a5..f586adf656b 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRegattaImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRegattaImpl.java @@ -1,11 +1,10 @@ package com.sap.sailing.domain.tracking.impl; -import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.RaceDefinition; -import com.sap.sailing.domain.racelog.RaceLogStore; +import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; -import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.DynamicTrackedRace; +import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.WindStore; public class DynamicTrackedRegattaImpl extends TrackedRegattaImpl implements DynamicTrackedRegatta { @@ -28,8 +27,8 @@ public class DynamicTrackedRegattaImpl extends TrackedRegattaImpl implements Dyn @Override public DynamicTrackedRace createTrackedRace(RaceDefinition raceDefinition, WindStore windStore, long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, - DynamicRaceDefinitionSet raceDefinitionSetToUpdate, RaceLogStore raceLogStore) { + DynamicRaceDefinitionSet raceDefinitionSetToUpdate) { return (DynamicTrackedRace) super.createTrackedRace(raceDefinition, windStore, delayToLiveInMillis, millisecondsOverWhichToAverageWind, - millisecondsOverWhichToAverageSpeed, raceDefinitionSetToUpdate, raceLogStore); + millisecondsOverWhichToAverageSpeed, raceDefinitionSetToUpdate); } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java index 2f3106543e9..8881a7b1965 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java @@ -30,12 +30,12 @@ import java.util.logging.Logger; import com.sap.sailing.domain.base.BearingWithConfidence; import com.sap.sailing.domain.base.BoatClass; -import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Course; import com.sap.sailing.domain.base.CourseChange; import com.sap.sailing.domain.base.CourseListener; import com.sap.sailing.domain.base.Leg; +import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.SpeedWithBearing; import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence; @@ -70,8 +70,6 @@ import com.sap.sailing.domain.confidence.Weigher; import com.sap.sailing.domain.confidence.impl.HyperbolicTimeDifferenceWeigher; import com.sap.sailing.domain.confidence.impl.PositionAndTimePointWeigher; import com.sap.sailing.domain.racelog.RaceLog; -import com.sap.sailing.domain.racelog.RaceLogStore; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.GPSFixTrack; @@ -247,22 +245,12 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener { * synchronization or locking. */ private final NamedReentrantReadWriteLock serializationLock; - - private transient RaceLog raceLog; - - private transient RaceLogStore raceLogStore; - - /** - * The constructor loads race log events from the {@link #raceLogStore} asynchronously. When completed, this flag is set to - * true, and all threads currently waiting on this object are notified. - */ - private boolean raceLogLoadingCompleted; private final Map, NamedReentrantReadWriteLock> locksForMarkPassings; public TrackedRaceImpl(final TrackedRegatta trackedRegatta, RaceDefinition race, final WindStore windStore, long delayToLiveInMillis, final long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, - long delayForWindEstimationCacheInvalidation, final RaceLogStore raceLogStore) { + long delayForWindEstimationCacheInvalidation) { super(); locksForMarkPassings = new IdentityHashMap, NamedReentrantReadWriteLock>(); this.status = new TrackedRaceStatusImpl(TrackedRaceStatusEnum.PREPARED, 0.0); @@ -272,7 +260,6 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener { this.updateCount = 0; this.race = race; this.windStore = windStore; - this.raceLogStore = raceLogStore; this.windSourcesToExclude = new HashSet(); this.directionFromStartToNextMarkCache = new HashMap>(); this.millisecondsOverWhichToAverageSpeed = millisecondsOverWhichToAverageSpeed; @@ -340,25 +327,6 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener { } }.start(); - new Thread("Race log event loader for tracked race " + getRace().getName()) { - @Override - public void run() { - // When this tracked race is to be serialized, wait for the loading of the according race log to complete. - // It seems sufficiently unlikely that serialization is requested after the constructor succeeds and - // before this thread obtains the lock. - LockUtil.lockForRead(serializationLock); - try { - raceLog = raceLogStore.getRaceLog(trackedRegatta, TrackedRaceImpl.this); - } finally { - LockUtil.unlockAfterRead(serializationLock); - } - synchronized (TrackedRaceImpl.this) { - raceLogLoadingCompleted = true; - TrackedRaceImpl.this.notifyAll(); - } - } - }.start(); - // by default, a tracked race offers one course-based wind estimation, one track-based wind estimation track and // one "WEB" track for manual or REST-based wind reception; other wind tracks may be added as fixes are received // for them. @@ -386,15 +354,13 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener { /** * Deserialization has to be maintained in lock-step with {@link #writeObject(ObjectOutputStream) serialization}. * When de-serializing, a possibly remote {@link #windStore} is ignored because it is transient. Instead, an - * {@link EmptyWindStore} is used for the de-serialized instance. Same counts for the {@link #raceLogStore}, which is then initialized - * with a {@link EmptyRaceLogStore}. + * {@link EmptyWindStore} is used for the de-serialized instance. */ private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException { ois.defaultReadObject(); markPassingsTimes = new ArrayList>>(); cacheInvalidationTimerLock = new Object(); windStore = EmptyWindStore.INSTANCE; - raceLogStore = EmptyRaceLogStore.INSTANCE; competitorRankings = new HashMap>(); competitorRankingsLocks = new HashMap(); directionFromStartToNextMarkCache = new HashMap>(); @@ -408,13 +374,6 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener { wait(); } } - - @Override - public synchronized void waitUntilRaceLogLoadingComplete() throws InterruptedException { - while (!raceLogLoadingCompleted) { - wait(); - } - } private SmartFutureCache>, EmptyUpdateInterval> createManeuverCache() { return new SmartFutureCache>, EmptyUpdateInterval>( @@ -449,11 +408,6 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener { public WindStore getWindStore() { return windStore; } - - @Override - public RaceLogStore getRaceLogStore() { - return raceLogStore; - } @Override public Iterable getMarkPassingsInOrder(Waypoint waypoint) { @@ -2254,19 +2208,6 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener { this.delayToLiveInMillis = delayToLiveInMillis; } - - @Override - public RaceLog getRaceLog() { - if (raceLog == null) { - try { - waitUntilRaceLogLoadingComplete(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - return raceLog; - } - @Override public TrackedRaceStatus getStatus() { return status; @@ -2321,4 +2262,9 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener { } } } + + @Override + public RaceLog getRaceLog() { + return null; + } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaImpl.java index ed2ac373b08..433fc4addf2 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaImpl.java @@ -18,7 +18,6 @@ import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.RaceListener; @@ -170,10 +169,10 @@ public class TrackedRegattaImpl implements TrackedRegatta { @Override public DynamicTrackedRace createTrackedRace(RaceDefinition raceDefinition, WindStore windStore, long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, - DynamicRaceDefinitionSet raceDefinitionSetToUpdate, RaceLogStore raceLogStore) { + DynamicRaceDefinitionSet raceDefinitionSetToUpdate) { logger.log(Level.INFO, "Creating DynamicTrackedRaceImpl for RaceDefinition " + raceDefinition.getName()); DynamicTrackedRaceImpl result = new DynamicTrackedRaceImpl(this, raceDefinition, - windStore, delayToLiveInMillis, millisecondsOverWhichToAverageWind, millisecondsOverWhichToAverageSpeed, raceLogStore); + windStore, delayToLiveInMillis, millisecondsOverWhichToAverageWind, millisecondsOverWhichToAverageSpeed); addTrackedRace(result); if (raceDefinitionSetToUpdate != null) { raceDefinitionSetToUpdate.addRaceDefinition(raceDefinition); 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 f6da0a32da9..68246049ba6 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 @@ -109,7 +109,6 @@ import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.persistence.DomainObjectFactory; import com.sap.sailing.domain.persistence.MongoFactory; import com.sap.sailing.domain.persistence.MongoObjectFactory; -import com.sap.sailing.domain.persistence.MongoRaceLogStoreFactory; import com.sap.sailing.domain.persistence.MongoWindStoreFactory; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.swisstimingadapter.SwissTimingArchiveConfiguration; @@ -1148,8 +1147,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S new URI(liveURI), new URI(storedURI), new MillisecondsTimePoint(rr.trackingStartTime), new MillisecondsTimePoint(rr.trackingEndTime), MongoWindStoreFactory.INSTANCE.getMongoWindStore(mongoObjectFactory, domainObjectFactory), - RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, simulateWithStartTimeNow, - MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory, domainObjectFactory)); + RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, simulateWithStartTimeNow); if (trackWind) { new Thread("Wind tracking starter for race " + rr.regattaName + "/" + rr.name) { public void run() { @@ -2391,8 +2389,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S final RacesHandle raceHandle = getService().addSwissTimingRace(regattaToAddTo, rr.ID, hostname, port, canSendRequests, MongoWindStoreFactory.INSTANCE.getMongoWindStore(mongoObjectFactory, domainObjectFactory), - RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS, - MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory, domainObjectFactory)); + RaceTracker.TIMEOUT_FOR_RECEIVING_RACE_DEFINITION_IN_MILLISECONDS); if (trackWind) { new Thread("Wind tracking starter for race " + rr.ID + "/" + rr.description) { public void run() { diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogsTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogsTest.java index b33ef48ca75..4b43566c7f5 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogsTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogsTest.java @@ -23,7 +23,6 @@ import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogEventFactory; import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.test.AbstractTracTracLiveTest; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; import com.sap.sailing.domain.tracking.DynamicTrackedRace; @@ -67,7 +66,7 @@ public class TestStoringAndRetrievingRaceLogsTest extends AbstractTracTracLiveTe Regatta domainEvent = domainFactory.getOrCreateDefaultRegatta(getTracTracEvent(), /* trackedRegattaRegistry */ null); DynamicTrackedRegatta trackedRegatta = new RacingEventServiceImpl().getOrCreateTrackedRegatta(domainEvent); Iterable typeControllers = domainFactory.getUpdateReceivers(trackedRegatta, getTracTracEvent(), - EmptyWindStore.INSTANCE, EmptyRaceLogStore.INSTANCE, + EmptyWindStore.INSTANCE, /* startOfTracking */null, /* endOfTracking */null, /* delayToLiveInMillis */ 0l, /* simulator */ null, new DynamicRaceDefinitionSet() { @Override @@ -81,7 +80,7 @@ public class TestStoringAndRetrievingRaceLogsTest extends AbstractTracTracLiveTe @Override public void addRaceDefinition(RaceDefinition race) { } - }, EmptyRaceLogStore.INSTANCE); + }); Mongo myFirstMongo = newMongo(); DB firstDatabase = myFirstMongo.getDB(dbConfiguration.getDatabaseName()); diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java index 3798c19bae1..84a940648de 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java @@ -14,8 +14,8 @@ import org.junit.Test; import com.mongodb.DB; import com.mongodb.Mongo; import com.mongodb.MongoException; -import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.Position; @@ -27,11 +27,10 @@ import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl; import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.test.AbstractTracTracLiveTest; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; -import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.DynamicTrackedRace; +import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; @@ -74,7 +73,7 @@ public class TestStoringAndRetrievingWindTracksTest extends AbstractTracTracLive Regatta domainEvent = domainFactory.getOrCreateDefaultRegatta(getTracTracEvent(), /* trackedRegattaRegistry */ null); DynamicTrackedRegatta trackedRegatta = new RacingEventServiceImpl().getOrCreateTrackedRegatta(domainEvent); Iterable typeControllers = domainFactory.getUpdateReceivers(trackedRegatta, getTracTracEvent(), - EmptyWindStore.INSTANCE, EmptyRaceLogStore.INSTANCE, + EmptyWindStore.INSTANCE, /* startOfTracking */null, /* endOfTracking */null, /* delayToLiveInMillis */ 0l, /* simulator */ null, new DynamicRaceDefinitionSet() { @Override @@ -88,7 +87,7 @@ public class TestStoringAndRetrievingWindTracksTest extends AbstractTracTracLive @Override public void addRaceDefinition(RaceDefinition race) { } - }, EmptyRaceLogStore.INSTANCE); + }); WindSource windSource = new WindSourceImpl(WindSourceType.WEB); Mongo myFirstMongo = newMongo(); DB firstDatabase = myFirstMongo.getDB(dbConfiguration.getDatabaseName()); diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/AdminApp.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/AdminApp.java index 68d3268f45c..380ad0f7225 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/AdminApp.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/AdminApp.java @@ -38,10 +38,7 @@ import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.persistence.MongoFactory; -import com.sap.sailing.domain.persistence.MongoRaceLogStoreFactory; import com.sap.sailing.domain.persistence.MongoWindStoreFactory; -import com.sap.sailing.domain.racelog.RaceLogStore; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.Wind; @@ -122,8 +119,6 @@ public class AdminApp extends SailingServerHttpServlet { private static final String STORE_MONGO = "mongo"; - private static final String PARAM_NAME_RACELOGSTORE = "racelogstore"; - public AdminApp() { } @@ -471,7 +466,7 @@ public class AdminApp extends SailingServerHttpServlet { URL jsonURL = new URL(req.getParameter(PARAM_NAME_EVENT_JSON_URL)); URI liveURI = new URI(req.getParameter(PARAM_NAME_LIVE_URI)); URI storedURI = new URI(req.getParameter(PARAM_NAME_STORED_URI)); - getService().addRegatta(jsonURL, liveURI, storedURI, getWindStore(req), /* timeoutInMilliseconds */ 60000, getRaceLogStore(req)); + getService().addRegatta(jsonURL, liveURI, storedURI, getWindStore(req), /* timeoutInMilliseconds */ 60000); } private WindStore getWindStore(HttpServletRequest req) throws UnknownHostException, MongoException { @@ -495,8 +490,7 @@ public class AdminApp extends SailingServerHttpServlet { URL paramURL = new URL(req.getParameter(PARAM_NAME_PARAM_URL)); URI liveURI = new URI(req.getParameter(PARAM_NAME_LIVE_URI)); URI storedURI = new URI(req.getParameter(PARAM_NAME_STORED_URI)); - getService().addTracTracRace(paramURL, liveURI, storedURI, getWindStore(req), /* timeoutInMilliseconds */ 60000, - getRaceLogStore(req)); + getService().addTracTracRace(paramURL, liveURI, storedURI, getWindStore(req), /* timeoutInMilliseconds */ 60000); } private void stopRace(HttpServletRequest req, HttpServletResponse resp) throws MalformedURLException, IOException, InterruptedException { @@ -512,22 +506,4 @@ public class AdminApp extends SailingServerHttpServlet { resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Regatta not found"); } } - - private RaceLogStore getRaceLogStore(HttpServletRequest req) throws UnknownHostException, MongoException { - String raceCommitteStore = req.getParameter(PARAM_NAME_RACELOGSTORE); - if (raceCommitteStore != null) { - if (raceCommitteStore.equals(STORE_EMPTY)) { - return EmptyRaceLogStore.INSTANCE; - } else if (raceCommitteStore.equals(STORE_MONGO)) { - return MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore( - MongoFactory.INSTANCE.getDefaultMongoObjectFactory(), - MongoFactory.INSTANCE.getDefaultDomainObjectFactory()); - } else { - log("Couldn't find race log store " + raceCommitteStore + ". Using EmptyRaceLogStore instead."); - return EmptyRaceLogStore.INSTANCE; - } - } - return EmptyRaceLogStore.INSTANCE; - } - } diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/ModifyRaceLogJsonExportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/ModifyRaceLogJsonExportServlet.java index 8233746e423..aa4c7ae9056 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/ModifyRaceLogJsonExportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/ModifyRaceLogJsonExportServlet.java @@ -76,7 +76,7 @@ public class ModifyRaceLogJsonExportServlet extends JsonExportServlet { return; } - dynamicTrackedRace.recordRaceLogEvent(raceLogEvent); + //TODO dynamicTrackedRace.recordRaceLogEvent(raceLogEvent); } catch (ParseException e) { throw new JsonDeserializationException("Invalid JSON in request body.", e); } diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceReplicationTest.java index 639b7ff1d4b..a9ec8fc1e74 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceReplicationTest.java @@ -28,7 +28,6 @@ import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.test.AbstractTracTracLiveTest; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters; @@ -81,7 +80,7 @@ public class TrackRaceReplicationTest extends AbstractServerReplicationTest { }); trackingParams = com.sap.sailing.domain.tractracadapter.DomainFactory.INSTANCE.createTrackingConnectivityParameters(paramURL, liveURI, storedURI, startOfTracking, endOfTracking, /* delayToLiveInMillis */ - 0l, /* simulateWithStartTimeNow */false, EmptyWindStore.INSTANCE, EmptyRaceLogStore.INSTANCE); + 0l, /* simulateWithStartTimeNow */false, EmptyWindStore.INSTANCE); } private void startTracking() throws Exception, InterruptedException { @@ -92,8 +91,7 @@ public class TrackRaceReplicationTest extends AbstractServerReplicationTest { } private void startTrackingOnMaster() throws Exception { - racesHandle = master.addRace(/* regattaToAddTo */ null, trackingParams, EmptyWindStore.INSTANCE, /* timeoutInMilliseconds */ 60000, - EmptyRaceLogStore.INSTANCE); + racesHandle = master.addRace(/* regattaToAddTo */ null, trackingParams, EmptyWindStore.INSTANCE, /* timeoutInMilliseconds */ 60000); } private void waitForTrackRaceReplicationTrigger() throws InterruptedException { diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceContentsReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceContentsReplicationTest.java index cfea4135bd2..01728ecee97 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceContentsReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceContentsReplicationTest.java @@ -39,7 +39,6 @@ import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.persistence.MongoFactory; -import com.sap.sailing.domain.persistence.MongoRaceLogStoreFactory; import com.sap.sailing.domain.persistence.MongoWindStore; import com.sap.sailing.domain.persistence.MongoWindStoreFactory; import com.sap.sailing.domain.racelog.RaceLog; @@ -96,11 +95,8 @@ public class TrackedRaceContentsReplicationTest extends AbstractServerReplicatio trackedRace = (DynamicTrackedRace) master.apply(new CreateTrackedRace(raceIdentifier, MongoWindStoreFactory.INSTANCE.getMongoWindStore(MongoFactory.INSTANCE.getDefaultMongoObjectFactory(), MongoFactory.INSTANCE.getDefaultDomainObjectFactory()), /* delayToLiveInMillis */ 5000, - /* millisecondsOverWhichToAverageWind */ 10000, /* millisecondsOverWhichToAverageSpeed */10000, - MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(MongoFactory.INSTANCE.getDefaultMongoObjectFactory(), - MongoFactory.INSTANCE.getDefaultDomainObjectFactory()))); + /* millisecondsOverWhichToAverageWind */ 10000, /* millisecondsOverWhichToAverageSpeed */10000)); trackedRace.waitUntilWindLoadingComplete(); - trackedRace.waitUntilRaceLogLoadingComplete(); } @Test @@ -230,7 +226,7 @@ public class TrackedRaceContentsReplicationTest extends AbstractServerReplicatio TimePoint time = MillisecondsTimePoint.now(); final RaceLogStartTimeEvent startTimeEvent = RaceLogEventFactory.INSTANCE.createStartTimeEvent(time, 0, new MillisecondsTimePoint(time.asMillis() + 500000)); - trackedRace.recordRaceLogEvent(startTimeEvent); + //trackedRace.recordRaceLogEvent(startTimeEvent); Thread.sleep(1000); TrackedRace replicaTrackedRace = replica.getTrackedRace(raceIdentifier); RaceLog replicaRaceLog = replicaTrackedRace.getRaceLog(); @@ -250,7 +246,7 @@ public class TrackedRaceContentsReplicationTest extends AbstractServerReplicatio TimePoint time = MillisecondsTimePoint.now(); final RaceLogStartTimeEvent startTimeEvent = RaceLogEventFactory.INSTANCE.createStartTimeEvent(time, 0, new MillisecondsTimePoint(time.asMillis() + 500000)); - trackedRace.recordRaceLogEvent(startTimeEvent); + //trackedRace.recordRaceLogEvent(startTimeEvent); RaceLog trackedRaceRaceLog= trackedRace.getRaceLog(); trackedRaceRaceLog.lockForRead(); try { diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 2f8ebc362e3..417521e7b3f 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -29,7 +29,6 @@ import com.sap.sailing.domain.base.impl.CourseImpl; import com.sap.sailing.domain.base.impl.RaceDefinitionImpl; import com.sap.sailing.domain.base.impl.RegattaImpl; import com.sap.sailing.domain.common.ScoringSchemeType; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.TrackedRegatta; @@ -72,13 +71,13 @@ public class RaceTrackerStartStopTest { raceDef3 = new RaceDefinitionImpl(RACENAME3, new CourseImpl("Course3", new ArrayList()), boatClass, new ArrayList()); regatta.addRace(raceDef1); trackedRegatta1.createTrackedRace(raceDef1, /* windStore */ EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 0l, /* millisecondsOverWhichToAverageWind */ 0l, - /* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null, EmptyRaceLogStore.INSTANCE); + /* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null); regatta.addRace(raceDef2); trackedRegatta1.createTrackedRace(raceDef2, /* windStore */ EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 0l, /* millisecondsOverWhichToAverageWind */ 0l, - /* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null, EmptyRaceLogStore.INSTANCE); + /* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null); regatta.addRace(raceDef3); trackedRegatta1.createTrackedRace(raceDef3, /* windStore */ EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 0l, /* millisecondsOverWhichToAverageWind */ 0l, - /* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null, EmptyRaceLogStore.INSTANCE); + /* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null); Set raceDefinitionSetRace1 = new HashSet(); raceDefinitionSetRace1.add(raceDef1); Set raceDefinitionSetRace2 = new HashSet(); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerTest.java index a34523b6670..f4885841fa1 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerTest.java @@ -20,7 +20,6 @@ import org.junit.Test; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.RaceListener; import com.sap.sailing.domain.tracking.RacesHandle; import com.sap.sailing.domain.tracking.TrackedRace; @@ -61,8 +60,7 @@ public class RaceTrackerTest { public void setUp() throws Exception { service = new RacingEventServiceImpl(); logger.info("Calling service.addTracTracRace"); - raceHandle = service.addTracTracRace(paramUrl, liveUri, storedUri, EmptyWindStore.INSTANCE, /* timeoutInMilliseconds */ 60000, - EmptyRaceLogStore.INSTANCE); + raceHandle = service.addTracTracRace(paramUrl, liveUri, storedUri, EmptyWindStore.INSTANCE, /* timeoutInMilliseconds */ 60000); logger.info("Calling raceHandle.getRaces()"); Set races = raceHandle.getRaces(); // wait for RaceDefinition to be completely wired in Regatta logger.info("Obtained races: "+races); @@ -118,8 +116,7 @@ public class RaceTrackerTest { RaceDefinition oldRaceDefinition = oldTrackedRace.getRace(); assertTrue(!Util.isEmpty(raceHandle.getRegatta().getAllRaces())); service.removeRegatta(raceHandle.getRegatta()); - RacesHandle myRaceHandle = service.addTracTracRace(paramUrl, liveUri, storedUri, EmptyWindStore.INSTANCE, /* timeoutInMilliseconds */ 60000, - EmptyRaceLogStore.INSTANCE); + RacesHandle myRaceHandle = service.addTracTracRace(paramUrl, liveUri, storedUri, EmptyWindStore.INSTANCE, /* timeoutInMilliseconds */ 60000); TrackedRegatta newTrackedRegatta = myRaceHandle.getTrackedRegatta(); assertNotSame(oldTrackedRegatta, newTrackedRegatta); TrackedRace newTrackedRace = getTrackedRace(newTrackedRegatta); @@ -143,8 +140,7 @@ public class RaceTrackerTest { logger.entering(getClass().getName(), "testTrackingSameRaceWithoutStopping"); TrackedRegatta oldTrackedRegatta = raceHandle.getTrackedRegatta(); TrackedRace oldTrackedRace = getTrackedRace(oldTrackedRegatta); - RacesHandle myRaceHandle = service.addTracTracRace(paramUrl, liveUri, storedUri, EmptyWindStore.INSTANCE, /* timeoutInMilliseconds */ 60000, - EmptyRaceLogStore.INSTANCE); + RacesHandle myRaceHandle = service.addTracTracRace(paramUrl, liveUri, storedUri, EmptyWindStore.INSTANCE, /* timeoutInMilliseconds */ 60000); TrackedRegatta newTrackedEvent = myRaceHandle.getTrackedRegatta(); TrackedRace newTrackedRace = getTrackedRace(newTrackedEvent); // expecting a new tracked race to be created when starting over with tracking diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java index 86e4f19d42a..bd8f29317ff 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java @@ -39,7 +39,6 @@ import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.LeaderboardRegistry; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.leaderboard.ScoringScheme; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; import com.sap.sailing.domain.tracking.RaceListener; import com.sap.sailing.domain.tracking.RaceTracker; @@ -110,8 +109,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch * if a race definition is not received for a race of this event within this time, the race tracker for * that race is stopped; use -1 to wait forever */ - Regatta addRegatta(URL jsonURL, URI liveURI, URI storedURI, WindStore windStore, long timeoutInMilliseconds, - RaceLogStore raceLogStore) + Regatta addRegatta(URL jsonURL, URI liveURI, URI storedURI, WindStore windStore, long timeoutInMilliseconds) throws MalformedURLException, FileNotFoundException, URISyntaxException, IOException, ParseException, org.json.simple.parser.ParseException, Exception; @@ -137,8 +135,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch * if the race definition is not received for the race within this time, the race tracker for * that race is stopped; use -1 to wait forever */ - RacesHandle addTracTracRace(URL paramURL, URI liveURI, URI storedURI, WindStore windStore, long timeoutInMilliseconds, - RaceLogStore raceLogStore) + RacesHandle addTracTracRace(URL paramURL, URI liveURI, URI storedURI, WindStore windStore, long timeoutInMilliseconds) throws MalformedURLException, FileNotFoundException, URISyntaxException, Exception; /** @@ -155,7 +152,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch */ RacesHandle addTracTracRace(RegattaIdentifier regattaToAddTo, URL paramURL, URI liveURI, URI storedURI, TimePoint trackingStartTime, TimePoint trackingEndTime, WindStore windStore, - long timeoutForReceivingRaceDefinitionInMilliseconds, boolean simulateWithStartTimeNow, RaceLogStore raceLogStore) + long timeoutForReceivingRaceDefinitionInMilliseconds, boolean simulateWithStartTimeNow) throws MalformedURLException, FileNotFoundException, URISyntaxException, Exception; /** @@ -290,8 +287,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch * to add the races to. Otherwise, a default regatta as described above will be created and used. */ RacesHandle addSwissTimingRace(RegattaIdentifier regattaToAddTo, String raceID, String hostname, int port, - boolean canSendRequests, WindStore windStore, long timeoutInMilliseconds, - RaceLogStore raceLogStore) throws InterruptedException, UnknownHostException, + boolean canSendRequests, WindStore windStore, long timeoutInMilliseconds) throws InterruptedException, UnknownHostException, IOException, ParseException, Exception; SwissTimingFactory getSwissTimingFactory(); @@ -369,13 +365,11 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch * @param windStore * must not be null, but can, e.g., be an {@link EmptyWindStore} */ - RacesHandle addRace(RegattaIdentifier regattaToAddTo, RaceTrackingConnectivityParameters params, WindStore windStore, long timeoutInMilliseconds, - RaceLogStore raceLogStore) + RacesHandle addRace(RegattaIdentifier regattaToAddTo, RaceTrackingConnectivityParameters params, WindStore windStore, long timeoutInMilliseconds) throws MalformedURLException, FileNotFoundException, URISyntaxException, Exception; TrackedRace createTrackedRace(RegattaAndRaceIdentifier raceIdentifier, WindStore windStore, - long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, - RaceLogStore raceLogStore); + long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed); Regatta getOrCreateRegatta(String regattaName, String boatClassName, Serializable id); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index 17d00744bc0..2e6baae63a0 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -72,7 +72,6 @@ import com.sap.sailing.domain.persistence.DomainObjectFactory; import com.sap.sailing.domain.persistence.MongoFactory; import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.domain.racelog.RaceLogEvent; -import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.swisstimingadapter.Race; import com.sap.sailing.domain.swisstimingadapter.SailMasterConnector; import com.sap.sailing.domain.swisstimingadapter.SailMasterMessage; @@ -600,13 +599,12 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen } @Override - public Regatta addRegatta(URL jsonURL, URI liveURI, URI storedURI, WindStore windStore, long timeoutInMilliseconds, - RaceLogStore raceLogStore) throws Exception { + public Regatta addRegatta(URL jsonURL, URI liveURI, URI storedURI, WindStore windStore, long timeoutInMilliseconds) throws Exception { JSONService jsonService = getTracTracDomainFactory().parseJSONURL(jsonURL); Regatta regatta = null; for (RaceRecord rr : jsonService.getRaceRecords()) { URL paramURL = rr.getParamURL(); - regatta = addTracTracRace(paramURL, liveURI, storedURI, windStore, timeoutInMilliseconds, raceLogStore).getRegatta(); + regatta = addTracTracRace(paramURL, liveURI, storedURI, windStore, timeoutInMilliseconds).getRegatta(); } return regatta; } @@ -661,23 +659,21 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen @Override public RacesHandle addSwissTimingRace(RegattaIdentifier regattaToAddTo, String raceID, String hostname, - int port, boolean canSendRequests, WindStore windStore, long timeoutInMilliseconds, - RaceLogStore raceLogStore) throws Exception { + int port, boolean canSendRequests, WindStore windStore, long timeoutInMilliseconds) throws Exception { return addRace( regattaToAddTo, swissTimingDomainFactory.createTrackingConnectivityParameters(hostname, port, raceID, canSendRequests, delayToLiveInMillis, - swissTimingFactory, swissTimingDomainFactory, windStore, raceLogStore, swissTimingAdapterPersistence), windStore, timeoutInMilliseconds, - raceLogStore); + swissTimingFactory, swissTimingDomainFactory, windStore, swissTimingAdapterPersistence), windStore, timeoutInMilliseconds); } @Override public RacesHandle addTracTracRace(URL paramURL, URI liveURI, URI storedURI, WindStore windStore, - long timeoutInMilliseconds, RaceLogStore raceLogStore) throws Exception { + long timeoutInMilliseconds) throws Exception { return addRace( /* regattaToAddTo */null, getTracTracDomainFactory().createTrackingConnectivityParameters(paramURL, liveURI, storedURI, /* startOfTracking */null, - /* endOfTracking */null, delayToLiveInMillis, /* simulateWithStartTimeNow */false, windStore, raceLogStore), windStore, - timeoutInMilliseconds, raceLogStore); + /* endOfTracking */null, delayToLiveInMillis, /* simulateWithStartTimeNow */false, windStore), windStore, + timeoutInMilliseconds); } @Override @@ -708,7 +704,7 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen @Override public RacesHandle addRace(RegattaIdentifier regattaToAddTo, RaceTrackingConnectivityParameters params, - WindStore windStore, long timeoutInMilliseconds, RaceLogStore raceLogStore) throws Exception { + WindStore windStore, long timeoutInMilliseconds) throws Exception { RaceTracker tracker = raceTrackersByID.get(params.getTrackerID()); if (tracker == null) { Regatta regatta = regattaToAddTo == null ? null : getRegatta(regattaToAddTo); @@ -816,23 +812,20 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen @Override public TrackedRace createTrackedRace(RegattaAndRaceIdentifier raceIdentifier, WindStore windStore, - long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, - RaceLogStore raceLogStore) { + long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed) { DynamicTrackedRegatta trackedRegatta = getOrCreateTrackedRegatta(getRegatta(raceIdentifier)); RaceDefinition race = getRace(raceIdentifier); return trackedRegatta.createTrackedRace(race, windStore, delayToLiveInMillis, millisecondsOverWhichToAverageWind, millisecondsOverWhichToAverageSpeed, - /* raceDefinitionSetToUpdate */null, raceLogStore); + /* raceDefinitionSetToUpdate */null); } @Override public RacesHandle addTracTracRace(RegattaIdentifier regattaToAddTo, URL paramURL, URI liveURI, URI storedURI, TimePoint startOfTracking, TimePoint endOfTracking, - WindStore windStore, long timeoutInMilliseconds, boolean simulateWithStartTimeNow, - RaceLogStore raceLogStore) throws Exception { + WindStore windStore, long timeoutInMilliseconds, boolean simulateWithStartTimeNow) throws Exception { return addRace(regattaToAddTo, getTracTracDomainFactory().createTrackingConnectivityParameters(paramURL, liveURI, storedURI, startOfTracking, - endOfTracking, delayToLiveInMillis, simulateWithStartTimeNow, windStore, raceLogStore), windStore, timeoutInMilliseconds, - raceLogStore); + endOfTracking, delayToLiveInMillis, simulateWithStartTimeNow, windStore), windStore, timeoutInMilliseconds); } private void ensureRegattaIsObservedForDefaultLeaderboardAndAutoLeaderboardLinking(DynamicTrackedRegatta trackedRegatta) { @@ -882,8 +875,7 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen // replicate the addition of the tracked race: CreateTrackedRace op = new CreateTrackedRace(trackedRace.getRaceIdentifier(), trackedRace.getWindStore(), trackedRace.getDelayToLiveInMillis(), - trackedRace.getMillisecondsOverWhichToAverageWind(), trackedRace.getMillisecondsOverWhichToAverageSpeed(), - trackedRace.getRaceLogStore()); + trackedRace.getMillisecondsOverWhichToAverageWind(), trackedRace.getMillisecondsOverWhichToAverageSpeed()); replicate(op); linkRaceToConfiguredLeaderboardColumns(trackedRace); final FlexibleLeaderboard defaultLeaderboard = (FlexibleLeaderboard) leaderboardsByName.get(LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java index 05396bce873..b5247c09489 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java @@ -4,8 +4,6 @@ import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.RaceIdentifier; -import com.sap.sailing.domain.racelog.RaceLogStore; -import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.TrackedRegatta; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.WindStore; @@ -34,28 +32,16 @@ public class CreateTrackedRace extends AbstractRaceOperation { * {@link EmptyWindStore}. */ private transient final WindStore windStore; - - /** - * If a {@link RaceLogStore} is provided to this command, it will be used for the construction of the tracked race. - * However, after de-serialization, the race log store will always be null, causing the use of an - * {@link EmptyRaceLogStore}. - */ - private transient final RaceLogStore raceLogStore; /** * @param windStore * if null, an {@link EmptyWindStore} will be used. Note that the {@link #windStore} field * won't be serialized. A receiver of this operation will therefore always use an {@link EmptyWindStore}. - * @param raceLogStore - * if null, an {@link EmptyRaceLogStore} will be used. Note that the {@link #raceLogStore} field - * won't be serialized. A receiver of this operation will therefore always use an {@link EmptyRaceLogStore}. */ public CreateTrackedRace(RegattaAndRaceIdentifier raceIdentifier, WindStore windStore, - long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, - RaceLogStore raceLogStore) { + long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed) { super(raceIdentifier); this.windStore = windStore; - this.raceLogStore = raceLogStore; this.delayToLiveInMillis = delayToLiveInMillis; this.millisecondsOverWhichToAverageWind = millisecondsOverWhichToAverageWind; this.millisecondsOverWhichToAverageSpeed = millisecondsOverWhichToAverageSpeed; @@ -76,8 +62,7 @@ public class CreateTrackedRace extends AbstractRaceOperation { @Override public TrackedRace internalApplyTo(RacingEventService toState) { return toState.createTrackedRace(getRaceIdentifier(), windStore == null ? EmptyWindStore.INSTANCE : windStore, - delayToLiveInMillis, millisecondsOverWhichToAverageWind, millisecondsOverWhichToAverageSpeed, - raceLogStore == null ? EmptyRaceLogStore.INSTANCE : raceLogStore); + delayToLiveInMillis, millisecondsOverWhichToAverageWind, millisecondsOverWhichToAverageSpeed); } } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEvent.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEvent.java index eb751c35f2c..5489ac7859d 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEvent.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RecordRaceLogEvent.java @@ -2,7 +2,6 @@ package com.sap.sailing.server.operationaltransformation; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.racelog.RaceLogEvent; -import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.RacingEventServiceOperation; @@ -18,8 +17,8 @@ public class RecordRaceLogEvent extends AbstractRaceOperation { @Override public Void internalApplyTo(RacingEventService toState) throws Exception { - DynamicTrackedRace trackedRace = (DynamicTrackedRace) toState.getTrackedRace(getRaceIdentifier()); - trackedRace.recordRaceLogEvent(event); +// DynamicTrackedRace trackedRace = (DynamicTrackedRace) toState.getTrackedRace(getRaceIdentifier()); +// trackedRace.recordRaceLogEvent(event); return null; }