mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-14 22:43:57 +00:00
cleaned up and removed code not required for stage 1 of anniversaries
This commit is contained in:
1 parent
d7132513b3
commit
a02dea2a28
13 files changed
+51
-362
No files matched your search
+1
-1
@@ -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();
|
||||
|
||||
+1
-1
@@ -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() {
|
||||
|
||||
+1
-1
@@ -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();
|
||||
|
||||
-39
@@ -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));
|
||||
}
|
||||
}
|
||||
+1
-2
@@ -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) {
|
||||
|
||||
+1
-2
@@ -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
-67
@@ -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>() {
|
||||
|
||||
+1
-1
@@ -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();
|
||||
}
|
||||
-147
@@ -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);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
-78
@@ -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,
|
||||
|
||||
+35
-12
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user