diff --git a/configuration/environments/README b/configuration/environments/README new file mode 100644 index 00000000000..d7553ebd08f --- /dev/null +++ b/configuration/environments/README @@ -0,0 +1,2 @@ +place these under https://releases.sapsailing.com/environments which is usually +served by trac@sapsailing.com:releases/environments diff --git a/configuration/environments/archive-server b/configuration/environments/archive-server new file mode 100755 index 00000000000..3aedd1cbdff --- /dev/null +++ b/configuration/environments/archive-server @@ -0,0 +1,24 @@ +MEMORY=400g +SERVER_NAME=ARCHIVE +REPLICATION_CHANNEL=sapsailinganalytics-archive +MONGODB_URI="mongodb://dbserver.internal.sapsailing.com:10201/winddb?replicaSet=archive&retryWrites=true&readPreference=secondaryPreferred" +SERVER_STARTUP_NOTIFY=axel.uhl@sap.com +BUILD_COMPLETE_NOTIFY=axel.uhl@sap.com + +# Configuring for shared SecurityService/SharedSailingData: +#ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -DAnniversaryRaceDeterminator.enabled=false" +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$" +REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl,com.sap.sse.landscape.aws.impl.AwsLandscapeStateImpl +REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com +REPLICATE_MASTER_SERVLET_PORT=443 +REPLICATE_MASTER_EXCHANGE_NAME=security_service + +# Provide authentication credentials for a user on security-service.sapsailing.com permitted to replicate, either by username/password... +#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission) +#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com) +# Or by bearer token, obtained, e.g., through +# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token +# or by logging in to the security-service.sapsailing.com server using your web browser and then navigating to +# https://security-service.sapsailing.com/security/api/restsecurity/access_token +#REPLICATE_MASTER_BEARER_TOKEN= + diff --git a/configuration/environments/archive-server-recovery b/configuration/environments/archive-server-recovery new file mode 100755 index 00000000000..3e741d96d88 --- /dev/null +++ b/configuration/environments/archive-server-recovery @@ -0,0 +1,17 @@ +SERVER_NAME=ARCHIVE-RECOVERY +REPLICATION_HOST=rabbit.internal.sapsailing.com +REPLICATION_CHANNEL=sapsailinganalytics-archive +TELNET_PORT=14888 +SERVER_PORT=8888 +MONGODB_HOST=dbserver.internal.sapsailing.com +MONGODB_PORT=10208 +MONGODB_NAME=winddb +EXPEDITION_PORT=2010 +REPLICATE_ON_START= +REPLICATE_MASTER_SERVLET_HOST= +REPLICATE_MASTER_SERVLET_PORT= +REPLICATE_MASTER_QUEUE_HOST= +REPLICATE_MASTER_QUEUE_PORT= +SERVER_STARTUP_NOTIFY=simon.marcel.pamies@sap.com +BUILD_COMPLETE_NOTIFY=simon.marcel.pamies@sap.com +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Drestore.tracked.races=true -XX:ThreadPriorityPolicy=2" diff --git a/configuration/environments/dev-server b/configuration/environments/dev-server new file mode 100755 index 00000000000..a626f54c9b5 --- /dev/null +++ b/configuration/environments/dev-server @@ -0,0 +1,13 @@ +SERVER_NAME=DEV +REPLICATION_HOST=rabbit.internal.sapsailing.com +REPLICATION_CHANNEL=sapsailinganalytics-dev +TELNET_PORT=14888 +SERVER_PORT=8888 +MONGODB_HOST=dbserver.internal.sapsailing.com +MONGODB_PORT=10200 +EXPEDITION_PORT=2010 +REPLICATE_ON_START=False +REPLICATE_MASTER_SERVLET_HOST= +REPLICATE_MASTER_SERVLET_PORT= +REPLICATE_MASTER_QUEUE_HOST= +REPLICATE_MASTER_QUEUE_PORT= diff --git a/configuration/environments/live-master-server b/configuration/environments/live-master-server new file mode 100755 index 00000000000..e02ce9ee60a --- /dev/null +++ b/configuration/environments/live-master-server @@ -0,0 +1,19 @@ +# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com: +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$" +# obtain initial polar sheet data from the archive server, without live replication: +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dpolardata.source.url=https://www.sapsailing.com" +# obtain initial models for wind estimation from maneuvers from the archive server, without live replication: +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dwindestimation.source.url=https://www.sapsailing.com" +REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl,com.sap.sse.landscape.aws.impl.AwsLandscapeStateImpl +REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com +REPLICATE_MASTER_EXCHANGE_NAME=security_service + +# Provide authentication credentials for a user on the security-service.sapsailing.com permitted to replicate, either by username/password... +#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission) +#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com) +# Or by bearer token, obtained, e.g., through +# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token +# or by logging in to the security-service.sapsailing.com server with a user having the SERVER:REPLICATE:security-service and SERVER:READ_REPLICATOR:security-service +# permissions, using your web browser and then navigating to +# https://security-service.sapsailing.com/security/api/restsecurity/access_token +#REPLICATE_MASTER_BEARER_TOKEN= diff --git a/configuration/environments/live-replica-server b/configuration/environments/live-replica-server new file mode 100755 index 00000000000..e90f85166a1 --- /dev/null +++ b/configuration/environments/live-replica-server @@ -0,0 +1,2 @@ +AUTO_REPLICATE=true +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$" diff --git a/configuration/environments/live-server b/configuration/environments/live-server new file mode 100755 index 00000000000..2231ed23c59 --- /dev/null +++ b/configuration/environments/live-server @@ -0,0 +1,29 @@ +TELNET_PORT=14888 +SERVER_PORT=8888 +MONGODB_HOST=dbserver.internal.sapsailing.com +MONGODB_PORT=10202 +EXPEDITION_PORT=2010 +DEPLOY_TO=server +REPLICATE_MASTER_SERVLET_PORT=8888 +REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com +REPLICATE_MASTER_QUEUE_PORT=5672 +REPLICATION_HOST=rabbit.internal.sapsailing.com +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -XX:ThreadPriorityPolicy=2" +SERVER_STARTUP_NOTIFY=axel.uhl@sap.com +BUILD_COMPLETE_NOTIFY=axel.uhl@sap.com + +# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com: +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$" +REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl +REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com +REPLICATE_MASTER_SERVLET_PORT=443 +REPLICATE_MASTER_EXCHANGE_NAME=security_service + +# Provide authentication credentials for a user on security-service.sapsailing.com permitted to replicate, either by username/password... +#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission) +#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com) +# Or by bearer token, obtained, e.g., through +# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token +# or by logging in to the security-service.sapsailing.com server using your web browser and then navigating to +# https://security-service.sapsailing.com/security/api/restsecurity/access_token +#REPLICATE_MASTER_BEARER_TOKEN= diff --git a/configuration/environments/local-dev-server b/configuration/environments/local-dev-server new file mode 100755 index 00000000000..095440b8245 --- /dev/null +++ b/configuration/environments/local-dev-server @@ -0,0 +1,15 @@ +SERVER_NAME=DEV +REPLICATION_HOST=localhost +REPLICATION_CHANNEL=sapsailinganalytics-dev +TELNET_PORT=14888 +SERVER_PORT=8888 +MONGODB_HOST=localhost +MONGODB_PORT=27017 +EXPEDITION_PORT=2010 +REPLICATE_ON_START=False +REPLICATE_MASTER_SERVLET_HOST= +REPLICATE_MASTER_SERVLET_PORT= +REPLICATE_MASTER_QUEUE_HOST= +REPLICATE_MASTER_QUEUE_PORT= +SERVER_STARTUP_NOTIFY= +BUILD_COMPLETE_NOTIFY= diff --git a/configuration/environments/master b/configuration/environments/master new file mode 100755 index 00000000000..d9989af9388 --- /dev/null +++ b/configuration/environments/master @@ -0,0 +1,35 @@ +SERVER_NAME=LIVE +MONGODB_NAME=live +REPLICATION_CHANNEL=live +MEMORY=4096m +TELNET_PORT=14888 +SERVER_PORT=8888 +MONGODB_HOST=dbserver.internal.sapsailing.com +MONGODB_PORT=10201 +EXPEDITION_PORT=2010 +DEPLOY_TO=server +REPLICATE_ON_START=False +REPLICATE_MASTER_SERVLET_HOST= +REPLICATE_MASTER_SERVLET_PORT=8888 +REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com +REPLICATE_MASTER_QUEUE_PORT=5672 +REPLICATION_HOST=rabbit.internal.sapsailing.com +SERVER_STARTUP_NOTIFY=axel.uhl@sap.com +BUILD_COMPLETE_NOTIFY=axel.uhl@sap.com +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2" + +# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com: +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$" +REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl,com.sap.sse.landscape.aws.impl.AwsLandscapeStateImpl +REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com +REPLICATE_MASTER_SERVLET_PORT=443 +REPLICATE_MASTER_EXCHANGE_NAME=security_service + +# Provide authentication credentials for a user on security-service.sapsailing.com permitted to replicate, either by username/password... +#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission) +#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com) +# Or by bearer token, obtained, e.g., through +# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token +# or by logging in to the security-service.sapsailing.com server using your web browser and then navigating to +# https://security-service.sapsailing.com/security/api/restsecurity/access_token +#REPLICATE_MASTER_BEARER_TOKEN= diff --git a/configuration/environments/replica b/configuration/environments/replica new file mode 100755 index 00000000000..1665c2f7e10 --- /dev/null +++ b/configuration/environments/replica @@ -0,0 +1,9 @@ +REPLICATION_HOST=rabbit.internal.sapsailing.com +MONGODB_HOST=dbserver.internal.sapsailing.com +MONGODB_PORT=10202 +EXPEDITION_PORT=2010 +REPLICATE_ON_START=com.sap.sailing.server.impl.RacingEventServiceImpl,com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sse.filestorage.impl.FileStorageManagementServiceImpl,com.sap.sse.mail.impl.MailServiceImpl,com.sap.sailing.polars.impl.PolarDataServiceImpl,com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener,com.sap.sailing.shared.server.impl.SharedSailingDataImpl,com.sap.sse.landscape.aws.impl.AwsLandscapeStateImpl +REPLICATE_MASTER_SERVLET_PORT=8888 +REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com +REPLICATE_MASTER_QUEUE_PORT=5672 +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -XX:ThreadPriorityPolicy=2" diff --git a/configuration/environments/security-service-master b/configuration/environments/security-service-master new file mode 100755 index 00000000000..bf2047689ef --- /dev/null +++ b/configuration/environments/security-service-master @@ -0,0 +1,34 @@ +TELNET_PORT=14888 +SERVER_PORT=8888 +MONGODB_HOST=dbserver.internal.sapsailing.com +MONGODB_PORT=10202 +EXPEDITION_PORT=2010 +DEPLOY_TO=security_service +REPLICATE_MASTER_SERVLET_PORT=8888 +REPLICATE_MASTER_QUEUE_HOST=rabbit.internal.sapsailing.com +REPLICATE_MASTER_QUEUE_PORT=5672 +REPLICATION_HOST=rabbit.internal.sapsailing.com +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dorg.eclipse.jetty.LEVEL=OFF -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -Drestore.tracked.races=true -Dpolardata.source.url=https://www.sapsailing.com -XX:ThreadPriorityPolicy=2" +SERVER_STARTUP_NOTIFY=axel.uhl@sap.com +BUILD_COMPLETE_NOTIFY=axel.uhl@sap.com + +# To enable the use of the shared SecurityService and SharedSailingData from security-service.sapsailing.com: +ADDITIONAL_JAVA_ARGS="$ADDITIONAL_JAVA_ARGS -Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com -Dsecurity.baseUrlForCrossDomainStorage=https://security-service.sapsailing.com -Dgwt.acceptableCrossDomainStorageRequestOriginRegexp=https?://(.*\.)?sapsailing\.com(:[0-9]*)?$" +# For the security-service master instance, don't activate replication from security-service +#REPLICATE_ON_START=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl,com.sap.sse.landscape.aws.impl.AwsLandscapeStateImpl +#REPLICATE_MASTER_SERVLET_HOST=security-service.sapsailing.com +#REPLICATE_MASTER_SERVLET_PORT=443 +#REPLICATE_MASTER_EXCHANGE_NAME=security_service + +# Provide authentication credentials for a user on security-service.sapsailing.com permitted to replicate, either by username/password... +#REPLICATE_MASTER_USERNAME=(user for replicator login on security-service.sapsailing.com server having SERVER:REPLICATE:<server-name> permission) +#REPLICATE_MASTER_PASSWORD=(password of the user for replication login on security-service.sapsailing.com) +# Or by bearer token, obtained, e.g., through +# curl -d "username=myuser&password=mysecretpassword" "https://security-service.sapsailing.com/security/api/restsecurity/access_token" | jq .access_token +# or by logging in to the security-service.sapsailing.com server using your web browser and then navigating to +# https://security-service.sapsailing.com/security/api/restsecurity/access_token +#REPLICATE_MASTER_BEARER_TOKEN= + +MONGODB_URI="mongodb://mongo0.internal.sapsailing.com,mongo1.internal.sapsailing.com/security_service?replicaSet=live&retryWrites=true" +SERVER_NAME=security_service +REPLICATION_CHANNEL=security_service diff --git a/docker/makeImageForLatestRelease b/docker/makeImageForLatestRelease index 34636204c8d..381858cacc3 100755 --- a/docker/makeImageForLatestRelease +++ b/docker/makeImageForLatestRelease @@ -1,9 +1,9 @@ #!/bin/bash release=$1 -if [ "$release" = "" ]; then +if [ "${release}" = "" ]; then SET_LATEST=1 - release=$(wget -O - http://releases.sapsailing.com/ 2>/dev/null | grep build- | tail -1 | sed -e 's/^.*\(build-[0-9]*\).*$/\1/') - echo Latest release is $release + release=$(wget -O - http://releases.sapsailing.com/ 2>/dev/null | grep 'build-[0-9]\{10\}' | tail -1 | sed -e 's/^.*\(build-[0-9]*\).*$/\1/') + echo Latest release is ${release} fi GITROOT="`dirname $0`/.." DOCKERDIR="${GITROOT}/docker" @@ -13,12 +13,12 @@ cp "$GITROOT/java/target/env.sh" "$DOCKERDIR" cp "$GITROOT/java/target/start" "$DOCKERDIR" cp "$GITROOT/java/target/configuration/JavaSE-11.profile" "$DOCKERDIR" cd "$DOCKERDIR" -docker build --build-arg RELEASE=${release} -t sapsailing:$release . +docker build --build-arg RELEASE=${release} -t sapsailing:${release} . echo "Cleaning up..." rm start env.sh JavaSE-11.profile Dockerfile -docker tag sapsailing:$release docker.sapsailing.com/sapsailing:$release -docker push docker.sapsailing.com/sapsailing:$release +docker tag sapsailing:${release} docker.sapsailing.com/sapsailing:${release} +docker push docker.sapsailing.com/sapsailing:${release} if [ "$SET_LATEST" = "1" ]; then - docker tag sapsailing:$release docker.sapsailing.com/sapsailing:latest + docker tag sapsailing:${release} docker.sapsailing.com/sapsailing:latest docker push docker.sapsailing.com/sapsailing:latest fi diff --git a/docker/makeImageForLatestRelease-on-sapmachine11 b/docker/makeImageForLatestRelease-on-sapmachine11 index 800dfcf0a99..2c5ae81b834 100755 --- a/docker/makeImageForLatestRelease-on-sapmachine11 +++ b/docker/makeImageForLatestRelease-on-sapmachine11 @@ -1,9 +1,9 @@ #!/bin/bash release=$1 -if [ "$release" = "" ]; then +if [ "${release}" = "" ]; then SET_LATEST=1 - release=$(wget -O - http://releases.sapsailing.com/ 2>/dev/null | grep sapmachine11- | tail -1 | sed -e 's/^.*\(sapmachine11-[0-9]*\).*$/\1/') - echo Latest release is $release + release=$(wget -O - http://releases.sapsailing.com/ 2>/dev/null | grep 'sapmachine11-[0-9]\{10\}' | tail -1 | sed -e 's/^.*\(sapmachine11-[0-9]*\).*$/\1/') + echo Latest release is ${release} fi GITROOT="`dirname $0`/.." DOCKERDIR="${GITROOT}/docker" @@ -14,14 +14,14 @@ for f in ${FILES_TO_COPY_FROM_JAVA_TARGET}; do cp "${GITROOT}/java/target/${f}" "$DOCKERDIR" done cd "$DOCKERDIR" -docker build --build-arg RELEASE=${release} -t sapsailing_on_sapmachine11:$release -f Dockerfile_sapsailing_on_sapmachine11 . +docker build --build-arg RELEASE=${release} -t sapsailing_on_sapmachine11:${release} -f Dockerfile_sapsailing_on_sapmachine11 . echo "Cleaning up..." for f in ${FILES_TO_COPY_FROM_JAVA_TARGET}; do rm "`basename ${f}`" done -docker tag sapsailing_on_sapmachine11:$release docker.sapsailing.com/sapsailing_on_sapmachine11:$release -docker push docker.sapsailing.com/sapsailing_on_sapmachine11:$release +docker tag sapsailing_on_sapmachine11:${release} docker.sapsailing.com/sapsailing_on_sapmachine11:${release} +docker push docker.sapsailing.com/sapsailing_on_sapmachine11:${release} if [ "$SET_LATEST" = "1" ]; then - docker tag sapsailing_on_sapmachine11:$release docker.sapsailing.com/sapsailing_on_sapmachine11:latest + docker tag sapsailing_on_sapmachine11:${release} docker.sapsailing.com/sapsailing_on_sapmachine11:latest docker push docker.sapsailing.com/sapsailing_on_sapmachine11:latest fi diff --git a/docker/makeImageForLatestRelease-on-sapmachine17 b/docker/makeImageForLatestRelease-on-sapmachine17 index 52a61e44c7a..3513d69dbe3 100755 --- a/docker/makeImageForLatestRelease-on-sapmachine17 +++ b/docker/makeImageForLatestRelease-on-sapmachine17 @@ -1,9 +1,9 @@ #!/bin/bash release=$1 -if [ "$release" = "" ]; then +if [ "${release}" = "" ]; then SET_LATEST=1 - release=$(wget -O - http://releases.sapsailing.com/ 2>/dev/null | grep sapmachine17- | tail -1 | sed -e 's/^.*\(sapmachine17-[0-9]*\).*$/\1/') - echo Latest release is $release + release=$(wget -O - http://releases.sapsailing.com/ 2>/dev/null | grep 'sapmachine17-[0-9]\{10\}' | tail -1 | sed -e 's/^.*\(sapmachine17-[0-9]*\).*$/\1/') + echo Latest release is ${release} fi GITROOT="`dirname $0`/.." DOCKERDIR="${GITROOT}/docker" @@ -14,14 +14,14 @@ for f in ${FILES_TO_COPY_FROM_JAVA_TARGET}; do cp "${GITROOT}/java/target/${f}" "$DOCKERDIR" done cd "$DOCKERDIR" -docker build --build-arg RELEASE=${release} -t sapsailing_on_sapmachine17:$release -f Dockerfile_sapsailing_on_sapmachine17 . +docker build --build-arg RELEASE=${release} -t sapsailing_on_sapmachine17:${release} -f Dockerfile_sapsailing_on_sapmachine17 . echo "Cleaning up..." for f in ${FILES_TO_COPY_FROM_JAVA_TARGET}; do rm "`basename ${f}`" done -docker tag sapsailing_on_sapmachine17:$release docker.sapsailing.com/sapsailing_on_sapmachine17:$release -docker push docker.sapsailing.com/sapsailing_on_sapmachine17:$release +docker tag sapsailing_on_sapmachine17:${release} docker.sapsailing.com/sapsailing_on_sapmachine17:${release} +docker push docker.sapsailing.com/sapsailing_on_sapmachine17:${release} if [ "$SET_LATEST" = "1" ]; then - docker tag sapsailing_on_sapmachine17:$release docker.sapsailing.com/sapsailing_on_sapmachine17:latest + docker tag sapsailing_on_sapmachine17:${release} docker.sapsailing.com/sapsailing_on_sapmachine17:latest docker push docker.sapsailing.com/sapsailing_on_sapmachine17:latest fi diff --git a/docker/makeImageForLatestRelease-raspi b/docker/makeImageForLatestRelease-raspi index 2a060ffd8f0..a5b0477f3fb 100755 --- a/docker/makeImageForLatestRelease-raspi +++ b/docker/makeImageForLatestRelease-raspi @@ -1,9 +1,9 @@ #!/bin/bash release=$1 -if [ "$release" = "" ]; then +if [ "${release}" = "" ]; then SET_LATEST=1 release=$(wget -O - http://releases.sapsailing.com/ 2>/dev/null | grep build- | tail -1 | sed -e 's/^.*\(build-[0-9]*\).*$/\1/') - echo Latest release is $release + echo Latest release is ${release} fi GITROOT="`dirname $0`/.." DOCKERDIR="${GITROOT}/docker" diff --git a/java/com.sap.sailing.domain.test/TestTTCM without Proxy.launch b/java/com.sap.sailing.domain.test/TestTTCM without Proxy.launch index 27b4a89210c..40f8f5c221b 100644 --- a/java/com.sap.sailing.domain.test/TestTTCM without Proxy.launch +++ b/java/com.sap.sailing.domain.test/TestTTCM without Proxy.launch @@ -1,16 +1,18 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LowPointFirstToWinThreeRaces.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LowPointFirstToWinThreeRaces.java index db40db04dc8..65161d6f027 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LowPointFirstToWinThreeRaces.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LowPointFirstToWinThreeRaces.java @@ -33,7 +33,7 @@ import com.sap.sse.common.Util.Pair; *

* * Those carried wins are added to the - * {@link #isWin(com.sap.sailing.domain.leaderboard.Leaderboard, com.sap.sailing.domain.base.Competitor, com.sap.sailing.domain.base.RaceColumn, com.sap.sse.common.TimePoint, com.sap.sailing.domain.tracking.WindLegTypeAndLegBearingAndORCPerformanceCurveCache, Function) + * {@link #isWin(Leaderboard, Competitor, RaceColumn, TimePoint, Function, WindLegTypeAndLegBearingAndORCPerformanceCurveCache) * wins} achieved in the medal series. More wins rank better. Equal numbers of races won make the score in the last race * in that series the first tie-breaker. Note that "last race" can be different races in case of multiple fleets in that * medal series, such as in a semi-final medal series split into fleets A and B. Should the tie not be resolved this diff --git a/java/com.sap.sailing.gwt.ui/GWT Sailing DevMode.launch b/java/com.sap.sailing.gwt.ui/GWT Sailing DevMode.launch index 964428b8c6e..29d77d495ef 100755 --- a/java/com.sap.sailing.gwt.ui/GWT Sailing DevMode.launch +++ b/java/com.sap.sailing.gwt.ui/GWT Sailing DevMode.launch @@ -95,7 +95,6 @@ - diff --git a/java/com.sap.sailing.gwt.ui/GWT Sailing SDM (Home+Admin+Raceboard).launch b/java/com.sap.sailing.gwt.ui/GWT Sailing SDM (Home+Admin+Raceboard).launch index 451b0abcafd..bd0ffca7c13 100644 --- a/java/com.sap.sailing.gwt.ui/GWT Sailing SDM (Home+Admin+Raceboard).launch +++ b/java/com.sap.sailing.gwt.ui/GWT Sailing SDM (Home+Admin+Raceboard).launch @@ -88,7 +88,6 @@ - diff --git a/java/com.sap.sailing.gwt.ui/GWT Sailing SDM ManagementConsole.launch b/java/com.sap.sailing.gwt.ui/GWT Sailing SDM ManagementConsole.launch index 3813def89a1..167290d78e2 100644 --- a/java/com.sap.sailing.gwt.ui/GWT Sailing SDM ManagementConsole.launch +++ b/java/com.sap.sailing.gwt.ui/GWT Sailing SDM ManagementConsole.launch @@ -85,7 +85,6 @@ - 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 2bfd62b15b6..9031190bc6e 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 @@ -26,6 +26,9 @@ solved this issue.

  • Data mining now offers administrators with the necessary permissions to analyze role, permission, session and subscription data for administrative purposes.
  • +
  • The .../v2/leaderboards API now supports the LEG_AVERAGE_SPEED_OVER_GROUND_IN_KNOTS detail type, + also included when specifying ALL. It produces the field currentLegAverageSpeedOverGround-kts + in the data part of the result document.
  • January 2023

    February 2023