mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-23 22:19:13 +00:00
adjusted use of swiss timing replay adapter to the same pattern used for the tractrac and swisstiming live tracking
This commit is contained in:
+5
-4
@@ -17,6 +17,7 @@ import java.util.Map;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayRace;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.impl.SwissTimingRaceConfig;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.impl.SwissTimingReplayServiceImpl;
|
||||
@@ -29,13 +30,13 @@ public class SwissTimingRaceConfigurationTest {
|
||||
@Test
|
||||
public void testLoadConfigurations() throws IOException, ParseException, org.json.simple.parser.ParseException {
|
||||
InputStream inputStream = getClass().getResourceAsStream(JSON_URL);
|
||||
List<SwissTimingReplayRace> races = new SwissTimingReplayServiceImpl().parseJSONObject(inputStream , JSON_URL);
|
||||
List<SwissTimingReplayRace> races = new SwissTimingReplayServiceImpl(DomainFactory.INSTANCE).parseJSONObject(inputStream , JSON_URL);
|
||||
Map<String, SwissTimingRaceConfig> configsById = new HashMap<String, SwissTimingRaceConfig>();
|
||||
for (SwissTimingReplayRace race : races) {
|
||||
URL configFileURL = new URL(MessageFormat.format(SwissTimingReplayServiceImpl.RACE_CONFIG_URL_TEMPLATE, race.getRaceId()));
|
||||
URLConnection connection = configFileURL.openConnection();
|
||||
InputStream configDataStream = connection.getInputStream();
|
||||
SwissTimingRaceConfig raceConfig = new SwissTimingReplayServiceImpl().loadRaceConfig(configDataStream);
|
||||
SwissTimingRaceConfig raceConfig = new SwissTimingReplayServiceImpl(DomainFactory.INSTANCE).loadRaceConfig(configDataStream);
|
||||
configsById.put(race.getRaceId(), raceConfig);
|
||||
}
|
||||
}
|
||||
@@ -45,7 +46,7 @@ public class SwissTimingRaceConfigurationTest {
|
||||
URL configFileURL = new URL(MessageFormat.format(SwissTimingReplayServiceImpl.RACE_CONFIG_URL_TEMPLATE, "446483"));
|
||||
URLConnection connection = configFileURL.openConnection();
|
||||
InputStream configDataStream = connection.getInputStream();
|
||||
SwissTimingRaceConfig config_446483 = new SwissTimingReplayServiceImpl().loadRaceConfig(configDataStream);
|
||||
SwissTimingRaceConfig config_446483 = new SwissTimingReplayServiceImpl(DomainFactory.INSTANCE).loadRaceConfig(configDataStream);
|
||||
assertNotNull(config_446483);
|
||||
assertEquals("GB", config_446483.country_code);
|
||||
assertNull(config_446483.event_name);
|
||||
@@ -62,7 +63,7 @@ public class SwissTimingRaceConfigurationTest {
|
||||
URL configFileURL = new URL(MessageFormat.format(SwissTimingReplayServiceImpl.RACE_CONFIG_URL_TEMPLATE, "6260"));
|
||||
URLConnection connection = configFileURL.openConnection();
|
||||
InputStream configDataStream = connection.getInputStream();
|
||||
SwissTimingRaceConfig config_446483 = new SwissTimingReplayServiceImpl().loadRaceConfig(configDataStream);
|
||||
SwissTimingRaceConfig config_446483 = new SwissTimingReplayServiceImpl(DomainFactory.INSTANCE).loadRaceConfig(configDataStream);
|
||||
assertNotNull(config_446483);
|
||||
assertEquals("GB", config_446483.country_code);
|
||||
assertEquals("London 2012 Olympic Games", config_446483.event_name);
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ public class SwissTimingReplayAdapterServiceTest {
|
||||
public void testLoadRaceJson() throws Exception {
|
||||
String swissTimingUrlText = "/2012_OSG.json";
|
||||
InputStream inputStream = getClass().getResourceAsStream(swissTimingUrlText);
|
||||
final SwissTimingReplayServiceImpl swissTimingReplayService = new SwissTimingReplayServiceImpl();
|
||||
final SwissTimingReplayServiceImpl swissTimingReplayService = new SwissTimingReplayServiceImpl(DomainFactory.INSTANCE);
|
||||
List<SwissTimingReplayRace> races = swissTimingReplayService.parseJSONObject(inputStream , swissTimingUrlText);
|
||||
assertEquals(201, races.size());
|
||||
assertEquals("446483", races.get(0).getRaceId());
|
||||
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
package com.sap.sailing.domain.swisstimingreplayadapter;
|
||||
|
||||
|
||||
public interface SwissTimingReplayAdapter {
|
||||
}
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
package com.sap.sailing.domain.swisstimingreplayadapter;
|
||||
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
|
||||
public interface SwissTimingReplayAdapterFactory {
|
||||
SwissTimingReplayAdapter createSwissTimingReplayAdapter(DomainFactory baseDomainFactory);
|
||||
}
|
||||
+1
-2
@@ -7,7 +7,6 @@ import java.text.ParseException;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.impl.SwissTimingRaceConfig;
|
||||
import com.sap.sailing.domain.tracking.TrackedRegattaRegistry;
|
||||
|
||||
@@ -41,6 +40,6 @@ public interface SwissTimingReplayService {
|
||||
* the regatta to which the race shall be added; if <code>null</code>, a default regatta will be
|
||||
* created/used
|
||||
*/
|
||||
void loadRaceData(String link, DomainFactory domainFactory, Regatta regatta, TrackedRegattaRegistry trackedRegattaRegistry);
|
||||
void loadRaceData(String link, Regatta regatta, TrackedRegattaRegistry trackedRegattaRegistry);
|
||||
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,9 +1,10 @@
|
||||
package com.sap.sailing.domain.swisstimingreplayadapter;
|
||||
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.impl.SwissTimingReplayServiceFactoryImpl;
|
||||
|
||||
public interface SwissTimingReplayServiceFactory {
|
||||
static SwissTimingReplayServiceFactory INSTANCE = new SwissTimingReplayServiceFactoryImpl();
|
||||
|
||||
SwissTimingReplayService createSwissTimingReplayService();
|
||||
SwissTimingReplayService createSwissTimingReplayService(DomainFactory domainFactory);
|
||||
}
|
||||
|
||||
+4
-4
@@ -6,21 +6,21 @@ import java.util.logging.Logger;
|
||||
import org.osgi.framework.BundleActivator;
|
||||
import org.osgi.framework.BundleContext;
|
||||
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayAdapterFactory;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayServiceFactory;
|
||||
|
||||
public class Activator implements BundleActivator {
|
||||
private static final Logger logger = Logger.getLogger(Activator.class.getName());
|
||||
|
||||
private final SwissTimingReplayAdapterFactory swissTimingReplayAdapterFactory;
|
||||
private final SwissTimingReplayServiceFactory swissTimingReplayServiceFactory;
|
||||
|
||||
public Activator() {
|
||||
// there is exactly one instance of the racingEventService in the whole server
|
||||
swissTimingReplayAdapterFactory = new SwissTimingReplayAdapterFactoryImpl();
|
||||
swissTimingReplayServiceFactory = new SwissTimingReplayServiceFactoryImpl();
|
||||
}
|
||||
|
||||
public void start(BundleContext context) throws Exception {
|
||||
// register the racing service in the OSGi registry
|
||||
context.registerService(SwissTimingReplayAdapterFactory.class.getName(), swissTimingReplayAdapterFactory, null);
|
||||
context.registerService(SwissTimingReplayServiceFactory.class.getName(), swissTimingReplayServiceFactory, null);
|
||||
logger.log(Level.INFO, "Started "+context.getBundle().getSymbolicName());
|
||||
}
|
||||
|
||||
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
package com.sap.sailing.domain.swisstimingreplayadapter.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayAdapter;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayAdapterFactory;
|
||||
|
||||
public class SwissTimingReplayAdapterFactoryImpl implements SwissTimingReplayAdapterFactory {
|
||||
private final Map<DomainFactory, SwissTimingReplayAdapter> adaptersForBaseDomainFactories;
|
||||
|
||||
public SwissTimingReplayAdapterFactoryImpl() {
|
||||
adaptersForBaseDomainFactories = new HashMap<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SwissTimingReplayAdapter createSwissTimingReplayAdapter(DomainFactory baseDomainFactory) {
|
||||
SwissTimingReplayAdapter result = adaptersForBaseDomainFactories.get(baseDomainFactory);
|
||||
if (result == null) {
|
||||
result = new SwissTimingReplayAdapterImpl(baseDomainFactory);
|
||||
adaptersForBaseDomainFactories.put(baseDomainFactory, result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
-12
@@ -1,12 +0,0 @@
|
||||
package com.sap.sailing.domain.swisstimingreplayadapter.impl;
|
||||
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayAdapter;
|
||||
|
||||
public class SwissTimingReplayAdapterImpl implements SwissTimingReplayAdapter {
|
||||
|
||||
public SwissTimingReplayAdapterImpl(DomainFactory baseDomainFactory) {
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
}
|
||||
+17
-4
@@ -1,13 +1,26 @@
|
||||
package com.sap.sailing.domain.swisstimingreplayadapter.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayService;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayServiceFactory;
|
||||
|
||||
public class SwissTimingReplayServiceFactoryImpl implements SwissTimingReplayServiceFactory {
|
||||
|
||||
@Override
|
||||
public SwissTimingReplayService createSwissTimingReplayService() {
|
||||
return new SwissTimingReplayServiceImpl();
|
||||
private final Map<DomainFactory, SwissTimingReplayService> servicesForDomainFactories;
|
||||
|
||||
public SwissTimingReplayServiceFactoryImpl() {
|
||||
servicesForDomainFactories = new HashMap<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SwissTimingReplayService createSwissTimingReplayService(DomainFactory domainFactory) {
|
||||
SwissTimingReplayService result = servicesForDomainFactories.get(domainFactory);
|
||||
if (result == null) {
|
||||
result = new SwissTimingReplayServiceImpl(domainFactory);
|
||||
servicesForDomainFactories.put(domainFactory, result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
+7
-1
@@ -33,6 +33,12 @@ public class SwissTimingReplayServiceImpl implements SwissTimingReplayService {
|
||||
private static final String SWISSTIMING_DATEFORMAT_PATTERN = "dd.MM.yyyy HH:mm";
|
||||
private static final TimeZone DEFAULT_TIMEZONE = TimeZone.getTimeZone("GMT");
|
||||
|
||||
private final DomainFactory domainFactory;
|
||||
|
||||
public SwissTimingReplayServiceImpl(DomainFactory domainFactory) {
|
||||
this.domainFactory = domainFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SwissTimingReplayRace> listReplayRaces(String swissTimingUrlText) {
|
||||
URL raceListUrl;
|
||||
@@ -143,7 +149,7 @@ public class SwissTimingReplayServiceImpl implements SwissTimingReplayService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadRaceData(String link, DomainFactory domainFactory, Regatta regatta, TrackedRegattaRegistry trackedRegattaRegistry) {
|
||||
public void loadRaceData(String link, Regatta regatta, TrackedRegattaRegistry trackedRegattaRegistry) {
|
||||
SwissTimingReplayListener listener = new SwissTimingReplayToDomainAdapter(regatta, domainFactory, trackedRegattaRegistry);
|
||||
loadRaceData(link, listener);
|
||||
}
|
||||
|
||||
+2
-2
@@ -44,7 +44,7 @@ import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.domain.common.impl.WindSourceImpl;
|
||||
import com.sap.sailing.domain.common.impl.WindSteppingWithMaxDistance;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingAdapterFactory;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayAdapterFactory;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayServiceFactory;
|
||||
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
|
||||
import com.sap.sailing.domain.tracking.GPSFixMoving;
|
||||
@@ -139,7 +139,7 @@ public class PolarSheetGenerationServiceTest {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ServiceTracker<SwissTimingReplayAdapterFactory, SwissTimingReplayAdapterFactory> createAndOpenSwissTimingReplayAdapterTracker(
|
||||
protected ServiceTracker<SwissTimingReplayServiceFactory, SwissTimingReplayServiceFactory> createAndOpenSwissTimingReplayServiceTracker(
|
||||
BundleContext context) {
|
||||
return null;
|
||||
}
|
||||
|
||||
+11
-13
@@ -161,8 +161,6 @@ import com.sap.sailing.domain.swisstimingadapter.SwissTimingArchiveConfiguration
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayAdapter;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayAdapterFactory;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayRace;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayService;
|
||||
import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayServiceFactory;
|
||||
@@ -343,7 +341,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
|
||||
private final SwissTimingAdapter swissTimingAdapter;
|
||||
|
||||
private final SwissTimingReplayAdapter swissTimingReplayAdapter;
|
||||
private final SwissTimingReplayService swissTimingReplayService;
|
||||
|
||||
public SailingServiceImpl() {
|
||||
BundleContext context = Activator.getDefault();
|
||||
@@ -355,7 +353,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
tracTracAdapter = createAndOpenTracTracAdapterTracker(context).getService().getOrCreateTracTracAdapter(baseDomainFactory);
|
||||
swissTimingAdapterPersistence = SwissTimingAdapterPersistence.INSTANCE;
|
||||
swissTimingAdapter = createAndOpenSwissTimingAdapterTracker(context).getService().getOrCreateSwissTimingAdapter(baseDomainFactory, swissTimingAdapterPersistence);
|
||||
swissTimingReplayAdapter = createAndOpenSwissTimingReplayAdapterTracker(context).getService().createSwissTimingReplayAdapter(baseDomainFactory);
|
||||
swissTimingReplayService = createAndOpenSwissTimingReplayServiceTracker(context).getService().createSwissTimingReplayService(swissTimingAdapter.getSwissTimingDomainFactory());
|
||||
scoreCorrectionProviderServiceTracker = createAndOpenScoreCorrectionProviderServiceTracker(context);
|
||||
tractracDomainObjectFactory = com.sap.sailing.domain.tractracadapter.persistence.DomainObjectFactory.INSTANCE;
|
||||
tractracMongoObjectFactory = com.sap.sailing.domain.tractracadapter.persistence.MongoObjectFactory.INSTANCE;
|
||||
@@ -400,10 +398,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
return result;
|
||||
}
|
||||
|
||||
protected ServiceTracker<SwissTimingReplayAdapterFactory, SwissTimingReplayAdapterFactory> createAndOpenSwissTimingReplayAdapterTracker(
|
||||
protected ServiceTracker<SwissTimingReplayServiceFactory, SwissTimingReplayServiceFactory> createAndOpenSwissTimingReplayServiceTracker(
|
||||
BundleContext context) {
|
||||
ServiceTracker<SwissTimingReplayAdapterFactory, SwissTimingReplayAdapterFactory> result = new ServiceTracker<SwissTimingReplayAdapterFactory, SwissTimingReplayAdapterFactory>(
|
||||
context, SwissTimingReplayAdapterFactory.class.getName(), null);
|
||||
ServiceTracker<SwissTimingReplayServiceFactory, SwissTimingReplayServiceFactory> result = new ServiceTracker<SwissTimingReplayServiceFactory, SwissTimingReplayServiceFactory>(
|
||||
context, SwissTimingReplayServiceFactory.class.getName(), null);
|
||||
result.open();
|
||||
return result;
|
||||
}
|
||||
@@ -877,6 +875,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
private SwissTimingAdapter getSwissTimingAdapter() {
|
||||
return swissTimingAdapter;
|
||||
}
|
||||
|
||||
private SwissTimingReplayService getSwissTimingReplayService() {
|
||||
return swissTimingReplayService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TracTracConfigurationDTO> getPreviousTracTracConfigurations() throws Exception {
|
||||
@@ -2116,8 +2118,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
|
||||
@Override
|
||||
public List<SwissTimingReplayRaceDTO> listSwissTiminigReplayRaces(String swissTimingUrl) {
|
||||
List<SwissTimingReplayRace> replayRaces = SwissTimingReplayServiceFactory.INSTANCE
|
||||
.createSwissTimingReplayService().listReplayRaces(swissTimingUrl);
|
||||
List<SwissTimingReplayRace> replayRaces = getSwissTimingReplayService().listReplayRaces(swissTimingUrl);
|
||||
List<SwissTimingReplayRaceDTO> result = new ArrayList<SwissTimingReplayRaceDTO>(replayRaces.size());
|
||||
for (SwissTimingReplayRace replayRace : replayRaces) {
|
||||
result.add(new SwissTimingReplayRaceDTO(replayRace.getFlightNumber(), replayRace.getRaceId(), replayRace.getRsc(), replayRace.getName(), replayRace.getBoatClass(), replayRace.getStartTime(), replayRace.getLink()));
|
||||
@@ -2156,10 +2157,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
} else {
|
||||
regatta = getService().getRegatta(regattaIdentifier);
|
||||
}
|
||||
SwissTimingReplayService replayService = SwissTimingReplayServiceFactory.INSTANCE
|
||||
.createSwissTimingReplayService();
|
||||
replayService.loadRaceData(replayRaceDTO.link, getSwissTimingAdapter().getSwissTimingDomainFactory(), regatta,
|
||||
getService());
|
||||
getSwissTimingReplayService().loadRaceData(replayRaceDTO.link, regatta, getService());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,14 +18,12 @@ Require-Bundle: com.sap.sailing.domain,
|
||||
com.sap.sailing.expeditionconnector,
|
||||
com.sap.sailing.declination,
|
||||
com.sap.sailing.mongodb,
|
||||
com.sap.sailing.domain.swisstimingadapter,
|
||||
com.sap.sailing.domain.persistence,
|
||||
com.sap.sailing.domain.swisstimingadapter.persistence,
|
||||
com.sap.sailing.domain.common,
|
||||
com.sap.sailing.udpconnector,
|
||||
com.sap.sailing.operationaltransformation,
|
||||
com.sap.sailing.domain.shared.android;bundle-version="1.0.0",
|
||||
com.sap.sailing.server.gateway.serialization;bundle-version="1.0.0"
|
||||
com.sap.sailing.domain.shared.android,
|
||||
com.sap.sailing.server.gateway.serialization
|
||||
Bundle-ClassPath: .
|
||||
Export-Package: com.sap.sailing.server,
|
||||
com.sap.sailing.server.impl;
|
||||
|
||||
Reference in New Issue
Block a user