From 576eeb36aa9154d6b148a72ed7d2fc3d146b801c Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 18 Oct 2023 11:04:13 +0200 Subject: [PATCH 01/34] bug5895: comments; fixed SDM debug config regarding browser config order --- .../Debug AdminConsole.launch | 2 +- .../ui/adminconsole/DiscardThresholdBoxes.java | 2 -- .../charts/AbstractCompetitorRaceChart.java | 15 ++++++++------- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/Debug AdminConsole.launch b/java/com.sap.sailing.gwt.ui/Debug AdminConsole.launch index 8602eefeaf2..da59f92d021 100755 --- a/java/com.sap.sailing.gwt.ui/Debug AdminConsole.launch +++ b/java/com.sap.sailing.gwt.ui/Debug AdminConsole.launch @@ -2,7 +2,7 @@ - + diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DiscardThresholdBoxes.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DiscardThresholdBoxes.java index d1c393ccde5..4c59ef11279 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DiscardThresholdBoxes.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DiscardThresholdBoxes.java @@ -16,8 +16,6 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog; * this class offers the UI components and validation rules that help in composing a UI that, among other things, allows a user * to configure the discarding thresholds.

* - * TODO produce error messages during validation - * * @author Axel Uhl (d043530) * */ diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java index 9f5b9a1911b..d70dfec6522 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java @@ -371,14 +371,15 @@ public abstract class AbstractCompetitorRaceChart Date: Thu, 19 Oct 2023 09:53:42 +0200 Subject: [PATCH 02/34] avoid NPE in Subscription data mining --- .../datamining/data/impl/SubscriptionWithContext.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/java/com.sap.sse.security.datamining/src/com/sap/sse/security/datamining/data/impl/SubscriptionWithContext.java b/java/com.sap.sse.security.datamining/src/com/sap/sse/security/datamining/data/impl/SubscriptionWithContext.java index 3a63e7577b8..cbb92589a03 100644 --- a/java/com.sap.sse.security.datamining/src/com/sap/sse/security/datamining/data/impl/SubscriptionWithContext.java +++ b/java/com.sap.sse.security.datamining/src/com/sap/sse/security/datamining/data/impl/SubscriptionWithContext.java @@ -2,6 +2,7 @@ package com.sap.sse.security.datamining.data.impl; import com.sap.sse.common.Duration; import com.sap.sse.common.TimePoint; +import com.sap.sse.common.Util; import com.sap.sse.security.datamining.data.HasSubscriptionContext; import com.sap.sse.security.datamining.data.HasUserContext; import com.sap.sse.security.shared.subscription.Subscription; @@ -22,7 +23,7 @@ public class SubscriptionWithContext implements HasSubscriptionContext { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((subscription == null) ? 0 : subscription.getSubscriptionId().hashCode()); + result = prime * result + ((subscription == null) ? 0 : subscription.getSubscriptionId() == null ? 0 : subscription.getSubscriptionId().hashCode()); return result; } @@ -38,7 +39,7 @@ public class SubscriptionWithContext implements HasSubscriptionContext { if (subscription == null) { if (other.subscription != null) return false; - } else if (!subscription.getSubscriptionId().equals(other.subscription.getSubscriptionId())) + } else if (!Util.equalsWithNull(subscription.getSubscriptionId(), other.subscription.getSubscriptionId())) return false; return true; } From 0c4d3df94b186cbd13638f1b6fa9698f029ee218 Mon Sep 17 00:00:00 2001 From: Thomas Stokes Date: Thu, 19 Oct 2023 10:30:05 +0200 Subject: [PATCH 03/34] Switch the method called for the StringMessage --- .../sap/sailing/gwt/ui/adminconsole/DiscardThresholdBoxes.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DiscardThresholdBoxes.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DiscardThresholdBoxes.java index d1c393ccde5..7e022aea7c3 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DiscardThresholdBoxes.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DiscardThresholdBoxes.java @@ -82,7 +82,7 @@ public class DiscardThresholdBoxes { private Widget createDiscardThresholdBoxesPanel(StringMessages stringMessages) { assert discardThresholdBoxes != null && discardThresholdBoxes.length == MAX_NUMBER_OF_DISCARDED_RESULTS; final VerticalPanel vp = new VerticalPanel(); - vp.add(new Label(stringMessages.discardRacesFromHowManyStartedRacesOn())); + vp.add(new Label(stringMessages.applyDiscardsBasedOnNumberOfScoredRaces(MAX_NUMBER_OF_DISCARDED_RESULTS))); final Grid grid = new Grid(0, 2*NUMBER_OF_BOXES_PER_LINE); grid.setCellSpacing(3); vp.add(grid); From c65b05c885d6459fa2325acb03a3d3a8f8ca1af2 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 19 Oct 2023 13:15:38 +0200 Subject: [PATCH 04/34] bug5895: remembering the oldest time stamp of the newest chart data point of each competitor; Use this to update the chart whenever the request time point is later than that. --- .../resources/SailingAnalyticsNotes.html | 4 +++ .../charts/AbstractCompetitorRaceChart.java | 32 ++++++++----------- .../gwt/ui/shared/CompetitorsRaceDataDTO.java | 7 ++-- 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html index 5f1ac952dcb..5208abd2221 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html @@ -4,6 +4,10 @@

What's New - SAP Sailing Analytics

+
October 2023
+
    +
  • Competitor charts sometimes wouldn't update properly in live mode. This has now been fixed.
  • +
September 2023
  • Added statistics for maneuvers to Data Mining module to match capabilities of diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java index d70dfec6522..3d664b5fc45 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java @@ -399,16 +399,16 @@ public abstract class AbstractCompetitorRaceChart competitorsToLoad = new ArrayList<>(); + final ArrayList competitorsToLoad = new ArrayList<>(); competitorsToLoad.add(competitor); final TimeRange timeRangeToLoadForFirstMetric = TimeRange.create( - TimePoint.of(primary.timeOfEarliestRequestInMillis), - TimePoint.of(primary.timeOfLatestRequestInMillis)); + TimePoint.of(primary.timeOfEarliestRequestInMillis == null ? timeRangeWithZoomProvider.getFromTime() == null ? null : timeRangeWithZoomProvider.getFromTime().getTime() : primary.timeOfEarliestRequestInMillis), + TimePoint.of(primary.timeOfLatestRequestInMillis == null ? timeRangeWithZoomProvider.getToTime() == null ? null : timeRangeWithZoomProvider.getToTime().getTime() : primary.timeOfLatestRequestInMillis)); final TimeRange timeRangeToLoad; if (getSelectedSecondDetailType() != null) { final TimeRange timeRangeToLoadForSecondMetric = TimeRange.create( - TimePoint.of(secondary.timeOfEarliestRequestInMillis), - TimePoint.of(secondary.timeOfLatestRequestInMillis)); + TimePoint.of(secondary.timeOfEarliestRequestInMillis == null ? timeRangeWithZoomProvider.getFromTime() == null ? null : timeRangeWithZoomProvider.getFromTime().getTime() : secondary.timeOfEarliestRequestInMillis), + TimePoint.of(secondary.timeOfLatestRequestInMillis == null ? timeRangeWithZoomProvider.getToTime() == null ? null : timeRangeWithZoomProvider.getToTime().getTime() : secondary.timeOfLatestRequestInMillis)); timeRangeToLoad = timeRangeToLoadForFirstMetric.extend(timeRangeToLoadForSecondMetric); } else { timeRangeToLoad = timeRangeToLoadForFirstMetric; @@ -519,8 +519,10 @@ public abstract class AbstractCompetitorRaceChart chartData.getRequestedFromTime().getTime()) { tholder.timeOfEarliestRequestInMillis = chartData.getRequestedFromTime().getTime(); } - if (tholder.timeOfLatestRequestInMillis == null || tholder.timeOfLatestRequestInMillis < chartData.getRequestedToTime().getTime()) { - tholder.timeOfLatestRequestInMillis = chartData.getRequestedToTime().getTime(); + // FIXME bug5895: storing particularly the requestedToTime without knowing whether data up to there was delivered at all makes no sense + final Date oldestDateOfNewestData = chartData.getOldestDateOfNewestData(); + if (tholder.timeOfLatestRequestInMillis == null || (oldestDateOfNewestData != null && tholder.timeOfLatestRequestInMillis < oldestDateOfNewestData.getTime())) { + tholder.timeOfLatestRequestInMillis = oldestDateOfNewestData == null ? null : oldestDateOfNewestData.getTime(); } chart.redraw(); } @@ -534,8 +536,6 @@ public abstract class AbstractCompetitorRaceChart primary.timeOfLatestRequestInMillis) { - updateChart(new Date(primary.timeOfLatestRequestInMillis), timeRangeWithZoomProvider.getToTime(), /* append */true); + updateChart(new Date(primary.timeOfLatestRequestInMillis), timeRangeWithZoomProvider.getToTime(), /* append */ true); } // otherwise the cache spans across date and so we don't need to load anything break; @@ -861,13 +857,13 @@ public abstract class AbstractCompetitorRaceChart primary.timeOfLatestRequestInMillis) { - updateChart(new Date(primary.timeOfLatestRequestInMillis), timeRangeWithZoomProvider.getToTime(), /* append */true); + updateChart(new Date(primary.timeOfLatestRequestInMillis), timeRangeWithZoomProvider.getToTime(), /* append */ true); } } break; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorsRaceDataDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorsRaceDataDTO.java index c7e84c590b0..c755de1fc8c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorsRaceDataDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorsRaceDataDTO.java @@ -21,10 +21,7 @@ public class CompetitorsRaceDataDTO implements IsSerializable { CompetitorsRaceDataDTO() {} public CompetitorsRaceDataDTO(DetailType detailType, Date requestedFromTime, Date requestedToTime) { - this.detailType = detailType; - this.requestedFromTime = requestedFromTime; - this.requestedToTime = requestedToTime; - this.competitorsData = new HashMap<>(); + this(detailType, requestedFromTime, requestedToTime, new HashMap<>()); } public CompetitorsRaceDataDTO(DetailType detailType, Date requestedFromTime, Date requestedToTime, @@ -106,7 +103,7 @@ public class CompetitorsRaceDataDTO implements IsSerializable { public Date getOldestDateOfNewestData() { Date dateOfNewestData = null; for (CompetitorRaceDataDTO competitorRaceData : competitorsData.values()) { - Date raceDateOfNewestData = competitorRaceData.getDateOfNewestData(); + final Date raceDateOfNewestData = competitorRaceData.getDateOfNewestData(); if (dateOfNewestData == null) { dateOfNewestData = raceDateOfNewestData; } else { From bcef2cf4eba851b476088dcbe087b52515ad07d7 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 19 Oct 2023 14:34:34 +0200 Subject: [PATCH 05/34] fixed onboarding entry regarding Eclipse plugin installation override --- wiki/howto/onboarding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki/howto/onboarding.md b/wiki/howto/onboarding.md index 6cc0a416cb0..efc0ffb54e9 100644 --- a/wiki/howto/onboarding.md +++ b/wiki/howto/onboarding.md @@ -92,7 +92,7 @@ Copy the settings.xml (may be in $GIT_HOME/configuration/maven-settings.xml and ### Automatic Eclipse plugin installation The necessary Eclipse plugins can be automatically installed into a newly unzipped version of ["2023-09"](https://www.eclipse.org/downloads/packages/release/2023-09/r/eclipse-ide-eclipse-committers) by using the `./configuration/pluginsForEclipse2023-09.p2f` file, found in the git repository cloned in _step 11_. To install the plugins open Eclipse and install Software Items from File. (File ⇒ Import ⇒ Install ⇒ Install Software from File). The description file is located at `/configuration/pluginsForEclipse2023-09.p2f`. -Make sure to select all Plugins (it might not be possible to select Lucene ignore that) and click next. In the pop-up dialog shown next, leave the top radio button selected ("Keep my installation the same and modify the items being installed to be compatible"). Skip the `Installation details`, accept the licence agreements and click finish. While Eclipse is installing the plugins a pop-up will appear in the background where you need to trust all plugins. Be aware that the installation may take several minutes depending on your Internet connection. +Make sure to select all Plugins (it might not be possible to select Lucene ignore that) and click next. In the pop-up dialog shown next, select the top radio button ("Update my installation to be compatible with the items being installed"). Skip the `Installation details`, accept the licence agreements and click finish. While Eclipse is installing the plugins a pop-up will appear in the background where you need to trust all plugins. Be aware that the installation may take several minutes depending on your Internet connection. Be also aware that with this p2f-file it's not possible to update the plugins to newer versions. From 9ec2adb4ee22f1523be81f9e3f8eadb32518560d Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 19 Oct 2023 14:44:25 +0200 Subject: [PATCH 06/34] code formatting --- .../sailing/datamining/impl/data/TrackedRaceWithContext.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/TrackedRaceWithContext.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/TrackedRaceWithContext.java index d9e182538fb..ca8e35039ca 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/TrackedRaceWithContext.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/TrackedRaceWithContext.java @@ -460,9 +460,8 @@ public class TrackedRaceWithContext implements HasTrackedRaceContext { if (timePoint != null) { final Position courseCenter = getTrackedRace().getCenterOfCourse(timePoint); if (courseCenter != null) { - TimeZone timeZone; try { - timeZone = ReverseGeocoder.INSTANCE.getTimeZone(courseCenter, timePoint); + final TimeZone timeZone = ReverseGeocoder.INSTANCE.getTimeZone(courseCenter, timePoint); final DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); df.setTimeZone(timeZone); cachedDayAsISO = df.format(timePoint.asDate()); From abc6350f4a9820a3cfb9f1ef87da237181e1da21 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 20 Oct 2023 10:04:17 +0200 Subject: [PATCH 07/34] remove DOCTYPE from wiki/.project --- wiki/.project | 1 - 1 file changed, 1 deletion(-) diff --git a/wiki/.project b/wiki/.project index f8e3f1d7eb3..788a2015e18 100644 --- a/wiki/.project +++ b/wiki/.project @@ -1,5 +1,4 @@ - wiki From 722e38428b0c580880e450eef6ca07cc91626daf Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 20 Oct 2023 10:07:59 +0200 Subject: [PATCH 08/34] wiki: updated EC2 image creation to use Mongo 4.4 --- wiki/info/landscape/creating-ec2-image-from-scratch.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wiki/info/landscape/creating-ec2-image-from-scratch.md b/wiki/info/landscape/creating-ec2-image-from-scratch.md index bc60ad5f186..e0b9ba900fe 100644 --- a/wiki/info/landscape/creating-ec2-image-from-scratch.md +++ b/wiki/info/landscape/creating-ec2-image-from-scratch.md @@ -35,13 +35,13 @@ In order to be able to connect to AWS DocumentDB instances, the corresponding ce A latest MongoDB shell is installed by the following: ``` -cat << EOF >/etc/yum.repos.d/mongodb-org.3.6.repo -[mongodb-org-3.6] +cat << EOF >/etc/yum.repos.d/mongodb-org.4.4.repo +[mongodb-org-4.4] name=MongoDB Repository -baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.6/x86_64/ +baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 -gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc +gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc EOF yum update From fdfe4dd2868e49ac38b0b99a80c4af322b882cec Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 20 Oct 2023 10:08:15 +0200 Subject: [PATCH 09/34] wiki: removed BUP as backup tool from the EC2 webserver image creation process --- ...ng-ec2-image-for-webserver-from-scratch.md | 68 ------------------- 1 file changed, 68 deletions(-) diff --git a/wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch.md b/wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch.md index 501d4c7639c..c527dd01e7a 100644 --- a/wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch.md +++ b/wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch.md @@ -99,74 +99,6 @@ su -l -c '/usr/share/awstats/tools/awstats_updateall.pl now -configdir=" exit 0 ``` * Follow the [mail setup](https://wiki.sapsailing.com/wiki/info/landscape/mail-relaying#setup-central-mail-server-instance-webserver) instructions -* Install the backup.sh script with the following contents: -``` -#!/bin/sh - -# This is a template for creating backup of data and persist them -# to a central backup server. Make sure to adapt this script to your needs. -# -# Maintainer: simon.marcel.pamies@sap.com - -export HOME=/root - -# Directories to backup -BACKUP_DIRECTORIES="/etc /home/trac/git /home/trac/mailinglists /home/trac/maven-repositories /home/trac/p2-repositories /home/trac/releases /home/trac/sapsailing_layouts.git /var/www/static /home/trac/crontab /home/scores /var/log/old" - -# Prefix for backup - set that to the hostname of your server -# Make sure to change this! -PREFIX="webserver" - -# Directory for temporary files -TARGET_DIR=/tmp - -# Configuration for external backup server - needs a ssh key -BACKUP_SERVER="backup@172.31.25.136" - -# Set date for this backup - this makes it possible to compare -# files from different branches -BACKUP_DATE=`date +%s` - -# Aliases -BUP_CMD="/opt/bup/bup" -BUP_ADDITIONAL="-r $BACKUP_SERVER:/home/backup/$PREFIX" -BUP_IGNORES='--exclude-rx=/war/$ --exclude-rx=/cache/unique-ips-per-referrer/stats/' -BUP_CMD_INDEX="$BUP_CMD index $BUP_IGNORES" -BUP_CMD_SAVE="$BUP_CMD save --date=$BACKUP_DATE $BUP_ADDITIONAL" - -PARAM=$@ - -# Make sure to init remote repository -$BUP_CMD init -ssh $BACKUP_SERVER "/opt/bup/bup init -r /home/backup/$PREFIX" - -# Backup general directories -for OTHER_DIR in $BACKUP_DIRECTORIES; do - NORMALIZED_DIR_NAME=${OTHER_DIR//\//-} - $BUP_CMD_INDEX $OTHER_DIR - $BUP_CMD_SAVE -n dir$NORMALIZED_DIR_NAME $OTHER_DIR - # no need to remove any backup files here -done -``` -* Register the backup script as a cron job by establishing the following `/etc/crontab` file: -``` -SHELL=/bin/bash -PATH=/sbin:/bin:/usr/sbin:/usr/bin -MAILTO=simon.marcel.pamies@sap.com -HOME=/ - -# For details see man 4 crontabs - -# Example of job definition: -# .---------------- minute (0 - 59) -# | .------------- hour (0 - 23) -# | | .---------- day of month (1 - 31) -# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... -# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat -# | | | | | -# * * * * * user-name command to be executed -0 22 * * * root /opt/backup.sh -``` * Install Wordpress * Install gollum Wiki * Copy git contents of ssh://trac@sapsailing.com/home/trac/git to /home/trac/git From 166f4cdc3a59e3c241c055225bfe3a37cb5779c6 Mon Sep 17 00:00:00 2001 From: EC2 Server Date: Fri, 20 Oct 2023 09:28:42 +0000 Subject: [PATCH 10/34] my-event mail notification and docker registry are only needed on web server --- configuration/crontab | 2 -- 1 file changed, 2 deletions(-) diff --git a/configuration/crontab b/configuration/crontab index 917d2f7033e..74609610f5e 100644 --- a/configuration/crontab +++ b/configuration/crontab @@ -1,3 +1 @@ -0 10 1 * * export PATH=/bin:/usr/bin:/usr/local/bin; mail-events-on-my >/dev/null 2>/dev/null * * * * * export PATH=/bin:/usr/bin:/usr/local/bin; sleep $(( $RANDOM * 60 / 32768 )); update_authorized_keys_for_landscape_managers_if_changed $( cat /root/ssh-key-reader.token ) https://security-service.sapsailing.com /root 2>&1 >>/var/log/sailing.err -0 7 2 * * export PATH=/bin:/usr/bin:/usr/local/bin; docker exec -it registry-registry-1 registry garbage-collect /etc/docker/registry/config.yml From eb38d4254b26efcb1275e3a3a697d5e4e0e3f0cd Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 20 Oct 2023 12:57:42 +0200 Subject: [PATCH 11/34] bug5912: updated Wiki explanations for setting up EC2 images from scratch --- ...ating-ec2-image-for-hudson-from-scratch.md | 112 ++++++++++++++++++ ...ng-ec2-image-for-webserver-from-scratch.md | 60 ++++++++-- .../creating-ec2-image-from-scratch.md | 24 +++- 3 files changed, 186 insertions(+), 10 deletions(-) create mode 100644 wiki/info/landscape/creating-ec2-image-for-hudson-from-scratch.md diff --git a/wiki/info/landscape/creating-ec2-image-for-hudson-from-scratch.md b/wiki/info/landscape/creating-ec2-image-for-hudson-from-scratch.md new file mode 100644 index 00000000000..49d2333c58b --- /dev/null +++ b/wiki/info/landscape/creating-ec2-image-for-hudson-from-scratch.md @@ -0,0 +1,112 @@ +# Setting up an image for the hudson.sapsailing.com server + +This is an add-on to the regular EC2 image set-up described [here](https://wiki.sapsailing.com/wiki/info/landscape/creating-ec2-image-from-scratch). An Android SDK needs to be installed. + + +* Create a ``hudson`` user/group +* Make sure ``/home/hudson`` is a separate mount; probably just mount the existing volume of a previous installation +* Install an Android SDK under ``/home/hudson/android-sdk-linux``; if you simply re-used an old ``/home/hudson`` mount this should already be in place. +* Install Eclipse to ``/home/hudson/eclipse`` to allow sharing it in case a large AWS instance is needed, e.g., for heap dump analysis. +* export ``/home/hudson/android-sdk-linux`` and ``/home/hudson/eclipse`` as follows in ``/etc/exports``: +``` +/home/hudson/android-sdk-linux 172.31.0.0/16(rw,nohide,no_root_squash) +/home/hudson/eclipse 172.31.0.0/16(rw,nohide,no_root_squash) +``` + +* Ensure you have EC2 / EBS snapshot backups for the volumes by tagging them as follows: ``WeeklySailingInfrastructureBackup=Yes`` for ``/`` and ``/home/hudson``. + +``/home/hudson/repo`` has the Hudson build repository. The Hudson WAR file is under ``/usr/lib/hudson/hudson.war``. ``/etc/init.d/hudson``, linked to from ``/etc/rc0.d/K29hudson``, ``/etc/rc1.d/K29hudson``, ``/etc/rc2.d/K29hudson``, ``/etc/rc3.d/S81hudson``, ``/etc/rc4.d/K29hudson``, ``/etc/rc5.d/S81hudson``, and ``/etc/rc6.d/K29hudson``, takes care of spinning up Hudson during instance re-boot. Hudson systemwide configuration is under ``/etc/sysconfig/hudson``: +``` +## Path: Development/Hudson +## Description: Configuration for the Hudson continuous build server +## Type: string +## Default: "/var/lib/hudson" +## ServiceRestart: hudson +# +# Directory where Hudson store its configuration and working +# files (checkouts, build reports, artifacts, ...). +# +HUDSON_HOME="/home/hudson/repo" + +## Type: string +## Default: "" +## ServiceRestart: hudson +# +# Java executable to run Hudson +# When left empty, we'll try to find the suitable Java. +# + +HUDSON_JAVA_CMD="/opt/sapjvm_8/bin/java" +# The following line choses JavaSE-1.7 +#HUDSON_JAVA_CMD="/opt/jdk1.7.0_02/bin/java" +# The following line choses JavaSE-1.8 +#HUDSON_JAVA_CMD="/opt/jdk1.8.0_20/bin/java" + +## Type: string +## Default: "hudson" +## ServiceRestart: hudson +# +# Unix user account that runs the Hudson daemon +# Be careful when you change this, as you need to update +# permissions of $HUDSON_HOME and /var/log/hudson. +# +HUDSON_USER="hudson" + +## Type: string +## Default: "-Djava.awt.headless=true" +## ServiceRestart: hudson +# +# Options to pass to java when running Hudson. +# +HUDSON_JAVA_OPTIONS="-Djava.awt.headless=true -Xmx2G -Dhudson.slaves.ChannelPinger.pingInterval=60 -Dhudson.slaves.ChannelPinger.pingIntervalSeconds=60 -Dhudson.slaves.ChannelPinger.pingTimeoutSeconds=60" + +## Type: integer(0:65535) +## Default: 8080 +## ServiceRestart: hudson +# +# Port Hudson is listening on. +# +HUDSON_PORT="8080" + +## Type: integer(1:9) +## Default: 5 +## ServiceRestart: hudson +# +# Debug level for logs -- the higher the value, the more verbose. +# 5 is INFO. +# +HUDSON_DEBUG_LEVEL="5" + +## Type: yesno +## Default: no +## ServiceRestart: hudson +# +# Whether to enable access logging or not. +# +HUDSON_ENABLE_ACCESS_LOG="no" + +## Type: integer +## Default: 100 +## ServiceRestart: hudson +# +# Maximum number of HTTP worker threads. +# +HUDSON_HANDLER_MAX="100" + +## Type: integer +## Default: 20 +## ServiceRestart: hudson +# +# Maximum number of idle HTTP worker threads. +# +HUDSON_HANDLER_IDLE="20" + +## Type: string +## Default: "" +## ServiceRestart: hudson +# +# Pass arbitrary arguments to Hudson. +# Full option list: java -jar hudson.war --help +# +HUDSON_ARGS="" +``` diff --git a/wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch.md b/wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch.md index c527dd01e7a..a6908a9b8ba 100644 --- a/wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch.md +++ b/wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch.md @@ -10,7 +10,13 @@ This is an add-on to the regular EC2 image set-up described [here](https://wiki. Then carry out these steps: -* install additional packages: `yum install fail2ban git mod24_perl perl perl-CGI perl-Template-Toolkit perl-HTML-Template perl-CPAN perl-DBD-MySQL mod24_ssl php71 php71-mysqlnd mod24-ldap ruby24 ruby24-devel rubygems24 rubygems24-devel icu libicu-devel gcc-c++ ncurses-devel geoip-devel perl-autodie` +* install additional packages: +``` + yum install fail2ban git mod24_perl perl perl-CGI perl-Template-Toolkit perl-HTML-Template perl-CPAN perl-DBD-MySQL \ + mod24_ssl php71 php71-mysqlnd mod24-ldap ruby24 ruby24-devel rubygems24 rubygems24-devel icu libicu-devel \ + gcc-c++ ncurses-devel geoip-devel perl-autodie docker +``` + * activate NFS by calling `chkconfig nfs on`; ensure that `/var/log/old` and `/home/scores` are exposed in `/etc/exports` as follows: ``` /var/log/old 172.31.0.0/16(rw,nohide,no_root_squash) @@ -64,10 +70,10 @@ sinatra-2.0.0 depends on rack (~> 2.0) If you remove this gem, these dependencies will not be met. Continue with Uninstall? [yN] y Successfully uninstalled rack-2.0.3 - ``` -* ensure there are users and groups for `wiki`, `scores`, `wordpress`, `trac` that match up with their /home directory owners / groups +* ensure there are users and groups for `wiki`, `scores`, `trac` that match up with their /home directory owners / groups * ensure the Wiki startup script `serve.sh` configured for port 4567 and `config.ru` as well as the entire Gollum installation under /home/wiki are present, as well as the `users.yml` file +* clone ``ssh://trac@sapsailing.com/home/trac/git`` into ``/home/wiki/gitwiki`` * ensure there is a reasonable `/root/.goaccess` file * Configure goaccess by adjusting `/etc/goaccess.conf` such that it contains the following lines: ``` @@ -88,7 +94,49 @@ mv welcome.conf welcome.conf.org ``` * install bugzilla to `/usr/share/bugzilla` and `/var/lib/bugzilla` * create `/etc/bugzilla/localconfig` +* install scripts such as ``update_authorized_keys_for_landscape_managers_if_changed`` to ``/usr/local/bin``: +``` +lrwxrwxrwx 1 root root 62 Jan 29 2022 awsmfalogon.sh -> /home/wiki/gitwiki/configuration/aws-automation/awsmfalogon.sh +-r-xr-xr-x 1 root root 1465 Jan 11 2018 dbilogstrip +-r-xr-xr-x 1 root root 6291 Jan 11 2018 dbiprof +-r-xr-xr-x 1 root root 5479 Jan 11 2018 dbiproxy +-rwxr-xr-x 1 root root 24707072 Jan 16 2022 docker-compose +-r-xr-xr-x 1 root root 42043 Jan 11 2018 enc2xs +-r-xr-xr-x 1 root root 3065 Jan 11 2018 encguess +-rwxr-xr-x 1 root root 640 Jan 11 2018 github-markup +-rwxr-xr-x 1 root root 598 Jan 11 2018 gollum +-rwxr-xr-x 1 root root 613 Jan 11 2018 htmldiff +-rwxr-xr-x 1 root root 610 Jan 11 2018 kramdown +-rwxr-xr-x 1 root root 607 Jan 11 2018 ldiff +-rwxr-xr-x 1 root root 352 Nov 1 2021 mail-events-on-my +-rwxr-xr-x 1 root root 610 Jan 11 2018 mustache +-rwxrwxr-x 1 trac trac 18992 Jun 16 2020 netio +-rwxr-xr-x 1 root root 610 Jan 11 2018 nokogiri +lrwxrwxrwx 1 root root 75 Oct 20 09:00 notify-operators -> /home/wiki/gitwiki/configuration/on-site-scripts/paris2024/notify-operators +-r-xr-xr-x 1 root root 8356 Jan 11 2018 piconv +-rwxr-xr-x 1 root root 648 Jan 11 2018 posix-spawn-benchmark +-rwxr-xr-x 1 root root 590 Jan 11 2018 rackup +-rwxr-xr-x 1 root root 596 Jan 11 2018 rougify +-rwxr-xr-x 1 root root 616 Jan 11 2018 ruby-prof +-rwxr-xr-x 1 root root 640 Jan 11 2018 ruby-prof-check-trace +-rwxr-xr-x 1 root root 586 Jan 11 2018 tilt +lrwxrwxrwx 1 root root 78 Feb 8 2021 update_authorized_keys_for_landscape_managers -> /home/wiki/gitwiki/configuration/update_authorized_keys_for_landscape_managers +lrwxrwxrwx 1 root root 89 Feb 8 2021 update_authorized_keys_for_landscape_managers_if_changed -> /home/wiki/gitwiki/configuration/update_authorized_keys_for_landscape_managers_if_changed +``` +* set up ``crontab`` for ``root`` user (remove the symbolic link to ``/home/sailing/code/configuration/crontab`` if that had been created earlier) +``` +0 10 1 * * export PATH=/bin:/usr/bin:/usr/local/bin; mail-events-on-my >/dev/null 2>/dev/null +* * * * * export PATH=/bin:/usr/bin:/usr/local/bin; sleep $(( $RANDOM * 60 / 32768 )); update_authorized_keys_for_landscape_managers_if_changed $( cat /root/ssh-key-reader.token ) https://security-service.sapsailing.com /root 2>&1 >>/var/log/sailing.err +0 7 2 * * export PATH=/bin:/usr/bin:/usr/local/bin; docker exec -it registry-registry-1 registry garbage-collect /etc/docker/registry/config.yml +``` * set up crontab for user `wiki` as `*/10 * * * * /home/wiki/syncgit` and make sure the script is in place +* ensure that ``/var/log/old/cache/docker`` makes it across from any previous installation to the new one; it contains the docker registry contents. See in particular ``/var/log/old/cache/docker/registry/docker/registry/v2/repositories``. +* [install docker registry](https://wiki.sapsailing.com/wiki/info/landscape/docker-registry) so that the following containers are up and running: +``` +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +cd8086eb6361 joxit/docker-registry-ui:latest "/docker-entrypoint.…" 6 months ago Up 6 months 0.0.0.0:5000->80/tcp, :::5000->80/tcp registry-ui-1 +bcf1e278ecd7 registry:latest "/entrypoint.sh /etc…" 6 months ago Up 6 months 5000/tcp, 0.0.0.0:5001->5001/tcp, :::5001->5001/tcp registry-registry-1 +``` * ensure that `https://git.sapsailing.com/git` delivers the git content, with password credentials defined in `/etc/httpd/conf/passwd.git`. Sasa Zivkov (sasa.zivkov@sap.com) has been our point of contact of the SAP Gerrit group helping us with replicating our Git repository to the SAP-internal git.wdf.sap.corp one. * comment `lbmethod_heartbeat_module` in /etc/httpd/conf.modules.d/00-proxy.conf because we don't need this sort of load balancing across origin servers and it causes a warning message in error_log * install awstats to `/usr/share/awstats`, establish `/etc/httpd/conf/passwd.awstats`, establish a configuration under `/etc/awstats`, establish AWStats data directory under `/var/lib/awstats` and create /etc/cron.weekly/awstats as follows: @@ -99,7 +147,6 @@ su -l -c '/usr/share/awstats/tools/awstats_updateall.pl now -configdir=" exit 0 ``` * Follow the [mail setup](https://wiki.sapsailing.com/wiki/info/landscape/mail-relaying#setup-central-mail-server-instance-webserver) instructions -* Install Wordpress * Install gollum Wiki * Copy git contents of ssh://trac@sapsailing.com/home/trac/git to /home/trac/git * Ensure there is a /home/scores directory with subdirectories `barbados`, `kiwo`, `sailwave`, `scores`, `velum`, and `xrrftp`. @@ -120,7 +167,4 @@ logpath = /var/log/secure maxretry = 5 ``` * Ensure that fail2ban will be started automatically when the instance starts: `chkconfig --level 23 fail2ban on` and start it right away with `service fail2ban start`. You can see which filters are active using `service fail2ban status`. - -## Appendix / Resources -BACKUP_DIRECTORIES="/etc /home/trac/git /home/trac/mailinglists /home/trac/maven-repositories /home/trac/p2-repositories /home/trac/releases /home/trac/sapsailing_layouts.git /var/www/static /home/trac/crontab /home/scores /var/log/old" - +* Ensure you have EC2 / EBS snapshot backups for the volumes by tagging them as follows: ``WeeklySailingInfrastructureBackup=Yes`` for ``/var/www/static``, ``/var/log``, ``/var/log/old`` and ``/var/log/old/cache``, ``DailySailingBackup=Yes`` for ``/home``. diff --git a/wiki/info/landscape/creating-ec2-image-from-scratch.md b/wiki/info/landscape/creating-ec2-image-from-scratch.md index e0b9ba900fe..d228e02487b 100644 --- a/wiki/info/landscape/creating-ec2-image-from-scratch.md +++ b/wiki/info/landscape/creating-ec2-image-from-scratch.md @@ -2,6 +2,20 @@ I started out with a clean "Amazon Linux AMI 2015.03 (HVM), SSD Volume Type - ami-a10897d6" image from Amazon and added the existing Swap and Home snapshots as new volumes. The root/system volume I left as is, to start with. This requires having access to a user key that can be selected when launching the image. +Add a ``sailing`` user / group. Under that user account, clone ``ssh://trac@sapsailing.com/home/trac/git`` to ``/home/sailing/code``. + +Under ``/usr/local/bin`` install the following: +``` +lrwxrwxrwx 1 root root 56 Oct 20 09:20 cp_root_mail_properties -> /home/sailing/code/configuration/cp_root_mail_properties +-rwxr-xr-x 1 root root 24707072 Jan 30 2022 docker-compose +lrwxrwxrwx 1 root root 71 May 10 2021 getLatestImageOfType.sh -> /home/sailing/code/configuration/aws-automation/getLatestImageOfType.sh +lrwxrwxrwx 1 root root 50 Mar 23 2021 launchhudsonslave -> /home/sailing/code/configuration/launchhudsonslave +lrwxrwxrwx 1 root root 57 Mar 23 2021 launchhudsonslave-java11 -> /home/sailing/code/configuration/launchhudsonslave-java11 +lrwxrwxrwx 1 root root 69 Jun 1 2019 mountnvmeswap -> /home/sailing/code/configuration/archive_instance_setup/mountnvmeswap +lrwxrwxrwx 1 root root 78 Jan 27 2021 update_authorized_keys_for_landscape_managers -> /home/sailing/code/configuration/update_authorized_keys_for_landscape_managers +lrwxrwxrwx 1 root root 89 Feb 4 2021 update_authorized_keys_for_landscape_managers_if_changed -> /home/sailing/code/configuration/update_authorized_keys_for_landscape_managers_if_changed +``` + Enable the EPEL repository by issuing `yum-config-manager --enable epel/x86_64` or `sudo amazon-linux-extras install epel -y`. I then did a `yum update` and added the following packages: @@ -111,10 +125,10 @@ Added the following two lines to `/etc/security/limits.conf`: ``` * hard nproc unlimited -* hard nofile 65000 +* hard nofile 128000 ``` -This increases the maximum number of open files allowed from the default 1024 to a more appropriate 65k. +This increases the maximum number of open files allowed from the default 1024 to a more appropriate 128k. Copied the httpd configuration files `/etc/httpd/conf/httpd.conf`, `/etc/httpd/conf.d/000-macros.conf` and the skeletal `/etc/httpd/conf.d/001-events.conf` from an existing server. Make sure the following lines are in httpd.conf: @@ -134,6 +148,12 @@ Instead of having the `ANDROID_HOME` environment variable be set in `/etc/profil Had to fiddle a little with the JDK being used. The default installation has an OpenJDK installed, and the AWS tools depend on it. Therefore, it cannot just be removed. As a result, it's important that `env.sh` has the correct `JAVA_HOME` set (/opt/jdk1.8.0_45, in this case). Otherwise, the OSGi environment won't properly start up. +For the ``root`` user create the symbolic link from ``/root/crontab`` to ``/home/sailing/code/configuration/crontab`` and run ``crontab crontab``. It adds the following crontab entry that is responsible for updating the SSH keys of the users with permission for landscape management in the ``/root/.ssh/authorized_keys`` file. +``` +* * * * * export PATH=/bin:/usr/bin:/usr/local/bin; sleep $(( $RANDOM * 60 / 32768 )); update_authorized_keys_for_landscape_managers_if_changed $( cat /root/ssh-key-reader.token ) https://security-service.sapsailing.com /root 2>&1 >>/var/log/sailing.err +``` +Make sure, a valid bearer token is installed in ``/root/ssh-key-reader.token``. + To ensure that chronyd is started during the boot sequence, issued the command ``` From a76804ead4cd2ad7b382b329a2a2c19c599a7038 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 20 Oct 2023 14:11:46 +0200 Subject: [PATCH 12/34] working on adjusting Wiki docs for xmake-based Android build --- wiki/info/landscape/building-and-deploying.md | 13 ++++--------- wiki/info/mobile/android-and-release-build.md | 18 ++++++++++++++++-- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/wiki/info/landscape/building-and-deploying.md b/wiki/info/landscape/building-and-deploying.md index b64f9029494..fb0a2e3f762 100644 --- a/wiki/info/landscape/building-and-deploying.md +++ b/wiki/info/landscape/building-and-deploying.md @@ -99,19 +99,14 @@ As a result of handling the request, Final Assembly will trigger builds on [http We currently release the Android apps off a branch called ``android-xmake-release`` and referred to in the sequel as the "Android release branch." -The Android release branch holds the changes required to run a successful Android build in xMake. This cannot be overestimated, and credits go to Steffen Schaefer for pulling this off! Check out the specificities for the Android build in the top-level ``pom.xml`` file and you see why this was such a great achievement. - -We have various branches on which Android mobile app features are being developed. Ultimately, they should be merged into the ``master`` branch from where they get merged into the Android release branch. A so-called "Customer release" build can be triggered for the Android release branch on a [central Jenkins instance](https://xmake-mobile-dev.wdf.sap.corp/job/sapsailingprogram/job/sapsailingcapture.android-OD-dockerrun/). However, it is important to know that the xMake build profile will make sure that the version specified in the ``pom.xml`` descriptors matches in its major and minor version with a ``rel-x.y`` branch name in the central git repository at ``git.wdf.sap.corp``. For example, if the ``pom.xml`` files specify a ``1.4.0`` version, the commit to be built needs to be contained in a branch called ``rel-1.4``. - -Also note that once released to Nexus, the next release build will have to use at least an incremented micro version, such as 1.4.1. In order to change all versions in all `MANIFEST.MF` and `pom.xml` files consistently, the Tycho `set-version` plugin can be used. For this, the `` definition in the top-level `pom.xml` file needs to be commented out, which points to `com.sap.ldi/ldi-parent/8.0.0` or else you will get error messages that this component cannot be found (it is only found when the build is run on a central Jenkins instance that sees the Nexus repository at the right place). Then, you would have to issue the following command, setting the version number as required: - +The Android release branch holds the changes required to run a successful Android build in xMake. The actual build is still the Gradle build that xMake invokes like this: ``` - mvn -Dtycho.mode=maven org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=x.y.z +./gradlew -Pxmake -Pversion=1.4.116 -PcommonRepoURL=https://int.repositories.cloud.sap/artifactory/build-releases/ ``` -Make sure to replace `x.y.z` by the version to which you want to set your files. Then remember to uncomment the `` specification again. +We have various branches on which Android mobile app features are being developed. Ultimately, they should be merged into the ``master`` branch from where they get merged into the Android release branch. A so-called "Customer release" build can be triggered for the Android release branch on a [central Jenkins instance](https://xmake-mobile-dev.wdf.sap.corp/job/sapsailingprogram/job/sapsailingcapture.android-SP-REL-common_directshipment/). To get a release build staged for releasing, the version numbers in a few descriptor files, particularly the ``gradle.properties`` files of each app sub-directory under ``/mobile``, as well as ``cfg/files2sign.json`` need to be adjusted to the new version. -Next, make sure to upgrade the versions in the `AndroidManifest.xml` files of the three apps we're currently shipping. The `android:versionCode` specifier is relevant for the PlayStore pushing the update to the users. The `android:versionName` is just a symbolic name which users will see (other than the `android:versionCode` which is not usually displayed to users). For the `android:versionName` we try to use a reasonable versioning scheme that should be independent of our internal rel-x.y numbering and the sequential, technical versionCode. Example: 1.1. +Also note that once released to Nexus / Artifactory, the next release build will have to use at least an incremented micro version, such as 1.4.1. In order to get the Android release branch merged into the ``rel-x.y`` branch, the same process as explained above for the merge of iOS branches into ``fa/rel-x.y`` is required. In particular, this means that a Java Correction Workbench Correction Request [needs to be created](https://css.wdf.sap.corp/sap/bc/bsp/spn/jcwb/default.htm?newCMForProject=sapsailingcapture&newCMComponentName=SV-COE-MSO-CDP) and the latest commit to be pushed to ``refs/for/rel-x.y`` needs to be amended so that it contains a valid ``Change-Id:`` and ``CR-Id:`` line. Then, the commit needs to be voted on. Other than for the MiOS branches under ``fa/rel-x.y`` it seems to be required that _another_ committer votes with +2 to enable a merge. Once this has been done, the blue ``Submit`` button will appear on your change page (something like [https://git.wdf.sap.corp/#/c/1436212/](https://git.wdf.sap.corp/#/c/1436212/)) that you can use to technically get the commit merged into the ``rel-x.y`` branch. diff --git a/wiki/info/mobile/android-and-release-build.md b/wiki/info/mobile/android-and-release-build.md index 5bc646af9b1..fd46a7c566e 100644 --- a/wiki/info/mobile/android-and-release-build.md +++ b/wiki/info/mobile/android-and-release-build.md @@ -4,13 +4,27 @@ ## Basic setup of the Android apps build -The Android Build is based on Maven and is part of the overall multi-module-build. The Android specific projects are hosted in /mobile. The build of the app projects is completely separated from Tycho/p2. +The Android Build is based on Gradle and is separate of the overall multi-module-build. The Android specific projects are hosted in /mobile. The build of the app projects is completely separated from Tycho/p2. + +To build the Android apps, go to the root of the Git workspace and enter the command +``` + ./gradlew +``` +It will produce the APK files in the following locations: +``` +./mobile/com.sap.sailing.racecommittee.app/build/outputs/apk/release/com.sap.sailing.racecommittee.app-unsigned.apk +./mobile/com.sap.sailing.android.buoy.positioning.app/build/outputs/apk/release/com.sap.sailing.android.buoy.positioning.app-unsigned.apk +./mobile/com.sap.sailing.android.tracking.app/build/outputs/apk/release/com.sap.sailing.android.tracking.app-unsigned.apk +``` +The build job also copies them to ``java/com.sap.sailing.www/apps`` from where, during the build of the ``com.sap.sailing.www`` OSGi bundle they become part of the overall delivery and can hence be downloaded conveniently for a "side-load" style installation from any of our servers' ``/apps`` URL path. + +If this build works without errors, it will also be part of all full product builds, as seen on [https://hudson.sapsailing.com](https://hudson.sapsailing.com). ## Backend Build vs Android Build Due to some incompatibilities of the Android Build with specifics of the Tycho Build, it's not possible to build the backend and Android apps in one execution. That's why there are several profiles that control, what is part of the specific build. -The default activation of the profiles causes the backend build to run. The relevant profiles to switch between backend and Adnroid build are: +The default activation of the profiles causes the backend build to run. The relevant profiles to switch between backend and Android build are: * with-mobile (defauts to off) * with-not-android-relevant (defauts to on) From 298856df616b7f4d6cde3da078516642ed0e263e Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 20 Oct 2023 14:31:33 +0200 Subject: [PATCH 13/34] another update of Wiki docs for existing Android xMake release build --- wiki/info/landscape/building-and-deploying.md | 10 ++++------ wiki/info/mobile/android-and-release-build.md | 18 +----------------- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/wiki/info/landscape/building-and-deploying.md b/wiki/info/landscape/building-and-deploying.md index fb0a2e3f762..bd28084c978 100644 --- a/wiki/info/landscape/building-and-deploying.md +++ b/wiki/info/landscape/building-and-deploying.md @@ -97,9 +97,7 @@ As a result of handling the request, Final Assembly will trigger builds on [http ### xMake Build for Android Apps -We currently release the Android apps off a branch called ``android-xmake-release`` and referred to in the sequel as the "Android release branch." - -The Android release branch holds the changes required to run a successful Android build in xMake. The actual build is still the Gradle build that xMake invokes like this: +We currently release the Android apps off a branch called ``android-xmake-release`` and referred to in the sequel as the "Android release branch." The Android release branch holds the changes required to run a successful Android build in xMake, particularly some adjustments to the top-level "Gradle Wrapper" (``/gradlew``) and its properties (``/gradle/wrapper/gradle-wrapper.properties``), such as obtaining the Gradle ZIP file from an SAP-internal sources instead of from an external repository. Other diffs between ``android-xmake-release`` are rather a legacy from the earlier Maven-based build and could in principal be reverted, such as the specific version adjustments along all ``pom.xml`` files. The actual build is still the Gradle build that xMake invokes like this: ``` ./gradlew -Pxmake -Pversion=1.4.116 -PcommonRepoURL=https://int.repositories.cloud.sap/artifactory/build-releases/ ``` @@ -108,7 +106,7 @@ We have various branches on which Android mobile app features are being develope Also note that once released to Nexus / Artifactory, the next release build will have to use at least an incremented micro version, such as 1.4.1. -In order to get the Android release branch merged into the ``rel-x.y`` branch, the same process as explained above for the merge of iOS branches into ``fa/rel-x.y`` is required. In particular, this means that a Java Correction Workbench Correction Request [needs to be created](https://css.wdf.sap.corp/sap/bc/bsp/spn/jcwb/default.htm?newCMForProject=sapsailingcapture&newCMComponentName=SV-COE-MSO-CDP) and the latest commit to be pushed to ``refs/for/rel-x.y`` needs to be amended so that it contains a valid ``Change-Id:`` and ``CR-Id:`` line. Then, the commit needs to be voted on. Other than for the MiOS branches under ``fa/rel-x.y`` it seems to be required that _another_ committer votes with +2 to enable a merge. Once this has been done, the blue ``Submit`` button will appear on your change page (something like [https://git.wdf.sap.corp/#/c/1436212/](https://git.wdf.sap.corp/#/c/1436212/)) that you can use to technically get the commit merged into the ``rel-x.y`` branch. +Releasing can happen only from branches in Gerrit (git.wdf.sap.corp) under the ``fa/`` branch name prefix. Our Android branch for releasing therefore currently is ``fa/rel-1.4``. We can simply push the latest version of our ``android-xmake-release`` branch to it. Many of the above steps can be automated by using the script ``configuration/releaseAndroidApps.sh``. Call like this: @@ -123,8 +121,8 @@ Additional options: -r The git remote; defaults to origin ``` -This will checkout the `android-xmake-release` branch, merge the `fa/arel-1.4` release branch into it, push the result again so Gerrit knows this commit / change already. Then, the version substitutions for all `pom.xml` and `MANIFEST.MF` files are carried out automatically by looking at the version currently declared in the root `pom.xml`. If that's a `-SNAPSHOT` version, only the `-SNAPSHOT` suffix is removed to obtain the new release version number. If no `-SNAPSHOT` suffix is found, the micro version is increased by one (e.g., 1.4.18 --> 1.4.19). Furthermore, the `android:versionCode` number is increased by one for each of the three apps in their `AndroidManifest.xml`, and the `android:versionName` which is assumed to have the format major.minor will have the minor version increased by one. The result is committed to git and the resulting commit is pushed to the fa/rel-1.4 branch. +This will checkout the `android-xmake-release` branch, merge the `fa/rel-1.4` release branch into it, push the result again so Gerrit knows this commit / change already. Then, the version substitutions for all ``gradle.properties`` and ``cfg/files2sign.json`` files are carried out automatically by looking at the version currently declared in them and incrementing the micro-version by one (e.g., 1.4.18 --> 1.4.19). The result is committed to git and the resulting commit is pushed to the ``fa/rel-1.4`` branch. -Once this is done, a [Customer release build can be started](https://xmake-mobile-dev.wdf.sap.corp/job/sapsailingprogram/job/sapsailingcapture.android-SP-REL-common_directshipment/). Select "Build with Parameters" from the left, then select ``Stage`` as the build mode, then ``customer`` as the ``RELEASE_MODE`` and enter the ``fa/rel-x.y`` branch name in the "TREEISH" field, make sure the Maven version 3.1.1 is selected, select Tycho version 1.0.0, switch the "Next development version" to ``no change`` and click the "Build" button. If the build succeeds, Final Assembly should be able to _promote_ the build artifact, such as the ``.apk`` files which should have been signed using the SAP certificate. +Once this is done, a [Customer release build can be started](https://xmake-mobile-dev.wdf.sap.corp/job/sapsailingprogram/job/sapsailingcapture.android-SP-REL-common_directshipment/). Select "Build with Parameters" from the left, then select ``Stage`` as the build mode, then ``customer`` as the ``RELEASE_MODE`` and enter the ``fa/rel-1.4`` branch name in the "TREEISH" field and click the "Build" button. If the build succeeds, Final Assembly should be able to _promote_ the build artifact, such as the ``.apk`` files which should have been signed using the SAP certificate. If the build fails due to missing Nexus artifacts, check out the document describing [how to upload artifacts to Nexus](https://wiki.wdf.sap.corp/wiki/display/LeanDI/Uploading+Third+Party+Artifacts+to+Nexus#UploadingThirdPartyArtifactstoNexus-1.CreateaJiraTicket). You will have to create a JIRA ticked in this process and upload the artifact and its ``pom.xml`` file to Nexus. Usually, these requests get handled within less than 48 hours. Good luck... \ No newline at end of file diff --git a/wiki/info/mobile/android-and-release-build.md b/wiki/info/mobile/android-and-release-build.md index fd46a7c566e..36125f97904 100644 --- a/wiki/info/mobile/android-and-release-build.md +++ b/wiki/info/mobile/android-and-release-build.md @@ -20,22 +20,6 @@ The build job also copies them to ``java/com.sap.sailing.www/apps`` from where, If this build works without errors, it will also be part of all full product builds, as seen on [https://hudson.sapsailing.com](https://hudson.sapsailing.com). -## Backend Build vs Android Build - -Due to some incompatibilities of the Android Build with specifics of the Tycho Build, it's not possible to build the backend and Android apps in one execution. That's why there are several profiles that control, what is part of the specific build. - -The default activation of the profiles causes the backend build to run. The relevant profiles to switch between backend and Android build are: -* with-mobile (defauts to off) -* with-not-android-relevant (defauts to on) - -So to run the Android apps build you have to add "-P -with-not-android-relevant -P with-mobile" to the Maven command line. - ## Release build overview -There are several differences when running the build on Lean DI. Due to this, it's necessary to implement some changes in the build. To realize the build for Lean DI there is a specific branch "android-xmake-release". It is intended that most of the Lean DI specific logic is implemented on "master" in specific Maven profiles. This causes the release branch to only have few differences compared to "master". The most notable differences are: - -* Configuration of parent POM "com.sap.ldi:ldi-parent" in workspace POM -* Versions are set to not be *-SNAPSHOT but release versions -* Some profile activation conditions are changed - -See also [https://wiki.sapsailing.com/wiki/info/landscape/building-and-deploying#building-deploying-stopping-and-starting-server-instances_app-build-process-for-ios-and-android](https://wiki.sapsailing.com/wiki/info/landscape/building-and-deploying#building-deploying-stopping-and-starting-server-instances_app-build-process-for-ios-and-android). \ No newline at end of file +See [here](https://wiki.sapsailing.com/wiki/info/landscape/building-and-deploying#building-deploying-stopping-and-starting-server-instances_app-build-process-for-ios-and-android_xmake-build-for-android-apps). \ No newline at end of file From 8015180dfb4fb139a1b590a9f41a610253f20313 Mon Sep 17 00:00:00 2001 From: Thomas Stokes Date: Mon, 23 Oct 2023 12:53:12 +0000 Subject: [PATCH 14/34] Add problem I encountered with AWS and solution I found --- wiki/howto/onboarding.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/wiki/howto/onboarding.md b/wiki/howto/onboarding.md index efc0ffb54e9..507f6def765 100644 --- a/wiki/howto/onboarding.md +++ b/wiki/howto/onboarding.md @@ -247,3 +247,9 @@ Install the GWT Browser Plugin for the GWT Development mode. As of 2016-08-31 Fi ### Create Hudson Job If you want a hudson job to run when you push your branch then you can run a script in `configuration` called . Run options for a branch titled `createHudsonJobForBug.sh`. For you bug branch titled `bug`, create a build job, which will create a release, by running the script like so: `./createHudsonJobForBug.sh `. If on Windows, you may need to disable any web shields in antivirus software, to allow `curl` to function. + +###Issues when playing around with AWS +- The problem: **aws cli (used for aws ec2 describe-tags) hangs in eu-west-2** in all AZs on new instances I created, using a target group which permitted all outbound connections and inbound https, http and ssh connections. I tried permitting everything but that didn’t work. When I attached (at Axel’s suggestion) the Java Application with Reverse Proxy security group, it worked but — even if I duplicated this security group, and applied that copy instead — it still didn’t work. +Curl issue solution: it turns out that the network interface only permits certain outbound and inbounds from certain target groups. +The path to the solution: On my instance in eu-west-2a, I ran aws – debug ec2 describe-tags (you may need to do aws configure). This is much akin to verbose mode of other unix commands. I noticed it hang on a request to ec2.eu-west-2.amazonaws.com. If you do `dig -t any ec2.eu-west-2.amazonaws.com` you see 3 ip addresses, which — as you will see later — are IPs in each of the eu-west-2 availability zones. When I ran curl -v ec2.eu-west-2.amazonaws.com (the v flag is verbose), one of the IPs from dig was used (namely the one in eu-west-2a, where the instance resides) and it hangs. I then went to endpoints for the VPC and noticed a service for the service `com.amazonaws.eu-west-2.ec2`. It had the default security group, which turned out to only allow inbound rules from the default or Java Application with Reverse Proxy target group. + From 672ee285de8efa68c6be27a2695c19df4a760df7 Mon Sep 17 00:00:00 2001 From: Thomas Stokes Date: Mon, 23 Oct 2023 13:00:56 +0000 Subject: [PATCH 15/34] Fix formatting and add another problem and solution --- wiki/howto/onboarding.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wiki/howto/onboarding.md b/wiki/howto/onboarding.md index 507f6def765..78f36d48f38 100644 --- a/wiki/howto/onboarding.md +++ b/wiki/howto/onboarding.md @@ -251,5 +251,7 @@ If on Windows, you may need to disable any web shields in antivirus software, to ###Issues when playing around with AWS - The problem: **aws cli (used for aws ec2 describe-tags) hangs in eu-west-2** in all AZs on new instances I created, using a target group which permitted all outbound connections and inbound https, http and ssh connections. I tried permitting everything but that didn’t work. When I attached (at Axel’s suggestion) the Java Application with Reverse Proxy security group, it worked but — even if I duplicated this security group, and applied that copy instead — it still didn’t work. Curl issue solution: it turns out that the network interface only permits certain outbound and inbounds from certain target groups. -The path to the solution: On my instance in eu-west-2a, I ran aws – debug ec2 describe-tags (you may need to do aws configure). This is much akin to verbose mode of other unix commands. I noticed it hang on a request to ec2.eu-west-2.amazonaws.com. If you do `dig -t any ec2.eu-west-2.amazonaws.com` you see 3 ip addresses, which — as you will see later — are IPs in each of the eu-west-2 availability zones. When I ran curl -v ec2.eu-west-2.amazonaws.com (the v flag is verbose), one of the IPs from dig was used (namely the one in eu-west-2a, where the instance resides) and it hangs. I then went to endpoints for the VPC and noticed a service for the service `com.amazonaws.eu-west-2.ec2`. It had the default security group, which turned out to only allow inbound rules from the default or Java Application with Reverse Proxy target group. +The path to the solution: On my instance in eu-west-2a, I ran aws --debug ec2 describe-tags (you may need to do aws configure first). This is much akin to verbose mode of other unix commands. I noticed it hang on a request to ec2.eu-west-2.amazonaws.com. If you do `dig -t any ec2.eu-west-2.amazonaws.com` you see 3 ip addresses, which — as you will see later — are IPs in each of the eu-west-2 availability zones. When I ran curl -v ec2.eu-west-2.amazonaws.com (the v flag is verbose), one of the IPs from dig was used (namely the one in eu-west-2a, where the instance resides) and it hangs. I then went to endpoints for the VPC and noticed a service for the service `com.amazonaws.eu-west-2.ec2`. It had the default security group, which turned out to only allow inbound rules from the default or Java Application with Reverse Proxy target group. +- Problem: A load balancer's target group health checks fail. I was told the checks failed with 403 errors. +Solution: This was occurring because the website didn't have any content in the /var/www/html. Whilst a site was still served (namely the Apache test page) it does throw a 403 error. If you fill the directory with and index.html the test then passes and a 200 code is returned From b8b55aef8a55e6ef8d17ec8ad6af758d94ef3f6c Mon Sep 17 00:00:00 2001 From: Thomas Stokes Date: Mon, 23 Oct 2023 15:53:05 +0200 Subject: [PATCH 16/34] Fix messages --- .../com/sap/sailing/gwt/ui/client/StringMessages.properties | 2 +- .../com/sap/sailing/gwt/ui/client/StringMessages_de.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 60b4a3a03d8..3dbc9256225 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -53,7 +53,7 @@ leaderboardName=Leaderboard Name pleaseEnterAName=Please enter a name pleaseEnterABoatClass=Please enter a boat class discardRacesFromHowManyStartedRacesOn=Discard one or more races, starting with how many started races there are -applyDiscardsBasedOnNumberOfScoredRaces=Enter into the boxes the number of scored races required to apply that discard (max {0}) +applyDiscardsBasedOnNumberOfScoredRaces=Configure discards. Enter into box X, the number of scored races required to apply the Xth discard. Maximum discards: {0}. leaderboardWithThisNameAlreadyExists=Leaderboard with this name already exists discardThresholdsMustBeNumeric=Discard thresholds must be numeric discardThresholdsMustBeAscending=Discard thresholds must be ascending diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index 85635678021..b34693ad67d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -53,7 +53,7 @@ leaderboardName=Name der Rangliste pleaseEnterAName=Bitte geben Sie einen Namen ein. pleaseEnterABoatClass=Bitte geben Sie eine Bootsklasse ein. discardRacesFromHowManyStartedRacesOn=Discard one more race starting with how many started races -applyDiscardsBasedOnNumberOfScoredRaces=Enter into the boxes the number of scored races required to apply that discard (max {0}) +applyDiscardsBasedOnNumberOfScoredRaces=Streicher konfigurieren: in Feld X die Anzahl gewerteter Wettfahrten eingeben, ab welcher der X-te Streicher angewendet werden soll. Maximal {0} Streicher. leaderboardWithThisNameAlreadyExists=Eine Rangliste mit diesem Namen existiert bereits. discardThresholdsMustBeNumeric=Discard thresholds must be numeric discardThresholdsMustBeAscending=Discard thresholds must be ascending From f2b2d2faf83ccf30525782eccaf1ffc34dbb83b9 Mon Sep 17 00:00:00 2001 From: Thomas Stokes Date: Mon, 23 Oct 2023 14:41:37 +0000 Subject: [PATCH 17/34] Add instructions on language debugging --- wiki/howto/development/super-dev-mode.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wiki/howto/development/super-dev-mode.md b/wiki/howto/development/super-dev-mode.md index 324705d600b..aa010ceb527 100644 --- a/wiki/howto/development/super-dev-mode.md +++ b/wiki/howto/development/super-dev-mode.md @@ -33,6 +33,7 @@ To start SDM debugging in Eclipse, do the following: * Start the backend as you would always do. * Start GWT Super Dev Mode by launching "SailingGWT sdm.launch" or "SailingGWT All SDM.launch". * Do not Click on the URLs provided in "Development view"! +* Make sure that in the Debug Configuration chrome is the first browser used and not chromium. * Run "Debug SailingGWT SDM on Chrome.launch" * A new instance of Chrome is started and you will see a debug session running in Eclipse * Your Eclipse break points will now work in the running debug session. @@ -55,6 +56,7 @@ Be aware that some of the Eclipse debugger features do NOT work with this kind o * Variable naming is not 1:1 what you expect in the Java world * Stacks look different but clicking on Stack elements should * [[Stack Traces logged in Chrome do not use source maps|https://code.google.com/p/chromium/issues/detail?id=357958]], so you see the JavaScript Stack Trace instead. +If you wish to debug in a different language, go to the `.gwt.xml file` and add ``. Next, run the setup, the same way you would to use the debugger. After launching in Chrome, add the following after the .html: `?locale=de` ## Debugging SDM on Android devices From a3e225c16700c81b32cac4e937b73c9eb3c565c3 Mon Sep 17 00:00:00 2001 From: Thomas Stokes Date: Mon, 23 Oct 2023 14:42:24 +0000 Subject: [PATCH 18/34] Add clarification to superdev mode language debugging --- wiki/howto/development/super-dev-mode.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki/howto/development/super-dev-mode.md b/wiki/howto/development/super-dev-mode.md index aa010ceb527..66db1cd7de8 100644 --- a/wiki/howto/development/super-dev-mode.md +++ b/wiki/howto/development/super-dev-mode.md @@ -56,7 +56,7 @@ Be aware that some of the Eclipse debugger features do NOT work with this kind o * Variable naming is not 1:1 what you expect in the Java world * Stacks look different but clicking on Stack elements should * [[Stack Traces logged in Chrome do not use source maps|https://code.google.com/p/chromium/issues/detail?id=357958]], so you see the JavaScript Stack Trace instead. -If you wish to debug in a different language, go to the `.gwt.xml file` and add ``. Next, run the setup, the same way you would to use the debugger. After launching in Chrome, add the following after the .html: `?locale=de` +If you wish to debug in a different language, go to the `.gwt.xml file`, for the given page, and add ``. Next, run the setup, the same way you would to use the debugger. After launching in Chrome, add the following after the .html: `?locale=de` ## Debugging SDM on Android devices From 90b6e55908ee562a50af8f6a4857de8a1482b23e Mon Sep 17 00:00:00 2001 From: Thomas Stokes Date: Mon, 23 Oct 2023 14:42:27 +0000 Subject: [PATCH 19/34] Add clarification to superdev mode language debugging From b32fa99c4a42493c9b74740df8416ace4e8904b2 Mon Sep 17 00:00:00 2001 From: "service.tip.git" Date: Thu, 26 Oct 2023 15:27:05 +0000 Subject: [PATCH 20/34] [INTERNAL] Translation delivery: commit by LX Lab Change-Id: I216b2dbcf9b543794df39e02b14a47a3988cd577 --- .../Sailing_StringMessages_ja.properties | 4 +-- .../SubscriptionStringConstants_cs.properties | 30 +++++++++++-------- .../SubscriptionStringConstants_da.properties | 24 ++++++++------- .../SubscriptionStringConstants_es.properties | 26 +++++++++------- .../SubscriptionStringConstants_fr.properties | 22 ++++++++------ .../SubscriptionStringConstants_it.properties | 24 ++++++++------- .../SubscriptionStringConstants_ja.properties | 20 ++++++++----- .../SubscriptionStringConstants_pt.properties | 24 ++++++++------- .../SubscriptionStringConstants_ru.properties | 24 ++++++++------- .../SubscriptionStringConstants_sl.properties | 24 ++++++++------- .../SubscriptionStringConstants_zh.properties | 22 ++++++++------ 11 files changed, 142 insertions(+), 102 deletions(-) diff --git a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_ja.properties b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_ja.properties index 952409753ea..1212905d3c7 100644 --- a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_ja.properties +++ b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_ja.properties @@ -249,8 +249,8 @@ IRM=IRM コード (OCS、DNC、DNF など) XTE=クロストラックエラー AbsoluteXTE=絶対クロストラックエラー Day=日 -CompetitorDay=競技者日 -CompetitorDaySailingDomainRetrieverChain=レースの競技者-日 +CompetitorDay=競技者日数 +CompetitorDaySailingDomainRetrieverChain=レースの競技者日数 LowestSpeed=最低速度 SpeedChange=速度変更 MaximumTurningRate=最大回転率 (°/s) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_cs.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_cs.properties index 02b3520c3b4..4817ac468a0 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_cs.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_cs.properties @@ -5,27 +5,27 @@ payment_interval_DAY=den support_subject=Požadavek na služby a informace SAP Sailing Analytics businessModelTitle=Obchodní model businessModelDescription=Rozhodli jsme se naše bezplatné řešení rozšířit o nabídku předplatného. I když základní informace ze závodů včetně aktuálního pořadí s úpravami podle větru můžete nadále sledovat zdarma, budete-li využívat řadu vyspělých funkcí nabízených v SAP Sailing Analytics, dovolíme si vás požádat o příspěvek. Toto řešení SAP plně dotuje již více než deset let a za tu dobu umožnil jeho použití při bezpočtu závodů na celém světě. Nyní se vám naskýtá příležitost pomoci, aby je mohla jachtařská komunita využívat i nadále. Veškeré úhrady za zvolené předplatné budou využity k provozu, podpoře, údržbě a dalšímu rozvoji Sailing Analytics. Vaše doporučení uvítáme na https://bugzilla.sapsailing.com, kde můžete také sledovat postup vývoje. Děkujeme za pochopení a za vaši stálou podporu! -free_subscription_plan_name=Zdarma -free_subscription_plan_description=K vyzkoušení +free_subscription_plan_name=Základní +free_subscription_plan_description=Vytvořte si vlastní účet. Zkuste to. free_subscription_plan_info= free_subscription_plan_price_info= -free_subscription_plan_features=Základní aktuální pořadí s úpravami podle větru|Založte si vlastní účet a s pomocí bezplatné trasovací aplikace nebo profesionální trasovací služby analyzujte údaje ze závodu nebo tréninku|Synchronizujte živě YouTube videa s vašimi závody +free_subscription_plan_features=Základní aktuální pořadí s úpravami podle větru|Analyzujte údaje ze závodu nebo tréninku pomocí bezplatné trasovací aplikace nebo profesionální trasovací služby|Synchronizujte živě YouTube videa s vašimi závody premium_name=Premium premium_description=Všechny prémiové funkce, jako je mapová vrstva větrů, simulátor nebo rozšířená metrika, např. ztráta na vedoucího závodníka, uplutá vzdálenost či odchylka od zvoleného kurzu premium_info= premium_price_info=Jednorázová platba premium_features=Všechny funkce bezplatné nabídky|Kompletní analytika aktuálních dat s řadou dalších funkcí včetně grafického znázornění síly a směru větru nebo ztráta na vedoucího závodníka|Možnost připnutí videí a poznámek na individuální časovou osu|Pokročilé vizualizace přímo v mapě a mnoho dalších funkcí|Viz kompletní přehled funkcí prémiového plánu dále. data_mining_archive_name=Dolování dat – archiv -data_mining_archive_description=Vytěžování dat z archivovaných závodů a událostí. +data_mining_archive_description=Dolování dat z archivovaných závodů a událostí. data_mining_archive_info= data_mining_archive_price_info=Jednorázová platba -data_mining_archive_features=Všechny funkce prémiového plánu|Výkonné vytěžování dat z archivovaných závodů, rozjížděk a událostí uložených na www.sapsailing.com. +data_mining_archive_features=Všechny funkce prémiového plánu|Výkonné dolování dat z archivovaných závodů, rozjížděk a událostí uložených na www.sapsailing.com. data_mining_all_name=Dolování dat – vše data_mining_all_description=Dolování dat ze všech závodů a událostí. data_mining_all_info= data_mining_all_price_info=Jednorázová platba -data_mining_all_features=Všechny funkce nabídky Dolování dat – archiv|Výkonné vytěžování dat, a to včetně dat ze všech subdomén sapsailing.com, jako jsou např. národní soutěže, živé události nebo klubové servery. -free_subscription_plan_shortname=zdarma +data_mining_all_features=Všechny funkce nabídky Dolování dat – archiv|Výkonné dolování dat, a to včetně dat ze všech subdomén sapsailing.com, jako jsou např. národní soutěže, živé události nebo klubové servery. +free_subscription_plan_shortname=základní premium_subscription_plan_shortname=premium datamining_subscription_plan_shortname=dolování dat features_limited_live_analytics_title=Analytika aktuálních dat (omezená) @@ -33,11 +33,13 @@ features_limited_live_analytics_description=Omezená analytika aktuálních dat features_full_live_analytics_title=Analytika aktuálních dat (plná) features_full_live_analytics_description=Kompletní analytika aktuálních dat se stovkami funkcí včetně grafického znázornění síly a směru větru, srovnávacích grafů, pokročilých vizualizací v mapě atd. features_organize_events_title=Organizování závodů -features_organize_events_description=Využití Sailing Analytics s bezplatnou trasovací aplikací nebo profesionální službou trasování jako Trac Trac při vámi pořádané regatě. Detekce manévrů a analytika. +features_organize_events_description=Analyzujte údaje ze závodu s naší bezplatnou trasovací aplikací nebo profesionální službou trasování jako Trac Trac při vámi pořádané regatě. Detekce manévrů a analytika. +features_organize_events_url=https://support.sapsailing.com/hc/en-us/articles/360018169799-Create-a-simple-event-on-my-sapsailing-com features_events_with_more_regatta_title=Několik regat při jedné akci features_events_with_more_regatta_description=Lze vytvořit závod vypsaný pro několik tříd nebo sérii závodů započítávaných do jednoho žebříčku. features_connect_to_tractrac_title=Připojení k Trac Trac features_connect_to_tractrac_description=Lze se připojit k profesionální službě trasování. +features_connect_to_tractrac_url=https://tractrac.com/ features_imports_title=Import externích dat features_imports_description=Import souborů ve formátu GPX nebo KML, souborů GRIB a protokolů Expedition. features_media_management_title=Správa médií @@ -60,10 +62,12 @@ features_maneuver_analytics_title=Analýza manévrování features_maneuver_analytics_description=Pokročilá analýza manévrování jednotlivých závodníků včetně ztráty při manévru, tempa změny kurzu a úhlu manévru. features_wind_analytics_title=Analýza větru features_wind_analytics_description=Pokročilá analýza sebraných údajů o větru, barevné animované překryvné vrstvy a bodové grafy podle jednotlivých zdrojů údajů. -features_data_mining_title=Dolování dat -features_data_mining_description=Vytěžování dat ze závodů, rozjížděk a akcí v závislosti na zakoupeném plánu: buď z dat archivovaných jen na www.sapsailing.com, nebo i včetně subdomén (např. národní soutěže, živé akce nebo klubové servery). -trial_name=Zkušební plán -trial_description=Bezplatná zkušební verze všech plánů včetně prémiového plánu a Dolování dat na jeden den. Lze využít pouze jednou. +features_data_mining_title=Dolování dat – archiv +features_data_mining_description=Použijte dolování dat z minulých závodů, rozjížděk a akcí +features_data_mining_all_title=Dolování dat – vše +features_data_mining_all_description=Zatímco v případě plánu „Archiv“ můžete použít dolování dat pro uplynulé akce, které již byly archivovány, plán „Vše“ umožňuje používat dolování dat také pro živé události a probíhající ligové sezóny. Zahrnuje také data z archivu (vše, co lze najít na www.sapsailing.com) a všech subdomén (například pro národní soutěže, živé události nebo klubové servery) +trial_name=Bezplatná zkouška +trial_description=Bezplatná zkouška všech plánů včetně prémiového plánu a Dolování dat. Lze využít jen jednou. trial_info= -trial_price_info=Bezplatná zkušební verze na jeden den +trial_price_info=Bezplatná zkouška na jeden den trial_features=Všechny funkce plánu Dolování dat – vše|Obsahuje všechny funkce|Platí na jeden den diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_da.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_da.properties index cd885c99b5e..bb138ce556a 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_da.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_da.properties @@ -5,27 +5,27 @@ payment_interval_DAY=dag support_subject=SAP Sailing Analytics-service og informationsforespørgsel businessModelTitle=Forretningsmodel businessModelDescription=Vi besluttede at udvide vores gratis løsning med et abonnementstilbud. Mens du stadig kan følge de grundlæggende kapsejladser og se en live vindbaseret rangliste gratis, vil vi gerne bede om dit bidrag, hvis du sætter pris på de mange avancerede funktioner, som SAP Sailing Analytics tilbyder. I mere end et årti har SAP fuldt ud sponsoreret denne løsning og gjort den tilgængelig for tusindvis af sejlsportsbegivenheder verden over. Nu har du mulighed for at hjælpe med at holde løsningen tilgængelig for sejlsportsentusiaster. Alle betalinger for det abonnement, du vælger, vil gå til drift, support, vedligeholdelse og videreudvikling af Sailing Analytics. Du kan afgive dine forslag på https://bugzilla.sapsailing.com og følge udviklingen der. Vi takker dig for din forståelse og fortsatte støtte! -free_subscription_plan_name=Gratis -free_subscription_plan_description=Prøv den +free_subscription_plan_name=Grundlæggende +free_subscription_plan_description=Opret din egen konto. Prøv det. free_subscription_plan_info= free_subscription_plan_price_info= -free_subscription_plan_features=Grundlæggende live vindbaseret rangliste|Opret din egen konto og udfør sejladsanalyser for din regatta eller træning med vores gratis sporingsapp eller en professionel sporingstjeneste|Synkroniser live YouTube-videoer med dine kapsejladser +free_subscription_plan_features=Grundlæggende live vindbaseret rangliste|Udfør sejladsanalyser for din regatta eller træning med vores gratis sporingsapp eller en professionel sporingstjeneste|Synkroniser live YouTube-videoer med dine kapsejladser premium_name=Premium premium_description=Alle premium-funktionerne, såsom vindkort-overlay, simulatoren og forbedrede metrikker, såsom afstand til forreste båd, sejlet distance og Cross Track Error premium_info= premium_price_info=Engangsbetaling premium_features=Alt fra den gratis plan|Komplette live analyser med hundredvis af funktioner, herunder vindstreamlets, sammenligningsdiagrammer eller afstand til forreste båd|Avancerede visualiseringer på kortet og meget mere.|Se hele listen over premium-funktioner nedenfor -data_mining_archive_name=Data mining - Arkiv +data_mining_archive_name=Data mining - Arkiv data_mining_archive_description=Data mining på tværs af arkiverede kapsejladser og begivenheder data_mining_archive_info= data_mining_archive_price_info=Engangsbetaling data_mining_archive_features=Alt fra premium-planen|Effektiv data mining for arkiverede kapsejladser og begivenheder, der kan findes på www.sapsailing.com -data_mining_all_name=Data mining - ALLE +data_mining_all_name=Data mining - Alle data_mining_all_description=Data mining på tværs af alle kapsejladser og begivenheder data_mining_all_info= data_mining_all_price_info=Engangsbetaling data_mining_all_features=Alt fra data mining-arkivplanen|Effektiv data mining inkluderer yderligere data fra alle underdomæner af sapsailing.com, f.eks. for ligaer, live begivenheder eller klubservere -free_subscription_plan_shortname=Gratis +free_subscription_plan_shortname=grundlæggende premium_subscription_plan_shortname=Premium datamining_subscription_plan_shortname=Data mining features_limited_live_analytics_title=Live analyser (begrænset) @@ -34,10 +34,12 @@ features_full_live_analytics_title=Live analyser (komplette) features_full_live_analytics_description=Komplette live analyser med hundredvis af funktioner, herunder vindstreamlets, sammenligningsdiagrammer, avancerede visualiseringer på kortet og meget mere features_organize_events_title=Organiser begivenheder features_organize_events_description=Kør Sailing Analytics under din regatta med vores gratis sporingsapp eller en professionel sporingstjeneste, f.eks. TracTrac. Manøvreregistrering og -analyser +features_organize_events_url=https://support.sapsailing.com/hc/en-us/articles/360018169799-Create-a-simple-event-on-my-sapsailing-com features_events_with_more_regatta_title=Begivenheder med mere end en regatta features_events_with_more_regatta_description=Du kan oprette en begivenhed med flere klasser eller en sæson af begivenheder, der tæller med i en sæsonrangliste features_connect_to_tractrac_title=Opret forbindelse til TracTrac features_connect_to_tractrac_description=Opret forbindelse til professionel sporingstjeneste +features_connect_to_tractrac_url=https://tractrac.com/ features_imports_title=Importer eksterne data features_imports_description=Importer filformaterne GPX og KML, GRIB-filer og ekspeditionsprotokoller features_media_management_title=Medieadministration @@ -60,10 +62,12 @@ features_maneuver_analytics_title=Manøvreanalyser features_maneuver_analytics_description=Avancerede analyser af konkurrenternes manøvreudførelse, herunder tab ved manøvre, drejehastighed og vinkel for manøvre features_wind_analytics_title=Vindanalyser features_wind_analytics_description=Avancerede analyser af de indsamlede vinddata. Farvet animeret overlay og strip-diagrammer for hver inkluderet kilde for vind -features_data_mining_title=Data mining -features_data_mining_description=Data mining på tværs af kapsejladser og begivenheder. Afhængigt af plantype for kun arkiv (alt, hvad der kan findes under www.sapsailing.com) eller alle underdomæner (fx for ligaer, live begivenheder eller klubservere) -trial_name=Prøveversion -trial_description=Gratis prøveversion af alle planer for én dag, herunder premium- og data mining-planen. Kan kun abonneres på én gang +features_data_mining_title=Data mining-Arkiv +features_data_mining_description=Data mining til data fra tidligere begivenheder på tværs af kapsejladser og begivenheder +features_data_mining_all_title=Data mining - Alle +features_data_mining_all_description=Mens du med "Arkiv"-planen kan bruge data mining til tidligere begivenheder, der allerede er arkiveret, gør planen "Alle" det muligt for dig også at bruge data mining til live begivenheder og igangværende ligasæsoner. Den indeholder også alle data fra arkivet (alt, der kan findes under www.sapsailing.com) og alle underdomæner (f.eks. for ligaer, live begivenheder eller klubservere) +trial_name=Gratis prøveversion +trial_description=Gratis prøveversion af alle planer for én dag, herunder "premium-" og begge "data mining"-planer. Kan kun abonneres på én gang trial_info= trial_price_info=Test én dag gratis trial_features=Alt fra data mining alt-planen|Alle funktioner inkluderet|Gælder for en dag diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_es.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_es.properties index 07f3bbb29c8..a8a68d05f9b 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_es.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_es.properties @@ -5,27 +5,27 @@ payment_interval_DAY=día support_subject=Solicitud de información y servicio de SAP Sailing Analytics businessModelTitle=Modelo empresarial businessModelDescription=SAP ha decidido ampliar su solución gratuita lanzando una oferta de suscripción. Si es de los que disfruta con las funciones avanzadas de SAP Sailing Analytics, nos gustaría pedirle ayuda con una contribución mientras sigue disfrutando de las carreras y teniendo a su disposición la clasificación de vela en tiempo real de manera totalmente gratuita. SAP ha patrocinado íntegramente esta solución durante más de una década y ha estado disponible para miles de eventos de navegación en todo el mundo. Ahora tiene la oportunidad de ayudarnos a que toda la comunidad náutica pueda seguir utilizando esta aplicación. Todo lo recaudado con las suscripciones se invertirá en operaciones, soporte, mantenimiento y a continuar desarrollando SAP Sailing Analytics. Si tiene cualquier tipo de sugerencia, o simplemente quiere mantenerse informado del desarrollo, entre en https://bugzilla.sapsailing.com. Le agradecemos su apoyo y comprensión. -free_subscription_plan_name=Gratis -free_subscription_plan_description=Pruébelo +free_subscription_plan_name=Básico +free_subscription_plan_description=Cree su propia cuenta. Pruébelo. free_subscription_plan_info= free_subscription_plan_price_info= -free_subscription_plan_features=Clasificación básica de vela en tiempo real|Crear su propia cuenta y realizar análisis de la navegación para su regata o entrenamiento con nuestra aplicación de rastreo gratuita o un servicio de rastreo profesional|Vídeos de YouTube Sync live con sus carreras +free_subscription_plan_features=Clasificación básica de vela en tiempo real|Realizar análisis de la navegación para su regata o entrenamiento con nuestra aplicación de rastreo gratuita o un servicio de rastreo profesional|Vídeos de YouTube Sync live con sus carreras premium_name=Premium premium_description=Todas las funciones Premium, como la superposición del mapa de vientos, el simulador y métricas mejoradas, como la distancia al líder, la distancia navegada y el error de recorrido. premium_info= premium_price_info=Pago único premium_features=Todo lo del plan gratuito|Análisis completo en tiempo real con cientos de funciones, incluidas corrientes de aire, gráficos de comparación o distancia al líder|Marca de la cronología personal con vídeos y notas|Visualizaciones avanzadas en el mapa y mucho más.|Consulte más abajo la lista completa de funciones Premium -data_mining_archive_name=Data Mining: Archivo +data_mining_archive_name=Data Mining - Archivo data_mining_archive_description=Data Mining para eventos y carreras archivadas data_mining_archive_info= data_mining_archive_price_info=Pago único data_mining_archive_features=Todo desde el plan Premium|Data Mining eficiente para eventos y carreras archivadas que se puede encontrar en la dirección www.sapsailing.com -data_mining_all_name=Data Mining: TODO +data_mining_all_name=Data Mining - Todo data_mining_all_description=Data Mining en todos los eventos y carreras data_mining_all_info= data_mining_all_price_info=Pago único -data_mining_all_features=Todo desde el plan Archivo de Data Mining|Data Mining eficiente que incluye datos adicionales de todos los subdominios de sapsailing.com, p. ej., para ligas, eventos en directo o servidores del club -free_subscription_plan_shortname=gratis +data_mining_all_features=Todo desde el plan Archivo de Data Mining|Data Mining eficiente que incluye datos adicionales de todos los subdominios de sapsailing.com, p. ej., para ligas, eventos en tiempo real o servidores de clubes +free_subscription_plan_shortname=básico premium_subscription_plan_shortname=premium datamining_subscription_plan_shortname=data mining features_limited_live_analytics_title=Análisis en tiempo real (limitado) @@ -34,10 +34,12 @@ features_full_live_analytics_title=Análisis en tiempo real (completo) features_full_live_analytics_description=Análisis completo en tiempo real con cientos de funciones, incluidas corrientes de aire, gráficos de comparación, visualizaciones avanzadas en el mapa, y mucho más features_organize_events_title=Organizar eventos features_organize_events_description=Realizar el análisis de navegación para su regata con nuestra aplicación de rastreo gratuita o un servicio de rastreo profesional, como Trac Trac. Detección de maniobra y análisis +features_organize_events_url=https://support.sapsailing.com/hc/en-us/articles/360018169799-Create-a-simple-event-on-my-sapsailing-com features_events_with_more_regatta_title=Eventos con más de una regata features_events_with_more_regatta_description=Puede crear un evento de varias clases o una temporada de recuento de eventos en una clasificación de temporada features_connect_to_tractrac_title=Conexión a Trac Trac features_connect_to_tractrac_description=Conexión a servicio profesional de rastreo +features_connect_to_tractrac_url=https://tractrac.com/ features_imports_title=Importar datos externos features_imports_description=Importar formatos de fichero GPX y KML, ficheros GRIB y logs de expedición features_media_management_title=Gestión de medios @@ -60,10 +62,12 @@ features_maneuver_analytics_title=Análisis de maniobras features_maneuver_analytics_description=Análisis avanzado de la ejecución de las maniobras de los competidores, incluida la pérdida de maniobra, velocidad de giro y ángulo de maniobra features_wind_analytics_title=Análisis del viento features_wind_analytics_description=Análisis avanzado de los datos recogidos relativos al viento, superposición animada en colores y gráficos de bandas para cada fuente de viento considerada. -features_data_mining_title=Data Mining -features_data_mining_description=Data Mining en carreras y eventos. Dependiendo del tipo de plan solo para archivo (está todo en www.sapsailing.com) o todos los subdominios (p. ej., para ligas, eventos en tiempo real o servidores del club.) -trial_name=Versión de prueba -trial_description=Versión de prueba gratuita de todos los planes, incluidos los planes Premium y Data Mining. La suscripción solo se puede realizar una vez +features_data_mining_title=Archivo de Data Mining +features_data_mining_description=Utilice Data Mining en datos de eventos pasados entre carreras y eventos. +features_data_mining_all_title=Data Mining - Todo +features_data_mining_all_description=Mientras que con el plan "Archivo" puede usar Data Mining para eventos pasados que ya se han archivados, el plan "Todo" le permite usar Data Mining también para eventos en tiempo real y temporadas de liga en curso. También incluye todos los datos del archivo (todo lo que se puede encontrar en www.sapsailing.com) y todos los subdominios (por ejemplo, para ligas, eventos en tiempo real o servidores de clubes). +trial_name=Versión de prueba gratuita +trial_description=Versión de prueba gratuita de todos los planes durante un día, incluidos los planes "Premium" y "Data Mining". La suscripción solo se puede realizar una vez trial_info= trial_price_info=Pruébelo un día gratis trial_features=Todos los planes de Data Mining|Todas las funciones incluidas|Válido durante un día diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_fr.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_fr.properties index 62213559532..16ae6aac941 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_fr.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_fr.properties @@ -5,11 +5,11 @@ payment_interval_DAY=jour support_subject=Demande de service et d''informations pour SAP Sailing Analytics businessModelTitle=Modèle de gestion businessModelDescription=Nous avons décidé d''élargir notre solution gratuite avec une offre d''abonnement. Vous pouvez continuer de suivre gratuitement les courses ainsi que le palmarès actualisé en direct en fonction du vent, mais, si vous aimez les nombreuses fonctionnalités qu''offre SAP Sailing Analytics, nous apprécierions beaucoup une contribution de votre part. SAP a pleinement sponsorisé cette solution pendant plus d''une décennie et l''a rendue accessible à des milliers d''événements nautiques à travers le monde. Vous avez désormais l''opportunité de nous aider à garantir qu''elle restera à la disposition de la communauté des passionnés de navigation. Chaque paiement effectué pour un abonnement bénéficiera directement à Sailing Analytics, aussi bien au niveau des opérations que de l''assistance, de l''entretien et du développement. Laissez-nous vos suggestions sur https://bugzilla.sapsailing.com et suivez son développement ici. Nous vous remercions de votre compréhension et de votre soutien indéfectible. -free_subscription_plan_name=Gratuit -free_subscription_plan_description=Essayez-le +free_subscription_plan_name=Offre basique +free_subscription_plan_description=Essayez-la en créant votre propre compte. free_subscription_plan_info= free_subscription_plan_price_info= -free_subscription_plan_features=Palmarès de base actualisé en direct en fonction du vent|Création de votre propre compte et exécution de la solution Sailing Analytics pour votre régate ou votre entraînement à l''aide de notre application de suivi gratuite ou d''un service de suivi professionnel|Synchronisation en direct de vidéos YouTube avec vos courses +free_subscription_plan_features=Palmarès de base actualisé en direct en fonction du vent|Utilisez la solution Sailing Analytics pour votre régate ou votre entraînement à l''aide de notre application de suivi gratuite ou d''un service de suivi professionnel|Synchronisation en direct de vidéos YouTube avec vos courses premium_name=Premium premium_description=Toutes les fonctionnalités Premium, par exemple la superposition de la carte des vents, le simulateur et les métriques améliorées (notamment l''écart avec le concurrent en tête, la distance parcourue, l''écart de route) premium_info= @@ -20,12 +20,12 @@ data_mining_archive_description=Exploration des données des courses et manifest data_mining_archive_info= data_mining_archive_price_info=Paiement unique data_mining_archive_features=Toutes les fonctionnalités du plan d''abonnement Premium|Exploration approfondie des données des courses et manifestations archivées consultables depuis www.sapsailing.com -data_mining_all_name=Exploration de données - TOUT +data_mining_all_name=Exploration de données - Complet data_mining_all_description=Exploration des données de toutes les courses et manifestations data_mining_all_info= data_mining_all_price_info=Paiement unique data_mining_all_features=Toutes les fonctionnalités du plan d''abonnement Exploration de données - Archive|Exploration approfondie des données, y compris des données supplémentaires des sous-domaines de sapsailing.com (par exemple : ligues, manifestations en direct ou encore serveurs de club) -free_subscription_plan_shortname=gratuit +free_subscription_plan_shortname=basique premium_subscription_plan_shortname=premium datamining_subscription_plan_shortname=exploration de données features_limited_live_analytics_title=Analyses en direct (limitées) @@ -33,11 +33,13 @@ features_limited_live_analytics_description=Analyses en direct limitées features_full_live_analytics_title=Analyses en direct (complètes) features_full_live_analytics_description=Analyses complètes actualisées en direct avec des centaines de fonctionnalités, notamment liées aux couloirs de vent, aux graphiques de comparaison, à des visualisations avancées sur carte et bien plus encore features_organize_events_title=Organisation de manifestations -features_organize_events_description=Exécution de la solution Sailing Analytics pendant une régate à l''aide de notre application de suivi gratuite ou d''un service de suivi professionnel tel que TracTrac. Analyses et détection des manœuvres +features_organize_events_description=Utilisez la solution Sailing Analytics pendant une régate à l''aide de notre application de suivi gratuite ou d''un service de suivi professionnel tel que TracTrac. Analyses et détection des manœuvres +features_organize_events_url=https://support.sapsailing.com/hc/en-us/articles/360018169799-Create-a-simple-event-on-my-sapsailing-com features_events_with_more_regatta_title=Manifestations avec plusieurs régates features_events_with_more_regatta_description=Création d''une manifestation à plusieurs catégories ou d''une saison de manifestations comptant pour un palmarès saisonnier features_connect_to_tractrac_title=Connexion à TracTrac features_connect_to_tractrac_description=Connexion au service de suivi professionnel +features_connect_to_tractrac_url=https://tractrac.com/ features_imports_title=Importation de données externes features_imports_description=Importation de fichiers aux formats GPX, KML et GRIB et de journaux d''Expedition features_media_management_title=Gestion des médias @@ -60,10 +62,12 @@ features_maneuver_analytics_title=Analyses des manœuvres features_maneuver_analytics_description=Analyses avancées de l''exécution des manœuvres des concurrents, entre autres : pertes liées aux manœuvres, taux de giration, angle de manœuvre features_wind_analytics_title=Analyses du vent features_wind_analytics_description=Analyses avancées des données de vent collectées : superposition animée et colorée, cartes d''itinéraire pour chaque direction du vent prise en compte -features_data_mining_title=Exploration de données -features_data_mining_description=Exploration des données de courses et de manifestations : selon le plan d''abonnement, accès uniquement aux archives (tout ce qui est consultable depuis www.sapsailing.com) ou à tous les sous-domaines (exemple : ligues, manifestations en direct et serveurs de club) +features_data_mining_title=Exploration de données - Archive +features_data_mining_description=Utilisez l''exploration de données avec des données issues d''événements passés dans des courses et manifestations. +features_data_mining_all_title=Exploration de données - Complet +features_data_mining_all_description=Le plan "Archive" vous permet d''utiliser l''exploration de données pour des manifestations passées qui ont déjà été archivées, tandis que le plan "Complet" vous permet d''utiliser l''exploration de données également pour les manifestations en direct et les saisons de ligue en cours. Ce plan inclut également toutes les données de l''archive (toutes les données disponibles sur www.sapsailing.com) et tous les sous-domaines (par exemple : ligues, manifestations en direct ou encore serveurs de club). trial_name=Version d''essai -trial_description=Version d''essai pour tous les plans pour une journée, y compris les plans Premium et Exploration de données. Souscription possible une seule fois. +trial_description=Version d''essai d''un jour pour tous les plans, y compris les plans "Premium" et "Exploration de données". Un seule souscription possible. trial_info= trial_price_info=Tester gratuitement pendant une journée trial_features=Toutes les fonctionnalités du plan d''abonnement Exploration de données - Tout|Toutes les fonctionnalités sont incluses|Valide une journée diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_it.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_it.properties index 07d7021f7be..4d7c6849ae3 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_it.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_it.properties @@ -5,11 +5,11 @@ payment_interval_DAY=giorno support_subject=Servizio SAP Sailing Analytics e richiesta di informazioni businessModelTitle=Modello business businessModelDescription=Abbiamo deciso di ampliare la soluzione gratuita attraverso un''offerta di sottoscrizione. Anche se puoi ancora seguire le azioni di gara di base e vedere gratuitamente la classifica live basata sul vento, ti saremmo grati se volessi offrire un contributo qualora apprezzassi le numerose funzioni avanzate offerte da SAP Sailing Analytics. Per più di dieci anni, SAP ha sponsorizzato al 100% la soluzione e l''ha messa a disposizione di migliaia di eventi velistici in tutto il mondo. Ora hai la possibilità di aiutare a far sì che la community velistica continui a usufruirne. Qualsiasi sottoscrizione tu scelga, tutti i pagamenti verranno destinati al funzionamento, al supporto, alla manutenzione e all''ulteriore sviluppo di Sailing Analytics. Puoi lasciarci i tuoi commenti all''indirizzo https://bugzilla.sapsailing.com, da cui puoi seguire i progressi dello sviluppo del software. Grazie della comprensione e del continuo supporto! -free_subscription_plan_name=Gratuito -free_subscription_plan_description=Provalo +free_subscription_plan_name=Di base +free_subscription_plan_description=Crea il tuo account. Provalo free_subscription_plan_info= free_subscription_plan_price_info= -free_subscription_plan_features=Classifica live base basata sul vento|Crea il tuo account e porta avanti l''analisi velistica della tua regata o la tua formazione tramite la nostra app di tracciamento gratuita o un servizio di tracciamento professionale|Sincronizza i video live su YouTube con le tue gare +free_subscription_plan_features=Classifica live base basata sul vento|Esegui l''analisi velistica della tua regata o dell''allenamento con la nostra app di tracciamento gratuita o con un servizio di tracciamento professionale|Sincronizza i video live su YouTube con le tue gare premium_name=Premium premium_description=Tutte le funzionalità premium, quali l''overlay della mappa dei venti, il simulatore e le metriche avanzate, quali la distanza dal concorrente in testa, la distanza navigata e l''errore di direzione trasversale premium_info= @@ -20,12 +20,12 @@ data_mining_archive_description=Data mining nelle gare e negli eventi archiviati data_mining_archive_info= data_mining_archive_price_info=Pagamento una tantum data_mining_archive_features=Tutti i contenuti del piano premium|Data mining efficiente per le gare e gli eventi archiviati reperibili all’indirizzo www.sapsailing.com -data_mining_all_name=Data mining - TUTTO +data_mining_all_name=Data mining - Tutto data_mining_all_description=Data mining in tutte le gare e in tutti gli eventi. data_mining_all_info= data_mining_all_price_info=Pagamento una tantum data_mining_all_features=Tutti i contenuti del piano di data mining archivio|Data mining efficiente inclusi i dati supplementari di tutti i domini secondari di sapsailing.com, ad es.: per leghe sportive, eventi live o server club -free_subscription_plan_shortname=Gratuito +free_subscription_plan_shortname=di base premium_subscription_plan_shortname=Premium datamining_subscription_plan_shortname=data mining features_limited_live_analytics_title=Analisi live (con limitazioni) @@ -33,11 +33,13 @@ features_limited_live_analytics_description=Analisi live con limitazioni features_full_live_analytics_title=Analisi live (completo) features_full_live_analytics_description=Analisi live completa con centinaia di funzionalità, tra cui streamlet dei venti, grafici di confronto, visualizzazioni avanzate delle mappe e molto altro ancora features_organize_events_title=Organizza eventi -features_organize_events_description=Esegui Sailing Analytics nella tua regata con la nostra app di tracciamento gratuita o con un servizio di tracciamento professionale come ad esempio Trac Trac. Analisi e rilevamento manovre +features_organize_events_description=Esegui l''analisi velistica della tua regata con la nostra app di tracciamento gratuita o con un servizio di tracciamento professionale come ad esempio Trac Trac. Analisi e rilevamento manovre +features_organize_events_url=https://support.sapsailing.com/hc/en-us/articles/360018169799-Create-a-simple-event-on-my-sapsailing-com features_events_with_more_regatta_title=Eventi con più regate features_events_with_more_regatta_description=È possibile creare un evento multiclasse o una stagione di eventi inclusi in una classifica stagionale features_connect_to_tractrac_title=Connetti a Trac Trac features_connect_to_tractrac_description=Connetti a un servizio di tracciamento professionale +features_connect_to_tractrac_url=https://tractrac.com/ features_imports_title=Importa dati esterni features_imports_description=Importa i formati file GPX e KML, i file GRIB e i registri Expedition features_media_management_title=Gestione supporti @@ -60,10 +62,12 @@ features_maneuver_analytics_title=Analisi manovre features_maneuver_analytics_description=Analisi avanzata dell’esecuzione delle manovre dei concorrenti, inclusi la perdita della manovra, la velocità di svolta e l’angolo di manovra features_wind_analytics_title=Analisi venti features_wind_analytics_description=Analisi avanzata dei dati raccolti sui venti; overlay animato a colori e strip charts per ogni sorgente di vento considerata -features_data_mining_title=Data mining -features_data_mining_description=Data mining nelle gare e negli eventi. In base al tipo di piano esclusivamente per archivio (tutti i contenuti reperibili all’indirizzo www.sapsailing.com) o per tutti i domini secondari (ad es. per leghe sportive, eventi live o server club) -trial_name=Prova -trial_description=Versione di prova gratuita di tutti i piani della durata di un giorno, compresi il piano premium e di data mining. È possibile effettuare l''abbonamento solo una volta +features_data_mining_title=Data mining - Archivio +features_data_mining_description=Utilizza il data mining sui dati di eventi passati di gare ed eventi +features_data_mining_all_title=Data mining - Tutto +features_data_mining_all_description=Quando si è in possesso del piano "Archivio", è possibile utilizzare il data mining per eventi passati già archiviati; mentre il piano "Tutto" consente di utilizzare il data mining anche per gli eventi live e le stagioni di campionato in corso. Esso include inoltre tutti i dati di archivio (tutto ciò che si può trovare in www.sapsailing.com) e tutti i sottodomini (ad esempio per campionati, eventi live o server club) +trial_name=Versione di prova gratuita +trial_description=Versione di prova gratuita di tutti i piani della durata di un giorno, compresi il piano "Premium" ed entrambi i piani di "Data mining". È possibile effettuare l''abbonamento solo una volta trial_info= trial_price_info=Prova un giorno gratuitamente trial_features=Tutti i contenuti del piano data mining completo|Tutte le funzionalità incluse|Valido per un giorno diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_ja.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_ja.properties index e5d2ae29863..58f6edc0278 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_ja.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_ja.properties @@ -5,11 +5,11 @@ payment_interval_DAY=日 support_subject=SAP Sailing Analytics サービスおよび情報依頼 businessModelTitle=ビジネスモデル businessModelDescription=無料のソリューションをサブスクリプションのオファーにより延長することを決定いたしました。基本的なレースアクションをフォローし、風ベースのリーダーボード実況を無料で表示することは引き続き可能ですが、SAP Sailing Analytics が提供している多くの先進的な機能を歓迎していただいている場合はご寄付もお願いしたいと考えております。10 年以上にわたって、SAP はこのソリューションに全面的に出資しており、世界中の数千のセーリングイベントで利用できるようにしてまいりました。これからは、このソリューションがセーリングコミュニティで利用し続けられるよう支援する機会をお持ちになれます。選択するどのサブスクリプションへの支払も、すべて Sailing Analytics の運営、サポート、メンテナンス、そしてさらなる開発に向けられます。ご提案があれば https://bugzilla.sapsailing.com に書き込むことができ、開発の進捗をそこでフォローすることができます。皆様のご理解と、変わらぬご支持に感謝いたします。 -free_subscription_plan_name=無料 -free_subscription_plan_description=試用 +free_subscription_plan_name=基本 +free_subscription_plan_description=自分のアカウントを作成して、試用してみてください。 free_subscription_plan_info= free_subscription_plan_price_info= -free_subscription_plan_features=風ベースの基本的なリーダーボード実況|自分のアカウントの作成および無料の追跡アプリまたはプロフェッショナル追跡サービスでのレガッタまたはトレーニングの Sailing Analytics の実行|レースでの同期実況 YouTube 動画 +free_subscription_plan_features=風ベースの基本的なリーダーボード実況|無料の追跡アプリまたはプロフェッショナル追跡サービスでのレガッタまたはトレーニングの Sailing Analytics の実行|レースでの同期実況 YouTube 動画 premium_name=プレミアム premium_description=風マップオーバーレイ、シミュレータなどのプレミアム機能、ならびに首位艇との距離差、帆走した距離、クロストラックエラーなどの拡張メトリックのすべて premium_info= @@ -25,7 +25,7 @@ data_mining_all_description=すべてのレースおよびイベントにわた data_mining_all_info= data_mining_all_price_info=ワンタイム支払 data_mining_all_features=データマイニングアーカイブプランからのすべて|sapsailing.com のすべてのサブドメインからの追加データを含む強力なデータマイニング (リーグ、実況イベント、クラブサーバのものなど) -free_subscription_plan_shortname=無料 +free_subscription_plan_shortname=基本 premium_subscription_plan_shortname=プレミアム datamining_subscription_plan_shortname=データマイニング features_limited_live_analytics_title=Live Analytics (限定版) @@ -34,10 +34,12 @@ features_full_live_analytics_title=Live Analytics (完全版) features_full_live_analytics_description=風ストリームレット、比較チャート、詳細マップ可視化などを含む、数百の機能を伴う完全版の Live Analytics です features_organize_events_title=イベントの組織化 features_organize_events_description=無料の追跡アプリや、Trac Trac のようなプロフェッショナル追跡サービスにより、レガッタでの Sailing Analytics を実行します。マニューバー検知および分析 +features_organize_events_url=https://support.sapsailing.com/hc/en-us/articles/360018169799-Create-a-simple-event-on-my-sapsailing-com features_events_with_more_regatta_title=複数レガッタによるイベント features_events_with_more_regatta_description=複数クラスのイベントや、シーズンごとのリーダーボードでカウントされるイベントのシーズンを作成可能 features_connect_to_tractrac_title=TracTrac への接続 features_connect_to_tractrac_description=プロフェッショナル追跡サービスへの接続 +features_connect_to_tractrac_url=https://tractrac.com/ features_imports_title=外部データのインポート features_imports_description=GPX および KML ファイル形式、GRIB ファイル、ならびに Expedition ログのインポート features_media_management_title=メディア管理 @@ -60,10 +62,12 @@ features_maneuver_analytics_title=マニューバー分析 features_maneuver_analytics_description=マニューバーロス、回転レート、マニューバー角度を含む、競技者のマニューバー実行に関する詳細分析 features_wind_analytics_title=風分析 features_wind_analytics_description=収集された風データに関する詳細分析 (考慮される風源ごとの動く色付きのオーバーレイおよびストリップチャート) -features_data_mining_title=データマイニング -features_data_mining_description=レースおよびイベントにわたるデータマイニング。アーカイブのみ (www.sapsailing.com で見つけることのできるすべて) またはすべてのサブドメイン (リーグ、実況イベント、またはクラブサーバのものなど) のプランタイプに依存。 -trial_name=トライアル -trial_description=プレミアムおよびデータマイニングプランを含む、すべてのプランを 1 日間利用できる無料トライアル +features_data_mining_title=データマイニング - アーカイブ +features_data_mining_description=レースおよびイベントにわたる過去のイベントからのデータについてデータマイニングを使用 +features_data_mining_all_title=データマイニング - すべて +features_data_mining_all_description="アーカイブ" プランではすでにアーカイブされている過去のイベントに対してデータマイニングを使用することができますが、"すべて" プランでは実況イベントや進行中のリーグシーズンに対してもデータマイニングを使用することが可能です。また、アーカイブ (www.sapsailing.com で見つけられるすべて) およびすべてのサブドメイン (リーグ、実況イベント、クラブサーバのものなど) からのすべてのデータも含まれます +trial_name=無料トライアル +trial_description="プレミアム" および両方の "データマイニング" プランを含む、すべてのプランを 1 日間利用できる無料トライアル。1 回だけサブスクライブが可能 trial_info= trial_price_info=無料で 1 日間テスト trial_features=データマイニングのすべてのプランからのすべて|すべての機能を含む|1 日間有効 diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_pt.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_pt.properties index 31f283d55a5..9d3bcf888c9 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_pt.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_pt.properties @@ -5,27 +5,27 @@ payment_interval_DAY=dia support_subject=Solicitação de informação e serviço do SAP Sailing Analytics businessModelTitle=Modelo de negócio businessModelDescription=Decidimos ampliar nossa solução gratuita com uma oferta de assinatura. Embora você ainda possa seguir a ação básica das regatas e ver um painel de classificação com base no vento ao vivo gratuitamente, gostaríamos de solicitar sua contribuição caso aprecie as diversas funcionalidades avançadas que o SAP Sailing Analytics oferece. Durante mais de uma década, a SAP patrocinou por completo essa solução e a disponibilizou a milhares de eventos de vela por todo o mundo. Agora você tem a oportunidade de ajudar a manter a solução disponível para a comunidade de vela. Todos os pagamentos por qualquer assinatura que escolha irão para operações, suporte, manutenção e continuação do desenvolvimento do Sailing Analytics. Você pode deixar suas sugestões em https://bugzilla.sapsailing.com e seguir o progresso do desenvolvimento aqui. Agradecemos sua compreensão e seu contínuo suporte! -free_subscription_plan_name=Grátis -free_subscription_plan_description=Experimente +free_subscription_plan_name=Básico +free_subscription_plan_description=Crie a sua própria conta. Experimente. free_subscription_plan_info= free_subscription_plan_price_info= -free_subscription_plan_features=Painel de classificação com base no vento ao vivo básico|Crie sua própria conta e execute a análise da vela para sua regata ou treinamento com nosso app de rastreamento gratuito ou um serviço de rastreamento profissional|Sincronize vídeos do YouTube ao vivo com suas corridas +free_subscription_plan_features=Painel de classificação com base no vento ao vivo básico|Execute a análise da vela para sua regata ou treinamento com nosso app de rastreamento gratuito ou um serviço de rastreamento profissional|Sincronize vídeos do YouTube ao vivo com suas corridas premium_name=Premium premium_description=Todas as funcionalidades Premium, como sobreposição do mapa de vento, o simulador e a métrica ampliada, como distância para líder, distância velejada e distância da embarcação ao waypoint premium_info= premium_price_info=Pagamento único -premium_features=Tudo do plano gratuito|Análise ao vivo completa com centenas de funcionalidades, incluindo cursos do vento, gráficos de comparação ou distância para líder |Tag da linha de tempo pessoal com vídeos e notas|Visualizações avançadas no mapa e muito mais.|Veja a lista completa de funcionalidades Premium embaixo +premium_features=Tudo do plano gratuito|Análise ao vivo completa com centenas de funcionalidades, incluindo curso do vento, gráficos de comparação ou distância para líder |Tag da linha de tempo pessoal com vídeos e notas|Visualizações avançadas no mapa e muito mais.|Veja a lista completa de funcionalidades Premium embaixo data_mining_archive_name=Data mining - Arquivo data_mining_archive_description=Data mining em corridas e eventos arquivados data_mining_archive_info= data_mining_archive_price_info=Pagamento único data_mining_archive_features=Tudo do plano Premium|Data mining poderoso para corridas e eventos arquivados que podem ser encontrados em www.sapsailing.com -data_mining_all_name=Data mining - TUDO +data_mining_all_name=Data mining - Tudo data_mining_all_description=Data mining em todas as corridas e eventos data_mining_all_info= data_mining_all_price_info=Pagamento único data_mining_all_features=Tudo do plano do arquivo de data mining|Data mining poderoso incluindo dados adicionais de todos os subdomínios de sapsailing.com, por exemplo: para ligas, eventos ao vivo ou servidores de clubes -free_subscription_plan_shortname=grátis +free_subscription_plan_shortname=básico premium_subscription_plan_shortname=premium datamining_subscription_plan_shortname=data mining features_limited_live_analytics_title=Análise ao vivo (limitada) @@ -34,10 +34,12 @@ features_full_live_analytics_title=Análise ao vivo (completa) features_full_live_analytics_description=Análise ao vivo completa com centenas de funcionalidades, incluindo cursos de vento, gráficos de comparação, visualizações avançadas do mapa e muito mais features_organize_events_title=Organizar eventos features_organize_events_description=Execute o Sailing Analytics em sua regata com nosso app de rastreamento gratuito ou um serviço de rastreamento profissional. como o Trac Trac. Deteção e análise de manobras +features_organize_events_url=https://support.sapsailing.com/hc/en-us/articles/360018169799-Create-a-simple-event-on-my-sapsailing-com features_events_with_more_regatta_title=Eventos com mais de uma regata features_events_with_more_regatta_description=Você pode criar um evento de várias classes ou uma época de eventos contando em um painel de classificação sazonal features_connect_to_tractrac_title=Conecte-se ao Trac Trac features_connect_to_tractrac_description=Conecte-se ao serviço de rastreamento profissional +features_connect_to_tractrac_url=https://tractrac.com/ features_imports_title=Importar dados externos features_imports_description=Importar formatos de arquivos GPX e KML, arquivos GRIB e logs de Expedition features_media_management_title=Gerenciamento de mídias @@ -60,10 +62,12 @@ features_maneuver_analytics_title=Análise de manobras features_maneuver_analytics_description=Análise avançada referente à execução de manobras dos competidores, incluindo perda de manobra, taxa de viragem e ângulo da manobra features_wind_analytics_title=Análise do evento features_wind_analytics_description=Análise avançada referente a dados coletados do vento; gráficos de rotas e sobreposições animados e coloridos para cada origem de vento considerada -features_data_mining_title=Data mining -features_data_mining_description=Data mining em corridas e eventos. Dependendo do tipo de plano, só para arquivo (tudo o que pode ser encontrado em www.sapsailing.com) ou todos os subdomínios (por exemplo, para ligas, eventos ao vivo ou servidores de clubes) -trial_name=Teste -trial_description=Teste gratuito de todos os planos por um dia, incluindo o plano Premium e de data mining. Só pode ser assinado uma vez +features_data_mining_title=Data mining-Arquivo +features_data_mining_description=Utilize Data mining em dados de eventos passados em corridas e eventos +features_data_mining_all_title=Data mining - Tudo +features_data_mining_all_description=Com o plano "Arquivo", você pode utilizar Data mining para eventos passados que já foram arquivados; o plano "Tudo" permite que vcê utilize Data mining também para eventos ao vivo e temporadas da liga em curso. Também inclui todos os dados do arquivo (tudo o que pode ser encontrado em www.sapsailing.com) e todos os subdomínios (por exemplo, para ligas, eventos ao vivo ou servidores de clubes) +trial_name=Teste gratuito +trial_description=Teste gratuito de todos os planos por um dia, incluindo o plano Premium e os planos "Data mining". Só pode ser assinado uma vez trial_info= trial_price_info=Testar gratuitamente por um dia trial_features=Tudo do plano de data mining Tudo|Todas as funcionalidades incluídas|Válido por um dia diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_ru.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_ru.properties index 63e65eb1e97..fdc9cb99409 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_ru.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_ru.properties @@ -5,27 +5,27 @@ payment_interval_DAY=день support_subject=Запрос сервиса и информации SAP Sailing Analytics businessModelTitle=Бизнес-модель businessModelDescription=Мы расширяем наше бесплатное решение предложением подписки. Хотя вы по-прежнему можете бесплатно следить за основными парусными гонками и видеть актуальную таблицу лидеров, мы просим вас внести свой вклад, если вам нравятся многие расширенные функции, которые предлагает SAP Sailing Analytics. На протяжении более чем 10 лет компания SAP полностью спонсировала это решение и делала его доступным для тысяч мероприятий, относящихся к парусному спорту, по всему миру. Теперь у вас есть возможность помочь нам поддерживать доступность данного решения для парусного сообщества. Все платежи по выбранной вами подписке пойдут на работу, поддержку, обслуживание и дальнейшую разработку Sailing Analytics. Вы можете оставить свои предложения по адресу https://bugzilla.sapsailing.com и там же отслеживать ход разработки. Благодарим за понимание и непрекращающуюся поддержку! -free_subscription_plan_name=Бесплатно -free_subscription_plan_description=Попробуйте +free_subscription_plan_name=Базовый +free_subscription_plan_description=Создайте собственную учетную запись и попробуйте. free_subscription_plan_info= free_subscription_plan_price_info= -free_subscription_plan_features=Базовая актуальная таблица лидеров парусных гонок|Создайте собственную учетную запись и занимайтесь аналитикой для своей регаты или обучения с помощью нашего бесплатного приложения для отслеживания или профессионального сервиса отслеживания|Синхронизируйте прямые трансляции видео в YouTube со своими гонками +free_subscription_plan_features=Базовая актуальная таблица лидеров парусных гонок|Анализируйте свою регату или обучайтесь с помощью нашего бесплатного приложения для отслеживания или профессионального сервиса отслеживания|Синхронизируйте прямые трансляции видео в YouTube со своими гонками premium_name=Премиум premium_description=Все функции Премиум, такие как наложение карты ветра, симулятор и расширенные показатели, такие как отставание от лидера, расстояние под парусом и боковое уклонение premium_info= premium_price_info=Разовый платеж premium_features=Все из бесплатного плана|Полная актуальная аналитика с сотнями функций, включая потоки ветра,сравнительные диаграммы или отставание от лидера|Возможность помечать персональную хронологию видеороликами и примечаниями|Расширенные визуализации на карте и многое другое.|См. полный список функций Премиум ниже -data_mining_archive_name=Сбор данных - архив +data_mining_archive_name=Сбор данных - архив data_mining_archive_description=Сбор данных во всех архивных гонках и мероприятиях data_mining_archive_info= data_mining_archive_price_info=Разовый платеж data_mining_archive_features=Все из плана Премиум|Эффективный сбор данных по архивным гонкам и мероприятиям, которые можно найти на www.sapsailing.com -data_mining_all_name=Сбор данных - ВСЕ +data_mining_all_name=Сбор данных - все data_mining_all_description=Сбор данных во всех гонках и мероприятиях data_mining_all_info= data_mining_all_price_info=Разовый платеж data_mining_all_features=Все из плана "Сбор данных - архив"|Эффективный сбор данных, включающий дополнительные данные из всех поддоменов sapsailing.com, например по лигам, актуальным мероприятиям или серверам клубов -free_subscription_plan_shortname=бесплатно +free_subscription_plan_shortname=базовый premium_subscription_plan_shortname=премиум datamining_subscription_plan_shortname=сбор данных features_limited_live_analytics_title=актуальная аналитика (ограниченная) @@ -33,11 +33,13 @@ features_limited_live_analytics_description=Ограниченная актуа features_full_live_analytics_title=актуальная аналитика (полная) features_full_live_analytics_description=Полная актуальная аналитика с сотнями функций, включая потоки ветра, сравнительные диаграммы, расширенные визуализации на карте и многое другое features_organize_events_title=Организация мероприятий -features_organize_events_description=Занимайтесь аналитикой для своей регаты с помощью нашего бесплатного приложения для отслеживания или профессионального сервиса отслеживания, например Trac Trac. Определение и аналитика маневров +features_organize_events_description=Проводите аналитику для своей регаты с помощью нашего бесплатного приложения для отслеживания или профессионального сервиса отслеживания, например Trac Trac. Определение и аналитика маневров +features_organize_events_url=https://support.sapsailing.com/hc/en-us/articles/360018169799-Create-a-simple-event-on-my-sapsailing-com features_events_with_more_regatta_title=Мероприятия, включающие более одной регаты features_events_with_more_regatta_description=Можно создать многоклассовое мероприятие или сезон мероприятий, учитывающихся в сезонной таблице лидеров features_connect_to_tractrac_title=Соединение с Trac Trac features_connect_to_tractrac_description=Соединение с профессиональным сервисом отслеживания +features_connect_to_tractrac_url=https://tractrac.com/ features_imports_title=Импорт внешних данных features_imports_description=Импорт файлов в форматах GPX и KML, GRIB-файлов и журналов Expedition features_media_management_title=Управление медиа @@ -60,10 +62,12 @@ features_maneuver_analytics_title=Аналитика маневров features_maneuver_analytics_description=Расширенная аналитика выполнения маневров участниками соревнования, включающая потерю маневра, угловую скорость поворота и угол маневра features_wind_analytics_title=Аналитика ветра features_wind_analytics_description=Расширенная аналитика собранных данных о ветре; цветное анимированное наложение и диаграммы потоков ветра для каждого учитываемого источника ветра -features_data_mining_title=Сбор данных -features_data_mining_description=Сбор данных в гонках и мероприятиях. В зависимости от типа плана: только для архива (все, что можно найти на www.sapsailing.com) или для всех поддоменов (например, по лигам, актуальным мероприятиям или серверам клубов) +features_data_mining_title=Сбор данных-архив +features_data_mining_description=Используйте сбор данных прошлых событий по всем гонкам и событиям +features_data_mining_all_title=Сбор данных - все +features_data_mining_all_description=В плане "Архив" можно использовать сбор данных прошлых событий, которые уже архивированы, а план "Все" позволяет использовать также сбор данных текущих сезонов лиги. В него также включены все данные из архива (все, что можно найти на сайте www.sapsailing.com) и все поддомены (например для лиг, текущих событий и серверов клубов) trial_name=Пробная -trial_description=На один день предоставляется бесплатная пробная версия всех планов, включая "Премиум" и "Сбор данных". Подписку можно оформить только один раз +trial_description=На один день предоставляется бесплатная пробная версия всех планов, включая "Премиум" и оба плана "Сбор данных". Подписку можно оформить только один раз trial_info= trial_price_info=Попробуйте бесплатно, только один день trial_features=Все из плана "Сбор данных - все"|Включены все функции|Только один день diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_sl.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_sl.properties index 68b9fd57064..afc472920f5 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_sl.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_sl.properties @@ -5,27 +5,27 @@ payment_interval_DAY=dan support_subject=Zahteva za storitev SAP Sailing Analytics in informacije businessModelTitle=Poslovni model businessModelDescription=Odločili smo se, da našo brezplačno rešitev razširimo, tako da ponudimo naročnino. Čeprav lahko še vedno spremljate osnovno tekmovanje in si v živo brezplačno ogledate lestvico vodilnih na podlagi vetra, bi vas prosili za vaš prispevek, če cenite številne napredne funkcije SAP Sailing Analytics. SAP že več kot desetletje v celoti sponzorira to rešitev in jo daje na voljo številnim jadralnim dogodkom po vsem svetu. Zdaj imate priložnost, da pomagate, da je rešitev še naprej na voljo jadralni skupnosti. Vsa plačila naročnine po vaši izbiri so namenjena postopkom, podpori, vzdrževanju in nadaljnjemu razvoju Sailing Analytics. Svoje predloge lahko oddate na https://bugzilla.sapsailing.com, kjer lahko spremljate tudi napredek v razvoju. Zahvaljujemo se vam za razumevanje in stalno podporo. -free_subscription_plan_name=Brezplačno -free_subscription_plan_description=Preskusite +free_subscription_plan_name=Osnovno +free_subscription_plan_description=Ustvarite svoj račun. Preskusite. free_subscription_plan_info= free_subscription_plan_price_info= -free_subscription_plan_features=Osnovna lestvica vodilnih v živo na podlagi vetra|Ustvarite račun in opravite analitiko jadranja za regato ali trening z našo brezplačno aplikacijo za slednje ali strokovno storitvijo sledenja|Sinhronizirajte videoposnetke v YouTubu v živo s svojimi plovi +free_subscription_plan_features=Osnovna lestvica vodilnih v živo na podlagi vetra|Opravite analitiko jadranja za regato ali trening z našo brezplačno aplikacijo za slednje ali strokovno storitvijo sledenja|Sinhronizirajte videoposnetke v YouTubu v živo s svojimi plovi premium_name=Premium premium_description=Vse premium funkcije, kot je prekrivno okno z zemljevidom vetra, simulator in razširjena metrika, kot je razdalja do vodilnega, prepluta razdalja ter odstopanje od začrtane smeri premium_info= premium_price_info=Enkratno plačilo premium_features=Vse iz brezplačnega paketa|Celotna analitika v živo s številnimi funkcijami, vključno s tokovi vetra, primerjalnimi diagrami ali razdaljo do vodilnega|Označite osebno časovnico z videoposnetki in opombami|Napredne vizualizacije na zemljevidu in še veliko več.|Spodaj si oglejte seznam vseh Premium funkcij -data_mining_archive_name=Podatkovno rudarjenje - arhiv +data_mining_archive_name=Podatkovno rudarjenje - arhiv data_mining_archive_description=Podatkovno rudarjenje po arhiviranih plovih in dogodkih. data_mining_archive_info= data_mining_archive_price_info=Enkratno plačilo data_mining_archive_features=Vse iz premijskega paketa|Zmogljivo podatkovno rudarjenje za arhivirane plove in dogodke, ki jih je mogoče najti na www.sapsailing.com -data_mining_all_name=Podatkovno rudarjenje - VSE +data_mining_all_name=Podatkovno rudarjenje - vse data_mining_all_description=Podatkovno rudarjenje po vseh plovih in dogodkih data_mining_all_info= data_mining_all_price_info=Enkratno plačilo data_mining_all_features=Vse iz paketa arhiva podatkovnega rudarjenja|Zmogljivo podatkovno rudarjenje vključno z dodatni podatki iz vseh poddomen sapsailing.com, na primer za lige, dogodke v živo ali klubske strežnike -free_subscription_plan_shortname=brezplačno +free_subscription_plan_shortname=Osnovno premium_subscription_plan_shortname=Premium datamining_subscription_plan_shortname=podatkovno rudarjenje features_limited_live_analytics_title=Analitika v živo (omejeno) @@ -34,10 +34,12 @@ features_full_live_analytics_title=Analitika v živo (v celoti) features_full_live_analytics_description=Celotna analitika v živo s številnimi funkcijami, vključno s tokovi vetra, primerjalnimi diagrami, naprednimi vizualizacijami na zemljevidu in še veliko več features_organize_events_title=Organiziraj dogodke features_organize_events_description=Izvedite analitiko jadranja na regati z našo brezplačno aplikacijo za slednje ali strokovno storitvijo sledenja, kot je Trac Trac. Zaznavanje in analitika manevrov +features_organize_events_url=https://support.sapsailing.com/hc/en-us/articles/360018169799-Create-a-simple-event-on-my-sapsailing-com features_events_with_more_regatta_title=Dogodki z več kot eno regato features_events_with_more_regatta_description=Ustvarite lahko večrazredne dogodke ali sezono dogodkov, ki se upoštevajo pri sezonski lestvici vodilnih features_connect_to_tractrac_title=Vzpostavitev povezave s Trac Trac features_connect_to_tractrac_description=Vzpostavitev povezave s strokovno storitvijo sledenja +features_connect_to_tractrac_url=https://tractrac.com/ features_imports_title=Uvoz zunanjih podatkov features_imports_description=Uvoz oblik zapisa datoteke GPX in KML, datotek GRIB in zapisnikov ture features_media_management_title=Upravljanje predstavnostne vsebine @@ -60,10 +62,12 @@ features_maneuver_analytics_title=Analitika manevrov features_maneuver_analytics_description=Napredna analitika v zvezi z izvedbo manevrov tekmovalcev, vključno s časom manevra, stopnjo obrata in kotom manevra features_wind_analytics_title=Analitika vetra features_wind_analytics_description=Napredna analitika v zvezi z zbranimi podatki o vetru, barvni animirani diagrami prekrivanja in pasov za vsak upoštevani vir vetra -features_data_mining_title=Podatkovno rudarjenje -features_data_mining_description=Podatkovno rudarjenje po plovih in dogodkih. Glede na vrsto paketa samo za arhiv (vse, kar je mogoče najti na www.sapsailing.com) ali vse poddomene (na primer za lige, dogodke v živo ali klubske strežnike) -trial_name=Preskusna različica -trial_description=Brezplačni preskus vseh paketov za en dan, vključno s paketoma premium in podatkovnim rudarjenjem. Možno je le enkratno naročilo +features_data_mining_title=Podatkovno rudarjenje - arhiv +features_data_mining_description=Uporabite podatkovno rudarjenje po podatkih s preteklih plovov in dogodkov +features_data_mining_all_title=Podatkovno rudarjenje - vse +features_data_mining_all_description=Paket "Arhiv" omogoča podatkovno rudarjenje po preteklih dogodkih, ki so že arhivirani, paket "Vse" pa vam omogoča uporabo podatkovnega rudarjenja tudi za dogodke v živo in sezone lige, ki še potekajo. Vsebuje tudi vse podatke iz arhiva (vse, kar je mogoče najti na www.sapsailing.com) in vseh poddomen (npr. za lige, dogodke v živo ali klubske strežnike) +trial_name=Brezplačni preskus +trial_description=Brezplačni preskus vseh paketov za en dan, vključno s paketoma "Premium" in "Podatkovno rudarjenje". Naročite se lahko samo enkrat trial_info= trial_price_info=Preskusite en dan brezplačno trial_features=Vse iz paketa arhiva podatkovnega rudarjenja|Vključene so vse funkcije diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_zh.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_zh.properties index c3d15776cb6..1c350e08726 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_zh.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/subscription/SubscriptionStringConstants_zh.properties @@ -5,16 +5,16 @@ payment_interval_DAY=天 support_subject=SAP Sailing Analytics 服务和信息请求 businessModelTitle=业务模式 businessModelDescription=我们决定通过订阅产品扩展我们的免费解决方案。您仍然可以关注基本的比赛活动并且可以免费查看基于风力的实况积分榜,但是,如果您想要使用 SAP Sailing Analytics 提供的诸多高级功能,您需要订阅。十多年来,SAP 一直全力赞助该解决方案,并将其提供给全球成千上万的帆船比赛活动。现在,您拥有使该解决方案继续可供帆船界使用的机会。对于您选择的任何订阅,所有款项都将用于 Sailing Analytics 的运营、支持、维护和进一步开发。您可以在 https://bugzilla.sapsailing.com 提供您的建议并关注开发进度。感谢您的理解和一如既往的支持! -free_subscription_plan_name=免费版 -free_subscription_plan_description=试用 +free_subscription_plan_name=基本 +free_subscription_plan_description=创建您自己的账户。试试吧。 free_subscription_plan_info= free_subscription_plan_price_info= -free_subscription_plan_features=基于风力的基本实况积分榜|创建您自己的账户并使用我们的免费跟踪应用或专业跟踪服务为您的比赛或培训执行 Sailing Analytics|将 YouTube 直播视频与您的比赛轮次同步 +free_subscription_plan_features=基于风力的基本实况积分榜|使用我们的免费跟踪应用或专业跟踪服务为您的比赛或培训执行 Sailing Analytics|将 YouTube 直播视频与您的比赛轮次同步 premium_name=高级版 premium_description=所有高级版功能(例如风图覆盖图)、模拟器和增强的指标,例如与第一名的差距、航行距离和交叉轨道误差 premium_info= premium_price_info=一次性付款 -premium_features=免费计划的内容|完整的实时分析,提供数百项功能,包括风流|比较记录或第一名的差距|使用视频和注释标记个人时间线|高级地图内可视化效果等。|请查看下方的完整高级版功能清单 +premium_features=免费计划的内容|完整的实时分析,提供数百项功能,包括风流、比较记录或与第一名的差距|使用视频和注释标记个人时间线|高级地图内可视化效果等。|请查看下方的完整高级版功能清单 data_mining_archive_name=数据挖掘 - 归档 data_mining_archive_description=跨已归档比赛轮次和活动的数据挖掘 data_mining_archive_info= @@ -25,7 +25,7 @@ data_mining_all_description=跨所有比赛轮次和活动的数据挖掘 data_mining_all_info= data_mining_all_price_info=一次性付款 data_mining_all_features=数据挖掘归档计划的内容|强大的数据挖掘功能,包括来自 sapsailing.com 所有子域的附加数据,例如:联赛、现场活动或俱乐部服务器 -free_subscription_plan_shortname=免费 +free_subscription_plan_shortname=基本 premium_subscription_plan_shortname=高级版 datamining_subscription_plan_shortname=数据挖掘 features_limited_live_analytics_title=实时分析(有限) @@ -34,10 +34,12 @@ features_full_live_analytics_title=实时分析(完整) features_full_live_analytics_description=完整的实时分析,提供数百项功能,包括风流、比较记录、高级地图可视化效果等 features_organize_events_title=组织活动 features_organize_events_description=使用我们的免费跟踪应用或专业跟踪服务(例如 Trac Trac)为您的比赛运行 Sailing Analytics。操作检测和分析 +features_organize_events_url=https://support.sapsailing.com/hc/en-us/articles/360018169799-Create-a-simple-event-on-my-sapsailing-com features_events_with_more_regatta_title=拥有不止一场比赛的活动 features_events_with_more_regatta_description=您可以创建多类活动,也可以创建包含赛季性积分榜在内的活动赛季。 features_connect_to_tractrac_title=连接到 Trac Trac features_connect_to_tractrac_description=连接到专业跟踪服务 +features_connect_to_tractrac_url=https://tractrac.com/ features_imports_title=导入外部数据 features_imports_description=导入 GPX 和 KML 文件格式、GRIB 文件和导航图日志 features_media_management_title=媒体管理 @@ -60,10 +62,12 @@ features_maneuver_analytics_title=操作分析 features_maneuver_analytics_description=有关参赛队操作执行的高级分析,包括操作损失、回转率和操作角度 features_wind_analytics_title=风力分析 features_wind_analytics_description=有关所收集风力数据的高级分析;考虑的每个风源的彩色动画覆盖图和带状图 -features_data_mining_title=数据挖掘 -features_data_mining_description=跨比赛轮次和活动的数据挖掘。取决于计划类型,即仅限归档(可以在 www.sapsailing.com 下找到的所有内容)还是所有子域(例如:联赛、现场活动或俱乐部服务器) -trial_name=试用 -trial_description=全部计划免费试用一天,包括高级版和数据挖掘计划。只能订阅一次 +features_data_mining_title=数据挖掘 - 归档 +features_data_mining_description=对跨比赛轮次和活动的过去活动数据使用数据挖掘 +features_data_mining_all_title=数据挖掘 - 全部 +features_data_mining_all_description=您可以使用“归档”计划对已归档的过去活动使用数据挖掘,可以使用“全部”计划对现场活动和正在进行的联赛赛季使用数据挖掘。它还包括归档中的所有数据(可以在 www.sapsailing.com 下找到的所有内容)和所有子域(例如:联赛、现场活动或俱乐部服务器) +trial_name=免费试用 +trial_description=全部计划免费试用一天,包括“高级”版和两种“数据挖掘”计划。只能订阅一次 trial_info= trial_price_info=免费测试一天 trial_features=数据挖掘全部计划的内容|包括所有功能|有效期为一天 From 2a13c674eb5d3e1859dfe821f56965603c824a2e Mon Sep 17 00:00:00 2001 From: Thomas Stokes Date: Thu, 2 Nov 2023 10:54:09 +0000 Subject: [PATCH 21/34] Add debug tips to onboarding --- wiki/howto/onboarding.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wiki/howto/onboarding.md b/wiki/howto/onboarding.md index 78f36d48f38..4e4b63e80cd 100644 --- a/wiki/howto/onboarding.md +++ b/wiki/howto/onboarding.md @@ -156,10 +156,15 @@ Out of the box, multiple settings in Eclipse need to be changed. Go to Window - In the list on the left, click on "Connectors" - For TracTrac Events: In the "TracTrac Connections" Form, fill in the JSON URL [http://germanmaster.traclive.dk/events/event_20120905_erEuropean/jsonservice.php](http://germanmaster.traclive.dk/events/event_20120905_erEuropean/jsonservice.php)(all other required information will be filled in automatically) - Press "List Races" + + 6. Further useful launch configurations - Use SAP JVM Profiler. If you used the script above and installed the SAPJVM instead of the jdk, you can now open the profiling perspective by clicking on Window ⇒ Perspective ⇒ Open Perspective ⇒ Profiling) - Debugging gwt: For further instructions please see [here](./development/super-dev-mode) +If you want to use **breakpoints**, *avoid* clicking on the options in the Development Mode tab. Instead, within the _Debug Configurations_ menu, select the _Debug AdminConsole_ (found in the _Launch Browser_ tab); change the browser search order, such that chrome is the leftmost; and then launch. This is necessary because SDBG is compatible with Chrome. Further, details of how GWT Super Dev Mode (SDM) works, can be found in the link above. + + ### Build for deployment Open a shell (preferrably a git bash or a cygwin bash), cd to the git workspace's root folder and issue "./configuration/buildAndUpdateProduct.sh build". This should build the software and run all the tests. If you want to avoid the tests being executed, use the -t option. If you only want to build one GWT permutation (Chrome/English), use the -b option. When inside the SAP VPN, add the -p option for proxy use. Run the build script without arguments to get usage hints. From cd1a876f31852d29d3c2b21774f33b2928d4bd6d Mon Sep 17 00:00:00 2001 From: Thomas Stokes Date: Thu, 2 Nov 2023 15:46:19 +0000 Subject: [PATCH 22/34] Add clarification for debugging process --- wiki/howto/development/super-dev-mode.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/wiki/howto/development/super-dev-mode.md b/wiki/howto/development/super-dev-mode.md index 66db1cd7de8..62c1824700b 100644 --- a/wiki/howto/development/super-dev-mode.md +++ b/wiki/howto/development/super-dev-mode.md @@ -32,13 +32,15 @@ To start SDM debugging in Eclipse, do the following: * Start the backend as you would always do. * Start GWT Super Dev Mode by launching "SailingGWT sdm.launch" or "SailingGWT All SDM.launch". -* Do not Click on the URLs provided in "Development view"! -* Make sure that in the Debug Configuration chrome is the first browser used and not chromium. -* Run "Debug SailingGWT SDM on Chrome.launch" +* Do not Click on the URLs provided in "Development view" (this is not essential for MAC users)! +* Make sure that in the _Debug Configurations..._ => *Launch Browser* tab, you set the correct browser search order: _chrome_ **must** be the first one for the SDBG to work correctly. +* Run "Debug AdminConsole" * A new instance of Chrome is started and you will see a debug session running in Eclipse * Your Eclipse break points will now work in the running debug session. * You are free to change the URL or navigate to other pages in the automatically openend browser window (debugging will go on) +You may need to go to *Preferences => General => Web Browser*, and click _New_ to add Chrome. + ### Noteworthy information & Troubleshooting If you are faced with an error stating that your Chrome installation isn't found, do the following: From e3b427a56b4bc34dc7be1f110890921e641efad3 Mon Sep 17 00:00:00 2001 From: Thomas Stokes Date: Thu, 2 Nov 2023 15:47:22 +0000 Subject: [PATCH 23/34] Updated onboarding (markdown) --- wiki/howto/onboarding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki/howto/onboarding.md b/wiki/howto/onboarding.md index 4e4b63e80cd..d8c18072a18 100644 --- a/wiki/howto/onboarding.md +++ b/wiki/howto/onboarding.md @@ -162,7 +162,7 @@ Out of the box, multiple settings in Eclipse need to be changed. Go to Window - Use SAP JVM Profiler. If you used the script above and installed the SAPJVM instead of the jdk, you can now open the profiling perspective by clicking on Window ⇒ Perspective ⇒ Open Perspective ⇒ Profiling) - Debugging gwt: For further instructions please see [here](./development/super-dev-mode) -If you want to use **breakpoints**, *avoid* clicking on the options in the Development Mode tab. Instead, within the _Debug Configurations_ menu, select the _Debug AdminConsole_ (found in the _Launch Browser_ tab); change the browser search order, such that chrome is the leftmost; and then launch. This is necessary because SDBG is compatible with Chrome. Further, details of how GWT Super Dev Mode (SDM) works, can be found in the link above. +If you want to use **breakpoints**, *avoid* clicking on the options in the Development Mode tab. Instead, within the _Debug Configurations_ menu, select the _Debug AdminConsole_ (found in the _Launch Browser_ subtab); change the browser search order, such that chrome is the leftmost; and then launch. This is necessary because SDBG is compatible with Chrome. Further, details of how GWT Super Dev Mode (SDM) works, can be found in the link above. ### Build for deployment From b8803653d96731c19d4c49e71d39db42103d5598 Mon Sep 17 00:00:00 2001 From: "service.tip.git" Date: Thu, 2 Nov 2023 16:22:08 +0000 Subject: [PATCH 24/34] [INTERNAL] Translation delivery: commit by LX Lab Change-Id: I117aab6653ebd6cf69286003ad233b2a5d056668 --- .../com/sap/sailing/gwt/ui/client/StringMessages_cs.properties | 3 ++- .../com/sap/sailing/gwt/ui/client/StringMessages_da.properties | 3 ++- .../com/sap/sailing/gwt/ui/client/StringMessages_es.properties | 3 ++- .../com/sap/sailing/gwt/ui/client/StringMessages_fr.properties | 3 ++- .../com/sap/sailing/gwt/ui/client/StringMessages_it.properties | 3 ++- .../com/sap/sailing/gwt/ui/client/StringMessages_ja.properties | 3 ++- .../com/sap/sailing/gwt/ui/client/StringMessages_pt.properties | 3 ++- .../com/sap/sailing/gwt/ui/client/StringMessages_ru.properties | 3 ++- .../com/sap/sailing/gwt/ui/client/StringMessages_sl.properties | 3 ++- .../com/sap/sailing/gwt/ui/client/StringMessages_zh.properties | 3 ++- 10 files changed, 20 insertions(+), 10 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_cs.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_cs.properties index e13748d6602..fa3dd2fbca8 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_cs.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_cs.properties @@ -52,7 +52,8 @@ unlink=Odpojit leaderboardName=Název výsledkové tabule pleaseEnterAName=Zadejte název pleaseEnterABoatClass=Zadejte lodní třídu -discardRacesFromHowManyStartedRacesOn=Vyřadit ještě jednu rozjížďku počínaje počtem odstartovaných rozjížděk +discardRacesFromHowManyStartedRacesOn=Vyřadit jednu nebo více rozjížděk počínaje počtem odstartovaných rozjížděk +applyDiscardsBasedOnNumberOfScoredRaces=Nakonfigurujte vyřazení. Zadejte do pole X počet bodovaných rozjížděk vyžadovaných k použití X-tého vyřazení. Maximum vyřazení: {0}. leaderboardWithThisNameAlreadyExists=Výsledková tabule s tímto názvem již existuje discardThresholdsMustBeNumeric=Prahy vyřazení musejí být numerické discardThresholdsMustBeAscending=Prahy vyřazení musejí být vzestupné diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_da.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_da.properties index c5e8ae49c5d..466943d8436 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_da.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_da.properties @@ -52,7 +52,8 @@ unlink=Fjern tilknytning leaderboardName=Ranglistenavn pleaseEnterAName=Indtast et navn pleaseEnterABoatClass=Indtast en bådklasse -discardRacesFromHowManyStartedRacesOn=Opgiv en kapsejlads mere startende med hvor mange startede kapsejladser +discardRacesFromHowManyStartedRacesOn=Opgiv en eller flere kapsejladser, startende med hvor mange startede kapsejladser der er +applyDiscardsBasedOnNumberOfScoredRaces=Konfigurer opgivelser. Indtast i felt X antallet af pointgivne kapsejladser, der kræves for at anvende den X''te opgivelse. Maks. antal opgivelser: {0}. leaderboardWithThisNameAlreadyExists=Rangliste med dette navn findes allerede discardThresholdsMustBeNumeric=Opgivelsesgrænser skal være numeriske discardThresholdsMustBeAscending=Opgivelsesgrænser skal være stigende diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_es.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_es.properties index 6036b84f289..9cac84a1206 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_es.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_es.properties @@ -52,7 +52,8 @@ unlink=Quitar enlace leaderboardName=Nombre de tabla de clasificación pleaseEnterAName=Indique un nombre pleaseEnterABoatClass=Indique una clase de embarcación -discardRacesFromHowManyStartedRacesOn=Descartar un inicio de prueba más con cuántas pruebas iniciadas +discardRacesFromHowManyStartedRacesOn=Descarte una o más pruebas comenzando por cuántas pruebas iniciadas hay +applyDiscardsBasedOnNumberOfScoredRaces=Configurar descartadas. Introduzca en la casilla X el número de pruebas puntuadas necesario para aplicar el descarte X. Máximo de descarte: {0}. leaderboardWithThisNameAlreadyExists=Ya hay una tabla de clasificación con este nombre. discardThresholdsMustBeNumeric=Los umbrales de rechazo deben ser numéricos discardThresholdsMustBeAscending=Los umbrales de rechazo deben ser ascendentes diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_fr.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_fr.properties index 94f8655838c..353437201b3 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_fr.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_fr.properties @@ -52,7 +52,8 @@ unlink=Annuler Lier leaderboardName=Nom du palmarès pleaseEnterAName=Saisissez un nom. pleaseEnterABoatClass=Saisissez une catégorie de bateau. -discardRacesFromHowManyStartedRacesOn=Éliminez une course de plus en commençant au nombre de courses déjà lancées. +discardRacesFromHowManyStartedRacesOn=Éliminez une ou plusieurs courses, en partant du nombre de courses déjà lancées. +applyDiscardsBasedOnNumberOfScoredRaces=Configurez les éliminations. Dans la case X, saisissez le nombre de courses (avec classement) requis pour que l''élimination au Xe s''applique. Nombre d''éliminations au maximum : {0}. leaderboardWithThisNameAlreadyExists=Un palmarès de ce nom existe déjà. discardThresholdsMustBeNumeric=Les seuils d''élimination doivent être numériques. discardThresholdsMustBeAscending=Les seuils d''élimination doivent être ascendants. diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_it.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_it.properties index b98ec865f70..734b56c159d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_it.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_it.properties @@ -52,7 +52,8 @@ unlink=Annulla collegamento leaderboardName=Nome classifica pleaseEnterAName=Inserire un nome pleaseEnterABoatClass=Inserire una classe della barca -discardRacesFromHowManyStartedRacesOn=Scartare ancora una gara tra quelle iniziate +discardRacesFromHowManyStartedRacesOn=Eliminare una o più gare, iniziando dal numero di gare iniziate +applyDiscardsBasedOnNumberOfScoredRaces=Configurare le eliminazioni. Inserire nella casella X il numero di gare portate a termine richiesto per applicare la X° eliminazione. Numero massimo di eliminazioni: {0}. leaderboardWithThisNameAlreadyExists=Esiste già una classifica con questo nome discardThresholdsMustBeNumeric=Le soglie di scarto devono essere numeriche discardThresholdsMustBeAscending=Le soglie di scarto devono essere in ordine ascendente diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ja.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ja.properties index 0772d41ba25..11b3ed528b7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ja.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ja.properties @@ -52,7 +52,8 @@ unlink=リンク解除 leaderboardName=リーダーボード名 pleaseEnterAName=名称を入力してください pleaseEnterABoatClass=艇種を入力してください -discardRacesFromHowManyStartedRacesOn=レース除外 (スタート済レースから) +discardRacesFromHowManyStartedRacesOn=1 つ以上のレースを除外 (スタート済みレースがいくつ存在しているかから開始) +applyDiscardsBasedOnNumberOfScoredRaces=除外を設定します。X 番目の除外を適用するために必要な得点済みレースの数を X ボックスに入力します。最大除外数: {0}。 leaderboardWithThisNameAlreadyExists=この名称のリーダーボードは登録されています discardThresholdsMustBeNumeric=破棄しきい値は数値でなければなりません discardThresholdsMustBeAscending=破棄しきい値は昇順でなければなりません diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_pt.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_pt.properties index cea74b74fe4..9ded8c65e65 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_pt.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_pt.properties @@ -52,7 +52,8 @@ unlink=Eliminar link leaderboardName=Nome do painel de classificação pleaseEnterAName=Insira um nome pleaseEnterABoatClass=Insira uma classe de barcos -discardRacesFromHowManyStartedRacesOn=Descartar mais um corrida a partir de quantas corridas iniciadas +discardRacesFromHowManyStartedRacesOn=Rejeitar uma ou mais corridas, começando com quantas corridas iniciadas existem +applyDiscardsBasedOnNumberOfScoredRaces=Configure as rejeições. Insira no campo de seleção X o número de corridas pontuadas necessárias para aplicar a Xª rejeição. Máximo de rejeições: {0}. leaderboardWithThisNameAlreadyExists=Já existe um painel de classificação com este nome discardThresholdsMustBeNumeric=Os limites do descarte devem ser numéricos discardThresholdsMustBeAscending=Os limites do descarte devem estar em ordem crescente diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties index 0d3116ef0cb..2e741e4c5ae 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties @@ -52,7 +52,8 @@ unlink=Отменить связывание leaderboardName=Название таблицы лидеров pleaseEnterAName=Введите название pleaseEnterABoatClass=Введите класс лодки -discardRacesFromHowManyStartedRacesOn=Исключить еще одну гонку, начиная с числа стартов в гонках +discardRacesFromHowManyStartedRacesOn=Исключите одну или несколько гонок, исходя из числа стартов в гонках +applyDiscardsBasedOnNumberOfScoredRaces=Настройте исключение. Введите в поле X, число оцениваемых гонок, необходимое для применения исключения X. Максимум исключений: {0}. leaderboardWithThisNameAlreadyExists=Таблица лидеров с таким названием уже существует discardThresholdsMustBeNumeric=Пороги исключения должны быть числовыми discardThresholdsMustBeAscending=Пороги исключения должны возрастать diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_sl.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_sl.properties index 7563ea55497..25c7ddb4aaa 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_sl.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_sl.properties @@ -52,7 +52,8 @@ unlink=Odstrani povezavo leaderboardName=Ime lestvice vodilnih pleaseEnterAName=Vnesite ime pleaseEnterABoatClass=Vnesite kategorijo jadrnice -discardRacesFromHowManyStartedRacesOn=Odstranite še en plov, ki se začne s številom začetih plovov +discardRacesFromHowManyStartedRacesOn=Odstranite enega ali več plovov, ki se začne s številom razpoložljivih plovov +applyDiscardsBasedOnNumberOfScoredRaces=Konfigurirajte odstranitve. V okvirček vnesite X, število točkovanih plovov, potrebnih za uporabo X.  odstranitve. Največje število odstranitev: {0}. leaderboardWithThisNameAlreadyExists=Lestvica vodilnih s tem imenom že obstaja discardThresholdsMustBeNumeric=Mejne vrednosti odstranitve morajo biti številske discardThresholdsMustBeAscending=Mejne vrednosti odstranitve morajo naraščati diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties index c853d9c5a44..f92d9f045d9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties @@ -52,7 +52,8 @@ unlink=取消链接 leaderboardName=积分榜名称 pleaseEnterAName=请输入名称 pleaseEnterABoatClass=请输入船只级别 -discardRacesFromHowManyStartedRacesOn=从已开始的比赛轮次数开始再放弃一个比赛轮次 +discardRacesFromHowManyStartedRacesOn=从已开始的比赛轮次数开始再放弃一个或多个比赛轮次 +applyDiscardsBasedOnNumberOfScoredRaces=配置放弃次数。在方框中输入 X,即申请第 X 次放弃所需的得分比赛次数。最大放弃次数:{0}。 leaderboardWithThisNameAlreadyExists=具有此名称的积分榜已存在 discardThresholdsMustBeNumeric=放弃临界值必须为数字 discardThresholdsMustBeAscending=放弃临界值必须递增 From 0ed38f5b97ce5b5da118efc0f1de73a1071796d0 Mon Sep 17 00:00:00 2001 From: Thomas Stokes Date: Tue, 7 Nov 2023 12:55:13 +0000 Subject: [PATCH 25/34] Add details of the basic reverse proxy setup --- ...ng-ec2-image-for-webserver-from-scratch.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch.md b/wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch.md index a6908a9b8ba..9766f407fbb 100644 --- a/wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch.md +++ b/wiki/info/landscape/creating-ec2-image-for-webserver-from-scratch.md @@ -168,3 +168,32 @@ maxretry = 5 ``` * Ensure that fail2ban will be started automatically when the instance starts: `chkconfig --level 23 fail2ban on` and start it right away with `service fail2ban start`. You can see which filters are active using `service fail2ban status`. * Ensure you have EC2 / EBS snapshot backups for the volumes by tagging them as follows: ``WeeklySailingInfrastructureBackup=Yes`` for ``/var/www/static``, ``/var/log``, ``/var/log/old`` and ``/var/log/old/cache``, ``DailySailingBackup=Yes`` for ``/home``. + + +## Basic setup for reverse proxy instance + +perl +httpd +apachetop +per-CGI +postfix +sendmail-cf + mod_proxy_html +tmux +nfs-utils +amazon linux extras install php7.2 && yum update && yum install php + + +root access +num of connections trackable +keyreader token + +amazon-efs-utils +mounts + +mail -> I don't think anything is needed but I added the stuf to sendmail-cf /// + +logrotate target + +chkconfig nfs on (half complete) +fail2ban setup \ No newline at end of file From cb54d08972d2344ab0e42f1c910b783bbcaaede4 Mon Sep 17 00:00:00 2001 From: Lisa Date: Fri, 10 Nov 2023 14:12:19 +0100 Subject: [PATCH 26/34] adding_Leglength --- .../stringmessages/Sailing_StringMessages.properties | 6 ++++-- .../stringmessages/Sailing_StringMessages_de.properties | 6 ++++-- .../datamining/SailingDataRetrievalChainDefinitions.java | 9 +++++++-- .../sailing/datamining/data/HasTrackedLegContext.java | 5 ++++- .../datamining/impl/data/TrackedLegWithContext.java | 7 ++++++- 5 files changed, 25 insertions(+), 8 deletions(-) diff --git a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties index 7fc170d4ff8..448e3e4cdca 100644 --- a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties +++ b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties @@ -24,7 +24,7 @@ Team=Team SearchTag=Search Tag LeaderboardSailingDomainRetrieverChain=Leaderboards RaceSailingDomainRetrieverChain=Races -LegSailingDomainRetrieverChain=Legs +LegOfCompetitorSailingDomainRetrieverChain=Legs of Competitors GPSFixSailingDomainRetrieverChain=GPS Fixes BravoFixSailingDomainRetrieverChain=Bravo Fixes BravoFixTrackSailingDomainRetrieverChain=Bravo Tracks @@ -254,4 +254,6 @@ CompetitorDaySailingDomainRetrieverChain=Competitor-Day for race LowestSpeed=Lowest Speed SpeedChange=Speed Change MaximumTurningRate=Maximum turning rate (°/s) -AverageTurningRate=Average turning rate (°/s) \ No newline at end of file +AverageTurningRate=Average turning rate (°/s) +LengthoftheLeg=Length of the Leg +LegSailingDomainRetrieverChain= Leg \ No newline at end of file diff --git a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_de.properties b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_de.properties index 077e526fd2c..c543d7f8a13 100755 --- a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_de.properties +++ b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_de.properties @@ -21,7 +21,7 @@ RaceColumn=Rennspalte Race=Rennen LeaderboardSailingDomainRetrieverChain=Leaderboards RaceSailingDomainRetrieverChain=Rennen -LegSailingDomainRetrieverChain=Schenkel +LegOfCompetitorSailingDomainRetrieverChain=Schenkel eines Teilnehmers GPSFixSailingDomainRetrieverChain=GPS-Fixes BravoFixSailingDomainRetrieverChain=Bravo-Fixes BravoFixTrackSailingDomainRetrieverChain=Bravo Messreihen @@ -257,4 +257,6 @@ CompetitorDaySailingDomainRetrieverChain=Teilnehmer-Tag für Wettfahrt LowestSpeed=Niedrigste Geschwindigkeit SpeedChange=Geschwindigkeits-Änderung MaximumTurningRate=Maximale Drehgeschwindigkeit (°/s) -AverageTurningRate=Durchschnittliche Drehgeschwindigkeit (°/s) \ No newline at end of file +AverageTurningRate=Durchschnittliche Drehgeschwindigkeit (°/s) +LengthoftheLeg=Länge eines Schenkels +LegSailingDomainRetrieverChain= Schenkel \ No newline at end of file diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingDataRetrievalChainDefinitions.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingDataRetrievalChainDefinitions.java index 0b4aee4b147..859bc1e45f2 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingDataRetrievalChainDefinitions.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingDataRetrievalChainDefinitions.java @@ -98,9 +98,14 @@ public class SailingDataRetrievalChainDefinitions { HasFoilingSegmentContext.class, FoilingSegmentsDataMiningSettings.class, FoilingSegmentsDataMiningSettings.createDefaultSettings(), "FoilingSegments"); dataRetrieverChainDefinitions.add(foilingSegmentsRetrieverChainDefinition); // + final DataRetrieverChainDefinition legRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>( + trackedRaceRetrieverChainDefinition, HasTrackedLegContext.class, "LegSailingDomainRetrieverChain"); + legRetrieverChainDefinition.endWith(TrackedRaceRetrievalProcessor.class, TrackedLegRetrievalProcessor.class, + HasTrackedLegContext.class, "Leg"); + dataRetrieverChainDefinitions.add(legRetrieverChainDefinition); + // final DataRetrieverChainDefinition legOfCompetitorRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>( - trackedRaceRetrieverChainDefinition, HasTrackedLegOfCompetitorContext.class, "LegSailingDomainRetrieverChain"); - legOfCompetitorRetrieverChainDefinition.addAfter(TrackedRaceRetrievalProcessor.class, TrackedLegRetrievalProcessor.class, HasTrackedLegContext.class, "Leg"); + legRetrieverChainDefinition, HasTrackedLegOfCompetitorContext.class, "LegOfCompetitorSailingDomainRetrieverChain"); legOfCompetitorRetrieverChainDefinition.endWith(TrackedLegRetrievalProcessor.class, TrackedLegOfCompetitorRetrievalProcessor.class, HasTrackedLegOfCompetitorContext.class, "LegOfCompetitor"); dataRetrieverChainDefinitions.add(legOfCompetitorRetrieverChainDefinition); diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasTrackedLegContext.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasTrackedLegContext.java index 1a72ba67721..ffc0eef9288 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasTrackedLegContext.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasTrackedLegContext.java @@ -2,8 +2,10 @@ package com.sap.sailing.datamining.data; import com.sap.sailing.domain.common.LegType; import com.sap.sailing.domain.tracking.TrackedLeg; +import com.sap.sse.common.Distance; import com.sap.sse.datamining.annotations.Connector; import com.sap.sse.datamining.annotations.Dimension; +import com.sap.sse.datamining.annotations.Statistic; public interface HasTrackedLegContext { @@ -16,5 +18,6 @@ public interface HasTrackedLegContext { public LegType getLegType(); @Dimension(messageKey="LegNumber", ordinal=7) public int getLegNumber(); - + @Statistic(messageKey = "LengthoftheLeg", resultDecimals = 2) + Distance getLegLength(); } \ No newline at end of file diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/TrackedLegWithContext.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/TrackedLegWithContext.java index 6413e862749..a995838e46e 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/TrackedLegWithContext.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/TrackedLegWithContext.java @@ -6,6 +6,7 @@ import com.sap.sailing.domain.common.LegType; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.tracking.TrackedLeg; import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor; +import com.sap.sse.common.Distance; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; @@ -97,5 +98,9 @@ public class TrackedLegWithContext implements HasTrackedLegContext { } return at; } - + + @Override + public Distance getLegLength() { + return getTrackedLeg().getWindwardDistance(); + } } From 6b52183d69ff8f1a232626ae667d43951c47b80e Mon Sep 17 00:00:00 2001 From: Lisa Date: Fri, 10 Nov 2023 16:02:04 +0100 Subject: [PATCH 27/34] correcting_stringmessages --- .../Sailing_StringMessages.properties | 2 +- .../Sailing_StringMessages_de.properties | 16 ++++----- .../ui/client/StringMessages_de.properties | 34 +++++++++---------- .../Polars_StringMessages_de.properties | 2 +- .../Test_StringMessages_de.properties | 2 +- 5 files changed, 28 insertions(+), 28 deletions(-) diff --git a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties index 448e3e4cdca..fa377e9fb8c 100644 --- a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties +++ b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties @@ -256,4 +256,4 @@ SpeedChange=Speed Change MaximumTurningRate=Maximum turning rate (°/s) AverageTurningRate=Average turning rate (°/s) LengthoftheLeg=Length of the Leg -LegSailingDomainRetrieverChain= Leg \ No newline at end of file +LegSailingDomainRetrieverChain=Leg \ No newline at end of file diff --git a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_de.properties b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_de.properties index c543d7f8a13..1027fde6e43 100755 --- a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_de.properties +++ b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_de.properties @@ -10,8 +10,8 @@ Acronym=Abkürzung SailID=Segelnummer BoatName=Bootsname Color=Farbe -LegNumber=Nummer des Schenkels -LegType=Art des Schenkels +LegNumber=Nummer des Bahnschenkels +LegType=Art des Bahnschenkels Year=Jahr Regatta=Regatta CourseArea=Regattabahn @@ -21,7 +21,7 @@ RaceColumn=Rennspalte Race=Rennen LeaderboardSailingDomainRetrieverChain=Leaderboards RaceSailingDomainRetrieverChain=Rennen -LegOfCompetitorSailingDomainRetrieverChain=Schenkel eines Teilnehmers +LegOfCompetitorSailingDomainRetrieverChain=Bahnschenkel eines Teilnehmers GPSFixSailingDomainRetrieverChain=GPS-Fixes BravoFixSailingDomainRetrieverChain=Bravo-Fixes BravoFixTrackSailingDomainRetrieverChain=Bravo Messreihen @@ -35,9 +35,9 @@ RaceOfCompetitorSailingDomainRetrieverChain=Rennen eines Teilnehmers ManeuverSailingDomainRetrieverChain=Manöver LeaderboardGroup=Ranglisten Gruppe Leaderboard=Rangliste -Leg=Schenkel +Leg=Bahnschenkel MarkPassing=Tonnenrundung -LegOfCompetitor=Schenkel eines Teilnehmers +LegOfCompetitor=Bahnschenkel eines Teilnehmers GpsFix=GPS-Fix BravoFix=Bravo-Fix LineLengthAtStart=Länge der Startlinie zum Startzeitpunkt @@ -117,7 +117,7 @@ RankThirtySecondsAfterStart=Absolute Platzierung 30s nach dem Startzeitpunkt WindwardDistanceToAdvantageousEndOfLineAtStartOfRace=Windwärtige Distanz zum Bevorteilten Ende der Startlinie zum Start des Rennens WindwardDistanceToAdvantageousEndOfLineAtStartOfCompetitor=Windwärtige Distanz zum Bevorteilten Ende der Startlinie zum Start des Teilnehmers AbsoluteWindwardDistanceToStarboardSideAtStartOfCompetitor=Absolute Windwärtige Distanz zur Steuerbordseite beim Start des Teilnehmers -RankAfterHalfOfTheFirstLeg=Platzierung nach der Hälfte des ersten Schenkels +RankAfterHalfOfTheFirstLeg=Platzierung nach der Hälfte des ersten Bahnschenkels AdvantageousEndOfLine=Bevorteiltes Ende der Startlinie AdvantageOfStarboardSideOfStartLine=Vorteil der Steuerbord-Seite der Startlinie TrueWindAngleOfStartLineSeenFromStarboardSide=Winkel der Startlinie zum wahren Wind vom Steuerbord-Ende aus gesehen @@ -258,5 +258,5 @@ LowestSpeed=Niedrigste Geschwindigkeit SpeedChange=Geschwindigkeits-Änderung MaximumTurningRate=Maximale Drehgeschwindigkeit (°/s) AverageTurningRate=Durchschnittliche Drehgeschwindigkeit (°/s) -LengthoftheLeg=Länge eines Schenkels -LegSailingDomainRetrieverChain= Schenkel \ No newline at end of file +LengthOfTheLeg=Länge eines Bahnschenkels +LegSailingDomainRetrieverChain=Bahnschenkel \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index b34693ad67d..e1938d7f0ae 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -22,7 +22,7 @@ racesAndTracking=Wettfahrten/Tracking tracked=getracked time=Zeit linkedRaces=Verknüpfte Rennen -timeTooltip=Zeit, die der Teilnehmer auf diesem Schenkel gesegelt ist. Beim ersten Schenkel zählt die Zeit ab Überquerung der Startlinie. +timeTooltip=Zeit, die der Teilnehmer auf diesem Bahnschenkel gesegelt ist. Beim ersten Bahnschenkel zählt die Zeit ab Überquerung der Startlinie. playSpeed=Abspielgeschwindigkeit playSpeedHelp="1" für normale Abspielgeschwindigkeit, "2" für doppelte Geschwindigkeit usw. playModeLive=Live @@ -77,10 +77,10 @@ expand=+ leg=L distanceInMeters=Distanz averageSpeedInKnots=\u2205 FüG -averageSpeedInKnotsTooltip=Die durchschnittliche Fahrt über Grund auf diesem Schenkel,\nberechnet durch die Division der gefahrenen Distanz durch die benötigte Zeit. +averageSpeedInKnotsTooltip=Die durchschnittliche Fahrt über Grund auf diesem Bahnschenkel,\nberechnet durch die Division der gefahrenen Distanz durch die benötigte Zeit. raceAverageSpeedInKnotsTooltip=Die durchschnittliche Fahrt über Grund in diesem Rennen,\nberechnet durch die Division der gefahrenen Distanz durch die benötigte Zeit. rankGain=Platz +/- -rankGainTooltip=Die Differenz zwischen der Platzierung im aktuellen und im vorangegangenen Schenkel +rankGainTooltip=Die Differenz zwischen der Platzierung im aktuellen und im vorangegangenen Bahnschenkel sapSailingAnalytics=Sailing Analytics leaderboard=Rangliste leaderboards=Ranglisten @@ -96,7 +96,7 @@ gapToLeaderInSecondsTooltip=Schätzt die (berechnete) Ankunftszeit an der jetzig velocityMadeGoodInKnots=VMG velocityMadeGoodInKnotsTooltip=Die effektive Geschwindigkeit zum Ziel; auf der Kreuz die windwärtige Geschwindigkeit; auf der Vorwindstrecke die leewärtige Geschwindigkeit windwardDistanceToGoInMeters=Abstand in Windrichtung zur nächsten Bahnmarke -windwardDistanceToGoInMetersTooltip=Windwärtige / leewärtige Distanz des Teilnehmerns bis zum Ende des Schenkels auf Kreuz bzw. Vorwindstrecke; Strecke entlang des Schenkels bei Holeschlägen +windwardDistanceToGoInMetersTooltip=Windwärtige / leewärtige Distanz des Teilnehmerns bis zum Ende des Schenkels auf Kreuz bzw. Vorwindstrecke; Strecke entlang des Bahnschenkels bei Holeschlägen windwardDistanceToCompetitorFarthestAheadInMeters=Rückstand windwardDistanceToCompetitorFarthestAheadInMetersTooltip=Windwärtiger Abstand zum Boot, das bisher am weitesten windwärts gesegelt ist.\nFür Handicap-Wertungen ist das nicht notwendigerweise der nach Verrechnung in Führung liegende Teilnehmer. name=Name @@ -152,7 +152,7 @@ timing=Timing raceDetailsToShow=Renndetails tracking=Tracking overallDetailsToShow=Regatta-Details -legDetailsToShow=Schenkeldetails +legDetailsToShow=Bahnschenkeldetails showCarryColumn=Spalte Übertrag showCarryColumnCheckbox=Spalte Übertrag anzeigen showCarryColumnTitle=Spalte Übertrag anzeigen @@ -166,7 +166,7 @@ selectedRaces=Welche Rennen möchten Sie angezeigt bekommen? lengthInSeconds=Länge (s) stressTest=Stresstest numberOfManeuvers=Manöver -numberOfManeuversTooltip=Die Anzahl der gesegelten Manöver in diesem Schenkel +numberOfManeuversTooltip=Die Anzahl der gesegelten Manöver in diesem Bahnschenkel numberOfManeuversInRaceTooltip=Die Anzahl der gesegelten Manöver in diesem Rennen tacks=Wenden jibes=Halsen @@ -176,7 +176,7 @@ maneuverTypes=Manöver chooseChart=Diagramm wählen raceNameEmpty=Rennname leer distanceTraveled=Zurückgelegte Strecke -distanceTraveledTooltip=Die zurückgelegt Strecke vom Start des Schenkels bis zum Ende\noder bis zum aktuellen Zeitpunkt, falls der Schenkel noch nicht beendet ist. +distanceTraveledTooltip=Die zurückgelegt Strecke vom Start des Schenkels bis zum Ende\noder bis zum aktuellen Zeitpunkt, falls der Bahnschenkel noch nicht beendet ist. raceDistanceTraveledTooltip=Die zurückgelegte Strecke vom Start des Rennens, bis zum Ende\noder bis zum aktuellen Zeitpunkt, falls das Rennen noch nicht beendet ist. velocityMadeGoodLong=Velocity Made Good speedOverGroundLong=Speed Over Ground @@ -298,9 +298,9 @@ leaderboardGroups=Ranglisten-Gruppen filterLeaderboardGroupsByName=Ranglisten-Gruppen nach Name filtern createNewLeaderboardGroup=Neue Ranglisten-Gruppe erstellen leaderboardGroupConfiguration=Ranglistengruppen-Konfiguration -legs=Schenkel -currentLeg=Aktueller Schenkel -currentLegTooltip=Schenkel auf dem sich der Teilnehmer aktuell befindet +legs=Bahnschenkel +currentLeg=Aktueller Bahnschenkel +currentLegTooltip=Bahnschenkel auf dem sich der Teilnehmer aktuell befindet leaderboardGroup=Ranglisten-Gruppe pleaseEnterNonEmptyDescription=Bitte eine nicht-leere Beschreibung eingeben groupWithThisNameAlreadyExists=Ranglisten-Gruppe mit diesem Namen existiert bereits @@ -367,11 +367,11 @@ replication=Replikation averageAbsoluteCrossTrackErrorInMeters=\u2205 XTE averageAbsoluteCrossTrackErrorInMetersTooltip=Die durchschnittliche Querabweichung zur Kursmittellinie in diesem Schenkel; die Seite, zu der der Teilnehmer abweicht, spielt dabei keine Rolle; aktueller Wert während des Bahnschenkels, danach der Durchschnittswert. averageSignedCrossTrackErrorInMeters=\u2205 XTE +/- -averageSignedCrossTrackErrorInMetersTooltip=Die durchschnittliche Querabweichung zur Kursmittellinie in diesem Schenkel, wobei negative Werte Abweichungen nach links, positive Werte Abweichungen nach rechts bedeuten; aktueller Wert während des Bahnschenkels, danach der Durchschnittswert. +averageSignedCrossTrackErrorInMetersTooltip=Die durchschnittliche Querabweichung zur Kursmittellinie in diesem Bahnschenkel, wobei negative Werte Abweichungen nach links, positive Werte Abweichungen nach rechts bedeuten; aktueller Wert während des Bahnschenkels, danach der Durchschnittswert. currentAbsoluteCrossTrackErrorInMeters=\u2205 XTE -currentAbsoluteCrossTrackErrorInMetersTooltip=Die momentane Querabweichung zur Kursmittellinie in diesem Schenkel; die Seite, zu der der Teilnehmer abweicht, spielt dabei keine Rolle; nur verfügbar, wenn der Teilnehmer zum angefragten Zeitpunkt in einem/dem Bahnschenkel segelt. +currentAbsoluteCrossTrackErrorInMetersTooltip=Die momentane Querabweichung zur Kursmittellinie in diesem Bahnschenkel; die Seite, zu der der Teilnehmer abweicht, spielt dabei keine Rolle; nur verfügbar, wenn der Teilnehmer zum angefragten Zeitpunkt in einem/dem Bahnschenkel segelt. currentSignedCrossTrackErrorInMeters=\u2205 XTE +/- -currentSignedCrossTrackErrorInMetersTooltip=Die durchschnittliche Querabweichung zur Kursmittellinie in diesem Schenkel, wobei negative Werte Abweichungen nach links, positive Werte Abweichungen nach rechts bedeuten; nur verfügbar, wenn der Teilnehmer zum angefragten Zeitpunkt in einem/dem Bahnschenkel segelt. +currentSignedCrossTrackErrorInMetersTooltip=Die durchschnittliche Querabweichung zur Kursmittellinie in diesem Bahnschenkel, wobei negative Werte Abweichungen nach links, positive Werte Abweichungen nach rechts bedeuten; nur verfügbar, wenn der Teilnehmer zum angefragten Zeitpunkt in einem/dem Bahnschenkel segelt. raceAverageAbsoluteCrossTrackErrorInMetersTooltip=Die durchschnittliche Querabweichung zur Kursmittellinie für alle Kreuzen in diesem Rennen; die Seite, zu der der Teilnehmer abweicht, spielt dabei keine Rolle; aktueller Wert während des Bahnschenkels, danach der Durchschnittswert. raceAverageSignedCrossTrackErrorInMetersTooltip=Die durchschnittliche Querabweichung zur Kursmittellinie für alle Kreuzen diesem Rennen, wobei negative Werte Abweichungen nach links, positive Werte Abweichungen nach rechts bedeuten. helpLines=Hilfslinien @@ -859,7 +859,7 @@ polarDiagramButton=Polardiagramm ratioBetweenTimeSinceLastPositionFixAndAverageSamplingInterval=GPS Verzug ratioBetweenTimeSinceLastPositionFixAndAverageSamplingIntervalTooltip=Verhältnis zwischen dem Alter der zuletzt empfangenen GPS-Position und dem durchschnittlichen Abtastintervall trackingQuality=Tracking-Qualität -legType=Art des Schenkels +legType=Art des Bahnschenkels sailID=Segelnummer seriesLeaderboard=Rangliste der Serie regattaLeaderboards=Ranglisten der Regatta @@ -1274,7 +1274,7 @@ orMultipleEmails=oder mehrere E-Mails (Komma-separiert) courseOverGroundTrueDegreesTooltip=Rechtweisender Kurs über Grund in Grad courseOverGroundTrueDegrees=KüG distanceIncludingGateStartInMeters=Distanz (m. Torstart) -distanceTraveledIncludingGateStartTooltip=Die zurückgelegt Strecke vom Start des Schenkels bis zum Ende\noder bis zum aktuellen Zeitpunkt, falls der Schenkel noch nicht beendet ist.\nEnthält der Schenkel einen Torstart, so wird die Distanz vom Pin End bis zur Startposition des Teilnehmers hinzugezählt,\num so vergleichbare Distanzen auch für Teilneher zu erhalten, die zu verschiedenen Zeiten gestartet sind. +distanceTraveledIncludingGateStartTooltip=Die zurückgelegt Strecke vom Start des Bahnschenkels bis zum Ende\noder bis zum aktuellen Zeitpunkt, falls der Bahnschenkel noch nicht beendet ist.\nEnthält der Bahnschenkel einen Torstart, so wird die Distanz vom Pin End bis zur Startposition des Teilnehmers hinzugezählt,\num so vergleichbare Distanzen auch für Teilneher zu erhalten, die zu verschiedenen Zeiten gestartet sind. raceDistanceTraveledIncludingGateStartTooltip=Die zurückgelegte Strecke vom Start des Rennens, bis zum Ende\noder bis zum aktuellen Zeitpunkt, falls das Rennen noch nicht beendet ist. Bei einem Torstart wird die Distanz vom Pin End bis zur Startposition des Teilnehmers hinzugezählt,\num so vergleichbare Distanzen auch für Teilneher zu erhalten, die zu verschiedenen Zeiten gestartet sind. dashboardHeader=Dashboard dashboardNoWindBotAvailableHeader=Wind Bot nicht verfügbar. @@ -1329,7 +1329,7 @@ eventsCount[one]={0,number} Veranstaltung competitorsCount={0,number} Teams courseAreaName=Regattabahn: {0} competitorsCount[one]={0,number} Team -currentOfTotalLegs=Schenkel {0,number}/{1,number} +currentOfTotalLegs=Bahnschenkel {0,number}/{1,number} clone=Clone changed=Changed matcher=Matcher @@ -2248,7 +2248,7 @@ errorAssigningCertificates: Fehler beim Zuweisen von Messbriefen zu Booten: {0} insertedAndReplacedAndRemovedCertificateAssignments=Neue Messbriefzuweisungen: {0}. Geänderte Zuweisungen: {1}. Gelöschte Zuweisungen: {2}. spreadTotalDistanceProportionallyAcrossLegs=Gesamtdistanz proportional auf Bahnschenkel verteilen trackedTwaInDegrees=Getrackter TWA (°) -trackedDistanceInNauticalMiles=Getrackte Schenkel-Distanz (NM) +trackedDistanceInNauticalMiles=Getrackte Bahnschenkel-Distanz (NM) useTrackedData=Tracking-Werte verwenden totalDistance=Gesamtdistanz (NM) setAllLegsToType=Typ für alle Bahnschenkel setzen diff --git a/java/com.sap.sailing.polars.datamining/resources/stringmessages/Polars_StringMessages_de.properties b/java/com.sap.sailing.polars.datamining/resources/stringmessages/Polars_StringMessages_de.properties index 98e27886ed5..57c893481a8 100644 --- a/java/com.sap.sailing.polars.datamining/resources/stringmessages/Polars_StringMessages_de.properties +++ b/java/com.sap.sailing.polars.datamining/resources/stringmessages/Polars_StringMessages_de.properties @@ -1,6 +1,6 @@ PolarChain1=Polare PolarChain2=Backend-Polare -LegIndex=Schenkel Index +LegIndex=Bahnschenkel Index PolarData=Polardaten Polars=Polare GPSFix=GPS Fix diff --git a/java/com.sap.sse.datamining.test/resources/stringmessages/Test_StringMessages_de.properties b/java/com.sap.sse.datamining.test/resources/stringmessages/Test_StringMessages_de.properties index e58d2aaf0d7..bd283fb2b5a 100644 --- a/java/com.sap.sse.datamining.test/resources/stringmessages/Test_StringMessages_de.properties +++ b/java/com.sap.sse.datamining.test/resources/stringmessages/Test_StringMessages_de.properties @@ -6,7 +6,7 @@ regattaName = Regatta Name crossSum = Quersumme Name=Name Year = Jahr -LegNumber=Anzahl der Schenkel +LegNumber=Anzahl der Bahnschenkel SailID=Segelnummer TestCluster=Test Cluster Deutsch increment=Inkrementieren From 7dd03974d87418aac1f83156bbea33c8065684ee Mon Sep 17 00:00:00 2001 From: Lisa Date: Fri, 10 Nov 2023 16:43:03 +0100 Subject: [PATCH 28/34] Correction_LengthOfTheLeg_Stringmessage --- .../resources/stringmessages/Sailing_StringMessages.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties index fa377e9fb8c..d6b88549a14 100644 --- a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties +++ b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties @@ -255,5 +255,5 @@ LowestSpeed=Lowest Speed SpeedChange=Speed Change MaximumTurningRate=Maximum turning rate (°/s) AverageTurningRate=Average turning rate (°/s) -LengthoftheLeg=Length of the Leg +LengthOfTheLeg=Length of the Leg LegSailingDomainRetrieverChain=Leg \ No newline at end of file From 88cc25509b9d197ebe675c6b411d8a1d7a9dab46 Mon Sep 17 00:00:00 2001 From: Lisa Date: Fri, 10 Nov 2023 16:57:39 +0100 Subject: [PATCH 29/34] LengthOfTheLeg_in_HasTrackedLegContext --- .../com/sap/sailing/datamining/data/HasTrackedLegContext.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasTrackedLegContext.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasTrackedLegContext.java index ffc0eef9288..00e77311f1e 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasTrackedLegContext.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasTrackedLegContext.java @@ -18,6 +18,6 @@ public interface HasTrackedLegContext { public LegType getLegType(); @Dimension(messageKey="LegNumber", ordinal=7) public int getLegNumber(); - @Statistic(messageKey = "LengthoftheLeg", resultDecimals = 2) + @Statistic(messageKey = "LengthOfTheLeg", resultDecimals = 2) Distance getLegLength(); } \ No newline at end of file From ee05263fe16246d8753d82dd851f440527eacd66 Mon Sep 17 00:00:00 2001 From: Lisa Date: Mon, 13 Nov 2023 11:27:58 +0100 Subject: [PATCH 30/34] releasenotes --- .../places/whatsnew/resources/SailingAnalyticsNotes.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html index 5208abd2221..fd22d00bb8b 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html @@ -4,6 +4,10 @@

    What's New - SAP Sailing Analytics

    +
    November 2023
    +
      +
    • Added statistics for length of a leg to the Data Mining module.
    • +
    October 2023
    • Competitor charts sometimes wouldn't update properly in live mode. This has now been fixed.
    • From 8861f54b0e4f3215800a3fe0473f1ecc09c4009c Mon Sep 17 00:00:00 2001 From: Thomas Stokes Date: Mon, 13 Nov 2023 10:54:14 +0000 Subject: [PATCH 31/34] Add mongodb installation suggestions --- wiki/howto/onboarding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki/howto/onboarding.md b/wiki/howto/onboarding.md index d8c18072a18..60d96221854 100644 --- a/wiki/howto/onboarding.md +++ b/wiki/howto/onboarding.md @@ -48,7 +48,7 @@ First of all, make sure you've looked at [http://www.amazon.de/Patterns-Elements 3. JDK 1.8 (Java SE 8), ideal is the SAPJVM 1.8: Go to [https://tools.eu1.hana.ondemand.com/#cloud](https://tools.eu1.hana.ondemand.com/#cloud), scroll down to `SAP JVM` select your operating System, extract the downloaded .zip into desired location (e.g. Windows `C:\Program Files\Java`. If you want to make this your default JDK, set the `JAVA_HOME` variable to it. In any case, set the `JAVA8_HOME` variable to it which is required by a few build scripts where certain steps currently are not yet compatible with newer JDK releases, such as our Android build process, keeping us on Gradle 6.0.1 for the time being which isn't Java 17-compatible. 4. Git (e.g. Git for Windows v2.18), [http://git-scm.com](http://git-scm.com) / [https://git-for-windows.github.io](https://git-for-windows.github.io) 5. Configure git (see [Git repository configuration essentials](#onboarding-information_sap-sailing-analytics-development-setup_git-repository-configuration-essentials)) -6. MongoDB (at least Release 4.4), download: [https://www.mongodb.com/](https://www.mongodb.com/) +6. MongoDB (at least Release 4.4), download: [https://www.mongodb.com/](https://www.mongodb.com/). You may need to choose the community edition. In addition, install `mongosh`. 7. RabbitMQ, download from [http://www.rabbitmq.com](http://www.rabbitmq.com). Requires Erlang to be installed. RabbitMQ installer will assist in installing Erlang. Some sources report that there may be trouble with the latest versions of RabbitMQ. In some cases, McAffee seems to block the installation of the latest version on SAP hardware; in other cases connection problems to the newest versions have been reported. We know that version 3.6.8 works well. [https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_8](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_8) 8. Maven 3.1.1 (or higher), [http://maven.apache.org](http://maven.apache.org) A setup guide for windows can be found on this webpage: [https://maven.apache.org/guides/getting-started/windows-prerequisites.html](https://maven.apache.org/guides/getting-started/windows-prerequisites.html) From 8a61c953ba81233b6a858aba39ccf84f876e0c9f Mon Sep 17 00:00:00 2001 From: Generic Wiki User Date: Tue, 14 Nov 2023 12:10:02 +0000 Subject: [PATCH 32/34] Updated tractrac-json-urls --- configuration/tractrac-json-urls | 1 + 1 file changed, 1 insertion(+) diff --git a/configuration/tractrac-json-urls b/configuration/tractrac-json-urls index 3bd9ca2cdc5..24a15c57a68 100644 --- a/configuration/tractrac-json-urls +++ b/configuration/tractrac-json-urls @@ -401,6 +401,7 @@ https://event3.tractrac.com/events/event_20230629_TheOceanRa/jsonservice.php https://event3.tractrac.com/events/event_20230706_ParisOlymp/jsonservice.php https://event3.tractrac.com/events/event_20230809_AllianzPar/jsonservice.php https://event3.tractrac.com/events/event_20230809_AllianzSai1/jsonservice.php +https://event3.tractrac.com/events/event_20231105_Europeaner/jsonservice.php https://event.tractrac.com/events/event_20170727_Travemnder2/jsonservice.php https://event.tractrac.com/events/event_20171013_DSLPokalGl/jsonservice.php https://event.tractrac.com/events/event_20181012_MstarnasMs/jsonservice.php From c57f164157c2cd7e08380fdb37d05cad8245a514 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Tue, 14 Nov 2023 16:52:34 +0100 Subject: [PATCH 33/34] removed redundant empty line --- .../sap/sailing/gwt/ui/client/shared/racemap/FixesAndTails.java | 1 - 1 file changed, 1 deletion(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/FixesAndTails.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/FixesAndTails.java index 5cf548c588d..2a8a61e2076 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/FixesAndTails.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/FixesAndTails.java @@ -851,7 +851,6 @@ public class FixesAndTails { protected Double getDetailValueAt(CompetitorDTO competitorDTO, int index) { final Trigger firstShownFixForCompetitor = firstShownFix.get(competitorDTO); int indexOfFirstShownFix = (firstShownFixForCompetitor == null || firstShownFixForCompetitor.get() == null) ? -1 : firstShownFixForCompetitor.get(); - try { return getFixes(competitorDTO).get(indexOfFirstShownFix + index).detailValue; } catch (IndexOutOfBoundsException e) { From 604edcc297fdb0b3e67c6057fd157b8c4de2a603 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 15 Nov 2023 13:34:59 +0100 Subject: [PATCH 34/34] try to compile Android apps with and for SDK level 33 instead of 30 --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 3a613034076..91473599af8 100755 --- a/build.gradle +++ b/build.gradle @@ -50,9 +50,9 @@ allprojects { ext { // regular buildTools = "30.0.3" - compileSdk = 31 + compileSdk = 33 minSdk = 16 - targetSdk = 31 + targetSdk = 33 sourceCompatibilityVersion = JavaVersion.VERSION_1_8 targetCompatibilityVersion = JavaVersion.VERSION_1_8