mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-30 09:26:44 +00:00
failing test cases for bug 1113
This commit is contained in:
+5
@@ -5,6 +5,7 @@ import java.util.List;
|
||||
import com.sap.sailing.domain.swisstimingadapter.Race;
|
||||
import com.sap.sailing.domain.swisstimingadapter.RaceSpecificMessageLoader;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SailMasterMessage;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingArchiveConfiguration;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.persistence.impl.SwissTimingAdapterPersistenceImpl;
|
||||
@@ -15,6 +16,8 @@ public interface SwissTimingAdapterPersistence extends RaceSpecificMessageLoader
|
||||
SwissTimingAdapterPersistence INSTANCE = new SwissTimingAdapterPersistenceImpl(MongoDBService.INSTANCE, SwissTimingFactory.INSTANCE);
|
||||
|
||||
Iterable<SwissTimingConfiguration> getSwissTimingConfigurations();
|
||||
|
||||
Iterable<SwissTimingArchiveConfiguration> getSwissTimingArchiveConfigurations();
|
||||
|
||||
/**
|
||||
* Loads all messages received and stored to the DB starting with sequence number <code>firstSequenceNumber</code>.
|
||||
@@ -38,6 +41,8 @@ public interface SwissTimingAdapterPersistence extends RaceSpecificMessageLoader
|
||||
|
||||
void storeSwissTimingConfiguration(SwissTimingConfiguration swissTimingConfiguration);
|
||||
|
||||
void storeSwissTimingArchiveConfiguration(SwissTimingArchiveConfiguration createSwissTimingArchiveConfiguration);
|
||||
|
||||
void storeSailMasterMessage(SailMasterMessage message);
|
||||
|
||||
void storeRace(Race race);
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.sap.sailing.domain.swisstimingadapter.persistence.impl;
|
||||
|
||||
public enum CollectionNames {
|
||||
SWISSTIMING_CONFIGURATIONS, LAST_MESSAGE_COUNT,
|
||||
RACES_MASTERDATA, RACES_MESSAGES, COMMAND_MESSAGES
|
||||
SWISSTIMING_CONFIGURATIONS, SWISSTIMING_ARCHIVE_CONFIGURATIONS, LAST_MESSAGE_COUNT,
|
||||
RACES_MASTERDATA, RACES_MESSAGES, COMMAND_MESSAGES
|
||||
}
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ package com.sap.sailing.domain.swisstimingadapter.persistence.impl;
|
||||
|
||||
public enum FieldNames {
|
||||
// SwissTiming configuration parameters:
|
||||
ST_CONFIG_NAME, ST_CONFIG_HOSTNAME, ST_CONFIG_PORT, ST_CONFIG_CAN_SEND_REQUESTS,
|
||||
ST_CONFIG_NAME, ST_CONFIG_HOSTNAME, ST_CONFIG_PORT, ST_CONFIG_CAN_SEND_REQUESTS, ST_ARCHIVE_JSON_URL,
|
||||
|
||||
// last message count field:
|
||||
LAST_MESSAGE_COUNT,
|
||||
@@ -11,5 +11,5 @@ public enum FieldNames {
|
||||
MESSAGE_SEQUENCE_NUMBER, MESSAGE_CONTENT, MESSAGE_COMMAND,
|
||||
|
||||
// race specific message and masterdata
|
||||
RACE_ID, RACE_DESCRIPTION, RACE_STARTTIME,
|
||||
RACE_ID, RACE_DESCRIPTION, RACE_STARTTIME
|
||||
}
|
||||
|
||||
+39
-2
@@ -16,6 +16,7 @@ import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.swisstimingadapter.MessageType;
|
||||
import com.sap.sailing.domain.swisstimingadapter.Race;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SailMasterMessage;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingArchiveConfiguration;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence;
|
||||
@@ -85,8 +86,8 @@ public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPers
|
||||
} catch (Throwable t) {
|
||||
// something went wrong during DB access; report, then use empty new wind track
|
||||
logger.log(Level.SEVERE,
|
||||
"Error connecting to MongoDB, unable to load recorded TracTrac configurations. Check MongoDB settings.");
|
||||
logger.throwing(SwissTimingAdapterPersistenceImpl.class.getName(), "getTracTracConfigurations", t);
|
||||
"Error connecting to MongoDB, unable to load recorded SwissTiming configurations. Check MongoDB settings.");
|
||||
logger.throwing(SwissTimingAdapterPersistenceImpl.class.getName(), "getSwissTimingConfigurations", t);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -98,6 +99,29 @@ public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPers
|
||||
.get(FieldNames.ST_CONFIG_PORT.name()), canSendRequests == null ? false : canSendRequests);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<SwissTimingArchiveConfiguration> getSwissTimingArchiveConfigurations() {
|
||||
List<SwissTimingArchiveConfiguration> result = new ArrayList<SwissTimingArchiveConfiguration>();
|
||||
try {
|
||||
DBCollection stConfigs = database.getCollection(CollectionNames.SWISSTIMING_ARCHIVE_CONFIGURATIONS.name());
|
||||
for (DBObject o : stConfigs.find()) {
|
||||
SwissTimingArchiveConfiguration stConfig = loadSwissTimingArchiveConfiguration(o);
|
||||
result.add(stConfig);
|
||||
}
|
||||
Collections.reverse(result);
|
||||
} catch (Throwable t) {
|
||||
// something went wrong during DB access; report, then use empty new wind track
|
||||
logger.log(Level.SEVERE,
|
||||
"Error connecting to MongoDB, unable to load recorded SwissTiming archive configurations. Check MongoDB settings.");
|
||||
logger.throwing(SwissTimingAdapterPersistenceImpl.class.getName(), "getSwissTimingArchiveConfigurations", t);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private SwissTimingArchiveConfiguration loadSwissTimingArchiveConfiguration(DBObject object) {
|
||||
return swissTimingFactory.createSwissTimingArchiveConfiguration((String) object.get(FieldNames.ST_ARCHIVE_JSON_URL.name()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SailMasterMessage> loadCommandMessages(int firstSequenceNumber) {
|
||||
DBCollection commandMessages = database.getCollection(CollectionNames.COMMAND_MESSAGES.name());
|
||||
@@ -192,6 +216,19 @@ public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPers
|
||||
stConfigCollection.insert(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void storeSwissTimingArchiveConfiguration(
|
||||
SwissTimingArchiveConfiguration createSwissTimingArchiveConfiguration) {
|
||||
DBCollection stArchiveConfigCollection = database.getCollection(CollectionNames.SWISSTIMING_ARCHIVE_CONFIGURATIONS.name());
|
||||
stArchiveConfigCollection.ensureIndex(CollectionNames.SWISSTIMING_ARCHIVE_CONFIGURATIONS.name());
|
||||
BasicDBObject result = new BasicDBObject();
|
||||
result.put(FieldNames.ST_ARCHIVE_JSON_URL.name(), createSwissTimingArchiveConfiguration.getJsonUrl());
|
||||
for (DBObject equallyNamedConfig : stArchiveConfigCollection.find(result)) {
|
||||
stArchiveConfigCollection.remove(equallyNamedConfig);
|
||||
}
|
||||
stArchiveConfigCollection.insert(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void storeSailMasterMessage(SailMasterMessage message) {
|
||||
// Attention: this method is very time critical as we will receive thousands of messages in a short time
|
||||
|
||||
Reference in New Issue
Block a user