Merge branch 'ftes-regatta-log' into regatta-log

Conflicts:
	java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java
	java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java
	java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java
	java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java
	java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java
	java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java
	java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java
	java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java
	java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java
	java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Regatta.java
	java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java
	java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java
	java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java
	java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java
	java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java
This commit is contained in:
Fredrik Teschke committed 2014-12-04 10:32:18 +01:00
commit 2c986f7be9
233 files changed
+2717 -2245

No files matched your search

@@ -22,9 +22,7 @@ import com.sap.sailing.domain.common.ScoringSchemeType;
import com.sap.sailing.domain.leaderboard.ScoringScheme;
import com.sap.sailing.domain.persistence.DomainObjectFactory;
import com.sap.sailing.domain.persistence.MongoObjectFactory;
import com.sap.sailing.domain.persistence.MongoRaceLogStoreFactory;
import com.sap.sailing.domain.persistence.PersistenceFactory;
import com.sap.sailing.domain.racelog.RaceLogStore;
import com.sap.sse.common.impl.MillisecondsTimePoint;
public abstract class AbstractTestStoringAndRetrievingRaceLogInRegatta extends RaceLogMongoDBTest {
@@ -61,9 +59,7 @@ public abstract class AbstractTestStoringAndRetrievingRaceLogInRegatta extends R
private Regatta createRegattaWithoutRaceColumns(final String regattaBaseName, BoatClass boatClass,
boolean persistent, ScoringScheme scoringScheme, CourseArea courseArea) {
List<Series> series = createSeriesForTestRegatta();
RaceLogStore raceLogStore = MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory,
domainObjectFactory);
Regatta regatta = new RegattaImpl(raceLogStore, RegattaImpl.getDefaultName(regattaBaseName,
Regatta regatta = new RegattaImpl(getRaceLogStore(), getRegattaLogStore(), RegattaImpl.getDefaultName(regattaBaseName,
boatClass == null ? null : boatClass.getName()), boatClass, /*startDate*/ null, /*endDate*/ null, series, persistent, scoringScheme, "123",
courseArea, /* useStartTimeInference */true);
return regatta;
@@ -26,6 +26,9 @@ import com.sap.sailing.domain.common.impl.DegreePosition;
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
import com.sap.sailing.domain.persistence.DomainObjectFactory;
import com.sap.sailing.domain.persistence.MongoObjectFactory;
import com.sap.sailing.domain.persistence.MongoRaceLogStoreFactory;
import com.sap.sailing.domain.racelog.RaceLogStore;
import com.sap.sailing.domain.regattalog.RegattaLogStore;
import com.sap.sailing.domain.tracking.Wind;
import com.sap.sailing.domain.tracking.impl.WindImpl;
import com.sap.sse.common.TimePoint;
@@ -106,5 +109,13 @@ public abstract class RaceLogMongoDBTest extends AbstractMongoDBTest {
SpeedWithBearing speedBearing = new KnotSpeedWithBearingImpl(10.4, bearing);
return new WindImpl(position, now, speedBearing);
}
protected RaceLogStore getRaceLogStore() {
return MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory, domainObjectFactory);
}
protected RegattaLogStore getRegattaLogStore() {
return MongoRegattaLogStoreFactory.INSTANCE.getMongoRegattaLogStore(mongoObjectFactory, domainObjectFactory);
}
}
@@ -16,9 +16,7 @@ import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl;
import com.sap.sailing.domain.abstractlog.race.RaceLog;
import com.sap.sailing.domain.abstractlog.race.RaceLogEventFactory;
import com.sap.sailing.domain.abstractlog.race.tracking.DeviceCompetitorMappingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.DeviceIdentifier;
import com.sap.sailing.domain.abstractlog.race.tracking.PlaceHolderDeviceIdentifier;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDeviceCompetitorMappingEvent;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.DomainFactory;
import com.sap.sailing.domain.base.impl.CompetitorImpl;
@@ -33,6 +31,8 @@ import com.sap.sailing.domain.racelog.RaceLogIdentifier;
import com.sap.sailing.domain.racelog.tracking.test.mock.MockEmptyServiceFinderFactory;
import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory;
import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier;
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
import com.sap.sailing.domain.racelogtracking.PlaceHolderDeviceIdentifier;
import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.Util;
@@ -92,7 +92,7 @@ public class StoreAndLoadDeviceIdentifierTest extends AbstractMongoDBTest {
RaceLog loadedRaceLog = loadRaceLog();
loadedRaceLog.lockForRead();
assertEquals(1, Util.size(loadedRaceLog.getRawFixes()));
DeviceCompetitorMappingEvent mapping = (DeviceCompetitorMappingEvent) loadedRaceLog.getRawFixes().iterator().next();
RaceLogDeviceCompetitorMappingEvent mapping = (RaceLogDeviceCompetitorMappingEvent) loadedRaceLog.getRawFixes().iterator().next();
loadedRaceLog.unlockAfterRead();
return mapping.getDevice();
@@ -28,13 +28,12 @@ import com.sap.sailing.domain.abstractlog.race.RaceLogPassChangeEvent;
import com.sap.sailing.domain.abstractlog.race.RaceLogRaceStatusEvent;
import com.sap.sailing.domain.abstractlog.race.RaceLogRevokeEvent;
import com.sap.sailing.domain.abstractlog.race.RaceLogStartTimeEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.CloseOpenEndedDeviceMappingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.DefineMarkEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.DenoteForTrackingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.DeviceCompetitorMappingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.DeviceIdentifier;
import com.sap.sailing.domain.abstractlog.race.tracking.DeviceMarkMappingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.RegisterCompetitorEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDefineMarkEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDenoteForTrackingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDeviceCompetitorMappingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDeviceMarkMappingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogRegisterCompetitorEvent;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.DomainFactory;
@@ -48,6 +47,7 @@ import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl;
import com.sap.sailing.domain.racelog.RaceLogIdentifier;
import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory;
import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier;
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.Util;
import com.sap.sse.common.impl.MillisecondsTimePoint;
@@ -177,11 +177,11 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest {
Competitor mappedTo = DomainFactory.INSTANCE.getOrCreateCompetitor("abc", "abc", null, null, null);
TimePoint from = new MillisecondsTimePoint(20);
TimePoint to = new MillisecondsTimePoint(30);
DeviceCompetitorMappingEvent expectedEvent = eventFactory.createDeviceCompetitorMappingEvent(
RaceLogDeviceCompetitorMappingEvent expectedEvent = eventFactory.createDeviceCompetitorMappingEvent(
expectedEventTime, author, expectedEventTime, expectedId, device, mappedTo, expectedPassId, from, to);
DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent);
DeviceCompetitorMappingEvent actualEvent = loadEvent(dbObject);
RaceLogDeviceCompetitorMappingEvent actualEvent = loadEvent(dbObject);
assertBaseFields(expectedEvent, actualEvent);
assertEquals(device, actualEvent.getDevice());
@@ -196,11 +196,11 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest {
Mark mappedTo = DomainFactory.INSTANCE.getOrCreateMark("abc", "abc");
TimePoint from = new MillisecondsTimePoint(20);
TimePoint to = new MillisecondsTimePoint(30);
DeviceMarkMappingEvent expectedEvent = eventFactory.createDeviceMarkMappingEvent(
RaceLogDeviceMarkMappingEvent expectedEvent = eventFactory.createDeviceMarkMappingEvent(
expectedEventTime, author, expectedEventTime, expectedId, device, mappedTo, expectedPassId, from, to);
DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent);
DeviceMarkMappingEvent actualEvent = loadEvent(dbObject);
RaceLogDeviceMarkMappingEvent actualEvent = loadEvent(dbObject);
assertBaseFields(expectedEvent, actualEvent);
assertEquals(device, actualEvent.getDevice());
@@ -214,12 +214,12 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest {
String raceName = "race";
BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("49er");
UUID raceId = UUID.randomUUID();
DenoteForTrackingEvent expectedEvent = eventFactory.createDenoteForTrackingEvent(
RaceLogDenoteForTrackingEvent expectedEvent = eventFactory.createDenoteForTrackingEvent(
expectedEventTime, author, expectedEventTime, expectedId, expectedPassId, raceName, boatClass,
raceId);
DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent);
DenoteForTrackingEvent actualEvent = loadEvent(dbObject);
RaceLogDenoteForTrackingEvent actualEvent = loadEvent(dbObject);
assertBaseFields(expectedEvent, actualEvent);
assertEquals(boatClass, actualEvent.getBoatClass());
@@ -249,12 +249,12 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest {
@Test
public void testStoreAndLoadRegisterCompetitorEvent() {
RegisterCompetitorEvent expectedEvent = eventFactory.createRegisterCompetitorEvent(
RaceLogRegisterCompetitorEvent expectedEvent = eventFactory.createRegisterCompetitorEvent(
expectedEventTime, author, expectedEventTime, expectedId, expectedPassId,
DomainFactory.INSTANCE.getOrCreateCompetitor("comp", "comp", null, null, null));
DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent);
RegisterCompetitorEvent actualEvent = loadEvent(dbObject);
RaceLogRegisterCompetitorEvent actualEvent = loadEvent(dbObject);
assertBaseFields(expectedEvent, actualEvent);
assertEquals(expectedEvent.getCompetitor(), actualEvent.getCompetitor());
@@ -262,12 +262,12 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest {
@Test
public void testStoreAndLoadDefineMarkEvent() {
DefineMarkEvent expectedEvent = eventFactory.createDefineMarkEvent(
RaceLogDefineMarkEvent expectedEvent = eventFactory.createDefineMarkEvent(
expectedEventTime, author, expectedEventTime, expectedId, expectedPassId,
DomainFactory.INSTANCE.getOrCreateMark("mytestmark"));
DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent);
DefineMarkEvent actualEvent = loadEvent(dbObject);
RaceLogDefineMarkEvent actualEvent = loadEvent(dbObject);
assertBaseFields(expectedEvent, actualEvent);
assertEquals(expectedEvent.getMark(), actualEvent.getMark());
@@ -275,12 +275,12 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest {
@Test
public void testStoreAndLoadCloseOpenDeviceMappingEvent() {
CloseOpenEndedDeviceMappingEvent expectedEvent = eventFactory.createCloseOpenEndedDeviceMappingEvent(
RaceLogCloseOpenEndedDeviceMappingEvent expectedEvent = eventFactory.createCloseOpenEndedDeviceMappingEvent(
expectedEventTime, author, expectedEventTime, expectedId, expectedPassId,
UUID.randomUUID(), new MillisecondsTimePoint(49));
DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent);
CloseOpenEndedDeviceMappingEvent actualEvent = loadEvent(dbObject);
RaceLogCloseOpenEndedDeviceMappingEvent actualEvent = loadEvent(dbObject);
assertBaseFields(expectedEvent, actualEvent);
assertEquals(expectedEvent.getDeviceMappingEventId(), actualEvent.getDeviceMappingEventId());
@@ -15,7 +15,6 @@ import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl;
import com.sap.sailing.domain.abstractlog.race.RaceLog;
import com.sap.sailing.domain.abstractlog.race.RaceLogEventFactory;
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogImpl;
import com.sap.sailing.domain.abstractlog.race.tracking.DeviceIdentifier;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.DomainFactory;
import com.sap.sailing.domain.base.Mark;
@@ -33,6 +32,7 @@ import com.sap.sailing.domain.persistence.racelog.tracking.impl.MongoGPSFixStore
import com.sap.sailing.domain.racelog.tracking.GPSFixStore;
import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory;
import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier;
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
import com.sap.sailing.domain.tracking.GPSFix;
import com.sap.sailing.domain.tracking.GPSFixMoving;
import com.sap.sailing.domain.tracking.impl.DynamicGPSFixMovingTrackImpl;
@@ -49,6 +49,7 @@ import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl;
import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl;
import com.sap.sailing.domain.persistence.media.MediaDBFactory;
import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore;
import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore;
import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithFixedRankAndManyCompetitors;
import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
import com.sap.sailing.server.RacingEventService;
@@ -98,7 +99,8 @@ public class TestStoringAndRetrievingLeaderboardGroups extends AbstractMongoDBTe
final LeaderboardGroup leaderboardGroup = new LeaderboardGroupImpl(groupName, groupDescription, /* displayName */ null, false, leaderboards);
final Leaderboard overallLeaderboard = new LeaderboardGroupMetaLeaderboard(leaderboardGroup,
new HighPointExtremeSailingSeriesOverall(), new ThresholdBasedResultDiscardingRuleImpl(new int[0]));
new HighPointExtremeSailingSeriesOverall(), new ThresholdBasedResultDiscardingRuleImpl(new int[0]),
EmptyRegattaLogStore.INSTANCE);
leaderboardGroup.setOverallLeaderboard(overallLeaderboard);
mongoObjectFactory.storeLeaderboardGroup(leaderboardGroup);
@@ -205,7 +207,8 @@ public class TestStoringAndRetrievingLeaderboardGroups extends AbstractMongoDBTe
final LeaderboardGroup leaderboardGroup = new LeaderboardGroupImpl(groupName, groupDescription, /* displayName */ null, false, leaderboards);
final Leaderboard overallLeaderboard = new LeaderboardGroupMetaLeaderboard(leaderboardGroup,
new HighPointExtremeSailingSeriesOverall(), new ThresholdBasedResultDiscardingRuleImpl(new int[0]));
new HighPointExtremeSailingSeriesOverall(), new ThresholdBasedResultDiscardingRuleImpl(new int[0]),
EmptyRegattaLogStore.INSTANCE);
leaderboardGroup.setOverallLeaderboard(overallLeaderboard);
overallLeaderboard.setSuppressed(wolfgang, true);
mongoObjectFactory.storeLeaderboardGroup(leaderboardGroup);
@@ -261,7 +264,8 @@ public class TestStoringAndRetrievingLeaderboardGroups extends AbstractMongoDBTe
final LeaderboardGroup leaderboardGroup = new LeaderboardGroupImpl(groupName, groupDescription, /* displayName */ null, false, leaderboards);
final Leaderboard overallLeaderboard = new LeaderboardGroupMetaLeaderboard(leaderboardGroup,
new HighPointExtremeSailingSeriesOverall(), new ThresholdBasedResultDiscardingRuleImpl(new int[0]));
new HighPointExtremeSailingSeriesOverall(), new ThresholdBasedResultDiscardingRuleImpl(new int[0]),
EmptyRegattaLogStore.INSTANCE);
leaderboardGroup.setOverallLeaderboard(overallLeaderboard);
overallLeaderboard.setSuppressed(wolfgang, true);
overallLeaderboard.setSuppressed(hasso, true);
@@ -55,12 +55,10 @@ import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl;
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl;
import com.sap.sailing.domain.persistence.MongoRaceLogStoreFactory;
import com.sap.sailing.domain.persistence.PersistenceFactory;
import com.sap.sailing.domain.persistence.impl.FieldNames;
import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl;
import com.sap.sailing.domain.persistence.impl.MongoUtils;
import com.sap.sailing.domain.racelog.RaceLogStore;
import com.sap.sailing.domain.tracking.Wind;
import com.sap.sailing.server.impl.RacingEventServiceImpl;
import com.sap.sse.common.Util;
@@ -81,9 +79,10 @@ public class TestStoringAndRetrievingRaceLogInLeaderboards extends RaceLogMongoD
public void setUp() {
now = MillisecondsTimePoint.now();
mongoObjectFactory = PersistenceFactory.INSTANCE.getMongoObjectFactory(getMongoService());
domainObjectFactory = PersistenceFactory.INSTANCE.getDomainObjectFactory(getMongoService(), DomainFactory.INSTANCE);
RaceLogStore raceLogStore = MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory, domainObjectFactory);
leaderboard = new FlexibleLeaderboardImpl(raceLogStore, leaderboardName, new ThresholdBasedResultDiscardingRuleImpl(discardIndexResultsStartingWithHowManyRaces),
domainObjectFactory = PersistenceFactory.INSTANCE.getDomainObjectFactory(getMongoService(),
DomainFactory.INSTANCE);
leaderboard = new FlexibleLeaderboardImpl(getRaceLogStore(), getRegattaLogStore(), leaderboardName,
new ThresholdBasedResultDiscardingRuleImpl(discardIndexResultsStartingWithHowManyRaces),
new LowPoint(), null);
leaderboard.addRaceColumn(raceColumnName, /* medalRace */false);
}
@@ -29,6 +29,7 @@ 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.racelog.tracking.EmptyGPSFixStore;
import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore;
import com.sap.sailing.domain.test.AbstractTracTracLiveTest;
import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet;
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
@@ -75,10 +76,11 @@ public class TestStoringAndRetrievingWindTracksTest extends AbstractTracTracLive
@Test
public void testStoreAFewWindEntries() throws UnknownHostException, MongoException, InterruptedException {
DomainFactory domainFactory = DomainFactory.INSTANCE;
Regatta domainEvent = domainFactory.getOrCreateDefaultRegatta(EmptyRaceLogStore.INSTANCE, getTracTracRace(), /* trackedRegattaRegistry */ null);
Regatta domainEvent = domainFactory.getOrCreateDefaultRegatta(EmptyRaceLogStore.INSTANCE,
EmptyRegattaLogStore.INSTANCE, getTracTracRace(), /* trackedRegattaRegistry */null);
DynamicTrackedRegatta trackedRegatta = new RacingEventServiceImpl().getOrCreateTrackedRegatta(domainEvent);
Iterable<Receiver> typeControllers = domainFactory.getUpdateReceivers(trackedRegatta, Util.get(getTracTracEvent().getRaces(), 0),
EmptyWindStore.INSTANCE,
Iterable<Receiver> typeControllers = domainFactory.getUpdateReceivers(trackedRegatta,
Util.get(getTracTracEvent().getRaces(), 0), EmptyWindStore.INSTANCE,
0l, /* simulator */ null, /* delayToLiveInMillis */
new DynamicRaceDefinitionSet() {
@Override