From befc04a286dbc2477c2d361f33b38518a26f9a74 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 9 Jun 2014 15:56:56 +0200 Subject: [PATCH] pass correctByDeclination parameter through to Igtimi connector --- .../domain/igtimiadapter/impl/WindReceiverTest.java | 7 ++++--- .../test/AbstractTestWithIgtimiConnection.java | 2 +- .../igtimiadapter/websocket/WebSocketTest.java | 2 +- .../domain/igtimiadapter/IgtimiConnection.java | 2 +- .../igtimiadapter/IgtimiConnectionFactory.java | 5 +++-- .../impl/IgtimiConnectionFactoryImpl.java | 2 +- .../igtimiadapter/impl/IgtimiConnectionImpl.java | 9 ++++++--- .../domain/igtimiadapter/impl/IgtimiWindTracker.java | 8 +++++--- .../igtimiadapter/impl/IgtimiWindTrackerFactory.java | 2 +- .../igtimiadapter/shared/IgtimiWindReceiver.java | 12 ++++++++---- java/com.sap.sailing.gwt.ui/SailingGWT.launch | 2 +- .../sap/sailing/gwt/ui/adminconsole/WindPanel.java | 5 ++++- .../sap/sailing/gwt/ui/client/SailingService.java | 2 +- .../sailing/gwt/ui/client/SailingServiceAsync.java | 2 +- .../sailing/gwt/ui/server/SailingServiceImpl.java | 6 +++--- .../server/gateway/impl/WindStatusServlet.java | 5 +++-- 16 files changed, 44 insertions(+), 29 deletions(-) diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WindReceiverTest.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WindReceiverTest.java index 2fe861c7cbd..7495b1387e5 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WindReceiverTest.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WindReceiverTest.java @@ -12,6 +12,7 @@ import java.util.Map; import org.junit.Test; +import com.sap.sailing.declination.DeclinationService; import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; @@ -32,7 +33,7 @@ public class WindReceiverTest { public void simpleWindReceiverTest() { final List windReceived = new ArrayList<>(); final String deviceSerialNumber = "Non-Existing Test Device"; - IgtimiWindReceiver receiver = new IgtimiWindReceiver(Collections.singleton(deviceSerialNumber)); + IgtimiWindReceiver receiver = new IgtimiWindReceiver(Collections.singleton(deviceSerialNumber), DeclinationService.INSTANCE); receiver.addListener(new IgtimiWindListener() { @Override public void windDataReceived(Wind wind, String deviceSerialNumber) { @@ -70,7 +71,7 @@ public class WindReceiverTest { public void trueWindCalculationTest() { final List windReceived = new ArrayList<>(); final String deviceSerialNumber = "Non-Existing Test Device"; - IgtimiWindReceiver receiver = new IgtimiWindReceiver(Collections.singleton(deviceSerialNumber)); + IgtimiWindReceiver receiver = new IgtimiWindReceiver(Collections.singleton(deviceSerialNumber), DeclinationService.INSTANCE); receiver.addListener(new IgtimiWindListener() { @Override public void windDataReceived(Wind wind, String deviceSerialNumber) { @@ -112,7 +113,7 @@ public class WindReceiverTest { final Map windReceived = new HashMap<>(); final String deviceSerialNumber1 = "Non-Existing Test Device #1"; final String deviceSerialNumber2 = "Non-Existing Test Device #2"; - IgtimiWindReceiver receiver = new IgtimiWindReceiver(Arrays.asList(new String[] { deviceSerialNumber1, deviceSerialNumber2 })); + IgtimiWindReceiver receiver = new IgtimiWindReceiver(Arrays.asList(new String[] { deviceSerialNumber1, deviceSerialNumber2 }), DeclinationService.INSTANCE); receiver.addListener(new IgtimiWindListener() { @Override public void windDataReceived(Wind wind, String deviceSerialNumber) { diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/AbstractTestWithIgtimiConnection.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/AbstractTestWithIgtimiConnection.java index a98561a33e0..c66a62e8703 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/AbstractTestWithIgtimiConnection.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/AbstractTestWithIgtimiConnection.java @@ -17,7 +17,7 @@ public class AbstractTestWithIgtimiConnection { public void setUp() throws ClientProtocolException, IOException, org.json.simple.parser.ParseException { final IgtimiConnectionFactory connectionFactory = Activator.getInstance().getConnectionFactory(); Account account = connectionFactory.registerAccountForWhichClientIsAuthorized("9fded995cf21c8ed91ddaec13b220e8d5e44c65808d22ec2b1b7c32261121f26"); - connection = connectionFactory.connect(account); + connection = connectionFactory.connect(account, /* correctByDeclination */ true); } } diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketTest.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketTest.java index e981bee655d..7d1885945e3 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketTest.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketTest.java @@ -159,7 +159,7 @@ public class WebSocketTest { // the following is an access token for an account allowing axel.uhl@gmx.de to access // the data from baur@stg-academy.org, particularly containing the Berlin test data Account account = igtimiConnectionFactory.registerAccountForWhichClientIsAuthorized("9fded995cf21c8ed91ddaec13b220e8d5e44c65808d22ec2b1b7c32261121f26"); - IgtimiConnection conn = igtimiConnectionFactory.connect(account); + IgtimiConnection conn = igtimiConnectionFactory.connect(account, /* correctByDeclination */ true); LiveDataConnection liveDataConnection = conn.getOrCreateLiveConnection(Collections.singleton("GA-EN-AAEJ")); LiveDataConnection redundantSecondSharedConnection = conn.getOrCreateLiveConnection(Collections.singleton("GA-EN-AAEJ")); assertTrue(liveDataConnection instanceof LiveDataConnectionWrapper); diff --git a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/IgtimiConnection.java b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/IgtimiConnection.java index d900dbdbcd5..8e00cf10413 100755 --- a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/IgtimiConnection.java +++ b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/IgtimiConnection.java @@ -152,7 +152,7 @@ public interface IgtimiConnection { * @return the number of wind fixes imported per tracked race; contains an entry for all elements in * trackedRaces */ - Map importWindIntoRace(Iterable trackedRaces) throws IllegalStateException, + Map importWindIntoRace(Iterable trackedRaces, boolean correctByDeclination) throws IllegalStateException, ClientProtocolException, IOException, ParseException; /** diff --git a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/IgtimiConnectionFactory.java b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/IgtimiConnectionFactory.java index a3c479940a3..88132609f88 100755 --- a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/IgtimiConnectionFactory.java +++ b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/IgtimiConnectionFactory.java @@ -8,6 +8,7 @@ import org.apache.http.client.ClientProtocolException; import org.json.simple.parser.ParseException; import org.xml.sax.SAXException; +import com.sap.sailing.declination.DeclinationService; import com.sap.sailing.domain.igtimiadapter.oauth.AuthorizationCallback; /** @@ -20,7 +21,7 @@ import com.sap.sailing.domain.igtimiadapter.oauth.AuthorizationCallback; public interface IgtimiConnectionFactory { Iterable getAllAccounts(); - IgtimiConnection connect(Account account); + IgtimiConnection connect(Account account, boolean correctByDeclination); /** * Removes the account and the credentials associated with it permanently. The account is identified by the e-mail @@ -38,7 +39,7 @@ public interface IgtimiConnectionFactory { /** * Using the "account" service, retrieves the {@link Account} information for this access token and stores the token * that authorizes this factory's client to access the account together with the {@link Account} data. This information is - * used when a caller wants to {@link #connect(Account)} to a specific account on behalf of the {@link Client} to + * used when a caller wants to {@link #connect(Account, DeclinationService)} to a specific account on behalf of the {@link Client} to * which this factory belongs. * @return */ diff --git a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiConnectionFactoryImpl.java b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiConnectionFactoryImpl.java index 8e3241df1f3..9e34be35bbe 100755 --- a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiConnectionFactoryImpl.java +++ b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiConnectionFactoryImpl.java @@ -130,7 +130,7 @@ public class IgtimiConnectionFactoryImpl implements IgtimiConnectionFactory { } @Override - public IgtimiConnection connect(Account account) { + public IgtimiConnection connect(Account account, boolean correctByDeclination) { return new IgtimiConnectionImpl(this, account); } diff --git a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiConnectionImpl.java b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiConnectionImpl.java index 4b374a6f3f7..d017bf2c9b0 100755 --- a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiConnectionImpl.java +++ b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiConnectionImpl.java @@ -18,6 +18,7 @@ import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.ParseException; +import com.sap.sailing.declination.DeclinationService; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.igtimiadapter.Account; @@ -235,8 +236,9 @@ public class IgtimiConnectionImpl implements IgtimiConnection { } @Override - public Map importWindIntoRace(Iterable trackedRaces) throws IllegalStateException, ClientProtocolException, IOException, ParseException { - logger.info("Importing Igtimi wind for tracked races "+trackedRaces); + public Map importWindIntoRace(Iterable trackedRaces, + boolean correctByDeclination) throws IllegalStateException, ClientProtocolException, IOException, ParseException { + logger.info("Importing Igtimi wind for tracked races " + trackedRaces); TimePoint startOfWindow = new MillisecondsTimePoint(Long.MAX_VALUE); TimePoint endOfWindow = new MillisecondsTimePoint(0); for (DynamicTrackedRace trackedRace : trackedRaces) { @@ -268,7 +270,8 @@ public class IgtimiConnectionImpl implements IgtimiConnection { } final Map result; if (!deviceSerialNumbers.isEmpty()) { - IgtimiWindReceiver windReceiver = new IgtimiWindReceiver(deviceSerialNumbers); + IgtimiWindReceiver windReceiver = new IgtimiWindReceiver(deviceSerialNumbers, + correctByDeclination ? DeclinationService.INSTANCE : null); final WindListenerSendingToTrackedRace windListener = new WindListenerSendingToTrackedRace( trackedRaces, Activator.getInstance().getWindTrackerFactory()); windReceiver.addListener(windListener); diff --git a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiWindTracker.java b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiWindTracker.java index fadf81628c1..4f29750a123 100755 --- a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiWindTracker.java +++ b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiWindTracker.java @@ -9,6 +9,7 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; +import com.sap.sailing.declination.DeclinationService; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.igtimiadapter.Account; @@ -30,7 +31,7 @@ public class IgtimiWindTracker extends AbstractWindTracker implements WindTracke private boolean stopping; protected IgtimiWindTracker(final DynamicTrackedRace trackedRace, final IgtimiConnectionFactory connectionFactory, - final IgtimiWindTrackerFactory windTrackerFactory) throws Exception { + final IgtimiWindTrackerFactory windTrackerFactory, final boolean correctByDeclination) throws Exception { super(trackedRace); this.windTrackerFactory = windTrackerFactory; liveConnectionsAndDeviceSerialNumber = new HashMap<>(); @@ -43,11 +44,12 @@ public class IgtimiWindTracker extends AbstractWindTracker implements WindTracke for (Account account : accounts) { try { if (!stopping) { - IgtimiConnection connection = connectionFactory.connect(account); + IgtimiConnection connection = connectionFactory.connect(account, correctByDeclination); Iterable devicesWeShouldListenTo = connection.getWindDevices(); if (!stopping) { LiveDataConnection liveConnection = connection.getOrCreateLiveConnection(devicesWeShouldListenTo); - IgtimiWindReceiver windReceiver = new IgtimiWindReceiver(devicesWeShouldListenTo); + IgtimiWindReceiver windReceiver = new IgtimiWindReceiver(devicesWeShouldListenTo, + correctByDeclination ? DeclinationService.INSTANCE : null); liveConnection.addListener(windReceiver); windReceiver.addListener(new WindListenerSendingToTrackedRace(Collections.singleton(getTrackedRace()), windTrackerFactory)); liveConnectionsAndDeviceSerialNumber.put(liveConnection, new Util.Pair, Account>(devicesWeShouldListenTo, account)); diff --git a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiWindTrackerFactory.java b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiWindTrackerFactory.java index e0687d3c689..6ecad4e0971 100755 --- a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiWindTrackerFactory.java +++ b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiWindTrackerFactory.java @@ -26,7 +26,7 @@ public class IgtimiWindTrackerFactory implements WindTrackerFactory { public WindTracker createWindTracker(DynamicTrackedRegatta trackedRegatta, RaceDefinition race, boolean correctByDeclination) throws Exception { DynamicTrackedRace trackedRace = trackedRegatta.getTrackedRace(race); - IgtimiWindTracker windTracker = new IgtimiWindTracker(trackedRace, connectionFactory, this); + IgtimiWindTracker windTracker = new IgtimiWindTracker(trackedRace, connectionFactory, this, correctByDeclination); trackersForRace.put(race, windTracker); return windTracker; } diff --git a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/shared/IgtimiWindReceiver.java b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/shared/IgtimiWindReceiver.java index 7942e074189..a9a30bd96f5 100755 --- a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/shared/IgtimiWindReceiver.java +++ b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/shared/IgtimiWindReceiver.java @@ -109,9 +109,9 @@ public class IgtimiWindReceiver implements BulkFixReceiver { } } - public IgtimiWindReceiver(Iterable deviceSerialNumbers) { + public IgtimiWindReceiver(Iterable deviceSerialNumbers, DeclinationService declinationService) { receiver = new FixReceiver(); - declinationService = DeclinationService.INSTANCE; + this.declinationService = declinationService; listeners = new ConcurrentHashMap<>(); awaTrack = new HashMap<>(); awsTrack = new HashMap<>(); @@ -375,8 +375,12 @@ public class IgtimiWindReceiver implements BulkFixReceiver { } else { Bearing hdgm = getHDGM(timePoint, hdgmPair); if (hdgm != null) { - Declination declination = declinationService.getDeclination(timePoint, position, /* timeoutForOnlineFetchInMilliseconds 5s */ 5000); - trueHeading = hdgm.add(declination.getBearingCorrectedTo(timePoint)); + if (declinationService == null) { + trueHeading = hdgm; + } else { + Declination declination = declinationService.getDeclination(timePoint, position, /* timeoutForOnlineFetchInMilliseconds 5s */ 5000); + trueHeading = hdgm.add(declination.getBearingCorrectedTo(timePoint)); + } } else { trueHeading = null; } diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index 5d19d492ef2..e09b25e150b 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -53,7 +53,7 @@ - + diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java index 3264791d6d6..ed0c21ac98d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java @@ -253,6 +253,7 @@ public class WindPanel extends FormPanel implements RegattasDisplayer, WindShowe VerticalPanel contentPanel = new VerticalPanel(); igtimiWindImportRootPanel.add(contentPanel); contentPanel.add(new Label(stringMessages.seeIgtimiTabForAccountSettings())); + final CheckBox correctByDeclination = new CheckBox(stringMessages.declinationCheckbox()); final Button importButton = new Button(stringMessages.importWindFromIgtimi()); final HTML resultReport = new HTML(); importButton.addClickHandler(new ClickHandler() { @@ -266,7 +267,8 @@ public class WindPanel extends FormPanel implements RegattasDisplayer, WindShowe } if (Window.confirm(warningMessage)) { resultReport.setText(stringMessages.loading()); - sailingService.importWindFromIgtimi(trackedRacesListComposite.getSelectedRaces(), new AsyncCallback>() { + sailingService.importWindFromIgtimi(trackedRacesListComposite.getSelectedRaces(), + correctByDeclination.getValue(), new AsyncCallback>() { @Override public void onFailure(Throwable caught) { errorReporter.reportError(stringMessages.errorImportingIgtimiWind(caught.getMessage())); @@ -291,6 +293,7 @@ public class WindPanel extends FormPanel implements RegattasDisplayer, WindShowe } } }); + contentPanel.add(correctByDeclination); contentPanel.add(importButton); contentPanel.add(resultReport); return igtimiWindImportRootPanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index ecb6c42d0b6..69c7292cd01 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -415,7 +415,7 @@ public interface SailingService extends RemoteService { void removeIgtimiAccount(String eMailOfAccountToRemove); - Map importWindFromIgtimi(List selectedRaces) throws Exception; + Map importWindFromIgtimi(List selectedRaces, boolean correctByDeclination) throws Exception; void denoteForRaceLogTracking(String leaderboardName, String raceColumnName, String fleetName) throws Exception; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index 3e13a5023b3..1dd20d26862 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -540,7 +540,7 @@ public interface SailingServiceAsync { void removeIgtimiAccount(String eMailOfAccountToRemove, AsyncCallback asyncCallback); - void importWindFromIgtimi(List selectedRaces, AsyncCallback> asyncCallback); + void importWindFromIgtimi(List selectedRaces, boolean correctByDeclination, AsyncCallback> asyncCallback); void getEventById(UUID id, AsyncCallback callback); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index cc84e749d99..42cb2f3a638 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -4184,7 +4184,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public Map importWindFromIgtimi(List selectedRaces) throws IllegalStateException, + public Map importWindFromIgtimi(List selectedRaces, boolean correctByDeclination) throws IllegalStateException, ClientProtocolException, IOException, org.json.simple.parser.ParseException { final IgtimiConnectionFactory igtimiConnectionFactory = getIgtimiConnectionFactory(); final Iterable trackedRaces; @@ -4200,8 +4200,8 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } Map numberOfWindFixesImportedPerRace = new HashMap(); for (Account account : igtimiConnectionFactory.getAllAccounts()) { - IgtimiConnection conn = igtimiConnectionFactory.connect(account); - Map resultsForAccounts = conn.importWindIntoRace(trackedRaces); + IgtimiConnection conn = igtimiConnectionFactory.connect(account, correctByDeclination); + Map resultsForAccounts = conn.importWindIntoRace(trackedRaces, correctByDeclination); for (Entry resultForAccount : resultsForAccounts.entrySet()) { RegattaAndRaceIdentifier key = resultForAccount.getKey().getRaceIdentifier(); Integer i = numberOfWindFixesImportedPerRace.get(key); diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/WindStatusServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/WindStatusServlet.java index 95253a5e23f..d34f511f52e 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/WindStatusServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/WindStatusServlet.java @@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletResponse; import org.osgi.util.tracker.ServiceTracker; +import com.sap.sailing.declination.DeclinationService; import com.sap.sailing.domain.igtimiadapter.Account; import com.sap.sailing.domain.igtimiadapter.BulkFixReceiver; import com.sap.sailing.domain.igtimiadapter.IgtimiConnection; @@ -119,10 +120,10 @@ public class WindStatusServlet extends SailingServerHttpServlet implements Igtim IgtimiConnectionFactory igtimiConnectionFactory = igtimiServiceTracker.getService(); for (Account account : igtimiConnectionFactory.getAllAccounts()) { if (account.getUser() != null) { - IgtimiConnection igtimiConnection = igtimiConnectionFactory.connect(account); + IgtimiConnection igtimiConnection = igtimiConnectionFactory.connect(account, /* correctByDeclination */ true); try { liveDataConnection = igtimiConnection.getOrCreateLiveConnection(igtimiConnection.getWindDevices()); - igtimiWindReceiver = new IgtimiWindReceiver(igtimiConnection.getWindDevices()); + igtimiWindReceiver = new IgtimiWindReceiver(igtimiConnection.getWindDevices(), DeclinationService.INSTANCE); igtimiWindReceiver.addListener(this); liveDataConnection.addListener(igtimiWindReceiver); liveDataConnection.addListener(this);