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 04b516f61da..a836ea54d98 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
@@ -179,7 +179,7 @@ public interface DomainFactory {
* if not null, after creating the {@link TrackedRace}, the {@link RaceDefinition} is
* {@link DynamicRaceDefinitionSet#addRaceDefinition(RaceDefinition) added} to that object.
*/
- Pair getOrCreateRaceDefinitionAndTrackedRace(TrackedRegatta trackedRegatta, Race race,
+ void getOrCreateRaceDefinitionAndTrackedRace(TrackedRegatta trackedRegatta, Race race,
Course course, WindStore windStore, long delayToLiveInMillis, long millisecondsOverWhichToAverageWind,
DynamicRaceDefinitionSet raceDefinitionSetToUpdate);
diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/RaceRecord.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/RaceRecord.java
index 9ad81161b33..e80ad48a9cb 100755
--- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/RaceRecord.java
+++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/RaceRecord.java
@@ -99,7 +99,7 @@ public class RaceRecord {
public String getName() {
return name;
}
-
+
public String getEventName() {
return regattaName;
}
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 60445834518..366f72cfce4 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
@@ -367,7 +367,7 @@ public class DomainFactoryImpl implements DomainFactory {
}
@Override
- public Pair getOrCreateRaceDefinitionAndTrackedRace(TrackedRegatta trackedRegatta,
+ public void getOrCreateRaceDefinitionAndTrackedRace(TrackedRegatta trackedRegatta,
Race race, Course course, WindStore windStore, long delayToLiveInMillis, long millisecondsOverWhichToAverageWind,
DynamicRaceDefinitionSet raceDefinitionSetToUpdate) {
synchronized (raceCache) {
@@ -377,21 +377,23 @@ public class DomainFactoryImpl implements DomainFactory {
logger.info("Creating RaceDefinitionImpl for race "+race.getName());
raceDefinition = new RaceDefinitionImpl(race.getName(), course, competitorsAndDominantBoatClass.getB(),
competitorsAndDominantBoatClass.getA(), getRaceID(race));
- // add to domain Event only if boat class matches
+ // add to existing regatta only if boat class matches
if (raceDefinition.getBoatClass() == trackedRegatta.getRegatta().getBoatClass()) {
trackedRegatta.getRegatta().addRace(raceDefinition);
+
+ createTrackedRace(trackedRegatta, raceDefinition, windStore,
+ delayToLiveInMillis, millisecondsOverWhichToAverageWind, raceDefinitionSetToUpdate);
+ logger.info("Added race "+raceDefinition+" to regatta "+trackedRegatta.getRegatta());
+
+ synchronized (raceCache) {
+ raceCache.put(race, raceDefinition);
+ raceCache.notifyAll();
+ }
} else {
logger.warning("Not adding race "+raceDefinition+" to regatta "+trackedRegatta.getRegatta()+
" because boat class "+raceDefinition.getBoatClass()+" doesn't match regatta's boat class "+
trackedRegatta.getRegatta().getBoatClass());
}
- TrackedRace trackedRace = createTrackedRace(trackedRegatta, raceDefinition, windStore,
- delayToLiveInMillis, millisecondsOverWhichToAverageWind, raceDefinitionSetToUpdate);
- synchronized (raceCache) {
- raceCache.put(race, raceDefinition);
- raceCache.notifyAll();
- }
- return new Pair(raceDefinition, trackedRace);
} else {
throw new RuntimeException("Race "+race.getName()+" already exists");
}
diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractMongoDBTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractMongoDBTest.java
index a91faa902d3..0364434c5c4 100755
--- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractMongoDBTest.java
+++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractMongoDBTest.java
@@ -10,6 +10,7 @@ import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
+import com.sap.sailing.domain.persistence.impl.CollectionNames;
import com.sap.sailing.mongodb.MongoDBConfiguration;
import com.sap.sailing.mongodb.MongoDBService;
@@ -42,9 +43,9 @@ public abstract class AbstractMongoDBTest {
assertNotNull(db);
}
- private void dropAllCollections(DB theDB) {
- for (String collectionName : theDB.getCollectionNames()) {
- DBCollection c = theDB.getCollection(collectionName);
+ private void dropAllCollections(DB theDB) throws InterruptedException {
+ for (CollectionNames collectionName : CollectionNames.values()) {
+ DBCollection c = theDB.getCollection(collectionName.name());
c.drop();
}
}
diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindData.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindData.java
index b24f1020023..1e7b2c9ebaf 100755
--- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindData.java
+++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindData.java
@@ -5,6 +5,7 @@ import static org.junit.Assert.assertNotNull;
import java.net.UnknownHostException;
+import org.junit.Before;
import org.junit.Test;
import com.mongodb.BasicDBObject;
@@ -27,6 +28,13 @@ import com.sap.sailing.domain.tracking.impl.WindImpl;
public class TestStoringAndRetrievingWindData extends AbstractMongoDBTest {
private static final String WIND_TEST_COLLECTION = "wind_test_collection";
+ @Before
+ @Override
+ public void dropTestDB() throws UnknownHostException, MongoException, InterruptedException {
+ super.dropTestDB();
+ db.getCollection(WIND_TEST_COLLECTION).drop();
+ }
+
@Test
public void testDBConnection() throws UnknownHostException, MongoException {
DBCollection coll = db.getCollection(WIND_TEST_COLLECTION);
@@ -57,8 +65,8 @@ public class TestStoringAndRetrievingWindData extends AbstractMongoDBTest {
DBCollection coll = db.getCollection(WIND_TEST_COLLECTION);
assertNotNull(coll);
DBObject object = coll.findOne();
- assertEquals(object.get("truebearingdeg"), 234.3);
- assertEquals(object.get("knotspeed"), 10.7);
+ assertEquals(234.3, object.get("truebearingdeg"));
+ assertEquals(10.7, object.get("knotspeed"));
}
}
@@ -74,7 +82,7 @@ public class TestStoringAndRetrievingWindData extends AbstractMongoDBTest {
}
{
- Thread.sleep(1000); // wait until MongoDB has recorded the change and made it visible
+ Thread.sleep(3000); // wait until MongoDB has recorded the change and made it visible
Mongo mongo = newMongo();
assertNotNull(mongo);
DB db = mongo.getDB(getDBConfiguration().getDatabaseName());