mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-24 21:13:50 +00:00
Merge remote-tracking branch 'origin/bug1163'
This commit is contained in:
commit
fff96ae306
12 files changed
+39
-53
No files matched your search
-2
@@ -1,8 +1,6 @@
|
||||
package com.sap.sailing.domain.common;
|
||||
|
||||
public interface LeaderboardNameConstants {
|
||||
static final String DEFAULT_LEADERBOARD_NAME = "Default Leaderboard";
|
||||
|
||||
static final String OVERALL = "Overall";
|
||||
|
||||
static final String DEFAULT_FLEET_NAME = "Default";
|
||||
|
||||
-1
@@ -44,7 +44,6 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, c
|
||||
String competitor();
|
||||
String competitors();
|
||||
String competitorsSelected(int selectedCompetitorsCount, int competitorsCount);
|
||||
String defaultLeaderboard();
|
||||
String noSuchLeaderboard();
|
||||
String leaderboardConfiguration();
|
||||
String newDotDotDot();
|
||||
|
||||
-1
@@ -32,7 +32,6 @@ carry=Accumulated
|
||||
competitor=Competitor
|
||||
competitors=Competitors
|
||||
competitorsSelected={0}/{1} competitors selected.
|
||||
defaultLeaderboard=Default Leaderboard
|
||||
noSuchLeaderboard=No such leaderboard
|
||||
leaderboardConfiguration=Leaderboard Configuration
|
||||
newDotDotDot=New...
|
||||
|
||||
-1
@@ -32,7 +32,6 @@ carry=übertr.
|
||||
competitor=Team
|
||||
competitors=Teams
|
||||
competitorsSelected={0}/{1} Teams ausgewählt.
|
||||
defaultLeaderboard=Alle Ergebnisse
|
||||
noSuchLeaderboard=Rangliste nicht gefunden
|
||||
leaderboardConfiguration=Ranglisten-Konfiguration
|
||||
newDotDotDot=Neu...
|
||||
|
||||
-1
@@ -32,7 +32,6 @@ carry=Суммарная
|
||||
competitor=Участник
|
||||
competitors=Участники
|
||||
competitorsSelected={0}/{1} Участники.
|
||||
defaultLeaderboard=Таблица лидеров по умолчанию
|
||||
noSuchLeaderboard=Такая таблица лидеров отсутствует
|
||||
leaderboardConfiguration=Форма таблицы лидеров
|
||||
newDotDotDot=Новый...
|
||||
|
||||
-1
@@ -1051,7 +1051,6 @@ polarSheetMinimumConfidenceMeasure=Minimum confidence measure
|
||||
operator=operator
|
||||
tractracUsername=TracTrac username
|
||||
webWindSourceTypeName=Manual
|
||||
defaultLeaderboard=Default Leaderboard
|
||||
raceIsLive=Race {0} is live
|
||||
sapSailingAnalytics=航行分析
|
||||
trackWind=Track Wind
|
||||
|
||||
+1
-3
@@ -9,7 +9,6 @@ import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
|
||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.server.gateway.AbstractJsonHttpServlet;
|
||||
|
||||
@@ -21,8 +20,7 @@ public class LeaderboardsJsonGetServlet extends AbstractJsonHttpServlet {
|
||||
JSONArray jsonLeaderboards = new JSONArray();
|
||||
Map<String, Leaderboard> leaderboards = getService().getLeaderboards();
|
||||
for (String leaderboardName : leaderboards.keySet()) {
|
||||
if(!leaderboardName.equals(LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME))
|
||||
jsonLeaderboards.add(leaderboardName);
|
||||
jsonLeaderboards.add(leaderboardName);
|
||||
}
|
||||
setJsonResponseHeader(resp);
|
||||
jsonLeaderboards.writeJSONString(resp.getWriter());
|
||||
|
||||
+1
-4
@@ -51,7 +51,6 @@ import com.sap.sailing.domain.base.Nationality;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.Waypoint;
|
||||
import com.sap.sailing.domain.common.Distance;
|
||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.NoWindException;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
@@ -106,9 +105,7 @@ public class LeaderboardsResource extends AbstractSailingServerResource {
|
||||
JSONArray jsonLeaderboards = new JSONArray();
|
||||
Map<String, Leaderboard> leaderboards = getService().getLeaderboards();
|
||||
for (String leaderboardName : leaderboards.keySet()) {
|
||||
if (!leaderboardName.equals(LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME)) {
|
||||
jsonLeaderboards.add(leaderboardName);
|
||||
}
|
||||
jsonLeaderboards.add(leaderboardName);
|
||||
}
|
||||
String json = jsonLeaderboards.toJSONString();
|
||||
return Response.ok(json, MediaType.APPLICATION_JSON).build();
|
||||
|
||||
+13
-7
@@ -22,11 +22,12 @@ import com.sap.sailing.domain.base.Waypoint;
|
||||
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.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule;
|
||||
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
|
||||
import com.sap.sailing.server.RacingEventServiceOperation;
|
||||
import com.sap.sailing.server.operationaltransformation.AddDefaultRegatta;
|
||||
import com.sap.sailing.server.operationaltransformation.AddRaceDefinition;
|
||||
import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard;
|
||||
@@ -34,6 +35,8 @@ import com.sap.sailing.server.operationaltransformation.RemoveLeaderboard;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
public class ServerReplicationTest extends AbstractServerReplicationTest {
|
||||
private static final String LEADERBOARDNAME = "TESTLEADERBOARD";
|
||||
|
||||
@Test
|
||||
public void testBasicInitialLoad() throws Exception {
|
||||
assertNotSame(master, replica);
|
||||
@@ -63,15 +66,18 @@ public class ServerReplicationTest extends AbstractServerReplicationTest {
|
||||
|
||||
@Test
|
||||
public void testLeaderboardRemovalReplication() throws InterruptedException {
|
||||
final String leaderboardName = LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME;
|
||||
assertNotNull(replica.getLeaderboardByName(leaderboardName));
|
||||
assertNotNull(master.getLeaderboardByName(leaderboardName));
|
||||
RemoveLeaderboard removeDefaultLeaderboard = new RemoveLeaderboard(leaderboardName);
|
||||
RacingEventServiceOperation<FlexibleLeaderboard> addLeaderboardOp = new CreateFlexibleLeaderboard(LEADERBOARDNAME,null, new int[] { 5 },
|
||||
new LowPoint(), null);
|
||||
master.apply(addLeaderboardOp);
|
||||
Thread.sleep(1000); // wait 1s for JMS to deliver the message and the message to be applied
|
||||
assertNotNull(replica.getLeaderboardByName(LEADERBOARDNAME));
|
||||
assertNotNull(master.getLeaderboardByName(LEADERBOARDNAME));
|
||||
RemoveLeaderboard removeDefaultLeaderboard = new RemoveLeaderboard(LEADERBOARDNAME);
|
||||
master.apply(removeDefaultLeaderboard);
|
||||
final Leaderboard masterLeaderboard = master.getLeaderboardByName(leaderboardName);
|
||||
final Leaderboard masterLeaderboard = master.getLeaderboardByName(LEADERBOARDNAME);
|
||||
assertNull(masterLeaderboard);
|
||||
Thread.sleep(1000); // wait 1s for JMS to deliver the message and the message to be applied
|
||||
final Leaderboard replicaLeaderboard = replica.getLeaderboardByName(leaderboardName);
|
||||
final Leaderboard replicaLeaderboard = replica.getLeaderboardByName(LEADERBOARDNAME);
|
||||
assertNull(replicaLeaderboard);
|
||||
}
|
||||
|
||||
|
||||
+10
-4
@@ -20,7 +20,6 @@ import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
|
||||
import com.sap.sailing.domain.common.WindSourceType;
|
||||
@@ -114,6 +113,13 @@ public class TrackRaceReplicationTest extends AbstractServerReplicationTest {
|
||||
|
||||
@Test
|
||||
public void testStartTrackingRaceReplication() throws Exception {
|
||||
final String leaderboardName = "Test Leaderboard";
|
||||
Leaderboard masterLeaderboard = master.apply(new CreateFlexibleLeaderboard(leaderboardName, null, new int[0], new LowPoint(), null));
|
||||
final String columnName = "R1";
|
||||
master.apply(new AddColumnToLeaderboard(columnName, leaderboardName, /* medalRace */ false));
|
||||
final Fleet defaultFleet = masterLeaderboard.getFleet(null);
|
||||
master.apply(new ConnectTrackedRaceToLeaderboardColumn(leaderboardName, columnName, defaultFleet.getName(),
|
||||
new RegattaNameAndRaceName("Academy Tracking 2011 (STG)", "weym470may122011")));
|
||||
startTracking();
|
||||
Thread.sleep(1000);
|
||||
TrackedRace replicaTrackedRace = replica.getTrackedRace(raceIdentifier);
|
||||
@@ -121,10 +127,10 @@ public class TrackRaceReplicationTest extends AbstractServerReplicationTest {
|
||||
assertNotSame(masterTrackedRace, replicaTrackedRace);
|
||||
assertNotSame(masterTrackedRace.getRace(), replicaTrackedRace.getRace());
|
||||
assertEquals(Util.size(masterTrackedRace.getRace().getCompetitors()), Util.size(replicaTrackedRace.getRace().getCompetitors()));
|
||||
Leaderboard replicaDefaultLeaderboard = replica.getLeaderboardByName(LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME);
|
||||
RaceColumn column = replicaDefaultLeaderboard.getRaceColumnByName(replicaTrackedRace.getRace().getName());
|
||||
Leaderboard replicaLeaderboard = replica.getLeaderboardByName(leaderboardName);
|
||||
RaceColumn column = replicaLeaderboard.getRaceColumnByName(columnName);
|
||||
assertNotNull(column);
|
||||
assertSame(replicaTrackedRace, column.getTrackedRace(replicaDefaultLeaderboard.getFleet(null)));
|
||||
assertSame(replicaTrackedRace, column.getTrackedRace(replicaLeaderboard.getFleet(null)));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
+14
-9
@@ -10,7 +10,6 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
|
||||
@@ -57,18 +56,21 @@ public class OperationalTransformationTest {
|
||||
server.waitForNotRunning();
|
||||
replica.waitForNotRunning();
|
||||
Map<String, Leaderboard> replicaLeaderboards = racingEventServiceReplica.getLeaderboards();
|
||||
assertEquals(2, replicaLeaderboards.size()); // expected to include the default leaderboard
|
||||
assertEquals(new HashSet<String>(Arrays.asList(new String[] { LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME, LEADERBOARDNAME })),
|
||||
assertEquals(1, replicaLeaderboards.size());
|
||||
assertEquals(new HashSet<String>(Arrays.asList(new String[] { LEADERBOARDNAME })),
|
||||
replicaLeaderboards.keySet());
|
||||
assertEquals(racingEventServiceServer.getLeaderboards().keySet(), replicaLeaderboards.keySet());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddColumnToLeaderboardOnServerAndRemoveLeaderboardOnClient() throws InterruptedException {
|
||||
RacingEventServiceOperation<FlexibleLeaderboard> addLeaderboardOp = new CreateFlexibleLeaderboard(LEADERBOARDNAME,null, new int[] { 5 },
|
||||
new LowPoint(), null);
|
||||
server.apply(addLeaderboardOp);
|
||||
RacingEventServiceOperation<RaceColumn> addLeaderboardColumn = new AddColumnToLeaderboard(
|
||||
"newColumn", LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME, /* medalRace */ true);
|
||||
"newColumn", LEADERBOARDNAME, /* medalRace */ true);
|
||||
server.apply(addLeaderboardColumn);
|
||||
RacingEventServiceOperation<Void> removeDefaultLeaderboard = new RemoveLeaderboard(LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME);
|
||||
RacingEventServiceOperation<Void> removeDefaultLeaderboard = new RemoveLeaderboard(LEADERBOARDNAME);
|
||||
replica.apply(removeDefaultLeaderboard);
|
||||
replica.waitForNotRunning();
|
||||
server.waitForNotRunning();
|
||||
@@ -78,17 +80,20 @@ public class OperationalTransformationTest {
|
||||
|
||||
@Test
|
||||
public void testAddOneColumnOnEachSideThenMoveOneUpOnServerAndRemoveLeaderboardOnClient() throws InterruptedException {
|
||||
RacingEventServiceOperation<FlexibleLeaderboard> addLeaderboardOp = new CreateFlexibleLeaderboard(LEADERBOARDNAME,null, new int[] { 5 },
|
||||
new LowPoint(), null);
|
||||
server.apply(addLeaderboardOp);
|
||||
RacingEventServiceOperation<RaceColumn> addLeaderboardColumnOnServer = new AddColumnToLeaderboard(
|
||||
"newColumn1", LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME, /* medalRace */ true);
|
||||
"newColumn1", LEADERBOARDNAME, /* medalRace */ true);
|
||||
server.apply(addLeaderboardColumnOnServer);
|
||||
RacingEventServiceOperation<RaceColumn> addLeaderboardColumnOnReplica = new AddColumnToLeaderboard(
|
||||
"newColumn2", LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME, /* medalRace */ true);
|
||||
"newColumn2", LEADERBOARDNAME, /* medalRace */ true);
|
||||
replica.apply(addLeaderboardColumnOnReplica);
|
||||
replica.waitForNotRunning();
|
||||
server.waitForNotRunning();
|
||||
RacingEventServiceOperation<Void> moveUpNewColumn2 = new MoveLeaderboardColumnUp(LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME, "newColumn2");
|
||||
RacingEventServiceOperation<Void> moveUpNewColumn2 = new MoveLeaderboardColumnUp(LEADERBOARDNAME, "newColumn2");
|
||||
server.apply(moveUpNewColumn2);
|
||||
RacingEventServiceOperation<Void> removeDefaultLeaderboard = new RemoveLeaderboard(LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME);
|
||||
RacingEventServiceOperation<Void> removeDefaultLeaderboard = new RemoveLeaderboard(LEADERBOARDNAME);
|
||||
replica.apply(removeDefaultLeaderboard);
|
||||
replica.waitForNotRunning();
|
||||
server.waitForNotRunning();
|
||||
|
||||
-19
@@ -91,7 +91,6 @@ import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.RemoteSailingServerReferenceImpl;
|
||||
import com.sap.sailing.domain.common.DataImportProgress;
|
||||
import com.sap.sailing.domain.common.Distance;
|
||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaIdentifier;
|
||||
@@ -594,11 +593,6 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
|
||||
this.configurationMap = new DeviceConfigurationMapImpl();
|
||||
this.serviceFinderFactory = serviceFinderFactory;
|
||||
|
||||
// Add one default leaderboard that aggregates all races currently tracked by this service.
|
||||
// This is more for debugging purposes than for anything else.
|
||||
addFlexibleLeaderboard(LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME, null, new int[] { 5, 8 },
|
||||
getBaseDomainFactory().createScoringScheme(ScoringSchemeType.LOW_POINT), null);
|
||||
|
||||
final Iterable<Pair<Event, Boolean>> loadedEventsWithRequireStoreFlag = loadStoredEvents();
|
||||
loadStoredRegattas();
|
||||
loadRaceIDToRegattaAssociations();
|
||||
@@ -659,10 +653,6 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
|
||||
}
|
||||
// TODO clear user store? See bug 2430.
|
||||
this.competitorStore.clear();
|
||||
// Add one default leaderboard that aggregates all races currently tracked by this service.
|
||||
// This is more for debugging purposes than for anything else.
|
||||
addFlexibleLeaderboard(LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME, null, new int[] { 5, 8 },
|
||||
getBaseDomainFactory().createScoringScheme(ScoringSchemeType.LOW_POINT), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1597,12 +1587,6 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
|
||||
trackedRace.getMillisecondsOverWhichToAverageSpeed());
|
||||
replicate(op);
|
||||
linkRaceToConfiguredLeaderboardColumns(trackedRace);
|
||||
final FlexibleLeaderboard defaultLeaderboard = (FlexibleLeaderboard) leaderboardsByName
|
||||
.get(LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME);
|
||||
if (defaultLeaderboard != null) {
|
||||
String columnName = trackedRace.getRace().getName();
|
||||
defaultLeaderboard.addRace(trackedRace, columnName, /* medalRace */false);
|
||||
}
|
||||
TrackedRaceReplicator trackedRaceReplicator = new TrackedRaceReplicator(trackedRace);
|
||||
trackedRaceReplicators.put(trackedRace, trackedRaceReplicator);
|
||||
trackedRace.addListener(trackedRaceReplicator, /* fire wind already loaded */true, true);
|
||||
@@ -1826,9 +1810,6 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
|
||||
}
|
||||
for (RaceDefinition race : regatta.getAllRaces()) {
|
||||
stopTrackingWind(regatta, race);
|
||||
// remove from default leaderboard
|
||||
FlexibleLeaderboard defaultLeaderboard = (FlexibleLeaderboard) getLeaderboardByName(LeaderboardNameConstants.DEFAULT_LEADERBOARD_NAME);
|
||||
defaultLeaderboard.removeRaceColumn(race.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user