diff --git a/configuration/buildAndUpdateProduct.sh b/configuration/buildAndUpdateProduct.sh index 7c83189a0c6..54bb59bdc36 100755 --- a/configuration/buildAndUpdateProduct.sh +++ b/configuration/buildAndUpdateProduct.sh @@ -265,7 +265,7 @@ if [[ "$@" == "release" ]]; then cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/jetty-deployer.xml configuration/jetty/etc cp -v $PROJECT_HOME/java/target/configuration/jetty/etc/realm.properties configuration/jetty/etc cp -v $PROJECT_HOME/java/target/configuration/monitoring.properties configuration/ - cp -v $PROJECT_HOME/java/target/configuration/security.properties configuration/ + cp -v $PROJECT_HOME/java/target/configuration/mail.properties configuration/ cp -v $PROJECT_HOME/configuration/mongodb.cfg $ACDIR/ cp -v $PROJECT_HOME/java/target/udpmirror $ACDIR/ cp -v $PROJECT_HOME/java/target/http2udpmirror $ACDIR @@ -772,7 +772,7 @@ if [[ "$@" == "install" ]] || [[ "$@" == "all" ]]; then if [ ! -f "$ACDIR/env.sh" ]; then cp -v $PROJECT_HOME/java/target/env.sh $ACDIR/ cp -v $PROJECT_HOME/java/target/configuration/monitoring.properties $ACDIR/configuration/ - cp -v $PROJECT_HOME/java/target/configuration/security.properties $ACDIR/configuration/ + cp -v $PROJECT_HOME/java/target/configuration/mail.properties $ACDIR/configuration/ cp -v $PROJECT_HOME/java/target/configuration/logging.properties $ACDIR/configuration/ fi @@ -853,7 +853,7 @@ if [[ "$@" == "remote-deploy" ]]; then $SCP_CMD $PROJECT_HOME/java/target/configuration/jetty/etc/jetty-deployer.xml $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/jetty/etc $SCP_CMD $PROJECT_HOME/java/target/configuration/jetty/etc/realm.properties $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/jetty/etc $SCP_CMD $PROJECT_HOME/java/target/configuration/monitoring.properties $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/ - $SCP_CMD $PROJECT_HOME/java/target/configuration/security.properties $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/ + $SCP_CMD $PROJECT_HOME/java/target/configuration/mail.properties $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/configuration/ $SCP_CMD $PROJECT_HOME/java/target/env.sh $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/ $SCP_CMD $PROJECT_HOME/java/target/start $REMOTE_SERVER_LOGIN:$REMOTE_SERVER/ diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/compass.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/compass.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/compass.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/compass.png diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/dashboardicon.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/dashboardicon.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/dashboardicon.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/dashboardicon.png diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/hourwatch.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/hourwatch.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/hourwatch.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/hourwatch.png diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/leftarrow.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/leftarrow.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/leftarrow.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/leftarrow.png diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/leftarrow_disabled.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/leftarrow_disabled.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/leftarrow_disabled.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/leftarrow_disabled.png diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/logo_sap.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/logo_sap.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/logo_sap.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/logo_sap.png diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/logoess.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/logoess.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/logoess.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/logoess.png diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/nointernet.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/nointernet.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/nointernet.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/nointernet.png diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/rightarrow.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/rightarrow.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/rightarrow.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/rightarrow.png diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/rightarrow_disabled.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/rightarrow_disabled.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/rightarrow_disabled.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/rightarrow_disabled.png diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/settings.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/settings.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/settings.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/settings.png diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/watch.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/watch.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/watch.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/watch.png diff --git a/java/com.sap.sailing.dashboards.gwt/src/main/resources/images/windarrow.png b/java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/windarrow.png similarity index 100% rename from java/com.sap.sailing.dashboards.gwt/src/main/resources/images/windarrow.png rename to java/com.sap.sailing.dashboards.gwt/src/main/resources/com/sap/sailing/dashboards/gwt/client/images/windarrow.png diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTO.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTO.java index 7691619ac39..e6e2d7c78ca 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTO.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTO.java @@ -22,6 +22,10 @@ public interface CompetitorDTO extends Serializable, MappableToDevice { String getName(); Color getColor(); + + String getEmail(); + + boolean hasEmail(); /** * A regular instance will simply return this object. A compacted version may compute the result by looking it up diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTOImpl.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTOImpl.java index 96d77c6614a..6c0cee85da9 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTOImpl.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTOImpl.java @@ -19,16 +19,18 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial private String twoLetterIsoCountryCode; private String threeLetterIocCountryCode; private Color color; + private String email; private String sailID; private String idAsString; private BoatClassDTO boatClass; public CompetitorDTOImpl() {} - public CompetitorDTOImpl(String name, Color color, String twoLetterIsoCountryCode, String threeLetterIocCountryCode, + public CompetitorDTOImpl(String name, Color color, String email, String twoLetterIsoCountryCode, String threeLetterIocCountryCode, String countryName, String sailID, String idAsString, BoatClassDTO boatClass) { super(name); this.color = color; + this.email = email; this.twoLetterIsoCountryCode = twoLetterIsoCountryCode; this.threeLetterIocCountryCode = threeLetterIocCountryCode; this.countryName = countryName; @@ -45,6 +47,7 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial result = prime * result + ((idAsString == null) ? 0 : idAsString.hashCode()); result = prime * result + ((sailID == null) ? 0 : sailID.hashCode()); result = prime * result + ((color == null) ? 0 : color.hashCode()); + result = prime * result + ((email == null) ? 0 : email.hashCode()); result = prime * result + ((threeLetterIocCountryCode == null) ? 0 : threeLetterIocCountryCode.hashCode()); return result; } @@ -83,6 +86,11 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial return false; } else if (!color.equals(other.color)) return false; + if (email == null) { + if (other.email != null) + return false; + } else if (!email.equals(other.email)) + return false; return true; } @@ -124,4 +132,17 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial public Color getColor() { return color; } + + public String getEmail() { + return email; + } + + public String email(){ + return email; + } + + @Override + public boolean hasEmail() { + return email != null && !email.isEmpty(); + } } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PreviousCompetitorDTOImpl.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PreviousCompetitorDTOImpl.java index 0cee29c1a92..77ae9538d86 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PreviousCompetitorDTOImpl.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PreviousCompetitorDTOImpl.java @@ -92,9 +92,20 @@ public class PreviousCompetitorDTOImpl implements CompetitorDTO { throw new RuntimeException("Internal error. Objects of type "+PreviousCompetitorDTOImpl.class.getName()+ " need to be replaced by an object of "+CompetitorDTOImpl.class.getName()+" after deserialization"); } + + @Override + public String getEmail() { + throw new RuntimeException("Internal error. Objects of type "+PreviousCompetitorDTOImpl.class.getName()+ + " need to be replaced by an object of "+CompetitorDTOImpl.class.getName()+" after deserialization"); + } @Override public CompetitorDTO getCompetitorFromPrevious(LeaderboardDTO previousVersion) { return previousVersion.competitors.get(indexInPreviousCompetitorList); } + + @Override + public boolean hasEmail() { + return false; + } } \ No newline at end of file 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 index affb0ce5572..5e468744ffb 100644 --- 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 @@ -1,5 +1,8 @@ package com.sap.sailing.domain.common.racelog.tracking; +import com.sap.sailing.domain.common.racelog.RaceLogServletConstants; +import com.sap.sse.common.util.UrlHelper; + /** * 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 of either the race or leaderboard/regatta. @@ -13,28 +16,50 @@ package com.sap.sailing.domain.common.racelog.tracking; * * @author Fredrik Teschke */ -public interface DeviceMappingConstants { +public class DeviceMappingConstants { // According to the HTTP protocol definition (http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.2.3), only // schema and host are case insensitive. // But to adhere to best practices, and due to the deficiencies of some web servers and clients, // all URL components should be treated as case insensitive, preferring _underscores_ to CamelCase. - static final String URL_BASE = "/tracking/checkin"; - static final String URL_EVENT_ID = "event_id"; - static final String URL_LEADERBOARD_NAME = "leaderboard_name"; - static final String URL_COMPETITOR_ID_AS_STRING = "competitor_id"; - static final String URL_MARK_ID_AS_STRING = "mark_id"; - static final String URL_FROM_MILLIS = "from_millis"; - static final String URL_TO_MILLIS = "to_millis"; + public static final String URL_BASE = "/tracking/checkin"; + public static final String URL_EVENT_ID = "event_id"; + public static final String URL_LEADERBOARD_NAME = "leaderboard_name"; + public static final String URL_COMPETITOR_ID_AS_STRING = "competitor_id"; + public static final String URL_MARK_ID_AS_STRING = "mark_id"; + public static final String URL_FROM_MILLIS = "from_millis"; + public static final String URL_TO_MILLIS = "to_millis"; - static final String JSON_COMPETITOR_ID_AS_STRING = "competitorId"; - static final String JSON_MARK_ID_AS_STRING = "markId"; - static final String JSON_DEVICE_UUID = "deviceUuid"; - static final String JSON_DEVICE_TYPE = "deviceType"; - static final String JSON_PUSH_DEVICE_ID = "pushDeviceId"; - static final String JSON_FROM_MILLIS = "fromMillis"; - static final String JSON_TO_MILLIS = "toMillis"; - static final String JSON_TEAM_IMAGE_URI = "teamImageUri"; + public static final String JSON_COMPETITOR_ID_AS_STRING = "competitorId"; + public static final String JSON_MARK_ID_AS_STRING = "markId"; + public static final String JSON_DEVICE_UUID = "deviceUuid"; + public static final String JSON_DEVICE_TYPE = "deviceType"; + public static final String JSON_PUSH_DEVICE_ID = "pushDeviceId"; + public static final String JSON_FROM_MILLIS = "fromMillis"; + public static final String JSON_TO_MILLIS = "toMillis"; + public static final String JSON_TEAM_IMAGE_URI = "teamImageUri"; @Deprecated static final String APK_PATH = "/apps/com.sap.sailing.android.tracking.app.apk"; + + public static String getDeviceMappingForRegattaLogUrl(String serverUrlWithoutTrailingSlash, String eventId, + String leaderboardName, String mappedItemType, String mappedItemId, UrlHelper helper) { + return helper.encodeUrl(serverUrlWithoutTrailingSlash + URL_BASE + "?" + URL_EVENT_ID + "=" + eventId + "&" + + URL_LEADERBOARD_NAME + "=" + leaderboardName + "&" + mappedItemType + "=" + + mappedItemId); + } + + @Deprecated + public static String getDeviceMappingForRaceLogUrl(String serverUrlWithoutTrailingSlash, String leaderboardName, + String raceColumnName, String fleetName, String mappedItemType, String mappedItemId, long fromMillis, + long toMillis, UrlHelper helper) throws QRCodeURLCreationException { + if (fromMillis > toMillis) { + throw new QRCodeURLCreationException("from can't lie after to"); + } + return helper.encodeUrl(serverUrlWithoutTrailingSlash + DeviceMappingConstants.APK_PATH + "?" + + RaceLogServletConstants.PARAMS_LEADERBOARD_NAME + "=" + leaderboardName + "&" + + RaceLogServletConstants.PARAMS_RACE_COLUMN_NAME + "=" + raceColumnName + "&" + + RaceLogServletConstants.PARAMS_RACE_FLEET_NAME + "=" + fleetName + "&" + mappedItemType + "=" + + mappedItemId + "&" + DeviceMappingConstants.URL_FROM_MILLIS + "=" + fromMillis + "&" + + DeviceMappingConstants.URL_TO_MILLIS + "=" + toMillis); + } } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/racelog/tracking/QRCodeURLCreationException.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/racelog/tracking/QRCodeURLCreationException.java new file mode 100644 index 00000000000..aa2e0847644 --- /dev/null +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/racelog/tracking/QRCodeURLCreationException.java @@ -0,0 +1,9 @@ +package com.sap.sailing.domain.common.racelog.tracking; + +public class QRCodeURLCreationException extends Exception { + private static final long serialVersionUID = -8243995470804772458L; + + public QRCodeURLCreationException(String message) { + super(message); + } +} diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java index e15e16f2a28..e6cb2e8c28c 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java @@ -40,7 +40,7 @@ public class AbstractGPSFixStoreTest { protected final DeviceIdentifier device = new SmartphoneImeiIdentifier("a"); protected RaceLog raceLog; protected GPSFixStore store; - protected final Competitor comp = DomainFactory.INSTANCE.getOrCreateCompetitor("comp", "comp", null, null, null); + protected final Competitor comp = DomainFactory.INSTANCE.getOrCreateCompetitor("comp", "comp", null, null, null, null); protected final Mark mark = DomainFactory.INSTANCE.getOrCreateMark("mark"); private final AbstractLogEventAuthor author = new LogEventAuthorImpl("author", 0); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java index bff12901d90..f124610bc27 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java @@ -168,7 +168,7 @@ public class CreateAndTrackWithRaceLogTest { assertFalse(raceLog.isEmpty()); // add a mapping and one fix in, one out of mapping - Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", null, null, null); + Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", null, null, null, null); DeviceIdentifier dev1 = new SmartphoneImeiIdentifier("dev1"); raceLog.add(factory.createDeviceCompetitorMappingEvent(t(), author, dev1, comp1, 0, t(0), t(10))); addFixes0(dev1); @@ -202,7 +202,7 @@ public class CreateAndTrackWithRaceLogTest { adapter.denoteRaceForRaceLogTracking(service, leaderboard, column, fleet, "race"); // add a mapping and one fix in, one out of mapping - Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", null, null, null); + Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", null, null, null, null); DeviceIdentifier dev1 = new SmartphoneImeiIdentifier("dev1"); regattaLog.add(new RegattaLogDeviceCompetitorMappingEventImpl(t(), author, t(), UUID.randomUUID(), comp1, dev1, t(0), t(10))); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java index 0647e02d62a..e4c276dd8ce 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java @@ -49,7 +49,7 @@ public class TrackedRaceLoadsFixesTest extends AbstractGPSFixStoreTest { @Test public void areFixesStoredInDb() throws TransformationException, NoCorrespondingServiceRegisteredException, InterruptedException { - Competitor comp2 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp2", "comp2", null, null, null); + Competitor comp2 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp2", "comp2", null, null, null, null); Mark mark2 = DomainFactory.INSTANCE.getOrCreateMark("mark2"); DeviceIdentifier device2 = new SmartphoneImeiIdentifier("imei2"); DeviceIdentifier device3 = new SmartphoneImeiIdentifier("imei3"); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/.classpath b/java/com.sap.sailing.domain.racelogtrackingadapter/.classpath index 4f83b2397ec..03c4ce9fdd8 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/.classpath +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/.classpath @@ -2,6 +2,7 @@ + diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/.settings/org.eclipse.core.resources.prefs b/java/com.sap.sailing.domain.racelogtrackingadapter/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..1b6fd8593f0 --- /dev/null +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//resources/stringmessages/TrackingStringMessages_de.properties=UTF-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 b16960adcc4..5133df9643f 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/META-INF/MANIFEST.MF @@ -17,8 +17,13 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sse.common, com.sap.sse.replication, com.sap.sse, - com.sap.sailing.server.gateway.serialization.shared.android -Import-Package: com.mongodb, + com.sap.sailing.server.gateway.serialization.shared.android, + com.sap.sse.mail +Import-Package: com.google.zxing;version="3.1.0", + com.mongodb, + javax.mail;version="1.4.0", + javax.mail.internet;version="1.4.0", + javax.mail.util;version="1.4.0", javax.servlet;version="2.6.0", org.json.simple, org.json.simple.parser, diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/build.properties b/java/com.sap.sailing.domain.racelogtrackingadapter/build.properties index 34d2e4d2dad..f11210d3f2c 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/build.properties +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/build.properties @@ -1,4 +1,5 @@ -source.. = src/ +source.. = src/,\ + resources/ output.. = bin/ bin.includes = META-INF/,\ . diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/resources/stringmessages/TrackingStringMessages_de.properties b/java/com.sap.sailing.domain.racelogtrackingadapter/resources/stringmessages/TrackingStringMessages_de.properties new file mode 100644 index 00000000000..21a7ad3191e --- /dev/null +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/resources/stringmessages/TrackingStringMessages_de.properties @@ -0,0 +1,4 @@ +trackingInvitationFor=Einladung zum Tracken für +scanQRCodeOrVisitUrlToRegisterAs=Scanne den QRCode oder klicke den Link mit deinem Smartphone an um dich zu registrieren als +welcomeTo=Willkommen zu +alternativelyVisitThisLink=Alternativ kannst du diesen Link anklicken \ No newline at end of file diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/resources/stringmessages/TrackingStringMessages_en.properties b/java/com.sap.sailing.domain.racelogtrackingadapter/resources/stringmessages/TrackingStringMessages_en.properties new file mode 100644 index 00000000000..4edebbdcda5 --- /dev/null +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/resources/stringmessages/TrackingStringMessages_en.properties @@ -0,0 +1,4 @@ +trackingInvitationFor=Tracking Invitation for +scanQRCodeOrVisitUrlToRegisterAs=Scan the following QRCode or click the link using your smartphone to register as +welcomeTo=Welcome to +alternativelyVisitThisLink=Alternatively, you can click this Link \ No newline at end of file diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/RaceLogTrackingAdapter.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/RaceLogTrackingAdapter.java index 56b300f4aca..b6efc960f89 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/RaceLogTrackingAdapter.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/RaceLogTrackingAdapter.java @@ -1,5 +1,6 @@ package com.sap.sailing.domain.racelogtracking; +import java.util.Locale; import java.util.Set; import com.sap.sailing.domain.abstractlog.race.RaceLog; @@ -10,6 +11,7 @@ import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogStartTrackingEven import com.sap.sailing.domain.abstractlog.regatta.RegattaLog; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.ControlPoint; +import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceColumn; @@ -24,12 +26,14 @@ import com.sap.sailing.domain.racelogtracking.impl.RaceLogRaceTracker; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.server.RacingEventService; +import com.sap.sse.common.mail.MailException; -public interface RaceLogTrackingAdapter { +public interface RaceLogTrackingAdapter { /** - * Performs the necessary steps to ensure that the race is tracked (aka that a {@link TrackedRace} - * is created from the data in this {@code RaceLog}).

- * The following steps are performed to achieve this: + * Performs the necessary steps to ensure that the race is tracked (aka that a {@link TrackedRace} is created from + * the data in this {@code RaceLog}). + *

+ * The following steps are performed to achieve this: *