diff --git a/java/com.sap.sailing.domain.expeditionadapter/.classpath b/java/com.sap.sailing.domain.expeditionadapter/.classpath
new file mode 100755
index 00000000000..eca7bdba8f0
--- /dev/null
+++ b/java/com.sap.sailing.domain.expeditionadapter/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.domain.expeditionadapter/.project b/java/com.sap.sailing.domain.expeditionadapter/.project
new file mode 100755
index 00000000000..a413084a0cd
--- /dev/null
+++ b/java/com.sap.sailing.domain.expeditionadapter/.project
@@ -0,0 +1,28 @@
+
+
+ com.sap.sailing.domain.expeditionadapter
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.pde.ManifestBuilder
+
+
+
+
+ org.eclipse.pde.SchemaBuilder
+
+
+
+
+
+ org.eclipse.pde.PluginNature
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/java/com.sap.sailing.domain.expeditionadapter/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sailing.domain.expeditionadapter/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 00000000000..0c68a61dca8
--- /dev/null
+++ b/java/com.sap.sailing.domain.expeditionadapter/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+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.expeditionadapter/.settings/org.eclipse.pde.core.prefs b/java/com.sap.sailing.domain.expeditionadapter/.settings/org.eclipse.pde.core.prefs
new file mode 100755
index 00000000000..f29e940a005
--- /dev/null
+++ b/java/com.sap.sailing.domain.expeditionadapter/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/java/com.sap.sailing.domain.expeditionadapter/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.expeditionadapter/META-INF/MANIFEST.MF
new file mode 100755
index 00000000000..77d2b922597
--- /dev/null
+++ b/java/com.sap.sailing.domain.expeditionadapter/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Expeditionadapter
+Bundle-SymbolicName: com.sap.sailing.domain.expeditionadapter
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: SAP
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: org.osgi.framework
+Require-Bundle: com.sap.sailing.server.trackfiles,
+ com.sap.sailing.domain
+Bundle-Activator: com.sap.sailing.domain.expeditionadapter.impl.Activator
diff --git a/java/com.sap.sailing.domain.expeditionadapter/build.properties b/java/com.sap.sailing.domain.expeditionadapter/build.properties
new file mode 100755
index 00000000000..34d2e4d2dad
--- /dev/null
+++ b/java/com.sap.sailing.domain.expeditionadapter/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/java/com.sap.sailing.domain.expeditionadapter/src/com/sap/sailing/domain/expeditionadapter/impl/Activator.java b/java/com.sap.sailing.domain.expeditionadapter/src/com/sap/sailing/domain/expeditionadapter/impl/Activator.java
new file mode 100755
index 00000000000..a73939a8ac8
--- /dev/null
+++ b/java/com.sap.sailing.domain.expeditionadapter/src/com/sap/sailing/domain/expeditionadapter/impl/Activator.java
@@ -0,0 +1,17 @@
+package com.sap.sailing.domain.expeditionadapter.impl;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+import com.sap.sailing.server.trackfiles.common.GPSFixImporterRegistration;
+
+public class Activator implements BundleActivator {
+ @Override
+ public void start(BundleContext context) throws Exception {
+ GPSFixImporterRegistration.register(new ExpeditionGPSFixImporter(), context);
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ }
+}
diff --git a/java/com.sap.sailing.domain.expeditionadapter/src/com/sap/sailing/domain/expeditionadapter/impl/ExpeditionGPSFixImporter.java b/java/com.sap.sailing.domain.expeditionadapter/src/com/sap/sailing/domain/expeditionadapter/impl/ExpeditionGPSFixImporter.java
new file mode 100755
index 00000000000..dd60c2e3214
--- /dev/null
+++ b/java/com.sap.sailing.domain.expeditionadapter/src/com/sap/sailing/domain/expeditionadapter/impl/ExpeditionGPSFixImporter.java
@@ -0,0 +1,30 @@
+package com.sap.sailing.domain.expeditionadapter.impl;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+
+import com.sap.sailing.domain.trackimport.FormatNotSupportedException;
+import com.sap.sailing.domain.trackimport.GPSFixImporter;
+
+public class ExpeditionGPSFixImporter implements GPSFixImporter {
+
+ @Override
+ public void importFixes(InputStream inputStream, Callback callback, boolean inferSpeedAndBearing, String sourceName)
+ throws FormatNotSupportedException, IOException {
+ // TODO the following device identifier will be required for invoking the callback.addFix(...) method
+// TrackFileImportDeviceIdentifier device = new TrackFileImportDeviceIdentifierImpl(sourceName, getType() + "@" + new Date());
+ // TODO parse the input stream using the expeditionAdapter, producing GPSFixMoving objects to pass to the callback
+ }
+
+ @Override
+ public Iterable getSupportedFileExtensions() {
+ return Arrays.asList(new String[] { "csv", "log", "txt" });
+ }
+
+ @Override
+ public String getType() {
+ return "Expedition";
+ }
+
+}
diff --git a/java/com.sap.sailing.domain.expeditionadapter/src/com/sap/sailing/domain/expeditionadapter/impl/FieldType.java b/java/com.sap.sailing.domain.expeditionadapter/src/com/sap/sailing/domain/expeditionadapter/impl/FieldType.java
new file mode 100755
index 00000000000..4eb2a0b87ef
--- /dev/null
+++ b/java/com.sap.sailing.domain.expeditionadapter/src/com/sap/sailing/domain/expeditionadapter/impl/FieldType.java
@@ -0,0 +1,7 @@
+package com.sap.sailing.domain.expeditionadapter.impl;
+
+public enum FieldType {
+ date, race_name, leg_name, leg_score, boat_speed, heel, leeway, rudder, heading, course, depth,
+ tws, twa, twd, aws, awa, latitude, longitude, sog, cog, abstwa, absawa, absheel, absleeway, absrudder,
+ foresail, staysail, mainsail, forestay, rake, vmg, status, starboard_port, rudder2, keelang, absrudder2, abskeelang;
+}
diff --git a/java/com.sap.sailing.feature.p2build/raceanalysis.product b/java/com.sap.sailing.feature.p2build/raceanalysis.product
index 323a04edf26..3a90dec43c3 100755
--- a/java/com.sap.sailing.feature.p2build/raceanalysis.product
+++ b/java/com.sap.sailing.feature.p2build/raceanalysis.product
@@ -38,6 +38,7 @@
+
@@ -90,4 +91,11 @@
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.feature/feature.xml b/java/com.sap.sailing.feature/feature.xml
index 728e3f5ab9a..b5be4ddd98f 100755
--- a/java/com.sap.sailing.feature/feature.xml
+++ b/java/com.sap.sailing.feature/feature.xml
@@ -395,4 +395,11 @@ Computes leaderboard information for sailing races and offers RESTful APIs to al
version="0.0.0"
unpack="false"/>
+
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy OSX).launch b/java/com.sap.sailing.server/SailingServer (No Proxy OSX).launch
index f88e98a5dec..8771e6b1f8f 100644
--- a/java/com.sap.sailing.server/SailingServer (No Proxy OSX).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy OSX).launch
@@ -34,5 +34,5 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy).launch b/java/com.sap.sailing.server/SailingServer (No Proxy).launch
index 08dd1fe63e7..da61344abd7 100644
--- a/java/com.sap.sailing.server/SailingServer (No Proxy).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy).launch
@@ -36,5 +36,5 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Cached MTB).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Cached MTB).launch
index 51869c17f6a..996ee112361 100644
--- a/java/com.sap.sailing.server/SailingServer (No Proxy, Cached MTB).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Cached MTB).launch
@@ -33,5 +33,5 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch
index 966a9e45237..cb56815492e 100644
--- a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch
@@ -27,6 +27,6 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch
index b22e335cf3d..fcf81bc7c4b 100644
--- a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch
@@ -27,6 +27,6 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, auto-replicate dev).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, auto-replicate dev).launch
index 2ad6feccaba..3e811dc81f8 100644
--- a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, auto-replicate dev).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, auto-replicate dev).launch
@@ -27,6 +27,6 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, auto-replicate).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, auto-replicate).launch
index ad96b3d18e1..d69ce9d38ce 100644
--- a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, auto-replicate).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, auto-replicate).launch
@@ -29,6 +29,6 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8890).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8890).launch
index ccf672e9f3d..37a4121a046 100644
--- a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8890).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8890).launch
@@ -27,6 +27,6 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch
index 29b3a5bdec3..56e370c4f4f 100644
--- a/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch
@@ -27,5 +27,5 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, winddbTest).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, winddbTest).launch
index 6ed8b35b55e..1ea5c232ce9 100644
--- a/java/com.sap.sailing.server/SailingServer (No Proxy, winddbTest).launch
+++ b/java/com.sap.sailing.server/SailingServer (No Proxy, winddbTest).launch
@@ -33,5 +33,5 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (Proxy).launch b/java/com.sap.sailing.server/SailingServer (Proxy).launch
index 1d74ca7bea4..59a0a263fc6 100644
--- a/java/com.sap.sailing.server/SailingServer (Proxy).launch
+++ b/java/com.sap.sailing.server/SailingServer (Proxy).launch
@@ -36,6 +36,6 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889).launch b/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889).launch
index a8f36f33c71..1a59244df46 100644
--- a/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889).launch
+++ b/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889).launch
@@ -27,6 +27,6 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch b/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch
index fb905308c40..335860afdb5 100644
--- a/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch
+++ b/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch
@@ -27,5 +27,5 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch b/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch
index e494c8e6c9f..3b5a06c04dd 100644
--- a/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch
+++ b/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch
@@ -26,5 +26,5 @@
-
+
diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, winddbTest).launch b/java/com.sap.sailing.server/SailingServer (Proxy, winddbTest).launch
index 3fdeaffdfb8..2a1c758be20 100644
--- a/java/com.sap.sailing.server/SailingServer (Proxy, winddbTest).launch
+++ b/java/com.sap.sailing.server/SailingServer (Proxy, winddbTest).launch
@@ -28,6 +28,6 @@
-
+