cleaned up and removed code not required for stage 1 of anniversaries

This commit is contained in:
Kai Boernert committed 2017-08-07 09:46:32 +02:00
1 parent d7132513b3
commit a02dea2a28
13 files changed
+51 -362

No files matched your search

@@ -79,7 +79,7 @@ public class CreateAndTrackWithRaceLogTest extends RaceLogTrackingTestHelper {
@Before
public void setup() {
service = new RacingEventServiceImpl(/* clearPersistentCompetitorStore */ true, new MockSmartphoneImeiServiceFinderFactory(), /* restoreTrackedRaces */ false,null);
service = new RacingEventServiceImpl(/* clearPersistentCompetitorStore */ true, new MockSmartphoneImeiServiceFinderFactory(), /* restoreTrackedRaces */ false);
sensorFixStore = service.getSensorFixStore();
service.getMongoObjectFactory().getDatabase().dropDatabase();
author = service.getServerAuthor();
@@ -47,7 +47,7 @@ public class SailingServiceImplMock extends SailingServiceImpl {
public SailingServiceImplMock() {
super();
service = new RacingEventServiceImpl(/* clearPersistentCompetitorStore */ true, new MockSmartphoneImeiServiceFinderFactory(), /* restoreTrackedRaces */ false,null);
service = new RacingEventServiceImpl(/* clearPersistentCompetitorStore */ true, new MockSmartphoneImeiServiceFinderFactory(), /* restoreTrackedRaces */ false);
try {
replicationService = new ReplicationServiceImpl("test exchange", "localhost", 0,
new ReplicationInstancesManager(), new AbstractReplicablesProvider() {
@@ -24,7 +24,7 @@ public abstract class AbstractConnectivityParamsLoadAndStoreTest extends Abstrac
public void setUp() {
serviceFinderFactory = new MockConnectivityParamsServiceFinderFactory();
racingEventService = new RacingEventServiceImpl(/* clearPersistentCompetitorStore */ true, serviceFinderFactory,
/* restoreTrackedRaces */ false, /* anniversaryCalculator */ null);
/* restoreTrackedRaces */ false);
serviceFinderFactory.setRacingEventService(racingEventService);
mongoObjectFactory = racingEventService.getMongoObjectFactory();
domainObjectFactory = racingEventService.getDomainObjectFactory();
@@ -1,39 +0,0 @@
package com.sap.sailing.server.gateway.serialization.impl;
import java.util.Date;
import java.util.UUID;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.anniversary.AnniversaryRaceInfo;
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
public class AnniversaryRaceInfoJsonSerializer implements JsonSerializer<AnniversaryRaceInfo>, JsonDeserializer<AnniversaryRaceInfo> {
public static final String FIELD_EVENT_ID = "eventID";
public static final String FIELD_LEADERBOARD_NAME = "leaderboardName";
@Override
public JSONObject serialize(AnniversaryRaceInfo object) {
JSONObject result = new JSONObject();
result.put(FIELD_EVENT_ID, object.getEventID().toString());
result.put(SimpleAnniversaryRaceInfoJsonSerializer.FIELD_RACE_NAME, object.getIdentifier().getRaceName());
result.put(SimpleAnniversaryRaceInfoJsonSerializer.FIELD_REGATTA_NAME, object.getIdentifier().getRegattaName());
result.put(FIELD_LEADERBOARD_NAME, object.getLeaderboardName());
result.put(SimpleAnniversaryRaceInfoJsonSerializer.FIELD_START_OF_RACE, object.getStartOfRace());
return result;
}
@Override
public AnniversaryRaceInfo deserialize(JSONObject object) throws JsonDeserializationException {
String eventId = object.get(FIELD_EVENT_ID).toString();
String raceName = object.get(SimpleAnniversaryRaceInfoJsonSerializer.FIELD_RACE_NAME).toString();
String regattaName = object.get(SimpleAnniversaryRaceInfoJsonSerializer.FIELD_REGATTA_NAME).toString();
String leaderboardName = object.get(FIELD_LEADERBOARD_NAME).toString();
Date startOfRace = (Date) object.get(SimpleAnniversaryRaceInfoJsonSerializer.FIELD_START_OF_RACE);
return new AnniversaryRaceInfo(new RegattaNameAndRaceName(regattaName, raceName), leaderboardName, startOfRace, UUID.fromString(eventId));
}
}
@@ -41,8 +41,7 @@ public abstract class AbstractJaxRsApiTest {
service = MongoDBConfiguration.getDefaultTestConfiguration().getService();
service.getDB().dropDatabase();
racingEventService = new RacingEventServiceImpl(/* clearPersistentCompetitorStore */ true,
new MockSmartphoneUuidServiceFinderFactory(), /* restoreTrackedRaces */ false,
/* anniversaryCalculator */ null);
new MockSmartphoneUuidServiceFinderFactory(), /* restoreTrackedRaces */ false);
}
protected <T extends AbstractSailingServerResource> T spyResource(T resource) {
@@ -46,8 +46,7 @@ public class GPSFixesResourceTest {
@Before
public void setup() {
service = new RacingEventServiceImpl(/* clearPersistentCompetitorStore */ true,
new MockSmartphoneUuidServiceFinderFactory(), /* restoreTrackedRaces */ false,
/* anniversaryCalculator */ null);
new MockSmartphoneUuidServiceFinderFactory(), /* restoreTrackedRaces */ false);
service.getMongoObjectFactory().getDatabase().dropDatabase();
}
@@ -4,21 +4,17 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.json.simple.JSONArray;
import org.json.simple.JSONAware;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.anniversary.AnniversaryConflictResolver;
import com.sap.sailing.domain.anniversary.AnniversaryRaceInfo;
import com.sap.sailing.domain.anniversary.SimpleAnniversaryRaceInfo;
import com.sap.sailing.domain.base.Event;
import com.sap.sailing.domain.base.Fleet;
@@ -28,7 +24,6 @@ import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource;
import com.sap.sailing.server.gateway.serialization.impl.AnniversaryRaceInfoJsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.SimpleAnniversaryRaceInfoJsonSerializer;
@Path("/v1/anniversary")
@@ -36,48 +31,7 @@ public class AnniversaryListResource extends AbstractSailingServerResource {
private static final String HEADER_NAME_CONTENT_TYPE = "Content-Type";
private static final String CONTENT_TYPE_JSON_UTF8 = MediaType.APPLICATION_JSON + ";charset=UTF-8";
private final AnniversaryConflictResolver resolver = new AnniversaryConflictResolver();
private final SimpleAnniversaryRaceInfoJsonSerializer simpleAnniversaryRaceListJsonSerializer = new SimpleAnniversaryRaceInfoJsonSerializer();
private final AnniversaryRaceInfoJsonSerializer anniversaryRaceListJsonSerializer = new AnniversaryRaceInfoJsonSerializer();
@GET
@Produces(CONTENT_TYPE_JSON_UTF8)
@Path("details")
public Response getDetailsForRace(@QueryParam("raceName") String raceName,
@QueryParam("regattaName") String regattaName) {
AnniversaryRaceInfo match = null;
for (Event event : getService().getAllEvents()) {
for (LeaderboardGroup group : event.getLeaderboardGroups()) {
for (Leaderboard leaderboard : group.getLeaderboards()) {
for (RaceColumn race : leaderboard.getRaceColumns()) {
for (Fleet fleet : race.getFleets()) {
TrackedRace trackedRace = race.getTrackedRace(fleet);
if (trackedRace != null) {
RegattaAndRaceIdentifier raceIdentifier = trackedRace.getRaceIdentifier();
if (raceIdentifier.getRaceName().equals(raceName)
&& raceIdentifier.getRegattaName().equals(regattaName)) {
AnniversaryRaceInfo newMatch = new AnniversaryRaceInfo(raceIdentifier,
leaderboard.getName(), trackedRace.getStartOfRace().asDate(),
event.getId());
if (match == null) {
match = newMatch;
} else {
match = resolver.resolve(match, newMatch);
}
}
}
}
}
}
}
}
if (match == null) {
return Response.status(Status.NOT_FOUND).header(HEADER_NAME_CONTENT_TYPE, CONTENT_TYPE_JSON_UTF8).build();
}
JSONObject serialized = anniversaryRaceListJsonSerializer.serialize(match);
return getJsonResponse(serialized);
}
@GET
@Produces(CONTENT_TYPE_JSON_UTF8)
@@ -116,26 +70,9 @@ public class AnniversaryListResource extends AbstractSailingServerResource {
@Path("fullRacelist")
public Response fullRaceList() {
JSONArray json = new JSONArray();
HashMap<RegattaAndRaceIdentifier, SimpleAnniversaryRaceInfo> store = new HashMap<>();
getService().getRemoteRaceList(store);
for (Event event : getService().getAllEvents()) {
for (LeaderboardGroup group : event.getLeaderboardGroups()) {
for (Leaderboard leaderboard : group.getLeaderboards()) {
for (RaceColumn race : leaderboard.getRaceColumns()) {
for (Fleet fleet : race.getFleets()) {
TrackedRace trackedRace = race.getTrackedRace(fleet);
if (trackedRace != null) {
RegattaAndRaceIdentifier raceIdentifier = trackedRace.getRaceIdentifier();
SimpleAnniversaryRaceInfo raceInfo = new SimpleAnniversaryRaceInfo(raceIdentifier,
trackedRace.getStartOfRace().asDate());
store.put(raceInfo.getIdentifier(), raceInfo);
}
}
}
}
}
}
Map<RegattaAndRaceIdentifier, SimpleAnniversaryRaceInfo> store = new HashMap<>();
store.putAll(getService().getRemoteRaceList());
store.putAll(getService().getLocalRaceList());
ArrayList<SimpleAnniversaryRaceInfo> sorted = new ArrayList<>(store.values());
Collections.sort(sorted, new Comparator<SimpleAnniversaryRaceInfo>() {
@@ -23,7 +23,7 @@ public abstract class RacingEventServiceImplMock extends RacingEventServiceImpl
private DataImportLockWithProgress lock;
public RacingEventServiceImplMock() {
super(/* clearPersistentCompetitorStore */ false, null, /* restoreTrackedRaces */ false,null);
super(/* clearPersistentCompetitorStore */ false, null, /* restoreTrackedRaces */ false);
}
public RacingEventServiceImplMock(DataImportProgressImpl dataImportProgressImpl, TypeBasedServiceFinderFactory serviceFinderFactory) {
@@ -7,7 +7,6 @@ import java.net.SocketException;
import java.net.URI;
import java.net.URL;
import java.util.ConcurrentModificationException;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -685,5 +684,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
*/
Map<Integer, Statistics> getOverallStatisticsByYear();
void getRemoteRaceList(HashMap<RegattaAndRaceIdentifier, SimpleAnniversaryRaceInfo> store);
Map<RegattaAndRaceIdentifier, SimpleAnniversaryRaceInfo> getRemoteRaceList();
Map<RegattaAndRaceIdentifier, SimpleAnniversaryRaceInfo> getLocalRaceList();
}
@@ -1,147 +0,0 @@
package com.sap.sailing.server.anniversary;
import java.util.Collection;
import java.util.concurrent.ScheduledExecutorService;
import com.sap.sailing.domain.anniversary.SimpleAnniversaryRaceInfo;
import com.sap.sailing.server.RacingEventService;
//import java.util.Collection;
//import java.util.HashMap;
//import java.util.concurrent.CopyOnWriteArraySet;
//import java.util.concurrent.ScheduledExecutorService;
//import java.util.concurrent.TimeUnit;
//import java.util.logging.Logger;
//
//import com.sap.sailing.domain.anniversary.AnniversaryConflictResolver;
//import com.sap.sailing.domain.anniversary.AnniversaryRaceInfo;
//import com.sap.sailing.domain.anniversary.SimpleAnniversaryRaceInfo;
//import com.sap.sailing.domain.base.Event;
//import com.sap.sailing.domain.base.Fleet;
//import com.sap.sailing.domain.base.RaceColumn;
//import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
//import com.sap.sailing.domain.leaderboard.Leaderboard;
//import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
//import com.sap.sailing.domain.tracking.TrackedRace;
//import com.sap.sailing.server.RacingEventService;
//
public class AnniversaryCalculator implements Runnable {
// private static final Logger logger = Logger.getLogger(AnniversaryCalculator.class.getName());
// private static final long INITIAL_DELAY = 1000;
// private static final long DELAY = 50000;
// private RacingEventService racingEventService;
// private int lastAmount = -1;
// // keep in memory, to ensure, that a offline going remoteservers races are still considered
// HashMap<RegattaAndRaceIdentifier, SimpleAnniversaryRaceInfo> store = new HashMap<>();
//
// private CopyOnWriteArraySet<ChangeListener> listeners = new CopyOnWriteArraySet<>();
// private AnniversaryConflictResolver resolver = new AnniversaryConflictResolver();
//
interface ChangeListener {
void onChange(Collection<SimpleAnniversaryRaceInfo> collection);
void setAnniversaryCalculator(AnniversaryCalculator anniversaryCalculator);
}
//
public AnniversaryCalculator(ScheduledExecutorService scheduledExecutorService) {
// scheduledExecutorService.scheduleWithFixedDelay(this, INITIAL_DELAY, DELAY, TimeUnit.MILLISECONDS);
}
//
public void addListener(ChangeListener listener) {
// listener.setAnniversaryCalculator(this);
// listeners.add(listener);
}
//
// public void removeListener(ChangeListener listener) {
// listener.setAnniversaryCalculator(null);
// listeners.remove(listener);
// }
//
@Override
public void run() {
// try {
// if (racingEventService == null || listeners.isEmpty()) {
// return;
// }
// racingEventService.getRemoteRaceList(store);
// getLocalResults(store);
//
// // add remotes with resolver checking
// for (ChangeListener listener : listeners) {
// listener.onChange(store.values());
// }
// } catch (Exception e) {
// logger.warning("Could not update anniversaries! ");
// e.printStackTrace();
// }
}
//
// private void getLocalResults(HashMap<RegattaAndRaceIdentifier, SimpleAnniversaryRaceInfo> store) {
// for (Event event : racingEventService.getAllEvents()) {
// for (LeaderboardGroup group : event.getLeaderboardGroups()) {
// for (Leaderboard leaderboard : group.getLeaderboards()) {
// for (RaceColumn race : leaderboard.getRaceColumns()) {
// for (Fleet fleet : race.getFleets()) {
// TrackedRace trackedRace = race.getTrackedRace(fleet);
// if (trackedRace != null) {
// RegattaAndRaceIdentifier raceIdentifier = trackedRace.getRaceIdentifier();
// store.put(raceIdentifier, new SimpleAnniversaryRaceInfo(raceIdentifier,
// trackedRace.getStartOfRace().asDate()));
// }
// }
// }
// }
// }
// }
// }
//
public void setRacingEventService(RacingEventService racingEventService) {
// this.racingEventService = racingEventService;
}
//
// public AnniversaryRaceInfo getFullAnniversaryDataLocal(SimpleAnniversaryRaceInfo simpleAnniversaryRaceInfo) {
// AnniversaryRaceInfo match = null;
// for (Event event : racingEventService.getAllEvents()) {
// for (LeaderboardGroup group : event.getLeaderboardGroups()) {
// for (Leaderboard leaderboard : group.getLeaderboards()) {
// for (RaceColumn race : leaderboard.getRaceColumns()) {
// for (Fleet fleet : race.getFleets()) {
// TrackedRace trackedRace = race.getTrackedRace(fleet);
// if (trackedRace != null) {
// RegattaAndRaceIdentifier raceIdentifier = trackedRace.getRaceIdentifier();
// if (raceIdentifier.equals(simpleAnniversaryRaceInfo.getIdentifier())) {
// AnniversaryRaceInfo newMatch = new AnniversaryRaceInfo(raceIdentifier,
// leaderboard.getName(), trackedRace.getStartOfRace().asDate(),
// event.getId());
// if (match == null) {
// match = newMatch;
// } else {
// match = resolver.resolve(match, newMatch);
// }
// }
// }
// }
// }
// }
// }
// }
// return match;
// }
//
// private AnniversaryRaceInfo getFullAnniversaryDataRemote(SimpleAnniversaryRaceInfo simpleAnniversaryRaceInfo) {
// // TODO read data from remote server sync
// return null;
// }
//
// public AnniversaryRaceInfo getFullAnniversaryData(SimpleAnniversaryRaceInfo simpleAnniversaryRaceInfo) {
// if (simpleAnniversaryRaceInfo.getRemoteName() == null) {
// return getFullAnniversaryDataLocal(simpleAnniversaryRaceInfo);
// } else {
// return getFullAnniversaryDataRemote(simpleAnniversaryRaceInfo);
// }
// }
}
@@ -1,78 +0,0 @@
package com.sap.sailing.server.anniversary;
import java.util.Collection;
import com.sap.sailing.domain.anniversary.SimpleAnniversaryRaceInfo;
import com.sap.sailing.domain.persistence.MongoObjectFactory;
import com.sap.sailing.server.anniversary.AnniversaryCalculator.ChangeListener;
public class AnniversaryDeterminator implements ChangeListener {
// private static int[] anniversaries = new int[] { 10, 25, 50, 75 };
// ConcurrentHashMap<Integer, AnniversaryRaceInfo> knownAnniversaries = new ConcurrentHashMap<>();
// private MongoObjectFactory mongoObjectFactory;
// private AnniversaryCalculator anniversaryCalculator;
//
public AnniversaryDeterminator(MongoObjectFactory mongoObjectFactory) {
// this.mongoObjectFactory = mongoObjectFactory;
// knownAnniversaries.putAll(mongoObjectFactory.getAnniversaryData());
}
//
@Override
public void onChange(Collection<SimpleAnniversaryRaceInfo> collection) {
// ArrayList<SimpleAnniversaryRaceInfo> allRaces = new ArrayList<>(collection);
// Collections.sort(allRaces, new Comparator<SimpleAnniversaryRaceInfo>() {
//
// @Override
// public int compare(SimpleAnniversaryRaceInfo o1, SimpleAnniversaryRaceInfo o2) {
// return o1.getStartOfRace().compareTo(o2.getStartOfRace());
// }
// });
// boolean requiresPersist = checkForAnnivesaries(allRaces);
// if(requiresPersist){
// mongoObjectFactory.storeAnniversaryData(knownAnniversaries);
// }
}
//
// private boolean checkForAnnivesaries(List<SimpleAnniversaryRaceInfo> collection) {
// int newAmount = collection.size();
// int factor = 1;
// boolean requiresPersist = false;
// while (true) {
// for (int anniversary : anniversaries) {
// int anniversaryToCheck = anniversary * factor;
// if (anniversaryToCheck > newAmount) {
// return requiresPersist;
// }
// if (newAmount > anniversaryToCheck) {
// boolean requiresPersistSingle = onAnniversaryTraverse(anniversaryToCheck, collection.get(anniversaryToCheck));
// if(requiresPersistSingle){
// requiresPersist = true;
// }
// }
// }
// }
// }
//
// private boolean onAnniversaryTraverse(int anniversaryToCheck, SimpleAnniversaryRaceInfo
// simpleAnniversaryRaceInfo) {
// AnniversaryRaceInfo knownAnniversary = knownAnniversaries.get(anniversaryToCheck);
// if (knownAnniversary != null) {
// System.out.println("Skipping anniversary " + anniversaryToCheck + " as it is already known");
// return false;
// } else {
// System.out.println("New anniversary " + anniversaryToCheck + " " + simpleAnniversaryRaceInfo);
// AnniversaryRaceInfo fullData = anniversaryCalculator.getFullAnniversaryData(simpleAnniversaryRaceInfo);
// //get remote info here! how to do this?
// knownAnniversaries.put(anniversaryToCheck, fullData);
// return true;
// }
// }
//
//
@Override
public void setAnniversaryCalculator(AnniversaryCalculator anniversaryCalculator) {
// this.anniversaryCalculator = anniversaryCalculator;
}
}
@@ -36,8 +36,6 @@ import com.sap.sailing.domain.tracking.TrackedRegattaListener;
import com.sap.sailing.server.MasterDataImportClassLoaderService;
import com.sap.sailing.server.RacingEventService;
import com.sap.sailing.server.RacingEventServiceMXBean;
import com.sap.sailing.server.anniversary.AnniversaryCalculator;
import com.sap.sailing.server.anniversary.AnniversaryDeterminator;
import com.sap.sailing.server.impl.preferences.model.BoatClassNotificationPreferences;
import com.sap.sailing.server.impl.preferences.model.CompetitorNotificationPreferences;
import com.sap.sailing.server.notification.impl.SailingNotificationServiceImpl;
@@ -53,7 +51,6 @@ import com.sap.sse.replication.Replicable;
import com.sap.sse.security.PreferenceConverter;
import com.sap.sse.util.ClearStateTestSupport;
import com.sap.sse.util.ServiceTrackerFactory;
import com.sap.sse.util.ThreadPoolUtil;
public class Activator implements BundleActivator {
@@ -89,8 +86,6 @@ public class Activator implements BundleActivator {
private ServiceTracker<MailService, MailService> mailServiceTracker;
private AnniversaryCalculator anniversaryCalculator;
public Activator() {
clearPersistentCompetitors = Boolean
.valueOf(System.getProperty(CLEAR_PERSISTENT_COMPETITORS_PROPERTY_NAME, "" + false));
@@ -120,12 +115,11 @@ public class Activator implements BundleActivator {
// this code block is not run, and the test case can inject some other type of finder
// instead.
serviceFinderFactory = new CachedOsgiTypeBasedServiceFinderFactory(context);
anniversaryCalculator = new AnniversaryCalculator(ThreadPoolUtil.INSTANCE.getDefaultBackgroundTaskThreadPoolExecutor());
racingEventService = new RacingEventServiceImpl(clearPersistentCompetitors, serviceFinderFactory,
trackedRegattaListener, notificationService, trackedRaceStatisticsCache, restoreTrackedRaces,anniversaryCalculator);
trackedRegattaListener, notificationService, trackedRaceStatisticsCache, restoreTrackedRaces);
notificationService.setRacingEventService(racingEventService);
anniversaryCalculator.addListener(new AnniversaryDeterminator(racingEventService.getMongoObjectFactory()));
anniversaryCalculator.setRacingEventService(racingEventService);
masterDataImportClassLoaderServiceTracker = new ServiceTracker<MasterDataImportClassLoaderService, MasterDataImportClassLoaderService>(
context, MasterDataImportClassLoaderService.class,
@@ -178,7 +178,6 @@ import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl;
import com.sap.sailing.expeditionconnector.ExpeditionWindTrackerFactory;
import com.sap.sailing.server.RacingEventService;
import com.sap.sailing.server.Replicator;
import com.sap.sailing.server.anniversary.AnniversaryCalculator;
import com.sap.sailing.server.gateway.deserialization.impl.CourseAreaJsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.EventBaseJsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.LeaderboardGroupBaseJsonDeserializer;
@@ -487,7 +486,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
*/
public RacingEventServiceImpl() {
this(/* clearPersistentCompetitorStore */ true, /* serviceFinderFactory */ null,
/* restoreTrackedRaces */ false, /* anniversaryCalculator */ null);
/* restoreTrackedRaces */ false);
}
public RacingEventServiceImpl(WindStore windStore, SensorFixStore sensorFixStore,
@@ -501,10 +500,9 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
}
public RacingEventServiceImpl(boolean clearPersistentCompetitorStore,
final TypeBasedServiceFinderFactory serviceFinderFactory, boolean restoreTrackedRaces,
AnniversaryCalculator anniversaryCalculator) {
final TypeBasedServiceFinderFactory serviceFinderFactory, boolean restoreTrackedRaces) {
this(clearPersistentCompetitorStore, serviceFinderFactory, null, /* sailingNotificationService */ null,
/* trackedRaceStatisticsCache */ null, restoreTrackedRaces, anniversaryCalculator);
/* trackedRaceStatisticsCache */ null, restoreTrackedRaces);
}
/**
@@ -525,7 +523,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
*/
public RacingEventServiceImpl(boolean clearPersistentCompetitorStore, final TypeBasedServiceFinderFactory serviceFinderFactory,
TrackedRegattaListener trackedRegattaListener, SailingNotificationService sailingNotificationService,
TrackedRaceStatisticsCache trackedRaceStatisticsCache, boolean restoreTrackedRaces,AnniversaryCalculator anniversaryCalculator) {
TrackedRaceStatisticsCache trackedRaceStatisticsCache, boolean restoreTrackedRaces) {
this((final RaceLogResolver raceLogResolver)-> {
return new ConstructorParameters() {
private final MongoObjectFactory mongoObjectFactory = PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory(serviceFinderFactory);
@@ -540,7 +538,6 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
};
}, MediaDBFactory.INSTANCE.getDefaultMediaDB(), null, null, serviceFinderFactory ,trackedRegattaListener, sailingNotificationService,
trackedRaceStatisticsCache, restoreTrackedRaces);
// this.anniversaryCalculator = anniversaryCalculator;
}
private RacingEventServiceImpl(final boolean clearPersistentCompetitorStore, WindStore windStore,
@@ -3827,14 +3824,40 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
}
@Override
public void getRemoteRaceList(HashMap<RegattaAndRaceIdentifier, SimpleAnniversaryRaceInfo> store) {
for(Entry<RemoteSailingServerReference, Pair<Iterable<SimpleAnniversaryRaceInfo>, Exception>> race:remoteSailingServerSet.getCachedRaceList().entrySet()){
if(race.getValue().getB() != null){
throw new RuntimeException("Some remoteserver did not respond " + race.getKey());
public HashMap<RegattaAndRaceIdentifier, SimpleAnniversaryRaceInfo> getRemoteRaceList() {
HashMap<RegattaAndRaceIdentifier, SimpleAnniversaryRaceInfo> store = new HashMap<>();
for (Entry<RemoteSailingServerReference, Pair<Iterable<SimpleAnniversaryRaceInfo>, Exception>> race : remoteSailingServerSet
.getCachedRaceList().entrySet()) {
if (race.getValue().getB() != null) {
throw new RuntimeException("Some remoteserver did not respond " + race.getKey());
}
for(SimpleAnniversaryRaceInfo raceinfo:race.getValue().getA()){
for (SimpleAnniversaryRaceInfo raceinfo : race.getValue().getA()) {
store.put(raceinfo.getIdentifier(), raceinfo);
}
}
return store;
}
@Override
public Map<RegattaAndRaceIdentifier, SimpleAnniversaryRaceInfo> getLocalRaceList() {
HashMap<RegattaAndRaceIdentifier, SimpleAnniversaryRaceInfo> store = new HashMap<>();
for (Event event : getAllEvents()) {
for (LeaderboardGroup group : event.getLeaderboardGroups()) {
for (Leaderboard leaderboard : group.getLeaderboards()) {
for (RaceColumn race : leaderboard.getRaceColumns()) {
for (Fleet fleet : race.getFleets()) {
TrackedRace trackedRace = race.getTrackedRace(fleet);
if (trackedRace != null) {
RegattaAndRaceIdentifier raceIdentifier = trackedRace.getRaceIdentifier();
SimpleAnniversaryRaceInfo raceInfo = new SimpleAnniversaryRaceInfo(raceIdentifier,
trackedRace.getStartOfRace().asDate());
store.put(raceInfo.getIdentifier(), raceInfo);
}
}
}
}
}
}
return store;
}
}