org.eclipse.tycho
tycho-source-plugin
diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/ScoringSchemeType.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/ScoringSchemeType.java
index cfd4e07a62d..dc066d2a301 100755
--- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/ScoringSchemeType.java
+++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/ScoringSchemeType.java
@@ -2,6 +2,6 @@ package com.sap.sailing.domain.common;
public enum ScoringSchemeType {
LOW_POINT, HIGH_POINT, HIGH_POINT_ESS_OVERALL, HIGH_POINT_LAST_BREAKS_TIE, HIGH_POINT_FIRST_GETS_TEN,
- HIGH_POINT_FIRST_GETS_ONE, LOW_POINT_WINNER_GETS_ZERO, HIGH_POINT_WINNER_GETS_SIX, HIGH_POINT_WINNER_GETS_FIVE,
- HIGH_POINT_FIRST_GETS_TEN_OR_EIGHT
+ HIGH_POINT_FIRST_GETS_ONE, LOW_POINT_WINNER_GETS_ZERO, HIGH_POINT_WINNER_GETS_SIX, HIGH_POINT_WINNER_GETS_FIVE, HIGH_POINT_WINNER_GETS_EIGHT,
+ HIGH_POINT_WINNER_GETS_EIGHT_AND_INTERPOLATION, HIGH_POINT_FIRST_GETS_TEN_OR_EIGHT
}
diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/QRCodeUtils.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/DeviceConfigurationQRCodeUtils.java
similarity index 97%
rename from java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/QRCodeUtils.java
rename to java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/DeviceConfigurationQRCodeUtils.java
index 2c48304a04b..2ab10e792a2 100644
--- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/QRCodeUtils.java
+++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/DeviceConfigurationQRCodeUtils.java
@@ -8,7 +8,7 @@ import com.sap.sse.common.Util;
* This class is used by our backend, in GWT-client code and by the Android app. Therefore we cannot use classes like
* {@link URLEncoder} to help us with the encoding.
*/
-public class QRCodeUtils {
+public class DeviceConfigurationQRCodeUtils {
private static final String fragmentKey = "identifier";
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogServletConstants.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/racelog/RaceLogServletConstants.java
similarity index 76%
rename from java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogServletConstants.java
rename to java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/racelog/RaceLogServletConstants.java
index 4ed78fe2025..52dd7fc3f6b 100755
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogServletConstants.java
+++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/racelog/RaceLogServletConstants.java
@@ -1,7 +1,7 @@
-package com.sap.sailing.domain.racelog;
+package com.sap.sailing.domain.common.racelog;
/**
- * Constants shared across race committee app and servlet implementation
+ * Constants shared across race committee app, servlet implementation and GWT.
*
* @author Axel Uhl (d043530)
*
diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/racelog/tracking/DeviceMappingConstants.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/racelog/tracking/DeviceMappingConstants.java
new file mode 100644
index 00000000000..4eb346aedf9
--- /dev/null
+++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/racelog/tracking/DeviceMappingConstants.java
@@ -0,0 +1,32 @@
+package com.sap.sailing.domain.common.racelog.tracking;
+
+import com.sap.sailing.domain.common.racelog.RaceLogServletConstants;
+
+/**
+ * Shared between GWT and Android. Used for creating and deciphering the URL
+ * encoded by the QRCode, which gives the tracking app all necessary information
+ * for creating the device mapping.
+ * This includes the leaderboard name, race-column name and fleet name to identify
+ * which RaceLog to add the {@code DeviceMappingEvent} to. Also, either a competitor
+ * or mark ID is added, to which the device should be mapped. Timestamps for the
+ * beginning and the end of the mapping are also included.
+ *
+ * The URL points to the apk-file of the app deployed to the {@code www} directory
+ * of the server, with additional {@code GET}-parameters:
+ *
+ * - {@link RaceLogServletConstants#PARAMS_LEADERBOARD_NAME}
+ * - {@link RaceLogServletConstants#PARAMS_RACE_COLUMN_NAME}
+ * - {@link RaceLogServletConstants#PARAMS_RACE_FLEET_NAME}
+ * - either {@link #COMPETITOR_ID_AS_STRING} or {@link #MARK_ID_AS_STRING}
+ * - {@link #FROM_MILLIS}
+ * - {@link #TO_MILLIS}
+ *
+ *
+ * @author Fredrik Teschke
+ */
+public interface DeviceMappingConstants {
+ static final String COMPETITOR_ID_AS_STRING = "competitor";
+ static final String MARK_ID_AS_STRING = "mark";
+ static final String FROM_MILLIS = "from";
+ static final String TO_MILLIS = "to";
+}
diff --git a/java/com.sap.sailing.domain.deckmanadapter.test/.classpath b/java/com.sap.sailing.domain.deckmanadapter.test/.classpath
old mode 100755
new mode 100644
index a14ade4efd3..110168ffa19
--- a/java/com.sap.sailing.domain.deckmanadapter.test/.classpath
+++ b/java/com.sap.sailing.domain.deckmanadapter.test/.classpath
@@ -1,6 +1,6 @@
-
+
diff --git a/java/com.sap.sailing.domain.deckmanadapter.test/.gitignore b/java/com.sap.sailing.domain.deckmanadapter.test/.gitignore
new file mode 100644
index 00000000000..ae3c1726048
--- /dev/null
+++ b/java/com.sap.sailing.domain.deckmanadapter.test/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/java/com.sap.sailing.domain.deckmanadapter.test/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.deckmanadapter.test/.settings/org.eclipse.jdt.core.prefs
old mode 100755
new mode 100644
index f42de363afa..a698e59674f
--- a/java/com.sap.sailing.domain.deckmanadapter.test/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.deckmanadapter.test/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,12 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.deckmanadapter.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.deckmanadapter.test/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index 58ddcc43fd4..b67aed88b96
--- a/java/com.sap.sailing.domain.deckmanadapter.test/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.deckmanadapter.test/META-INF/MANIFEST.MF
@@ -5,5 +5,5 @@ Bundle-SymbolicName: com.sap.sailing.domain.deckmanadapter.test
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
Fragment-Host: com.sap.sailing.domain.deckmanadapter
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.junit4
diff --git a/java/com.sap.sailing.domain.deckmanadapter/.classpath b/java/com.sap.sailing.domain.deckmanadapter/.classpath
old mode 100755
new mode 100644
index 098194ca4b7..eca7bdba8f0
--- a/java/com.sap.sailing.domain.deckmanadapter/.classpath
+++ b/java/com.sap.sailing.domain.deckmanadapter/.classpath
@@ -1,6 +1,6 @@
-
+
diff --git a/java/com.sap.sailing.domain.deckmanadapter/.gitignore b/java/com.sap.sailing.domain.deckmanadapter/.gitignore
new file mode 100644
index 00000000000..ae3c1726048
--- /dev/null
+++ b/java/com.sap.sailing.domain.deckmanadapter/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/java/com.sap.sailing.domain.deckmanadapter/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.deckmanadapter/.settings/org.eclipse.jdt.core.prefs
old mode 100755
new mode 100644
index f42de363afa..a698e59674f
--- a/java/com.sap.sailing.domain.deckmanadapter/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.deckmanadapter/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,12 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.deckmanadapter/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.deckmanadapter/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index 4429c780a59..eb76c95dbfc
--- a/java/com.sap.sailing.domain.deckmanadapter/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.deckmanadapter/META-INF/MANIFEST.MF
@@ -4,7 +4,7 @@ Bundle-Name: Deckmanadapter
Bundle-SymbolicName: com.sap.sailing.domain.deckmanadapter
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: com.sap.sailing.domain,
com.sap.sailing.domain.common,
com.sap.sailing.domain.shared.android,
diff --git a/java/com.sap.sailing.domain.igtimiadapter.persistence/.classpath b/java/com.sap.sailing.domain.igtimiadapter.persistence/.classpath
old mode 100755
new mode 100644
index 098194ca4b7..eca7bdba8f0
--- a/java/com.sap.sailing.domain.igtimiadapter.persistence/.classpath
+++ b/java/com.sap.sailing.domain.igtimiadapter.persistence/.classpath
@@ -1,6 +1,6 @@
-
+
diff --git a/java/com.sap.sailing.domain.igtimiadapter.persistence/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.igtimiadapter.persistence/.settings/org.eclipse.jdt.core.prefs
old mode 100755
new mode 100644
index f42de363afa..a698e59674f
--- a/java/com.sap.sailing.domain.igtimiadapter.persistence/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.igtimiadapter.persistence/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,12 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.igtimiadapter.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.igtimiadapter.persistence/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index d25ccac6d85..6af9114da33
--- a/java/com.sap.sailing.domain.igtimiadapter.persistence/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.igtimiadapter.persistence/META-INF/MANIFEST.MF
@@ -4,7 +4,9 @@ Bundle-Name: Persistence
Bundle-SymbolicName: com.sap.sailing.domain.igtimiadapter.persistence
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: com.sap.sailing.mongodb,
com.mongodb.driver;bundle-version="2.6.2"
Export-Package: com.sap.sailing.domain.igtimiadapter.persistence
+Import-Package: org.osgi.framework
+Bundle-Activator: com.sap.sailing.domain.igtimiadapter.persistence.impl.Activator
diff --git a/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/Activator.java b/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/Activator.java
new file mode 100755
index 00000000000..256b1c5aaa7
--- /dev/null
+++ b/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/Activator.java
@@ -0,0 +1,19 @@
+package com.sap.sailing.domain.igtimiadapter.persistence.impl;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+import com.sap.sailing.mongodb.MongoDBService;
+
+public class Activator implements BundleActivator {
+ @Override
+ public void start(BundleContext context) throws Exception {
+ for (CollectionNames name : CollectionNames.values()) {
+ MongoDBService.INSTANCE.registerExclusively(CollectionNames.class, name.name());
+ }
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ }
+}
diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/.classpath b/java/com.sap.sailing.domain.igtimiadapter.test/.classpath
old mode 100755
new mode 100644
index 098194ca4b7..eca7bdba8f0
--- a/java/com.sap.sailing.domain.igtimiadapter.test/.classpath
+++ b/java/com.sap.sailing.domain.igtimiadapter.test/.classpath
@@ -1,6 +1,6 @@
-
+
diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.igtimiadapter.test/.settings/org.eclipse.jdt.core.prefs
old mode 100755
new mode 100644
index f42de363afa..a698e59674f
--- a/java/com.sap.sailing.domain.igtimiadapter.test/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.igtimiadapter.test/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,12 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.igtimiadapter.test/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index b2234b849b6..d99de787500
--- a/java/com.sap.sailing.domain.igtimiadapter.test/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.igtimiadapter.test/META-INF/MANIFEST.MF
@@ -5,7 +5,7 @@ Bundle-Name: Test
Bundle-SymbolicName: com.sap.sailing.domain.igtimiadapter.test
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.junit4;bundle-version="4.8.2",
com.sap.sailing.domain.common,
com.sap.sailing.mongodb,
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 5cd99036484..9194f7078b7 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
@@ -15,6 +15,8 @@ import com.sap.sailing.domain.igtimiadapter.impl.Activator;
public class AbstractTestWithIgtimiConnection {
protected IgtimiConnection connection;
+ @Rule public Timeout AbstractTestWithIgtimiConnectionTimeout = new Timeout(2 * 60 * 1000);
+
@Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(2 * 60 * 1000);
@Before
diff --git a/java/com.sap.sailing.domain.igtimiadapter/.classpath b/java/com.sap.sailing.domain.igtimiadapter/.classpath
old mode 100755
new mode 100644
index 098194ca4b7..eca7bdba8f0
--- a/java/com.sap.sailing.domain.igtimiadapter/.classpath
+++ b/java/com.sap.sailing.domain.igtimiadapter/.classpath
@@ -1,6 +1,6 @@
-
+
diff --git a/java/com.sap.sailing.domain.igtimiadapter/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.igtimiadapter/.settings/org.eclipse.jdt.core.prefs
old mode 100755
new mode 100644
index f42de363afa..a698e59674f
--- a/java/com.sap.sailing.domain.igtimiadapter/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.igtimiadapter/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,12 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.igtimiadapter/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.igtimiadapter/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index 9ac2f5a7cac..bfc38039265
--- a/java/com.sap.sailing.domain.igtimiadapter/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.igtimiadapter/META-INF/MANIFEST.MF
@@ -4,13 +4,12 @@ Bundle-Name: Igtimiadapter
Bundle-SymbolicName: com.sap.sailing.domain.igtimiadapter
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.json.simple;bundle-version="1.1.0",
com.sun.jersey;bundle-version="1.17.0",
org.objectweb.asm;bundle-version="3.3.1",
org.apache.httpcomponents.httpclient;bundle-version="4.2.5",
org.apache.httpcomponents.httpcore;bundle-version="4.0.0",
- org.apache.commons.logging;bundle-version="1.1.1",
com.sap.sailing.domain.common,
com.sap.sailing.domain.igtimiadapter.persistence,
com.sap.sailing.domain.shared.android,
diff --git a/java/com.sap.sailing.domain.persistence/.classpath b/java/com.sap.sailing.domain.persistence/.classpath
old mode 100755
new mode 100644
index c8351b0a6bd..4f83b2397ec
--- a/java/com.sap.sailing.domain.persistence/.classpath
+++ b/java/com.sap.sailing.domain.persistence/.classpath
@@ -1,7 +1,7 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.persistence/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.persistence/.settings/org.eclipse.jdt.core.prefs
old mode 100755
new mode 100644
index 1d773f37440..a698e59674f
--- a/java/com.sap.sailing.domain.persistence/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.persistence/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,12 @@
-#Thu Jan 19 09:51:18 CET 2012
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index f5877dcf5ff..d00ba29d158
--- a/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF
@@ -1,34 +1,34 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Persistence
-Bundle-SymbolicName: com.sap.sailing.domain.persistence
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Bundle-Activator: com.sap.sailing.domain.persistence.impl.Activator
-Require-Bundle: com.sap.sailing.mongodb,
- com.sap.sailing.domain,
- com.mongodb.driver;bundle-version="2.6.2",
- com.sap.sailing.domain.common,
- com.sap.sailing.domain.shared.android,
- com.sap.sailing.server.gateway.serialization;bundle-version="1.0.0",
- com.sap.sse.common
-Export-Package: com.sap.sailing.domain.persistence,
- com.sap.sailing.domain.persistence.impl;
- x-friends:="com.sap.sailing.domain.persistence.test,
- com.sap.sailing.domain.swisstimingadapter.test,
- com.sap.sailing.mongodb.test,
- com.sap.sailing.server.gateway.test,
- com.sap.sailing.domain.racelogtrackingadapter.testsupport,
- com.sap.sailing.domain.racelogtrackingadapter.test",
- com.sap.sailing.domain.persistence.media,
- com.sap.sailing.domain.persistence.racelog.tracking,
- com.sap.sailing.domain.persistence.racelog.tracking.impl;
- x-friends:="com.sap.sailing.domain.racelogtrackingadapter.testsupport,
- com.sap.sailing.mongodb.test,
- com.sap.sailing.domain.racelogtrackingadapter.test,
- com.sap.sailing.server"
-Bundle-ActivationPolicy: lazy
-Import-Package: org.json.simple,
- org.json.simple.parser,
- org.osgi.framework;version="1.6.0"
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Persistence
+Bundle-SymbolicName: com.sap.sailing.domain.persistence
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: SAP
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-Activator: com.sap.sailing.domain.persistence.impl.Activator
+Require-Bundle: com.sap.sailing.mongodb,
+ com.sap.sailing.domain,
+ com.mongodb.driver;bundle-version="2.6.2",
+ com.sap.sailing.domain.common,
+ com.sap.sailing.domain.shared.android,
+ com.sap.sailing.server.gateway.serialization;bundle-version="1.0.0",
+ com.sap.sse.common
+Export-Package: com.sap.sailing.domain.persistence,
+ com.sap.sailing.domain.persistence.impl;
+ x-friends:="com.sap.sailing.domain.persistence.test,
+ com.sap.sailing.domain.swisstimingadapter.test,
+ com.sap.sailing.mongodb.test,
+ com.sap.sailing.server.gateway.test,
+ com.sap.sailing.domain.racelogtrackingadapter.testsupport,
+ com.sap.sailing.domain.racelogtrackingadapter.test",
+ com.sap.sailing.domain.persistence.media,
+ com.sap.sailing.domain.persistence.racelog.tracking,
+ com.sap.sailing.domain.persistence.racelog.tracking.impl;
+ x-friends:="com.sap.sailing.domain.racelogtrackingadapter.testsupport,
+ com.sap.sailing.mongodb.test,
+ com.sap.sailing.domain.racelogtrackingadapter.test,
+ com.sap.sailing.server"
+Bundle-ActivationPolicy: lazy
+Import-Package: org.json.simple,
+ org.json.simple.parser,
+ org.osgi.framework;version="1.6.0"
diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/Activator.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/Activator.java
index 14452399bfa..2a95015d718 100644
--- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/Activator.java
+++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/Activator.java
@@ -8,8 +8,9 @@ import com.sap.sailing.mongodb.MongoDBService;
public class Activator implements BundleActivator {
@Override
public void start(BundleContext context) throws Exception {
- for (CollectionNames name : CollectionNames.values())
+ for (CollectionNames name : CollectionNames.values()) {
MongoDBService.INSTANCE.registerExclusively(CollectionNames.class, name.name());
+ }
}
@Override
diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java
index 7b4213d408c..f7d3bc890db 100755
--- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java
+++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java
@@ -1414,7 +1414,11 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
Serializable id, Integer passId, List competitors, DBObject dbObject) {
Serializable revokedEventId = Helpers.tryUuidConversion(
(Serializable) dbObject.get(FieldNames.RACE_LOG_REVOKED_EVENT_ID.name()));
- return raceLogEventFactory.createRevokeEvent(createdAt, author, logicalTimePoint, id, passId, revokedEventId);
+ String revokedEventType = (String) dbObject.get(FieldNames.RACE_LOG_REVOKED_EVENT_TYPE.name());
+ String revokedEventShortInfo = (String) dbObject.get(FieldNames.RACE_LOG_REVOKED_EVENT_SHORT_INFO.name());
+ String reason = (String) dbObject.get(FieldNames.RACE_LOG_REVOKED_REASON.name());
+ return raceLogEventFactory.createRevokeEvent(createdAt, author, logicalTimePoint, id, passId,
+ revokedEventId, revokedEventType, revokedEventShortInfo, reason);
}
private RaceLogEvent loadRaceLogRegisterCompetitorEvent(TimePoint createdAt, RaceLogEventAuthor author, TimePoint logicalTimePoint,
diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java
index c5b9865bd59..dba3544f2a0 100755
--- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java
+++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java
@@ -85,7 +85,8 @@ public enum FieldNames {
WAYPOINT_PASSINGINSTRUCTIONS, CONTROLPOINT, CONTROLPOINT_CLASS, MARK_ID, MARK_COLOR, MARK_NAME, MARK_PATTERN, MARK_SHAPE, MARK_TYPE,
CONTROLPOINT_VALUE, CONTROLPOINTWITHTWOMARKS_ID, CONTROLPOINTWITHTWOMARKS_NAME, CONTROLPOINTWITHTWOMARKS_LEFT, CONTROLPOINTWITHTWOMARKS_RIGHT,
RACE_LOG_POSITIONED_COMPETITORS, RACE_LOG_PATHFINDER_ID, RACE_LOG_GATE_LINE_OPENING_TIME, RACE_LOG_GOLF_DOWN_TIME, RACE_LOG_START_PROCEDURE_TYPE,
- RACE_LOG_PROTEST_START_TIME, RACE_LOG_COURSE_DESIGN_NAME, RACE_LOG_REVOKED_EVENT_ID, RACE_LOG_FROM, RACE_LOG_TO, RACE_LOG_MARK, RACE_LOG_DEVICE_MAPPING_EVENT_ID,
+ RACE_LOG_PROTEST_START_TIME, RACE_LOG_COURSE_DESIGN_NAME, RACE_LOG_REVOKED_EVENT_ID, RACE_LOG_REVOKED_EVENT_TYPE, RACE_LOG_REVOKED_EVENT_SHORT_INFO,
+ RACE_LOG_REVOKED_REASON, RACE_LOG_FROM, RACE_LOG_TO, RACE_LOG_MARK, RACE_LOG_DEVICE_MAPPING_EVENT_ID,
RACE_LOG_CLOSING_TIMEPOINT, TIMEPOINT_OF_FIXED_MARKPASSING, INDEX_OF_PASSED_WAYPOINT,INDEX_OF_FIRST_SUPPRESSED_WAYPOINT, MARK,
/** @deprecated Replaced by WAYPOINT_PASSINGINSTRUCTIONS, still used to migrate old races*/ @Deprecated WAYPOINT_PASSINGSIDE,
/** @deprecated Replaced by CONTROLPOINTWITHTWOMARKS_ID, still used to migrate old races*/ @Deprecated GATE_ID,
diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java
index 80a116a2ff4..31a219af91d 100755
--- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java
+++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java
@@ -964,6 +964,9 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
storeRaceLogEventProperties(event, result);
result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RevokeEvent.class.getSimpleName());
result.put(FieldNames.RACE_LOG_REVOKED_EVENT_ID.name(), event.getRevokedEventId());
+ result.put(FieldNames.RACE_LOG_REVOKED_EVENT_TYPE.name(), event.getRevokedEventType());
+ result.put(FieldNames.RACE_LOG_REVOKED_EVENT_SHORT_INFO.name(), event.getRevokedEventShortInfo());
+ result.put(FieldNames.RACE_LOG_REVOKED_REASON.name(), event.getReason());
return result;
}
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/.classpath b/java/com.sap.sailing.domain.racelogtrackingadapter.test/.classpath
index e8ea977a694..4f83b2397ec 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/.classpath
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/.classpath
@@ -2,6 +2,6 @@
-
+
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/.gitignore b/java/com.sap.sailing.domain.racelogtrackingadapter.test/.gitignore
index ba077a4031a..743bbf5b315 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/.gitignore
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/.gitignore
@@ -1 +1,2 @@
bin
+/bin/
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.racelogtrackingadapter.test/.settings/org.eclipse.jdt.core.prefs
index eb01f948334..a698e59674f 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,12 @@
-#Thu Jan 19 09:52:18 CET 2012
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.racelogtrackingadapter.test/META-INF/MANIFEST.MF
index 72fab3f84ae..a5099d27d3b 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/META-INF/MANIFEST.MF
@@ -4,7 +4,7 @@ Bundle-Name: Smartphone Adapter Test
Bundle-SymbolicName: com.sap.sailing.domain.racelogtrackingadapter.test
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Fragment-Host: com.sap.sailing.domain.racelogtrackingadapter
Require-Bundle: org.junit4;bundle-version="4.8.2",
com.sap.sailing.domain.racelogtrackingadapter.testsupport,
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/.gitignore b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/.gitignore
new file mode 100644
index 00000000000..ff3e2543b1d
--- /dev/null
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/bin/
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/.classpath b/java/com.sap.sailing.domain.racelogtrackingadapter/.classpath
index e8ea977a694..4f83b2397ec 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter/.classpath
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter/.classpath
@@ -2,6 +2,6 @@
-
+
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/.gitignore b/java/com.sap.sailing.domain.racelogtrackingadapter/.gitignore
index ba077a4031a..4f638171ac2 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter/.gitignore
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter/.gitignore
@@ -1 +1,4 @@
bin
+/bin/
+/bin/
+/bin/
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.racelogtrackingadapter/.settings/org.eclipse.jdt.core.prefs
index 9e859eb5b06..a698e59674f 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,12 @@
-#Thu Jan 19 09:51:40 CET 2012
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.racelogtrackingadapter/META-INF/MANIFEST.MF
index e45e64c6877..8f4cf27d35e 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter/META-INF/MANIFEST.MF
@@ -1,28 +1,28 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: RaceLog Tracking Adapter
-Bundle-SymbolicName: com.sap.sailing.domain.racelogtrackingadapter
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Bundle-ActivationPolicy: lazy
-Require-Bundle: com.sap.sailing.domain,
- com.sap.sailing.domain.common,
- com.sap.sailing.domain.shared.android,
- com.sap.sailing.server.gateway.serialization;bundle-version="1.0.0",
- com.sap.sailing.domain.persistence;bundle-version="1.0.0",
- com.sap.sailing.server.gateway;bundle-version="1.0.0",
- com.sap.sailing.server;bundle-version="1.0.0",
- com.googlecode.java-diff-utils;bundle-version="1.3.0",
- com.mongodb.driver,
- com.sap.sse.common
-Import-Package: com.mongodb,
- javax.servlet;version="2.6.0",
- org.json.simple,
- org.json.simple.parser,
- org.osgi.framework;version="1.6.0"
-Export-Package: com.sap.sailing.domain.racelogtracking,
- com.sap.sailing.domain.racelogtracking.impl;x-friends:="com.sap.sailing.domain.racelogtrackingadapter.testsupport,com.sap.sailing.gwt.ui.test",
- com.sap.sailing.domain.racelogtracking.servlet;x-friends:="com.sap.sailing.domain.racelogtrackingadapter.test"
-Web-ContextPath: /tracking
-Bundle-Activator: com.sap.sailing.domain.racelogtracking.impl.Activator
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: RaceLog Tracking Adapter
+Bundle-SymbolicName: com.sap.sailing.domain.racelogtrackingadapter
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: SAP
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Require-Bundle: com.sap.sailing.domain,
+ com.sap.sailing.domain.common,
+ com.sap.sailing.domain.shared.android,
+ com.sap.sailing.server.gateway.serialization;bundle-version="1.0.0",
+ com.sap.sailing.domain.persistence;bundle-version="1.0.0",
+ com.sap.sailing.server.gateway;bundle-version="1.0.0",
+ com.sap.sailing.server;bundle-version="1.0.0",
+ com.googlecode.java-diff-utils;bundle-version="1.3.0",
+ com.mongodb.driver,
+ com.sap.sse.common
+Import-Package: com.mongodb,
+ javax.servlet;version="2.6.0",
+ org.json.simple,
+ org.json.simple.parser,
+ org.osgi.framework;version="1.6.0"
+Export-Package: com.sap.sailing.domain.racelogtracking,
+ com.sap.sailing.domain.racelogtracking.impl;x-friends:="com.sap.sailing.domain.racelogtrackingadapter.testsupport,com.sap.sailing.gwt.ui.test",
+ com.sap.sailing.domain.racelogtracking.servlet;x-friends:="com.sap.sailing.domain.racelogtrackingadapter.test"
+Web-ContextPath: /tracking
+Bundle-Activator: com.sap.sailing.domain.racelogtracking.impl.Activator
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/WEB-INF/web.xml b/java/com.sap.sailing.domain.racelogtrackingadapter/WEB-INF/web.xml
index c309ea109ab..d592b424ad2 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter/WEB-INF/web.xml
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter/WEB-INF/web.xml
@@ -23,6 +23,15 @@
RecordFixesPostServlet
/recordFixes
+
+
+
+ RecordFixesFlatJsonPostServlet
+ com.sap.sailing.domain.racelogtracking.servlet.RecordFixesFlatJsonPostServlet
+
+
+ RecordFixesFlatJsonPostServlet
+ /recordFixesFlatJson
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogRaceTracker.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogRaceTracker.java
index a4ee6d9219b..d72fbe24e70 100755
--- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogRaceTracker.java
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogRaceTracker.java
@@ -209,7 +209,8 @@ public class RaceLogRaceTracker extends BaseRaceLogEventVisitor implements RaceT
}
}
- trackedRace.setStartOfTrackingReceived(latestMappingEnd);
+ trackedRace.setStartOfTrackingReceived(earliestMappingStart);
+ trackedRace.setEndOfTrackingReceived(latestMappingEnd);
}
private boolean hasMappingAlreadyBeenLoaded(
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/servlet/RecordFixesFlatJsonPostServlet.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/servlet/RecordFixesFlatJsonPostServlet.java
new file mode 100644
index 00000000000..acfebbfe227
--- /dev/null
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/servlet/RecordFixesFlatJsonPostServlet.java
@@ -0,0 +1,51 @@
+package com.sap.sailing.domain.racelogtracking.servlet;
+
+import java.util.Map;
+import java.util.UUID;
+import java.util.logging.Level;
+
+import com.sap.sailing.domain.common.racelog.tracking.NoCorrespondingServiceRegisteredException;
+import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
+import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier;
+import com.sap.sailing.domain.racelog.tracking.impl.SmartphoneUUIDIdentifierImpl;
+import com.sap.sailing.domain.tracking.GPSFixMoving;
+import com.sap.sailing.server.gateway.AbstractJsonPostServlet;
+import com.sap.sailing.server.gateway.HttpExceptionWithMessage;
+import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
+import com.sap.sailing.server.gateway.deserialization.impl.FlatSmartphoneUuidAndGPSFixMovingJsonDeserializer;
+import com.sap.sailing.server.gateway.serialization.JsonSerializer;
+import com.sap.sse.common.Util.Pair;
+
+public class RecordFixesFlatJsonPostServlet extends AbstractJsonPostServlet, Void> {
+ private static final long serialVersionUID = -4618399862031700634L;
+
+ private final JsonDeserializer> deserializer =
+ new FlatSmartphoneUuidAndGPSFixMovingJsonDeserializer();
+
+ @Override
+ public JsonDeserializer> getRequestDeserializer() {
+ return deserializer;
+ }
+
+ @Override
+ public JsonSerializer getResponseSerializer() {
+ return null;
+ }
+
+ @Override
+ public Void process(Map parameterValues, Pair domainObject)
+ throws HttpExceptionWithMessage {
+ DeviceIdentifier device = new SmartphoneUUIDIdentifierImpl(domainObject.getA());
+ GPSFixMoving fix = domainObject.getB();
+
+ try {
+ getService().getGPSFixStore().storeFix(device, fix);
+ logger.log(Level.INFO, "Added fix for device " + device.toString() + " to store");
+ } catch (TransformationException | NoCorrespondingServiceRegisteredException e) {
+ logger.log(Level.WARNING, "Could not load store fix from device " + device);
+ }
+
+ return null;
+ }
+
+}
diff --git a/java/com.sap.sailing.domain.shared.android.test/.classpath b/java/com.sap.sailing.domain.shared.android.test/.classpath
index 8a8f1668cdc..4f83b2397ec 100644
--- a/java/com.sap.sailing.domain.shared.android.test/.classpath
+++ b/java/com.sap.sailing.domain.shared.android.test/.classpath
@@ -1,7 +1,7 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.shared.android.test/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.shared.android.test/.settings/org.eclipse.jdt.core.prefs
index f287d53cf45..ace45ceefb4 100644
--- a/java/com.sap.sailing.domain.shared.android.test/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.shared.android.test/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,12 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.shared.android.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.shared.android.test/META-INF/MANIFEST.MF
index dd8cf445e1e..f5ee39088af 100644
--- a/java/com.sap.sailing.domain.shared.android.test/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.shared.android.test/META-INF/MANIFEST.MF
@@ -4,7 +4,7 @@ Bundle-Name: com.sap.sailing.domain.shared.android.test
Bundle-SymbolicName: com.sap.sailing.domain.shared.android.test
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: com.sap.sailing.domain.common;bundle-version="1.0.0",
com.sap.sailing.domain.shared.android;bundle-version="1.0.0",
org.junit4;bundle-version="4.8.2",
diff --git a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/tracking/analyzing/test/RevokeEventTest.java b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/tracking/analyzing/test/RevokeEventTest.java
index edf72f64188..5661ee4f4ef 100644
--- a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/tracking/analyzing/test/RevokeEventTest.java
+++ b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/tracking/analyzing/test/RevokeEventTest.java
@@ -14,7 +14,8 @@ public class RevokeEventTest extends AbstractRaceLogTrackingTest {
@Test
public void revokedEventIsExcluded() {
RaceLogEvent event = factory.createDeviceCompetitorMappingEvent(now, author, now, UUID.randomUUID(), null, null, 0, null, null);
- RevokeEvent revokeEvent = factory.createRevokeEvent(now.plus(1), author, now.plus(1), UUID.randomUUID(), 0, event.getId());
+ RevokeEvent revokeEvent = factory.createRevokeEvent(now.plus(1), author, now.plus(1), UUID.randomUUID(), 0, event.getId(),
+ null, null, null);
log.add(event);
log.add(revokeEvent);
@@ -27,7 +28,8 @@ public class RevokeEventTest extends AbstractRaceLogTrackingTest {
@Test
public void eventRevokedByAuthorWithLowerPrioIsNotExcluded() {
RaceLogEvent event = factory.createDeviceCompetitorMappingEvent(now, author, now, UUID.randomUUID(), null, null, 0, null, null);
- RevokeEvent revokeEvent = factory.createRevokeEvent(now.plus(1), author1, now.plus(1), UUID.randomUUID(), 0, event.getId());
+ RevokeEvent revokeEvent = factory.createRevokeEvent(now.plus(1), author1, now.plus(1), UUID.randomUUID(), 0, event.getId(),
+ null, null, null);
log.add(event);
log.add(revokeEvent);
@@ -40,8 +42,10 @@ public class RevokeEventTest extends AbstractRaceLogTrackingTest {
@Test
public void revokingRevokeEventIsNotHarmful() {
RaceLogEvent event = factory.createDeviceCompetitorMappingEvent(now, author, now, UUID.randomUUID(), null, null, 0, null, null);
- RevokeEvent revokeEvent = factory.createRevokeEvent(now.plus(1), author, now.plus(1), UUID.randomUUID(), 0, event.getId());
- RevokeEvent revokeEvent2 = factory.createRevokeEvent(now.plus(2), author, now.plus(2), UUID.randomUUID(), 2, revokeEvent.getId());
+ RevokeEvent revokeEvent = factory.createRevokeEvent(now.plus(1), author, now.plus(1), UUID.randomUUID(), 0, event.getId(),
+ null, null, null);
+ RevokeEvent revokeEvent2 = factory.createRevokeEvent(now.plus(2), author, now.plus(2), UUID.randomUUID(), 2, revokeEvent.getId(),
+ null, null, null);
log.add(event);
log.add(revokeEvent);
diff --git a/java/com.sap.sailing.domain.shared.android/pom.xml b/java/com.sap.sailing.domain.shared.android/pom.xml
index 9db7d71f886..782dee1c2bf 100644
--- a/java/com.sap.sailing.domain.shared.android/pom.xml
+++ b/java/com.sap.sailing.domain.shared.android/pom.xml
@@ -9,4 +9,31 @@
com.sap.sailing.domain.shared.android
eclipse-plugin
+
+
+
+ org.eclipse.tycho
+ tycho-compiler-plugin
+ ${tycho-version}
+
+ 1.6
+ 1.6
+
+
+
+ org.eclipse.tycho
+ tycho-source-plugin
+ ${tycho-version}
+
+
+ plugin-source
+ generate-sources
+
+ plugin-source
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/Competitor.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/Competitor.java
index bab5f9f8a7d..5d3b4d1d2e7 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/Competitor.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/Competitor.java
@@ -6,10 +6,10 @@ import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.common.Named;
public interface Competitor extends Named, WithID, IsManagedBySharedDomainFactory {
- @Connector(messageKey="Team", ordinal=8)
+ @Connector(messageKey="Team", ordinal=9)
Team getTeam();
- @Connector(messageKey="Boat", ordinal=9)
+ @Connector(messageKey="Boat", ordinal=10)
Boat getBoat();
Color getColor();
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SharedDomainFactoryImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SharedDomainFactoryImpl.java
index e548557cf08..a6298dbba50 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SharedDomainFactoryImpl.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SharedDomainFactoryImpl.java
@@ -12,6 +12,8 @@ import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.Competitor;
@@ -34,6 +36,7 @@ import com.sap.sailing.domain.common.WithID;
import com.sap.sailing.domain.common.configuration.DeviceConfigurationMatcherType;
public class SharedDomainFactoryImpl implements SharedDomainFactory {
+ private static final Logger logger = Logger.getLogger(SharedDomainFactoryImpl.class.getName());
/**
* Ensure that the same string is used as key that is also used to set the {@link Nationality}
@@ -321,6 +324,9 @@ public class SharedDomainFactoryImpl implements SharedDomainFactory {
@Override
public Competitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, DynamicTeam team, DynamicBoat boat) {
+ if (logger.isLoggable(Level.FINEST)) {
+ logger.log(Level.FINEST, "getting or creating competitor "+name+" with ID "+competitorId+" in domain factory "+this);
+ }
return getCompetitorStore().getOrCreateCompetitor(competitorId, name, displayColor, team, boat);
}
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/TransientCompetitorStoreImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/TransientCompetitorStoreImpl.java
index f1b221ab707..696f2cc526b 100755
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/TransientCompetitorStoreImpl.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/TransientCompetitorStoreImpl.java
@@ -10,6 +10,8 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.WeakHashMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.CompetitorStore;
@@ -23,6 +25,7 @@ import com.sap.sailing.util.impl.LockUtil;
import com.sap.sailing.util.impl.NamedReentrantReadWriteLock;
public class TransientCompetitorStoreImpl implements CompetitorStore, Serializable {
+ private static final Logger logger = Logger.getLogger(TransientCompetitorStoreImpl.class.getName());
private static final long serialVersionUID = -4198298775476586931L;
private final Map competitorCache;
private final Map competitorsByIdAsString;
@@ -67,6 +70,9 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab
private Competitor createCompetitor(Serializable id, String name, Color displayColor, DynamicTeam team, DynamicBoat boat) {
Competitor result = new CompetitorImpl(id, name, displayColor, team, boat);
addNewCompetitor(id, result);
+ if (logger.isLoggable(Level.FINEST)) {
+ logger.log(Level.FINEST, "Created competitor "+name+" with ID "+id, new Exception("Here is where it happened"));
+ }
return result;
}
@@ -151,6 +157,9 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab
competitorCache.clear();
competitorsByIdAsString.clear();
competitorsToUpdateDuringGetOrCreate.clear();
+ if (logger.isLoggable(Level.FINEST)) {
+ logger.log(Level.FINEST, "Clearing competitor store "+this, new Exception("here is where it happened"));
+ }
} finally {
LockUtil.unlockAfterWrite(lock);
}
@@ -170,6 +179,7 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab
public void removeCompetitor(Competitor competitor) {
LockUtil.lockForWrite(lock);
try {
+ logger.fine("removing competitor "+competitor+" from competitor store "+this);
competitorCache.remove(competitor.getId());
competitorsByIdAsString.remove(competitor.getId().toString());
weakCompetitorDTOCache.remove(competitor);
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLog.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLog.java
index 060ee5685d5..0d9f632c793 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLog.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLog.java
@@ -128,6 +128,7 @@ public interface RaceLog extends Track, WithID {
*
* @param author The author for the {@code RevokeEvent}.
*/
+ RevokeEvent revokeEvent(RaceLogEventAuthor author, RaceLogEvent toRevoke, String reason) throws NotRevokableException;
RevokeEvent revokeEvent(RaceLogEventAuthor author, RaceLogEvent toRevoke) throws NotRevokableException;
/**
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventFactory.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventFactory.java
index 07f4596b2df..3dd62cee4ea 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventFactory.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventFactory.java
@@ -111,7 +111,8 @@ public interface RaceLogEventFactory {
StartTrackingEvent createStartTrackingEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId);
- RevokeEvent createRevokeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, Serializable revokedEventId);
+ RevokeEvent createRevokeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, Serializable revokedEventId,
+ String revokedEventType, String revokedEventShortInfo, String reason);
RegisterCompetitorEvent createRegisterCompetitorEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, Competitor competitor);
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventRestoreFactory.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventRestoreFactory.java
index d3896c46577..cb0c62d78ae 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventRestoreFactory.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventRestoreFactory.java
@@ -82,7 +82,8 @@ public interface RaceLogEventRestoreFactory extends RaceLogEventFactory {
TimePoint logicalTimePoint, Serializable pId, int passId);
RevokeEvent createRevokeEvent(TimePoint createdAt, RaceLogEventAuthor author,
- TimePoint logicalTimePoint, Serializable pId, int passId, Serializable revokedEventId);
+ TimePoint logicalTimePoint, Serializable pId, int passId, Serializable revokedEventId,
+ String revokedEventType, String revokedEventShortInfo, String reason);
RegisterCompetitorEvent createRegisterCompetitorEvent(TimePoint createdAt, RaceLogEventAuthor author,
TimePoint logicalTimePoint, Serializable pId, int passId, Competitor competitor);
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RevokeEvent.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RevokeEvent.java
index 23a87ff845a..b15624063fb 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RevokeEvent.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RevokeEvent.java
@@ -11,4 +11,19 @@ import java.io.Serializable;
*/
public interface RevokeEvent extends RaceLogEvent {
Serializable getRevokedEventId();
+
+ /**
+ * Short info of the revoked event, automatically added by {@link RaceLog#revokeEvent}.
+ */
+ String getRevokedEventShortInfo();
+
+ /**
+ * Optional reason for revocation of event.
+ */
+ String getReason();
+
+ /**
+ * {@link Class#getSimpleName() Simple class name} of the revoked event.
+ */
+ String getRevokedEventType();
}
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/NoAddingRaceLogWrapper.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/NoAddingRaceLogWrapper.java
index e4c8d47e797..bc6eaac844f 100755
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/NoAddingRaceLogWrapper.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/NoAddingRaceLogWrapper.java
@@ -238,4 +238,10 @@ public class NoAddingRaceLogWrapper implements RaceLog {
public RevokeEvent revokeEvent(RaceLogEventAuthor author, RaceLogEvent toRevoke) throws NotRevokableException {
return innerRaceLog.revokeEvent(author, toRevoke);
}
+
+ @Override
+ public RevokeEvent revokeEvent(RaceLogEventAuthor author, RaceLogEvent toRevoke, String reason)
+ throws NotRevokableException {
+ return innerRaceLog.revokeEvent(author, toRevoke, reason);
+ }
}
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java
index 6df183388f8..6b1c370b7fb 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java
@@ -253,8 +253,10 @@ public class RaceLogEventFactoryImpl implements RaceLogEventFactory {
}
@Override
- public RevokeEvent createRevokeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, Serializable revokedEventId) {
- return new RevokeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), passId, revokedEventId);
+ public RevokeEvent createRevokeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, Serializable revokedEventId,
+ String revokedEventType, String revokedEventShortInfo, String reason) {
+ return new RevokeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(),
+ passId, revokedEventId, revokedEventType, revokedEventShortInfo, reason);
}
@Override
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventRestoreFactoryImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventRestoreFactoryImpl.java
index 70e1241ce1d..528005b7637 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventRestoreFactoryImpl.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventRestoreFactoryImpl.java
@@ -158,8 +158,8 @@ public class RaceLogEventRestoreFactoryImpl extends RaceLogEventFactoryImpl impl
@Override
public RevokeEvent createRevokeEvent(TimePoint createdAt, RaceLogEventAuthor author, TimePoint logicalTimePoint,
- Serializable pId, int passId, Serializable revokedEventId) {
- return new RevokeEventImpl(createdAt, author, logicalTimePoint, pId, passId, revokedEventId);
+ Serializable pId, int passId, Serializable revokedEventId, String revokedEventType, String revokedEventShortInfo, String reason) {
+ return new RevokeEventImpl(createdAt, author, logicalTimePoint, pId, passId, revokedEventId, revokedEventType, revokedEventShortInfo, reason);
}
@Override
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogImpl.java
index 2e7397f6e3e..27ca9f571d2 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogImpl.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogImpl.java
@@ -179,7 +179,7 @@ public class RaceLogImpl extends TrackImpl implements RaceLog {
// make sure to compare only author priorities - assuming that revoke events are
// independent of passes and times
- if (revokeEvent.getAuthor().compareTo(revokedEvent.getAuthor()) < 0) {
+ if (revokeEvent.getAuthor().getPriority() > revokedEvent.getAuthor().getPriority()) {
throw new NotRevokableException("RevokeEvent does not have sufficient priority");
}
}
@@ -187,23 +187,7 @@ public class RaceLogImpl extends TrackImpl implements RaceLog {
@Override
public Iterable add(RaceLogEvent event, UUID clientId) {
- boolean isAdded = false;
- lockForWrite();
- try {
- isAdded = getInternalRawFixes().add(event);
- } finally {
- unlockAfterWrite();
- }
- if (isAdded) {
- logger.finer(String.format("%s (%s) was added to log.", event, event.getClass().getName()));
- // FIXME with out-of-order delivery would destroy currentPassId; need to check at least the createdAt time
- // point
- setCurrentPassId(Math.max(event.getPassId(), this.currentPassId));
- revokeIfNecessary(event);
- notifyListenersAboutReceive(event);
- } else {
- logger.fine(String.format("%s (%s) was not added to log because it already eists there.", event, event.getClass().getName()));
- }
+ add(event);
return getEventsToDeliver(clientId, event);
}
@@ -430,11 +414,17 @@ public class RaceLogImpl extends TrackImpl implements RaceLog {
@Override
public RevokeEvent revokeEvent(RaceLogEventAuthor author, RaceLogEvent toRevoke) throws NotRevokableException {
+ return revokeEvent(author, toRevoke, null);
+ }
+
+ @Override
+ public RevokeEvent revokeEvent(RaceLogEventAuthor author, RaceLogEvent toRevoke, String reason) throws NotRevokableException {
if (toRevoke == null) {
throw new NotRevokableException("Received null as event to revoke");
}
- RevokeEvent revokeEvent = RaceLogEventFactory.INSTANCE.createRevokeEvent(MillisecondsTimePoint.now(), author,
- getCurrentPassId(), toRevoke.getId());
+ RevokeEvent revokeEvent = RaceLogEventFactory.INSTANCE.createRevokeEvent(
+ MillisecondsTimePoint.now(), author, getCurrentPassId(), toRevoke.getId(),
+ toRevoke.getClass().getSimpleName(), toRevoke.getShortInfo(), reason);
checkIfSuccessfullyRevokes(revokeEvent);
add(revokeEvent);
return revokeEvent;
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/SmartphoneUUIDSerializationHandler.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/SmartphoneUUIDSerializationHandler.java
index f96ef1e702c..536baad73bb 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/SmartphoneUUIDSerializationHandler.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/SmartphoneUUIDSerializationHandler.java
@@ -14,12 +14,12 @@ public class SmartphoneUUIDSerializationHandler {
}
public Util.Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException {
- return new Util.Pair(castIdentifier(deviceIdentifier).getUUID().toString(), SmartphoneUUIDIdentifier.TYPE);
+ return new Util.Pair(SmartphoneUUIDIdentifier.TYPE, castIdentifier(deviceIdentifier).getUUID().toString());
}
public DeviceIdentifier deserialize(String input, String type, String stringRep) throws TransformationException {
try {
- return new SmartphoneUUIDIdentifierImpl(UUID.fromString(stringRep));
+ return new SmartphoneUUIDIdentifierImpl(UUID.fromString(input));
} catch (IllegalArgumentException e) {
throw new TransformationException("Invalid string representation of smartphone UUID", e);
}
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/events/RegisterCompetitorEventImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/events/RegisterCompetitorEventImpl.java
index 3db0e10a290..c141b92bfcb 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/events/RegisterCompetitorEventImpl.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/events/RegisterCompetitorEventImpl.java
@@ -27,4 +27,9 @@ public class RegisterCompetitorEventImpl extends RaceLogEventImpl implements Reg
public Competitor getCompetitor() {
return getInvolvedBoats().get(0);
}
+
+ @Override
+ public String getShortInfo() {
+ return "competitor: " + getCompetitor().toString();
+ }
}
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/events/RevokeEventImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/events/RevokeEventImpl.java
index d38756f9afd..640bbcbb126 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/events/RevokeEventImpl.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/events/RevokeEventImpl.java
@@ -14,11 +14,18 @@ public class RevokeEventImpl extends RaceLogEventImpl implements RevokeEvent {
private static final long serialVersionUID = -30864810737555657L;
private final Serializable revokedEventId;
+ private final String reason;
+ private final String revokedEventType;
+ private final String revokedEventShortInfo;
public RevokeEventImpl(TimePoint createdAt, RaceLogEventAuthor author, TimePoint logicalTimePoint,
- Serializable pId, int pPassId, Serializable revokedEventId) {
+ Serializable pId, int pPassId, Serializable revokedEventId, String revokedEventType,
+ String revokedEventShortInfo, String reason) {
super(createdAt, author, logicalTimePoint, pId, Collections.emptyList(), pPassId);
this.revokedEventId = revokedEventId;
+ this.reason = reason;
+ this.revokedEventType = revokedEventType;
+ this.revokedEventShortInfo = revokedEventShortInfo;
}
@Override
@@ -33,6 +40,26 @@ public class RevokeEventImpl extends RaceLogEventImpl implements RevokeEvent {
@Override
public String getShortInfo() {
- return super.getShortInfo() + "Revoked: " + revokedEventId;
+ if (revokedEventShortInfo == null) {
+ return "No event revoked";
+ } else {
+ return "Revoked " + revokedEventType + "(" + revokedEventShortInfo + ")"
+ + reason == null ? "" : (" due to " + reason);
+ }
+ }
+
+ @Override
+ public String getRevokedEventType() {
+ return revokedEventType;
+ }
+
+ @Override
+ public String getRevokedEventShortInfo() {
+ return revokedEventShortInfo;
+ }
+
+ @Override
+ public String getReason() {
+ return reason;
}
}
diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/.classpath b/java/com.sap.sailing.domain.swisstimingadapter.persistence/.classpath
old mode 100755
new mode 100644
index c8351b0a6bd..4f83b2397ec
--- a/java/com.sap.sailing.domain.swisstimingadapter.persistence/.classpath
+++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/.classpath
@@ -1,7 +1,7 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.swisstimingadapter.persistence/.settings/org.eclipse.jdt.core.prefs
old mode 100755
new mode 100644
index 2cd525934d2..a698e59674f
--- a/java/com.sap.sailing.domain.swisstimingadapter.persistence/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,12 @@
-#Thu Jan 19 09:52:00 CET 2012
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index da4cf447e51..9db73538e56
--- a/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF
@@ -1,15 +1,17 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Swisstiming Adapter Persistence
-Bundle-SymbolicName: com.sap.sailing.domain.swisstimingadapter.persistence
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Bundle-ActivationPolicy: lazy
-Require-Bundle: com.sap.sailing.domain.swisstimingadapter,
- com.mongodb.driver;bundle-version="2.6.2",
- com.sap.sailing.mongodb,
- com.sap.sailing.domain,
- com.sap.sailing.domain.common
-Export-Package: com.sap.sailing.domain.swisstimingadapter.persistence,
- com.sap.sailing.domain.swisstimingadapter.persistence.impl; x-friends:="com.sap.sailing.domain.swisstimingadapter.test"
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Swisstiming Adapter Persistence
+Bundle-SymbolicName: com.sap.sailing.domain.swisstimingadapter.persistence
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: SAP
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Require-Bundle: com.sap.sailing.domain.swisstimingadapter,
+ com.mongodb.driver;bundle-version="2.6.2",
+ com.sap.sailing.mongodb,
+ com.sap.sailing.domain,
+ com.sap.sailing.domain.common
+Export-Package: com.sap.sailing.domain.swisstimingadapter.persistence,
+ com.sap.sailing.domain.swisstimingadapter.persistence.impl; x-friends:="com.sap.sailing.domain.swisstimingadapter.test"
+Import-Package: org.osgi.framework
+Bundle-Activator: com.sap.sailing.domain.swisstimingadapter.persistence.impl.Activator
diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/Activator.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/Activator.java
new file mode 100755
index 00000000000..69ad2b57b0d
--- /dev/null
+++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/Activator.java
@@ -0,0 +1,19 @@
+package com.sap.sailing.domain.swisstimingadapter.persistence.impl;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+import com.sap.sailing.mongodb.MongoDBService;
+
+public class Activator implements BundleActivator {
+ @Override
+ public void start(BundleContext context) throws Exception {
+ for (CollectionNames name : CollectionNames.values()) {
+ MongoDBService.INSTANCE.registerExclusively(CollectionNames.class, name.name());
+ }
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ }
+}
diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/.classpath b/java/com.sap.sailing.domain.swisstimingadapter.test/.classpath
old mode 100755
new mode 100644
index 947620eea47..03c4ce9fdd8
--- a/java/com.sap.sailing.domain.swisstimingadapter.test/.classpath
+++ b/java/com.sap.sailing.domain.swisstimingadapter.test/.classpath
@@ -1,8 +1,8 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.swisstimingadapter.test/.settings/org.eclipse.jdt.core.prefs
old mode 100755
new mode 100644
index 43d0abddd02..a698e59674f
--- a/java/com.sap.sailing.domain.swisstimingadapter.test/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.swisstimingadapter.test/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,12 @@
-#Thu Jan 19 09:52:18 CET 2012
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index 90d0a49ef40..b82b78cccb7
--- a/java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF
@@ -1,24 +1,24 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Test
-Bundle-SymbolicName: com.sap.sailing.domain.swisstimingadapter.test
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Fragment-Host: com.sap.sailing.domain.swisstimingadapter
-Require-Bundle: com.sap.sailing.domain,
- com.sap.sailing.udpconnector,
- com.mongodb.driver;bundle-version="2.6.2",
- com.sap.sailing.mongodb,
- com.googlecode.java-diff-utils;bundle-version="1.3.0",
- com.sap.sailing.server,
- com.sap.sailing.domain.common,
- com.sap.sailing.domain.persistence,
- com.sap.sailing.domain.tractracadapter,
- com.sap.sailing.domain.swisstimingadapter.persistence;bundle-version="1.0.0",
- org.junit4;bundle-version="4.8.2",
- org.hamcrest.core;bundle-version="1.1.0",
- com.sap.sse.common
-Bundle-ClassPath: resources/,
- .
-Import-Package: com.sap.sailing.server
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Test
+Bundle-SymbolicName: com.sap.sailing.domain.swisstimingadapter.test
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: SAP
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Fragment-Host: com.sap.sailing.domain.swisstimingadapter
+Require-Bundle: com.sap.sailing.domain,
+ com.sap.sailing.udpconnector,
+ com.mongodb.driver;bundle-version="2.6.2",
+ com.sap.sailing.mongodb,
+ com.googlecode.java-diff-utils;bundle-version="1.3.0",
+ com.sap.sailing.server,
+ com.sap.sailing.domain.common,
+ com.sap.sailing.domain.persistence,
+ com.sap.sailing.domain.tractracadapter,
+ com.sap.sailing.domain.swisstimingadapter.persistence;bundle-version="1.0.0",
+ org.junit4;bundle-version="4.8.2",
+ org.hamcrest.core;bundle-version="1.1.0",
+ com.sap.sse.common
+Bundle-ClassPath: resources/,
+ .
+Import-Package: com.sap.sailing.server
diff --git a/java/com.sap.sailing.domain.swisstimingadapter/.classpath b/java/com.sap.sailing.domain.swisstimingadapter/.classpath
old mode 100755
new mode 100644
index c8351b0a6bd..4f83b2397ec
--- a/java/com.sap.sailing.domain.swisstimingadapter/.classpath
+++ b/java/com.sap.sailing.domain.swisstimingadapter/.classpath
@@ -1,7 +1,7 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.swisstimingadapter/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.swisstimingadapter/.settings/org.eclipse.jdt.core.prefs
old mode 100755
new mode 100644
index bd4ed7fa952..a698e59674f
--- a/java/com.sap.sailing.domain.swisstimingadapter/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.swisstimingadapter/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,12 @@
-#Thu Jan 19 09:51:40 CET 2012
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.swisstimingadapter/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.swisstimingadapter/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index 577a544907c..b88b8bb219d
--- a/java/com.sap.sailing.domain.swisstimingadapter/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.swisstimingadapter/META-INF/MANIFEST.MF
@@ -1,18 +1,18 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Swisstimingadapter
-Bundle-SymbolicName: com.sap.sailing.domain.swisstimingadapter
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Bundle-ActivationPolicy: lazy
-Require-Bundle: com.sap.sailing.domain,
- com.sap.sailing.udpconnector,
- com.googlecode.java-diff-utils;bundle-version="1.3.0",
- com.sap.sailing.domain.common,
- com.sap.sailing.xrr.resultimport,
- com.sap.sse.common
-Export-Package: com.sap.sailing.domain.swisstimingadapter,
- com.sap.sailing.domain.swisstimingadapter.impl;x-friends:="com.sap.sailing.server.test"
-Import-Package: org.osgi.framework;version="1.7.0"
-Bundle-Activator: com.sap.sailing.domain.swisstimingadapter.impl.Activator
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Swisstimingadapter
+Bundle-SymbolicName: com.sap.sailing.domain.swisstimingadapter
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: SAP
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Require-Bundle: com.sap.sailing.domain,
+ com.sap.sailing.udpconnector,
+ com.googlecode.java-diff-utils;bundle-version="1.3.0",
+ com.sap.sailing.domain.common,
+ com.sap.sailing.xrr.resultimport,
+ com.sap.sse.common
+Export-Package: com.sap.sailing.domain.swisstimingadapter,
+ com.sap.sailing.domain.swisstimingadapter.impl;x-friends:="com.sap.sailing.server.test"
+Import-Package: org.osgi.framework;version="1.7.0"
+Bundle-Activator: com.sap.sailing.domain.swisstimingadapter.impl.Activator
diff --git a/java/com.sap.sailing.domain.swisstimingreplayadapter.test/.classpath b/java/com.sap.sailing.domain.swisstimingreplayadapter.test/.classpath
index 1228533181d..110168ffa19 100644
--- a/java/com.sap.sailing.domain.swisstimingreplayadapter.test/.classpath
+++ b/java/com.sap.sailing.domain.swisstimingreplayadapter.test/.classpath
@@ -1,8 +1,8 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.swisstimingreplayadapter.test/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.swisstimingreplayadapter.test/.settings/org.eclipse.jdt.core.prefs
index 11f6e462df7..a698e59674f 100644
--- a/java/com.sap.sailing.domain.swisstimingreplayadapter.test/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.swisstimingreplayadapter.test/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,12 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.swisstimingreplayadapter.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.swisstimingreplayadapter.test/META-INF/MANIFEST.MF
index 2586a20a1c9..b006bd01e0b 100644
--- a/java/com.sap.sailing.domain.swisstimingreplayadapter.test/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.swisstimingreplayadapter.test/META-INF/MANIFEST.MF
@@ -1,13 +1,13 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: SwissTimingReplayAdapterTest
-Bundle-SymbolicName: com.sap.sailing.domain.swisstimingreplayadapter.test
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Fragment-Host: com.sap.sailing.domain.swisstimingreplayadapter
-Import-Package: org.json.simple,
- org.json.simple.parser
-Require-Bundle: com.sap.sailing.domain.test,
- org.junit4;bundle-version="4.8.2",
- com.sap.sse.common
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: SwissTimingReplayAdapterTest
+Bundle-SymbolicName: com.sap.sailing.domain.swisstimingreplayadapter.test
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: SAP
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Fragment-Host: com.sap.sailing.domain.swisstimingreplayadapter
+Import-Package: org.json.simple,
+ org.json.simple.parser
+Require-Bundle: com.sap.sailing.domain.test,
+ org.junit4;bundle-version="4.8.2",
+ com.sap.sse.common
diff --git a/java/com.sap.sailing.domain.swisstimingreplayadapter/.classpath b/java/com.sap.sailing.domain.swisstimingreplayadapter/.classpath
index b1dabee3829..eca7bdba8f0 100644
--- a/java/com.sap.sailing.domain.swisstimingreplayadapter/.classpath
+++ b/java/com.sap.sailing.domain.swisstimingreplayadapter/.classpath
@@ -1,7 +1,7 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.swisstimingreplayadapter/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.swisstimingreplayadapter/.settings/org.eclipse.jdt.core.prefs
index 11f6e462df7..a698e59674f 100644
--- a/java/com.sap.sailing.domain.swisstimingreplayadapter/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.swisstimingreplayadapter/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,12 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.swisstimingreplayadapter/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.swisstimingreplayadapter/META-INF/MANIFEST.MF
index 39c07f68edd..f3c11e2d3a5 100644
--- a/java/com.sap.sailing.domain.swisstimingreplayadapter/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.swisstimingreplayadapter/META-INF/MANIFEST.MF
@@ -1,17 +1,17 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: SwissTimingReplayAdapter
-Bundle-SymbolicName: com.sap.sailing.domain.swisstimingreplayadapter
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Bundle-ActivationPolicy: lazy
-Require-Bundle: com.sap.sailing.domain.common,
- com.sap.sailing.domain,
- org.json.simple;bundle-version="1.1.0",
- com.sap.sailing.domain.swisstimingadapter,
- com.googlecode.java-diff-utils;bundle-version="1.3.0",
- com.sap.sse.common
-Export-Package: com.sap.sailing.domain.swisstimingreplayadapter
-Import-Package: org.osgi.framework;version="1.7.0"
-Bundle-Activator: com.sap.sailing.domain.swisstimingreplayadapter.impl.Activator
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: SwissTimingReplayAdapter
+Bundle-SymbolicName: com.sap.sailing.domain.swisstimingreplayadapter
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: SAP
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Require-Bundle: com.sap.sailing.domain.common,
+ com.sap.sailing.domain,
+ org.json.simple;bundle-version="1.1.0",
+ com.sap.sailing.domain.swisstimingadapter,
+ com.googlecode.java-diff-utils;bundle-version="1.3.0",
+ com.sap.sse.common
+Export-Package: com.sap.sailing.domain.swisstimingreplayadapter
+Import-Package: org.osgi.framework;version="1.7.0"
+Bundle-Activator: com.sap.sailing.domain.swisstimingreplayadapter.impl.Activator
diff --git a/java/com.sap.sailing.domain.test/.classpath b/java/com.sap.sailing.domain.test/.classpath
old mode 100755
new mode 100644
index 31b4ae5cf85..03c4ce9fdd8
--- a/java/com.sap.sailing.domain.test/.classpath
+++ b/java/com.sap.sailing.domain.test/.classpath
@@ -3,6 +3,6 @@
-
+
diff --git a/java/com.sap.sailing.domain.test/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.test/.settings/org.eclipse.jdt.core.prefs
old mode 100755
new mode 100644
index dbc585d61fa..a698e59674f
--- a/java/com.sap.sailing.domain.test/.settings/org.eclipse.jdt.core.prefs
+++ b/java/com.sap.sailing.domain.test/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,12 @@
-#Thu Jan 19 09:52:44 CET 2012
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/java/com.sap.sailing.domain.test/FetchAndStoreHamburgTracks (proxy).launch b/java/com.sap.sailing.domain.test/FetchAndStoreHamburgTracks (proxy).launch
old mode 100755
new mode 100644
index 3e1dd0fa9e7..b9c75aa9753
--- a/java/com.sap.sailing.domain.test/FetchAndStoreHamburgTracks (proxy).launch
+++ b/java/com.sap.sailing.domain.test/FetchAndStoreHamburgTracks (proxy).launch
@@ -1,13 +1,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.test/META-INF/MANIFEST.MF
old mode 100755
new mode 100644
index 7fddd901b49..11ff5b2ec1a
--- a/java/com.sap.sailing.domain.test/META-INF/MANIFEST.MF
+++ b/java/com.sap.sailing.domain.test/META-INF/MANIFEST.MF
@@ -1,22 +1,22 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Test
-Bundle-SymbolicName: com.sap.sailing.domain.test
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: SAP
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Require-Bundle: com.sap.sailing.domain,
- com.tractrac.clientmodule;bundle-version="2.0.0",
- com.sap.sailing.domain.tractracadapter,
- com.googlecode.java-diff-utils;bundle-version="1.3.0",
- com.sap.sailing.domain.common,
- com.sap.sailing.domain.shared.android,
- org.mockito.mockito-core;bundle-version="1.9.5",
- com.sap.sailing.domain.test,
- org.hamcrest;bundle-version="1.1.0",
- org.objenesis;bundle-version="1.3.0",
- org.junit4;bundle-version="4.8.2",
- org.json.simple;bundle-version="1.1.0",
- com.sap.sse.common
-Export-Package: com.sap.sailing.domain.test,
- com.sap.sailing.domain.test.mock
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Test
+Bundle-SymbolicName: com.sap.sailing.domain.test
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: SAP
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: com.sap.sailing.domain,
+ com.tractrac.clientmodule;bundle-version="2.0.0",
+ com.sap.sailing.domain.tractracadapter,
+ com.googlecode.java-diff-utils;bundle-version="1.3.0",
+ com.sap.sailing.domain.common,
+ com.sap.sailing.domain.shared.android,
+ org.mockito.mockito-core;bundle-version="1.9.5",
+ com.sap.sailing.domain.test,
+ org.hamcrest;bundle-version="1.1.0",
+ org.objenesis;bundle-version="1.3.0",
+ org.junit4;bundle-version="4.8.2",
+ org.json.simple;bundle-version="1.1.0",
+ com.sap.sse.common
+Export-Package: com.sap.sailing.domain.test,
+ com.sap.sailing.domain.test.mock
diff --git a/java/com.sap.sailing.domain.test/SailingDomainTest (No Proxy).launch b/java/com.sap.sailing.domain.test/SailingDomainTest (No Proxy).launch
old mode 100755
new mode 100644
diff --git a/java/com.sap.sailing.domain.test/SailingDomainTest (No Proxy, Remote Profiling).launch b/java/com.sap.sailing.domain.test/SailingDomainTest (No Proxy, Remote Profiling).launch
old mode 100755
new mode 100644
index 6a51be0fadd..5e62f80e61b
--- a/java/com.sap.sailing.domain.test/SailingDomainTest (No Proxy, Remote Profiling).launch
+++ b/java/com.sap.sailing.domain.test/SailingDomainTest (No Proxy, Remote Profiling).launch
@@ -1,21 +1,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.test/SailingDomainTest (No Proxy, Tunnel).launch b/java/com.sap.sailing.domain.test/SailingDomainTest (No Proxy, Tunnel).launch
old mode 100755
new mode 100644
index 664cfb1488b..ef870966cce
--- a/java/com.sap.sailing.domain.test/SailingDomainTest (No Proxy, Tunnel).launch
+++ b/java/com.sap.sailing.domain.test/SailingDomainTest (No Proxy, Tunnel).launch
@@ -1,20 +1,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.test/SailingDomainTest (Proxy).launch b/java/com.sap.sailing.domain.test/SailingDomainTest (Proxy).launch
old mode 100755
new mode 100644
index 28564897c59..0af5786014b
--- a/java/com.sap.sailing.domain.test/SailingDomainTest (Proxy).launch
+++ b/java/com.sap.sailing.domain.test/SailingDomainTest (Proxy).launch
@@ -1,20 +1,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.test/SailingDomainTest (Proxy, No Tunnel).launch b/java/com.sap.sailing.domain.test/SailingDomainTest (Proxy, No Tunnel).launch
old mode 100755
new mode 100644
index 2e0e4a17a88..9860c5f4d43
--- a/java/com.sap.sailing.domain.test/SailingDomainTest (Proxy, No Tunnel).launch
+++ b/java/com.sap.sailing.domain.test/SailingDomainTest (Proxy, No Tunnel).launch
@@ -1,20 +1,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.test/SailingDomainTest (Proxy, Remote Profiling).launch b/java/com.sap.sailing.domain.test/SailingDomainTest (Proxy, Remote Profiling).launch
old mode 100755
new mode 100644
index 4ddcb6f05bf..11fec4bc9a7
--- a/java/com.sap.sailing.domain.test/SailingDomainTest (Proxy, Remote Profiling).launch
+++ b/java/com.sap.sailing.domain.test/SailingDomainTest (Proxy, Remote Profiling).launch
@@ -1,21 +1,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.test/TestTTCM tunneled through localhost.launch b/java/com.sap.sailing.domain.test/TestTTCM tunneled through localhost.launch
old mode 100755
new mode 100644
index 512f9da0202..0c9ed8dc4ae
--- a/java/com.sap.sailing.domain.test/TestTTCM tunneled through localhost.launch
+++ b/java/com.sap.sailing.domain.test/TestTTCM tunneled through localhost.launch
@@ -1,17 +1,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.test/TestTTCM without Proxy.launch b/java/com.sap.sailing.domain.test/TestTTCM without Proxy.launch
index 7f1890a1a09..27b4a89210c 100644
--- a/java/com.sap.sailing.domain.test/TestTTCM without Proxy.launch
+++ b/java/com.sap.sailing.domain.test/TestTTCM without Proxy.launch
@@ -1,16 +1,16 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java
index 5e1b14a9df8..2db457a4f46 100644
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java
@@ -979,6 +979,74 @@ public class LeaderboardScoringAndRankingTest extends AbstractLeaderboardTest {
assertEquals(28 /* one win, two second */, leaderboardGroup.getOverallLeaderboard().getTotalPoints(c[0], later), 0.000000001);
assertEquals(29 /* two wins, one second */, leaderboardGroup.getOverallLeaderboard().getTotalPoints(c[3], later), 0.000000001);
}
+
+ @Test
+ public void testHighPointScoringEightWithInterpolationWhenFleetNotComplete() throws NoWindException {
+ int competitorsCount = 21;
+ List competitors = createCompetitors(competitorsCount);
+ Regatta regatta = createRegatta(/* qualifying */ 1, new String[] { "Fleet1", "Fleet2", "Fleet3" }, /* final */0,
+ new String[] { "Default" },
+ /* medal */false, "testHighPointScoringEightWithInterpolationWhenFleetNotComplete",
+ DomainFactory.INSTANCE.getOrCreateBoatClass("49er", /* typicallyStartsUpwind */true),
+ DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.HIGH_POINT_WINNER_GETS_EIGHT_AND_INTERPOLATION));
+ Leaderboard leaderboard = createLeaderboard(regatta, /* discarding thresholds */ new int[0]);
+
+ Series firstSeries = regatta.getSeries().iterator().next();
+ TimePoint now = MillisecondsTimePoint.now();
+ TimePoint later = new MillisecondsTimePoint(now.asMillis()+1000);
+ // fleet 1 has 8 competitors
+ TrackedRace r1Fleet1 = new MockedTrackedRaceWithStartTimeAndRanks(now, competitors.subList(0, 8));
+ // fleet 2 has 7 competitors
+ TrackedRace r1Fleet2 = new MockedTrackedRaceWithStartTimeAndRanks(now, competitors.subList(8, 15));
+ // fleet 1 has 6 competitors
+ TrackedRace r1Fleet3 = new MockedTrackedRaceWithStartTimeAndRanks(now, competitors.subList(15, 21));
+ RaceColumn r1Column = firstSeries.getRaceColumnByName("Q1");
+ r1Column.setTrackedRace(r1Column.getFleetByName("Fleet1"), r1Fleet1);
+ r1Column.setTrackedRace(r1Column.getFleetByName("Fleet2"), r1Fleet2);
+ r1Column.setTrackedRace(r1Column.getFleetByName("Fleet3"), r1Fleet3);
+
+ // first fleet is complete
+ double[] expectedResultsFleet1 = { 8, 7, 6, 5, 4, 3, 2, 1 };
+ // second fleet has 1 missing boat
+ double diffX1 = 7.0 / 6.0;
+ double[] expectedResultsFleet2 = { 8, 8 - diffX1 * 1, 8 - diffX1 * 2, 8 - diffX1 * 3, 8 - diffX1 * 4, 8 - diffX1 * 5, 1 };
+ // third fleet has 2 missing boats
+ double diffX2 = 7.0 / 5.0;
+ double[] expectedResultsFleet3 = { 8, 8 - diffX2 * 1, 8 - diffX2 * 2, 8 - diffX2 * 3, 8 - diffX2 * 4, 1 };
+
+ List rankedCompetitorsFleet1 = r1Fleet1.getCompetitorsFromBestToWorst(later);
+ assertEquals(8, rankedCompetitorsFleet1.size());
+ for (int i = 0; i < expectedResultsFleet1.length; i++) {
+ assertTrue(rankedCompetitorsFleet1.get(i) == competitors.get(i));
+ assertEquals(expectedResultsFleet1[i], leaderboard.getTotalPoints(rankedCompetitorsFleet1.get(i), later), 0.000000001);
+ }
+
+ List rankedCompetitorsFleet2 = r1Fleet2.getCompetitorsFromBestToWorst(later);
+ assertEquals(7, rankedCompetitorsFleet2.size());
+ for (int i = 0; i < expectedResultsFleet2.length; i++) {
+ assertTrue(rankedCompetitorsFleet2.get(i) == competitors.get(8+i));
+ assertEquals(expectedResultsFleet2[i], leaderboard.getTotalPoints(rankedCompetitorsFleet2.get(i), later), 0.000000001);
+ }
+
+ List rankedCompetitorsFleet3 = r1Fleet3.getCompetitorsFromBestToWorst(later);
+ assertEquals(6, rankedCompetitorsFleet3.size());
+ for (int i = 0; i < expectedResultsFleet3.length; i++) {
+ assertTrue(rankedCompetitorsFleet3.get(i) == competitors.get(15+i));
+ assertEquals(expectedResultsFleet3[i], leaderboard.getTotalPoints(rankedCompetitorsFleet3.get(i), later), 0.000000001);
+ }
+
+ List allCompetitorsFromBestToWorst = leaderboard.getCompetitorsFromBestToWorst(later);
+ assertEquals(competitorsCount, allCompetitorsFromBestToWorst.size());
+ // check that the fleet winners have all 8 points
+ assertEquals(8.0, leaderboard.getTotalPoints(allCompetitorsFromBestToWorst.get(0), later), 0.000000001);
+ assertEquals(8.0, leaderboard.getTotalPoints(allCompetitorsFromBestToWorst.get(1), later), 0.000000001);
+ assertEquals(8.0, leaderboard.getTotalPoints(allCompetitorsFromBestToWorst.get(2), later), 0.000000001);
+ // check that the fleet looser have all 1 point
+
+ assertEquals(1.0, leaderboard.getTotalPoints(allCompetitorsFromBestToWorst.get(competitorsCount-1), later), 0.000000001);
+ assertEquals(1.0, leaderboard.getTotalPoints(allCompetitorsFromBestToWorst.get(competitorsCount-2), later), 0.000000001);
+ assertEquals(1.0, leaderboard.getTotalPoints(allCompetitorsFromBestToWorst.get(competitorsCount-3), later), 0.000000001);
+ }
@Test
public void testOverallLeaderboardWithESSHighPointScoringAndTieBreakInLastRegattaOfLeaderboardGroup() throws NoWindException {
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PolarSheetGenerationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PolarSheetGenerationTest.java
index 17d8541af65..8674732e8cc 100644
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PolarSheetGenerationTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PolarSheetGenerationTest.java
@@ -6,6 +6,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.NavigableSet;
+import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentSkipListSet;
import java.util.concurrent.Executor;
@@ -216,7 +217,7 @@ public class PolarSheetGenerationTest {
}
@Override
- public Wind getWind(Position p, TimePoint at, Iterable windSourcesToExclude) {
+ public Wind getWind(Position p, TimePoint at, Set windSourcesToExclude) {
return getWind(p, at);
}
@@ -229,7 +230,7 @@ public class PolarSheetGenerationTest {
@Override
public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at,
- Iterable windSourcesToExclude) {
+ Set windSourcesToExclude) {
return getWindWithConfidence(p, at);
}
@@ -263,8 +264,8 @@ public class PolarSheetGenerationTest {
}
@Override
- public Iterable getWindSources(WindSourceType type) {
- List sources = new ArrayList();
+ public Set getWindSources(WindSourceType type) {
+ Set sources = new HashSet<>();
sources.add(new WindSourceImpl(type));
return sources;
}
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UnmodifiableCollectionsEqualsHashCodeTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UnmodifiableCollectionsEqualsHashCodeTest.java
new file mode 100755
index 00000000000..cd80507dd29
--- /dev/null
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UnmodifiableCollectionsEqualsHashCodeTest.java
@@ -0,0 +1,58 @@
+package com.sap.sailing.domain.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.junit.Test;
+
+/**
+ * Demonstrates how unmodifiable collections' hashCode and equals is useless because it's based on identity and not on
+ * content.
+ *
+ * @author Axel Uhl (D043530)
+ *
+ */
+public class UnmodifiableCollectionsEqualsHashCodeTest {
+ @Test
+ public void testInequalityOfUnmodifiableCollection() {
+ List l1 = Arrays.asList(new String[] { "abc", "def" });
+ List l2 = new ArrayList<>(l1);
+ Iterable u1_1 = Collections.unmodifiableCollection(l1);
+ Iterable u1_2 = Collections.unmodifiableCollection(l1);
+ Iterable u2_1 = Collections.unmodifiableCollection(l2);
+ assertEquals(l1, l2);
+ assertFalse(u1_1.equals(u1_2));
+ assertFalse(u1_1.equals(u2_1));
+ }
+
+ @Test
+ public void testInequalityOfUnmodifiableList() {
+ List l1 = Arrays.asList(new String[] { "abc", "def" });
+ List l2 = new ArrayList<>(l1);
+ Iterable u1_1 = Collections.unmodifiableList(l1);
+ Iterable u1_2 = Collections.unmodifiableList(l1);
+ Iterable u2_1 = Collections.unmodifiableList(l2);
+ assertEquals(l1, l2);
+ assertEquals(u1_1, u1_2);
+ assertEquals(u1_1, u2_1);
+ }
+
+ @Test
+ public void testInequalityOfUnmodifiableSet() {
+ Set s1 = new HashSet<>(Arrays.asList(new String[] { "abc", "def" }));
+ Set s2 = new HashSet<>(s1);
+ Iterable u1_1 = Collections.unmodifiableSet(s1);
+ Iterable u1_2 = Collections.unmodifiableSet(s1);
+ Iterable u2_1 = Collections.unmodifiableSet(s2);
+ assertEquals(s1, s2);
+ assertEquals(u1_1, u1_2);
+ assertEquals(u1_1, u2_1);
+ }
+}
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationLockingUnderLoadTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationLockingUnderLoadTest.java
index ca20e1c9b7e..9cfd7aa2d50 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationLockingUnderLoadTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationLockingUnderLoadTest.java
@@ -136,7 +136,7 @@ public class WindEstimationLockingUnderLoadTest {
@Override
public void run() {
TimePoint now = MillisecondsTimePoint.now();
- for (int i = 0; i < 100000; i++) {
+ for (int i = 0; i < 10000; i++) {
final WindImpl wind = new WindImpl(new DegreePosition(49, 8), now, new KnotSpeedWithBearingImpl(
/* speedInKnots */12., new DegreeBearingImpl(47)));
addMeasuredWindFix(wind);
@@ -149,7 +149,7 @@ public class WindEstimationLockingUnderLoadTest {
@Override
public void run() {
TimePoint now = MillisecondsTimePoint.now();
- for (int i=0; i<100000; i++) {
+ for (int i=0; i<10000; i++) {
estimationTrack.getAveragedWind(/* position */ null, now);
now = now.plus(10); // the cache quantizes to a full second; so not all time points will automatically fetch uncached values
}
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationOnStoredTracksTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationOnStoredTracksTest.java
index 5adacc2dcd7..69aa7130da5 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationOnStoredTracksTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationOnStoredTracksTest.java
@@ -7,6 +7,7 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
import org.junit.Test;
@@ -15,6 +16,7 @@ import com.sap.sailing.domain.base.Mark;
import com.sap.sailing.domain.common.NoWindException;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.TimePoint;
+import com.sap.sailing.domain.common.WindSource;
import com.sap.sailing.domain.common.WindSourceType;
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
import com.sap.sailing.domain.common.impl.DegreePosition;
@@ -65,4 +67,17 @@ public class WindEstimationOnStoredTracksTest extends StoredTrackBasedTestWithTr
assertNotNull(estimatedWindDirection);
}
+ @Test
+ public void testWindSourcesAreEqualAcrossCalls() {
+ Set ws1 = getTrackedRace().getWindSources();
+ Set ws2 = getTrackedRace().getWindSources();
+ assertEquals(ws1, ws2);
+ }
+
+ @Test
+ public void testExcludedWindSourcesAreEqualAcrossCalls() {
+ Set ews1 = getTrackedRace().getWindSourcesToExclude();
+ Set ews2 = getTrackedRace().getWindSourcesToExclude();
+ assertEquals(ews1, ews2);
+ }
}
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
index 3b2f4ff13c8..8ae057dd296 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.NavigableSet;
+import java.util.Set;
import java.util.TreeSet;
import com.sap.sailing.domain.base.BoatClass;
@@ -611,24 +612,24 @@ public class MockedTrackedRace implements DynamicTrackedRace {
}
@Override
- public Wind getWind(Position p, TimePoint at, Iterable windSourcesToExclude) {
+ public Wind getWind(Position p, TimePoint at, Set windSourcesToExclude) {
// TODO Auto-generated method stub
return null;
}
@Override
- public Iterable getWindSources(WindSourceType type) {
- return Collections.emptyList();
+ public Set getWindSources(WindSourceType type) {
+ return Collections.emptySet();
}
@Override
- public Iterable getWindSources() {
- return Collections.emptyList();
+ public Set getWindSources() {
+ return Collections.emptySet();
}
@Override
public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at,
- Iterable windSourcesToExclude) {
+ Set windSourcesToExclude) {
// TODO Auto-generated method stub
return null;
}
@@ -646,7 +647,7 @@ public class MockedTrackedRace implements DynamicTrackedRace {
}
@Override
- public Iterable getWindSourcesToExclude() {
+ public Set getWindSourcesToExclude() {
// TODO Auto-generated method stub
return null;
}
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java
index 754a405f488..1d7db492958 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java
@@ -5,6 +5,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.NavigableSet;
+import java.util.Set;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.Leg;
@@ -226,19 +227,19 @@ public class MockedTrackedRaceWithStartTimeAndRanks implements TrackedRace {
}
@Override
- public Wind getWind(Position p, TimePoint at, Iterable windSourcesToExclude) {
+ public Wind getWind(Position p, TimePoint at, Set windSourcesToExclude) {
// TODO Auto-generated method stub
return null;
}
@Override
- public Iterable getWindSources(WindSourceType type) {
- return Collections.emptyList();
+ public Set getWindSources(WindSourceType type) {
+ return Collections.emptySet();
}
@Override
- public Iterable getWindSources() {
- return Collections.emptyList();
+ public Set getWindSources() {
+ return Collections.emptySet();
}
@Override
@@ -399,14 +400,14 @@ public class MockedTrackedRaceWithStartTimeAndRanks implements TrackedRace {
}
@Override
- public Iterable getWindSourcesToExclude() {
+ public Set getWindSourcesToExclude() {
// TODO Auto-generated method stub
return null;
}
@Override
public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at,
- Iterable