diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java index 6ee1baeb6df..33176ca2846 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java @@ -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(); diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SailingServiceImplMock.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SailingServiceImplMock.java index 7768dff8ded..af633c042ae 100755 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SailingServiceImplMock.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SailingServiceImplMock.java @@ -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() { diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractConnectivityParamsLoadAndStoreTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractConnectivityParamsLoadAndStoreTest.java index 0ed1ae22a02..e0f6ee732c2 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractConnectivityParamsLoadAndStoreTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractConnectivityParamsLoadAndStoreTest.java @@ -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(); diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/AnniversaryRaceInfoJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/AnniversaryRaceInfoJsonSerializer.java deleted file mode 100644 index 55390644d01..00000000000 --- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/AnniversaryRaceInfoJsonSerializer.java +++ /dev/null @@ -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, JsonDeserializer { - - 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)); - } -} diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java index 58e4c2b88dc..42ece5dd5ff 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java @@ -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 spyResource(T resource) { diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/GPSFixesResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/GPSFixesResourceTest.java index 535c41a9bcc..3d00750d40c 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/GPSFixesResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/GPSFixesResourceTest.java @@ -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(); } diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/AnniversaryListResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/AnniversaryListResource.java index ac58e6d5f88..9e23f35be6e 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/AnniversaryListResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/AnniversaryListResource.java @@ -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 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 store = new HashMap<>(); + store.putAll(getService().getRemoteRaceList()); + store.putAll(getService().getLocalRaceList()); ArrayList sorted = new ArrayList<>(store.values()); Collections.sort(sorted, new Comparator() { diff --git a/java/com.sap.sailing.server.testsupport/src/com/sap/sailing/server/testsupport/RacingEventServiceImplMock.java b/java/com.sap.sailing.server.testsupport/src/com/sap/sailing/server/testsupport/RacingEventServiceImplMock.java index 14413538314..ae0b59cc3d5 100644 --- a/java/com.sap.sailing.server.testsupport/src/com/sap/sailing/server/testsupport/RacingEventServiceImplMock.java +++ b/java/com.sap.sailing.server.testsupport/src/com/sap/sailing/server/testsupport/RacingEventServiceImplMock.java @@ -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) { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java index 1d41099d6e5..1adc9e7bc67 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java @@ -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 getOverallStatisticsByYear(); - void getRemoteRaceList(HashMap store); + Map getRemoteRaceList(); + + Map getLocalRaceList(); } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AnniversaryCalculator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AnniversaryCalculator.java deleted file mode 100644 index 2d72bea905d..00000000000 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AnniversaryCalculator.java +++ /dev/null @@ -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 store = new HashMap<>(); - // - // private CopyOnWriteArraySet listeners = new CopyOnWriteArraySet<>(); - // private AnniversaryConflictResolver resolver = new AnniversaryConflictResolver(); - // - interface ChangeListener { - void onChange(Collection 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 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); - // } - // } -} diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AnniversaryDeterminator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AnniversaryDeterminator.java deleted file mode 100644 index 03f669a9f8c..00000000000 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/anniversary/AnniversaryDeterminator.java +++ /dev/null @@ -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 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 collection) { - // ArrayList allRaces = new ArrayList<>(collection); - // Collections.sort(allRaces, new Comparator() { - // - // @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 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; - } -} diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java index 5c3bacc3d1a..2c9c7025365 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java @@ -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 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( context, MasterDataImportClassLoaderService.class, diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index 446c72fc29a..5679ab2c255 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -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 store) { - for(Entry, Exception>> race:remoteSailingServerSet.getCachedRaceList().entrySet()){ - if(race.getValue().getB() != null){ - throw new RuntimeException("Some remoteserver did not respond " + race.getKey()); + public HashMap getRemoteRaceList() { + HashMap store = new HashMap<>(); + for (Entry, 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 getLocalRaceList() { + HashMap 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; } }