mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-08 20:12:23 +00:00
Merge branch 'master' into bug5153
This commit is contained in:
commit
ee50849428
142 files changed
+2633
-779
No files matched your search
+2
-2
@@ -27,7 +27,7 @@ shift
|
||||
echo "Deleting tags $* in repository ${REPO}..."
|
||||
|
||||
# delete images and/or tags
|
||||
IMAGE_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://cloud.docker.com/v2/repositories/${REPO}/tags/?page_size=1000 | jq -r '.results|.[]|.name')
|
||||
IMAGE_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/${REPO}/tags/?page_size=1000 | jq -r '.results|.[]|.name')
|
||||
for j in ${IMAGE_TAGS}
|
||||
do
|
||||
# echo "Checking tag $j"
|
||||
@@ -39,7 +39,7 @@ do
|
||||
if [[ $j =~ $k ]]; then
|
||||
found=1
|
||||
echo -n " - ${j} ... "
|
||||
curl -X DELETE -s -H "Authorization: JWT ${TOKEN}" https://cloud.docker.com/v2/repositories/${REPO}/tags/${j}/
|
||||
curl -X DELETE -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/${REPO}/tags/${j}/
|
||||
echo "DELETED ($?)"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -14,6 +14,6 @@ echo
|
||||
|
||||
# get token
|
||||
echo "Retrieving token ..."
|
||||
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${UNAME}'", "password": "'${UPASS}'"}' https://cloud.docker.com/v2/users/login/ | jq -r .token)
|
||||
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${UNAME}'", "password": "'${UPASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
|
||||
|
||||
echo "$TOKEN" >"${TOKEN_FILE}"
|
||||
+1
-1
@@ -23,7 +23,7 @@ shift
|
||||
|
||||
# -------
|
||||
|
||||
IMAGE_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://cloud.docker.com/v2/repositories/${REPO}/tags/?page_size=1000 | jq -r '.results|.[]|.name')
|
||||
IMAGE_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/${REPO}/tags/?page_size=1000 | jq -r '.results|.[]|.name')
|
||||
for j in ${IMAGE_TAGS}
|
||||
do
|
||||
if [ "$#" = "0" ]; then
|
||||
|
||||
+55
-6
@@ -3,33 +3,67 @@ package com.sap.sailing.domain.common.orc;
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
|
||||
import com.sap.sse.common.Bearing;
|
||||
import com.sap.sse.common.Distance;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.Speed;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.WithID;
|
||||
import com.sap.sse.common.impl.DegreeBearingImpl;
|
||||
|
||||
/**
|
||||
* Represents semantically a real ORC certificate for a {@link Competitor}, which is used to rate different type of
|
||||
* boats for different insohre and offshore race conditions.
|
||||
* boats for different inshore and offshore race conditions.
|
||||
* <p>
|
||||
* An ORC certificate is issued by the "Member National Authorities" of World Sailing and are available for insight at
|
||||
* https://www.orc.org/index.asp . Other information about the whole scoring system and different variants are available
|
||||
* too.
|
||||
* <p>
|
||||
* One implementing class provides all necessary functionalities to score the Competitors with a choosen
|
||||
* {@link RankingMetric}.<p>
|
||||
* {@link RankingMetric}.
|
||||
* <p>
|
||||
*
|
||||
* The {@link WithID} interface is to be implemented such that a {@link String} is produced as the ID that
|
||||
* contains the concatenation (without intermediate white space) of the {@code NatAuth}, the {@code CertNo}
|
||||
* and the {@code BIN} fields, as provided as single fields in the JSON representation, and as provided
|
||||
* in the concatenated form in the {@code NATCERTN.FILE_ID} column in the RMS format.
|
||||
* The {@link WithID} interface is to be implemented such that a {@link String} is produced as the ID that contains the
|
||||
* concatenation (without intermediate white space) of the {@code NatAuth}, the {@code CertNo} and the {@code BIN}
|
||||
* fields, as provided as single fields in the JSON representation, and as provided in the concatenated form in the
|
||||
* {@code NATCERTN.FILE_ID} column in the RMS format.
|
||||
* <p>
|
||||
*
|
||||
* The certificate contains time allowances (or, conversely, speed predictions) for a combination of true wind speeds
|
||||
* (TWS) and true wind angles (TWA). There are defaults for the values used for the true wind speeds and the true wind
|
||||
* angles, forming a regular, fully populated matrix of allowances / speed predictions. These defaults can be found in
|
||||
* {@link #ALLOWANCES_TRUE_WIND_SPEEDS} and {@link #ALLOWANCES_TRUE_WIND_SPEEDS}.
|
||||
* <p>
|
||||
*
|
||||
* Certificates may also specify non-default values for the slots or "bins" of the matrix that describes the allowances
|
||||
* / speed predictions. As for the default values, the allowances matrix has to be fully populated. The values in the
|
||||
* TWS and TWA arrays are expected to be increasing monotonously.
|
||||
*
|
||||
* @author Daniel Lisunkin (i505543)
|
||||
*
|
||||
*/
|
||||
public interface ORCCertificate extends WithID, Serializable {
|
||||
/**
|
||||
* Equals the column heading of the allowances table of an ORC certificate. The speeds are set by the offshore
|
||||
* racing congress. The speeds occur in the array in ascending order.
|
||||
*
|
||||
* There are references in the persistance module. If the values change, there will be an adjustment needed
|
||||
* in {@link MongoObjectFactoryImpl.speedToKnotsString}.
|
||||
*/
|
||||
Speed[] ALLOWANCES_TRUE_WIND_SPEEDS = { new KnotSpeedImpl(6), new KnotSpeedImpl(8),
|
||||
new KnotSpeedImpl(10), new KnotSpeedImpl(12), new KnotSpeedImpl(14), new KnotSpeedImpl(16),
|
||||
new KnotSpeedImpl(20) };
|
||||
/**
|
||||
* Equals the line heading of the allowances table of an ORC certificate. The true wind angles are set by the
|
||||
* offshore racing congress. The angles occur in the array in ascending order.
|
||||
*
|
||||
* There are references in the persistance module. If the values change, there will be an adjustment needed
|
||||
* in {@link MongoObjectFactoryImpl.bearingToDegreeString}.
|
||||
*/
|
||||
Bearing[] ALLOWANCES_TRUE_WIND_ANGLES = { new DegreeBearingImpl(52), new DegreeBearingImpl(60),
|
||||
new DegreeBearingImpl(75), new DegreeBearingImpl(90), new DegreeBearingImpl(110),
|
||||
new DegreeBearingImpl(120), new DegreeBearingImpl(135), new DegreeBearingImpl(150) };
|
||||
/**
|
||||
* As the ID of an ORC certificate we use the concatenation (without intermediate white space) of the
|
||||
* {@code NatAuth}, the {@code CertNo} and the {@code BIN} fields, as provided as single fields in the JSON
|
||||
@@ -128,4 +162,19 @@ public interface ORCCertificate extends WithID, Serializable {
|
||||
Map<Speed, Map<Bearing, Speed>> getVelocityPredictionPerTrueWindSpeedAndAngle();
|
||||
|
||||
String getBoatName();
|
||||
|
||||
/**
|
||||
* @return the true wind speeds used for the matrix returned by
|
||||
* {@link #getVelocityPredictionPerTrueWindSpeedAndAngle()}. The {@link Speed} values returned by this
|
||||
* method form the key set of the map returned by {@link #getVelocityPredictionPerTrueWindSpeedAndAngle()}.
|
||||
*/
|
||||
Speed[] getTrueWindSpeeds();
|
||||
|
||||
/**
|
||||
* @return the true wind angles used for the matrix returned by
|
||||
* {@link #getVelocityPredictionPerTrueWindSpeedAndAngle()}. The {@link Bearing} values returned by this
|
||||
* method form the key set of all the maps returned as values in the map returned by
|
||||
* {@link #getVelocityPredictionPerTrueWindSpeedAndAngle()}.
|
||||
*/
|
||||
Bearing[] getTrueWindAngles();
|
||||
}
|
||||
+69
-34
@@ -3,7 +3,6 @@ package com.sap.sailing.domain.common.orc.impl;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
|
||||
import com.sap.sailing.domain.common.impl.NauticalMileDistance;
|
||||
import com.sap.sailing.domain.common.orc.ORCCertificate;
|
||||
import com.sap.sse.common.Bearing;
|
||||
@@ -12,7 +11,6 @@ import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.Speed;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.impl.DegreeBearingImpl;
|
||||
|
||||
/**
|
||||
* Holds an ORC boat certificate including various of the metrics found in it. Note that multiple different certificates
|
||||
@@ -28,28 +26,6 @@ public class ORCCertificateImpl implements ORCCertificate {
|
||||
|
||||
private final String idConsistingOfNatAuthCertNoAndBIN;
|
||||
|
||||
/**
|
||||
* Equals the column heading of the allowances table of an ORC certificate. The speeds are set by the offshore
|
||||
* racing congress. The speeds occur in the array in ascending order.
|
||||
*
|
||||
* There are references in the persistance module. If the values change, there will be an adjustment needed
|
||||
* in {@link MongoObjectFactoryImpl.speedToKnotsString}.
|
||||
*/
|
||||
public static final Speed[] ALLOWANCES_TRUE_WIND_SPEEDS = { new KnotSpeedImpl(6), new KnotSpeedImpl(8),
|
||||
new KnotSpeedImpl(10), new KnotSpeedImpl(12), new KnotSpeedImpl(14), new KnotSpeedImpl(16),
|
||||
new KnotSpeedImpl(20) };
|
||||
|
||||
/**
|
||||
* Equals the line heading of the allowances table of an ORC certificate. The true wind angles are set by the
|
||||
* offshore racing congress. The angles occur in the array in ascending order.
|
||||
*
|
||||
* There are references in the persistance module. If the values change, there will be an adjustment needed
|
||||
* in {@link MongoObjectFactoryImpl.bearingToDegreeString}.
|
||||
*/
|
||||
public static final Bearing[] ALLOWANCES_TRUE_WIND_ANGLES = { new DegreeBearingImpl(52), new DegreeBearingImpl(60),
|
||||
new DegreeBearingImpl(75), new DegreeBearingImpl(90), new DegreeBearingImpl(110),
|
||||
new DegreeBearingImpl(120), new DegreeBearingImpl(135), new DegreeBearingImpl(150) };
|
||||
|
||||
public final static Distance NAUTICAL_MILE = new NauticalMileDistance(1);
|
||||
|
||||
private final String sailNumber;
|
||||
@@ -60,7 +36,16 @@ public class ORCCertificateImpl implements ORCCertificate {
|
||||
private final Double cdl;
|
||||
private final TimePoint issueDate;
|
||||
|
||||
// TODO add meaningful Javadoc
|
||||
/**
|
||||
* The "core" of the certificate for performance curve scoring; the values in the map tell how fast the boat
|
||||
* described by this certificate is expected to sail for the true wind speed (TWS) provided by the key, and the true
|
||||
* wind angle (TWA) provided by the value map's key. This is the reciprocal of the duration it takes the boat to
|
||||
* sail a certain distance.
|
||||
* <p>
|
||||
*
|
||||
* The keys are the speeds as provided by {@link #allowancesTrueWindSpeeds}; the keys of the value maps are the
|
||||
* angles as provided by {@link #allowancesTrueWindAngles}.
|
||||
*/
|
||||
private final Map<Speed, Map<Bearing, Speed>> velocityPredictionPerTrueWindSpeedAndAngle;
|
||||
|
||||
/**
|
||||
@@ -110,20 +95,34 @@ public class ORCCertificateImpl implements ORCCertificate {
|
||||
private final Map<Speed, Speed> circularRandomSpeedPredictionPerTrueWindSpeed;
|
||||
|
||||
private final Map<Speed, Speed> nonSpinnakerSpeedPredictionPerTrueWindSpeed;
|
||||
|
||||
public ORCCertificateImpl(String idConsistingOfNatAuthCertNoAndBIN,
|
||||
String sailnumber, String boatName, String boatClassName,
|
||||
Distance length, Duration gph,
|
||||
Double cdl, TimePoint issueDate,
|
||||
Map<Speed, Map<Bearing, Speed>> velocityPredictionsPerTrueWindSpeedAndAngle,
|
||||
Map<Speed, Bearing> beatAngles, Map<Speed, Speed> beatVMGPredictionPerTrueWindSpeed,
|
||||
Map<Speed, Duration> beatAllowancePerTrueWindSpeed, Map<Speed, Bearing> runAngles,
|
||||
Map<Speed, Speed> runVMGPredictionPerTrueWindSpeed,
|
||||
private final Speed[] allowancesTrueWindSpeeds;
|
||||
private final Bearing[] allowancesTrueWindAngles;
|
||||
|
||||
/**
|
||||
* Can be used to specify non-default TWS/TWA values for the time allowances / speed predictions.
|
||||
*
|
||||
* @param allowancesTrueWindSpeeds
|
||||
* a monotonously-increasing sequence of true wind speed (TWS) values for the matrix of time allowances /
|
||||
* velocity predictions for this certificate. See also
|
||||
* {@link ORCCertificate#ALLOWANCES_TRUE_WIND_SPEEDS}.
|
||||
* @param allowancesTrueWindAngles
|
||||
* a monotonously-increasing sequence of true wind angle (TWA) values for the matrix of time allowances /
|
||||
* velocity predictions for this certificate. See also
|
||||
* {@link ORCCertificate#ALLOWANCES_TRUE_WIND_ANGLES}.
|
||||
*/
|
||||
public ORCCertificateImpl(Speed[] allowancesTrueWindSpeeds, Bearing[] allowancesTrueWindAngles,
|
||||
String idConsistingOfNatAuthCertNoAndBIN, String sailnumber, String boatName, String boatClassName,
|
||||
Distance length, Duration gph, Double cdl, TimePoint issueDate,
|
||||
Map<Speed, Map<Bearing, Speed>> velocityPredictionsPerTrueWindSpeedAndAngle, Map<Speed, Bearing> beatAngles,
|
||||
Map<Speed, Speed> beatVMGPredictionPerTrueWindSpeed, Map<Speed, Duration> beatAllowancePerTrueWindSpeed,
|
||||
Map<Speed, Bearing> runAngles, Map<Speed, Speed> runVMGPredictionPerTrueWindSpeed,
|
||||
Map<Speed, Duration> runAllowancePerTrueWindSpeed,
|
||||
Map<Speed, Speed> windwardLeewardSpeedPredictionsPerTrueWindSpeed,
|
||||
Map<Speed, Speed> longDistanceSpeedPredictionsPerTrueWindSpeed,
|
||||
Map<Speed, Speed> circularRandomSpeedPredictionsPerTrueWindSpeed,
|
||||
Map<Speed, Speed> nonSpinnakerSpeedPredictionsPerTrueWindSpeed) {
|
||||
this.allowancesTrueWindAngles = allowancesTrueWindAngles;
|
||||
this.allowancesTrueWindSpeeds = allowancesTrueWindSpeeds;
|
||||
this.idConsistingOfNatAuthCertNoAndBIN = idConsistingOfNatAuthCertNoAndBIN;
|
||||
this.sailNumber = sailnumber;
|
||||
this.boatName = boatName;
|
||||
@@ -145,6 +144,32 @@ public class ORCCertificateImpl implements ORCCertificate {
|
||||
this.circularRandomSpeedPredictionPerTrueWindSpeed = Collections.unmodifiableMap(circularRandomSpeedPredictionsPerTrueWindSpeed);
|
||||
this.nonSpinnakerSpeedPredictionPerTrueWindSpeed = Collections.unmodifiableMap(nonSpinnakerSpeedPredictionsPerTrueWindSpeed);
|
||||
}
|
||||
|
||||
/**
|
||||
* Uses the default TWS/TWA values from {@link ORCCertificate#ALLOWANCES_TRUE_WIND_SPEEDS} and
|
||||
* {@link ORCCertificate#ALLOWANCES_TRUE_WIND_ANGLES}, respectively, for the matrix of time allowances
|
||||
* or, conversely, the speed predictions.
|
||||
*/
|
||||
public ORCCertificateImpl(String idConsistingOfNatAuthCertNoAndBIN,
|
||||
String sailnumber, String boatName, String boatClassName,
|
||||
Distance length, Duration gph,
|
||||
Double cdl, TimePoint issueDate,
|
||||
Map<Speed, Map<Bearing, Speed>> velocityPredictionsPerTrueWindSpeedAndAngle,
|
||||
Map<Speed, Bearing> beatAngles, Map<Speed, Speed> beatVMGPredictionPerTrueWindSpeed,
|
||||
Map<Speed, Duration> beatAllowancePerTrueWindSpeed, Map<Speed, Bearing> runAngles,
|
||||
Map<Speed, Speed> runVMGPredictionPerTrueWindSpeed,
|
||||
Map<Speed, Duration> runAllowancePerTrueWindSpeed,
|
||||
Map<Speed, Speed> windwardLeewardSpeedPredictionsPerTrueWindSpeed,
|
||||
Map<Speed, Speed> longDistanceSpeedPredictionsPerTrueWindSpeed,
|
||||
Map<Speed, Speed> circularRandomSpeedPredictionsPerTrueWindSpeed,
|
||||
Map<Speed, Speed> nonSpinnakerSpeedPredictionsPerTrueWindSpeed) {
|
||||
this(ALLOWANCES_TRUE_WIND_SPEEDS, ALLOWANCES_TRUE_WIND_ANGLES, idConsistingOfNatAuthCertNoAndBIN, sailnumber,
|
||||
boatName, boatClassName, length, gph, cdl, issueDate, velocityPredictionsPerTrueWindSpeedAndAngle,
|
||||
beatAngles, beatVMGPredictionPerTrueWindSpeed, beatAllowancePerTrueWindSpeed, runAngles,
|
||||
runVMGPredictionPerTrueWindSpeed, runAllowancePerTrueWindSpeed,
|
||||
windwardLeewardSpeedPredictionsPerTrueWindSpeed, longDistanceSpeedPredictionsPerTrueWindSpeed,
|
||||
circularRandomSpeedPredictionsPerTrueWindSpeed, nonSpinnakerSpeedPredictionsPerTrueWindSpeed);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
@@ -255,4 +280,14 @@ public class ORCCertificateImpl implements ORCCertificate {
|
||||
return "Certificate with ID \""+getId()+"\" for "+getSailNumber()+" / "+getBoatName() + " - Issued on: " + (getIssueDate()==null?"n/a":getIssueDate().asDate())+" with GPH "+
|
||||
Util.padPositiveValue(getGPHInSecondsToTheMile(), 1, 1, /* round */ true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Speed[] getTrueWindSpeeds() {
|
||||
return allowancesTrueWindSpeeds;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bearing[] getTrueWindAngles() {
|
||||
return allowancesTrueWindAngles;
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -101,7 +101,7 @@ public class IgtimiWindTracker extends AbstractWindTracker implements WindTracke
|
||||
final UserGroup groupOwner = ownershipOfRace == null ? null
|
||||
: ownershipOfRace.getAnnotation().getTenantOwner();
|
||||
if (groupOwner != null) {
|
||||
if (groupOwner.equals(optionalSecurityService.getDefaultTenant())) {
|
||||
if (groupOwner.equals(optionalSecurityService.getServerGroup())) {
|
||||
// It is assumed to be an auto-migration case
|
||||
isPermittedToUseAccount = true;
|
||||
} else {
|
||||
|
||||
+3
-1
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.domain.coursetemplate;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
|
||||
/**
|
||||
@@ -9,6 +11,6 @@ import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public interface Positioning {
|
||||
public interface Positioning extends Serializable {
|
||||
<T> T accept(PositioningVisitor<T> visitor);
|
||||
}
|
||||
+2
@@ -4,6 +4,8 @@ import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.coursetemplate.FixedPositioning;
|
||||
|
||||
public class FixedPositioningImpl implements FixedPositioning {
|
||||
private static final long serialVersionUID = 267606077936062645L;
|
||||
|
||||
private final Position fixedPosition;
|
||||
|
||||
public FixedPositioningImpl(Position fixedPosition) {
|
||||
|
||||
+2
@@ -4,6 +4,8 @@ import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.coursetemplate.TrackingDeviceBasedPositioning;
|
||||
|
||||
public class TrackingDeviceBasedPositioningImpl implements TrackingDeviceBasedPositioning {
|
||||
private static final long serialVersionUID = -4059477014731789050L;
|
||||
|
||||
private final DeviceIdentifier deviceIdentifier;
|
||||
|
||||
public TrackingDeviceBasedPositioningImpl(DeviceIdentifier deviceIdentifier) {
|
||||
|
||||
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"rms":[
|
||||
{
|
||||
"NatAuth":"GR",
|
||||
"BIN":"GR317",
|
||||
"CertNo":"A00073",
|
||||
"RefNo":"N\/A",
|
||||
"SailNo":"GRE-317",
|
||||
"YachtName":"AVANTES",
|
||||
"Class":"FIRST 31.7",
|
||||
"Builder":"BENETEAU",
|
||||
"Designer":"FINOT",
|
||||
"Address3":"I.O. HALKIDAS",
|
||||
"C_Type":"INTL",
|
||||
"Family":"ORC",
|
||||
"Division":"C",
|
||||
"IssueDate":"2020-02-05T12:54:23.484Z",
|
||||
"Age_Year":1998,
|
||||
"CrewWT":550,
|
||||
"LOA":9.49,
|
||||
"IMSL":9.003,
|
||||
"Draft":1.94,
|
||||
"MB":3.216,
|
||||
"Dspl_Measurement":3936,
|
||||
"Stability_Index":103.7,
|
||||
"Dynamic_Allowance":0.31,
|
||||
"GPH":678,
|
||||
"TMF_Inshore":0.9229,
|
||||
"ILCWA":731.4,
|
||||
"TMF_Offshore":0.9145,
|
||||
"OSN":656.1,
|
||||
"CDL":8.155,
|
||||
"TN_Offshore_Low":0.8578,
|
||||
"TN_Offshore_Medium":1.1292,
|
||||
"TN_Offshore_High":1.2751,
|
||||
"TN_Inshore_Low":0.6639,
|
||||
"TN_Inshore_Medium":0.9158,
|
||||
"TN_Inshore_High":1.0666,
|
||||
"TND_Offshore_Low":786.9,
|
||||
"TND_Offshore_Medium":597.8,
|
||||
"TND_Offshore_High":529.4,
|
||||
"TND_Inshore_Low":1016.7,
|
||||
"TND_Inshore_Medium":737.1,
|
||||
"TND_Inshore_High":632.9,
|
||||
"OSN_Jibs":688.6,
|
||||
"TMF_Jibs":0.8713,
|
||||
"Dspl_Sailing":4660,
|
||||
"WSS":22.41,
|
||||
"Area_Main":27.04,
|
||||
"Area_Jib":22.08,
|
||||
"Area_Sym":61.48,
|
||||
"Area_ASym":0,
|
||||
"GPH_Jibs":714.6,
|
||||
"GPH_Jibs_TOT":0.8396,
|
||||
"Allowances":{
|
||||
"WindSpeeds":[
|
||||
6.1,
|
||||
8.2,
|
||||
10.6,
|
||||
12.1,
|
||||
14.9,
|
||||
16.7,
|
||||
20.1
|
||||
],
|
||||
"Beat":[
|
||||
1175.6,
|
||||
968.7,
|
||||
854,
|
||||
780.9,
|
||||
752,
|
||||
744.6,
|
||||
744.9
|
||||
],
|
||||
"Run":[
|
||||
1074.7,
|
||||
847.7,
|
||||
716.4,
|
||||
628.3,
|
||||
566,
|
||||
526.9,
|
||||
480.1
|
||||
],
|
||||
"BeatAngle":[
|
||||
43.5,
|
||||
41.6,
|
||||
40.5,
|
||||
39.8,
|
||||
39,
|
||||
38.6,
|
||||
39
|
||||
],
|
||||
"GybeAngle":[
|
||||
146,
|
||||
150,
|
||||
153,
|
||||
158,
|
||||
178,
|
||||
180,
|
||||
180
|
||||
],
|
||||
"WL":[
|
||||
1125.2,
|
||||
908.2,
|
||||
785.2,
|
||||
704.6,
|
||||
659,
|
||||
635.8,
|
||||
612.5
|
||||
],
|
||||
"CR":[
|
||||
942.4,
|
||||
757.3,
|
||||
657.2,
|
||||
598.8,
|
||||
563,
|
||||
540.1,
|
||||
512.7
|
||||
],
|
||||
"OC":[
|
||||
1120.1,
|
||||
852,
|
||||
706,
|
||||
616.2,
|
||||
571.7,
|
||||
539.8,
|
||||
487.7
|
||||
],
|
||||
"NS":[
|
||||
1008.9,
|
||||
804,
|
||||
691.6,
|
||||
625.1,
|
||||
584.2,
|
||||
558,
|
||||
527.3
|
||||
],
|
||||
"OL":[
|
||||
1077.4,
|
||||
874.1,
|
||||
761.4,
|
||||
694.6,
|
||||
658.2,
|
||||
638.7,
|
||||
615.2
|
||||
],
|
||||
"R52.7":[
|
||||
767,
|
||||
645,
|
||||
577.3,
|
||||
544,
|
||||
530.1,
|
||||
525.8,
|
||||
525
|
||||
],
|
||||
"R64.4":[
|
||||
725.4,
|
||||
613.2,
|
||||
556.7,
|
||||
530.3,
|
||||
516.8,
|
||||
510.9,
|
||||
506.9
|
||||
],
|
||||
"R75":[
|
||||
697.1,
|
||||
589.3,
|
||||
541.9,
|
||||
519,
|
||||
502.9,
|
||||
490.9,
|
||||
480.5
|
||||
],
|
||||
"R90":[
|
||||
694.3,
|
||||
577.7,
|
||||
526.9,
|
||||
505.5,
|
||||
495.9,
|
||||
481.7,
|
||||
454.3
|
||||
],
|
||||
"R110":[
|
||||
688.6,
|
||||
568.4,
|
||||
520.4,
|
||||
493.9,
|
||||
469.8,
|
||||
450.8,
|
||||
430.3
|
||||
],
|
||||
"R120":[
|
||||
710.9,
|
||||
583.7,
|
||||
526.8,
|
||||
498.8,
|
||||
473.3,
|
||||
448.4,
|
||||
409.9
|
||||
],
|
||||
"R135":[
|
||||
788.3,
|
||||
640.5,
|
||||
556.1,
|
||||
517.8,
|
||||
492.5,
|
||||
466.8,
|
||||
416.9
|
||||
],
|
||||
"R150":[
|
||||
930.8,
|
||||
734.2,
|
||||
621.9,
|
||||
551.9,
|
||||
517.7,
|
||||
494,
|
||||
446.5
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+4
-4
@@ -37,9 +37,9 @@ public class TestORCCertificateImporterJSON {
|
||||
assertNotNull(moana);
|
||||
assertEquals(539.1, swan .getGPHInSecondsToTheMile(), 0.0000001);
|
||||
assertEquals(490.4, moana.getGPHInSecondsToTheMile(), 0.0000001);
|
||||
assertEquals(862.2, swan .getWindwardLeewardSpeedPrediction().get(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(788.2, moana.getWindwardLeewardSpeedPrediction().get(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(861.0, swan .getLongDistanceSpeedPredictions().get(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(787.2, moana.getLongDistanceSpeedPredictions().get(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(862.2, swan .getWindwardLeewardSpeedPrediction().get(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(788.2, moana.getWindwardLeewardSpeedPrediction().get(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(861.0, swan .getLongDistanceSpeedPredictions().get(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(787.2, moana.getLongDistanceSpeedPredictions().get(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
}
|
||||
}
|
||||
+4
-4
@@ -37,10 +37,10 @@ public class TestORCCertificateImporterRMS {
|
||||
assertNotNull(moana);
|
||||
assertEquals(539.1, swan .getGPHInSecondsToTheMile(), 0.0000001);
|
||||
assertEquals(490.4, moana.getGPHInSecondsToTheMile(), 0.0000001);
|
||||
assertEquals(862.2, swan .getWindwardLeewardSpeedPrediction().get(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(788.2, moana.getWindwardLeewardSpeedPrediction().get(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(861.0, swan .getLongDistanceSpeedPredictions().get(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(787.2, moana.getLongDistanceSpeedPredictions().get(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(862.2, swan .getWindwardLeewardSpeedPrediction().get(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(788.2, moana.getWindwardLeewardSpeedPrediction().get(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(861.0, swan .getLongDistanceSpeedPredictions().get(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
assertEquals(787.2, moana.getLongDistanceSpeedPredictions().get(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[0]).getDuration(ORCCertificateImpl.NAUTICAL_MILE).asSeconds(), 0.1);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
+51
-8
@@ -33,7 +33,10 @@ import com.sap.sailing.domain.common.orc.impl.ORCPerformanceCurveCourseImpl;
|
||||
import com.sap.sailing.domain.common.orc.impl.ORCPerformanceCurveLegImpl;
|
||||
import com.sap.sailing.domain.orc.impl.ORCCertificatesJsonImporter;
|
||||
import com.sap.sailing.domain.orc.impl.ORCPerformanceCurveImpl;
|
||||
import com.sap.sse.common.Bearing;
|
||||
import com.sap.sse.common.Distance;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.Speed;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.impl.DegreeBearingImpl;
|
||||
|
||||
@@ -49,6 +52,7 @@ public class TestORCPerformanceCurve {
|
||||
|
||||
private static ORCPerformanceCurveCourse alturaCourse;
|
||||
private static ORCCertificatesCollection importerLocal;
|
||||
private static ORCCertificatesCollection importerWithSpecificBins;
|
||||
private static ORCCertificatesCollection importerOnline;
|
||||
|
||||
private static final String RESOURCES = "resources/orc/";
|
||||
@@ -66,6 +70,16 @@ public class TestORCPerformanceCurve {
|
||||
}
|
||||
}
|
||||
|
||||
public void assertEquals(String message, double a, double b, double accuracy) {
|
||||
try {
|
||||
Assert.assertEquals(message, a, b, accuracy);
|
||||
} catch (AssertionError e) {
|
||||
if (collectErrors) {
|
||||
collector.addError(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@BeforeClass
|
||||
public static void initialize() throws IOException, ParseException {
|
||||
List<ORCPerformanceCurveLeg> legs = new ArrayList<>();
|
||||
@@ -76,11 +90,12 @@ public class TestORCPerformanceCurve {
|
||||
legs.add(new ORCPerformanceCurveLegImpl(new NauticalMileDistance(1.03), new DegreeBearingImpl(165)));
|
||||
legs.add(new ORCPerformanceCurveLegImpl(new NauticalMileDistance(1.17), new DegreeBearingImpl(180)));
|
||||
alturaCourse = new ORCPerformanceCurveCourseImpl(legs); //this course is the same course as seen in the Altura "IMS Explanation" sheet
|
||||
|
||||
// Local File:
|
||||
File fileGER = new File(RESOURCES + "GER2019.json");
|
||||
importerLocal = new ORCCertificatesJsonImporter().read(new FileInputStream(fileGER));
|
||||
|
||||
// Local File new format with specific TWA/TWS bins:
|
||||
File fileWithSpecificBins = new File(RESOURCES + "newFormatCertificate.json");
|
||||
importerWithSpecificBins = new ORCCertificatesJsonImporter().read(new FileInputStream(fileWithSpecificBins));
|
||||
// Online File:
|
||||
importerOnline = new ORCCertificatesJsonImporter().read(new URL("https://data.orc.org/public/WPub.dll?action=DownRMS&CountryId=GER&ext=json").openStream());
|
||||
}
|
||||
@@ -120,13 +135,13 @@ public class TestORCPerformanceCurve {
|
||||
final ORCPerformanceCurveCourse course = new ORCPerformanceCurveCourseImpl(Arrays.asList(new ORCPerformanceCurveLegImpl(ORCCertificateImpl.NAUTICAL_MILE, new DegreeBearingImpl(twa))));
|
||||
final ORCPerformanceCurve performanceCurve = new ORCPerformanceCurveImpl(certificate, course);
|
||||
for (int i=0; i<expectedAllowancesPerTrueWindSpeed.length; i++) {
|
||||
assertEquals(expectedAllowancesPerTrueWindSpeed[i], performanceCurve.getAllowancePerCourse(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[i]).asSeconds(), accuracy);
|
||||
assertEquals(expectedAllowancesPerTrueWindSpeed[i], performanceCurve.getAllowancePerCourse(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[i]).asSeconds(), accuracy);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleConstructedCourse() throws FunctionEvaluationException {
|
||||
ORCCertificateImpl certificate = (ORCCertificateImpl) importerLocal.getCertificateById("GER140772GER5549");
|
||||
ORCCertificate certificate = (ORCCertificate) importerLocal.getCertificateById("GER140772GER5549");
|
||||
List<ORCPerformanceCurveLeg> legs = new ArrayList<>();
|
||||
legs.add(new ORCPerformanceCurveLegImpl(new NauticalMileDistance(1.0), new DegreeBearingImpl(0)));
|
||||
legs.add(new ORCPerformanceCurveLegImpl(new NauticalMileDistance(1.0), new DegreeBearingImpl(30)));
|
||||
@@ -142,14 +157,14 @@ public class TestORCPerformanceCurve {
|
||||
private void testAllowancePerCourse(ORCPerformanceCurve performanceCurve, double... allowancePerNauticalMileInSeconds) throws ArgumentOutsideDomainException {
|
||||
for (int i=0; i<allowancePerNauticalMileInSeconds.length; i++) {
|
||||
assertEquals(allowancePerNauticalMileInSeconds[i]*performanceCurve.getCourse().getTotalLength().getNauticalMiles(),
|
||||
performanceCurve.getAllowancePerCourse(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[i]).asSeconds(), 0.3);
|
||||
performanceCurve.getAllowancePerCourse(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[i]).asSeconds(), 0.3);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPerformanceCurveInversion() throws MaxIterationsExceededException, FunctionEvaluationException {
|
||||
Double accuracy = 0.1;
|
||||
ORCCertificateImpl certificate = (ORCCertificateImpl) importerLocal.getCertificateById("GER140772GER5549");
|
||||
ORCCertificate certificate = (ORCCertificate) importerLocal.getCertificateById("GER140772GER5549");
|
||||
ORCPerformanceCurveImpl performanceCurve = (ORCPerformanceCurveImpl) new ORCPerformanceCurveImpl(certificate, alturaCourse);
|
||||
testBackwardForward(accuracy, performanceCurve, 11.5);
|
||||
testBackwardForward(accuracy, performanceCurve, 17.23);
|
||||
@@ -247,6 +262,29 @@ public class TestORCPerformanceCurve {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAllowancesAndImpliedWindForSpecificBins() throws FunctionEvaluationException, MaxIterationsExceededException {
|
||||
final double highAccuracy = 0.01;
|
||||
final double allowanceAccuracy = 0.1;
|
||||
final Distance ONE_NAUTICAL_MILE = new NauticalMileDistance(1.0);
|
||||
final ORCCertificate certificateWithSpecificBins = importerWithSpecificBins.getCertificateById("GRA00073GR317");
|
||||
for (final Bearing twa : certificateWithSpecificBins.getTrueWindAngles()) {
|
||||
final ORCPerformanceCurveCourse singleLegOneMileCourseWithTwa = createSingleLegCourseWithTwa(twa);
|
||||
final ORCPerformanceCurve performanceCurveSpecificBins = new ORCPerformanceCurveImpl(certificateWithSpecificBins, singleLegOneMileCourseWithTwa);
|
||||
for (final Speed tws : certificateWithSpecificBins.getTrueWindSpeeds()) {
|
||||
final Duration duration = certificateWithSpecificBins.getVelocityPredictionPerTrueWindSpeedAndAngle().get(tws).get(twa).getDuration(ONE_NAUTICAL_MILE);
|
||||
assertEquals("mismatch for twa "+twa+", tws "+tws, duration.asSeconds(), performanceCurveSpecificBins.getAllowancePerCourse(tws).asSeconds(), allowanceAccuracy);
|
||||
assertEquals("mismatch for twa "+twa+", tws "+tws, tws.getKnots(), performanceCurveSpecificBins.getImpliedWind(duration).getKnots(), highAccuracy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ORCPerformanceCurveCourse createSingleLegCourseWithTwa(Bearing twa) {
|
||||
List<ORCPerformanceCurveLeg> list = new ArrayList<>();
|
||||
list.add(new ORCPerformanceCurveLegImpl(new NauticalMileDistance(1), twa));
|
||||
return new ORCPerformanceCurveCourseImpl(list);
|
||||
}
|
||||
|
||||
// Tests for the calculations with a more complex course which contains some special leg types. (circular random or other)
|
||||
@Test
|
||||
public void testComplexCourseImpliedWind() throws FunctionEvaluationException, MaxIterationsExceededException {
|
||||
@@ -259,25 +297,28 @@ public class TestORCPerformanceCurve {
|
||||
list.add(new ORCPerformanceCurveLegImpl(new NauticalMileDistance(1), new DegreeBearingImpl(180)));
|
||||
ORCPerformanceCurveCourse complexCourse = new ORCPerformanceCurveCourseImpl(list);
|
||||
|
||||
double accuracy = 0.0001;
|
||||
final double accuracy = 0.0001;
|
||||
ORCCertificate certificateMoana = importerLocal.getCertificateById("GER140772GER5549");
|
||||
ORCCertificate certificateMilan = importerLocal.getCertificateById("GER166844GER7323");
|
||||
ORCCertificate certificateTutima = importerLocal.getCertificateById("GER140618GER5609");
|
||||
ORCCertificate certificateBank = importerLocal.getCertificateById("GER140755GER5555");
|
||||
ORCCertificate certificateHaspa = importerLocal.getCertificateById("GER141411GER6300");
|
||||
ORCCertificate certificateHalbtrocken = importerLocal.getCertificateById("GER141432GER5564");
|
||||
ORCCertificate certificateWithSpecificBins=importerWithSpecificBins.getCertificateById("GRA00073GR317");
|
||||
ORCPerformanceCurve performanceCurveMoana = new ORCPerformanceCurveImpl(certificateMoana, complexCourse);
|
||||
ORCPerformanceCurve performanceCurveMilan = new ORCPerformanceCurveImpl(certificateMilan, complexCourse);
|
||||
ORCPerformanceCurve performanceCurveTutima = new ORCPerformanceCurveImpl(certificateTutima, complexCourse);
|
||||
ORCPerformanceCurve performanceCurveBank = new ORCPerformanceCurveImpl(certificateBank, complexCourse);
|
||||
ORCPerformanceCurve performanceCurveHaspa = new ORCPerformanceCurveImpl(certificateHaspa, complexCourse);
|
||||
ORCPerformanceCurve performanceCurveHalbtrocken = new ORCPerformanceCurveImpl(certificateHalbtrocken, complexCourse);
|
||||
ORCPerformanceCurve performanceCurveSpecificBins = new ORCPerformanceCurveImpl(certificateWithSpecificBins, complexCourse);
|
||||
assertEquals(15.75777 , performanceCurveMilan .getImpliedWind(Duration.ONE_HOUR.times(1.0)).getKnots(), accuracy);
|
||||
assertEquals(15.27808 , performanceCurveBank .getImpliedWind(Duration.ONE_HOUR.times(1.25)).getKnots(), accuracy);
|
||||
assertEquals(15.10141 , performanceCurveMoana .getImpliedWind(Duration.ONE_HOUR.times(1.25)).getKnots(), accuracy);
|
||||
assertEquals(14.44527 , performanceCurveHaspa .getImpliedWind(Duration.ONE_HOUR.times(1.25)).getKnots(), accuracy);
|
||||
assertEquals(10.86927 , performanceCurveTutima .getImpliedWind(Duration.ONE_HOUR.times(1.5)).getKnots(), accuracy);
|
||||
assertEquals(9.13385 , performanceCurveHalbtrocken.getImpliedWind(Duration.ONE_HOUR.times(2.0)).getKnots(), accuracy);
|
||||
assertEquals(10.83989 , performanceCurveSpecificBins.getImpliedWind(Duration.ONE_HOUR.times(2.0)).getKnots(), accuracy);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -298,12 +339,14 @@ public class TestORCPerformanceCurve {
|
||||
ORCCertificate certificateBank = importerLocal.getCertificateById("GER140755GER5555");
|
||||
ORCCertificate certificateHaspa = importerLocal.getCertificateById("GER141411GER6300");
|
||||
ORCCertificate certificateHalbtrocken = importerLocal.getCertificateById("GER141432GER5564");
|
||||
ORCCertificate certificateWithSpecificBins=importerWithSpecificBins.getCertificateById("GRA00073GR317");
|
||||
ORCPerformanceCurve performanceCurveMoana = new ORCPerformanceCurveImpl(certificateMoana, complexCourse);
|
||||
ORCPerformanceCurve performanceCurveMilan = new ORCPerformanceCurveImpl(certificateMilan, complexCourse);
|
||||
ORCPerformanceCurve performanceCurveTutima = new ORCPerformanceCurveImpl(certificateTutima, complexCourse);
|
||||
ORCPerformanceCurve performanceCurveBank = new ORCPerformanceCurveImpl(certificateBank, complexCourse);
|
||||
ORCPerformanceCurve performanceCurveHaspa = new ORCPerformanceCurveImpl(certificateHaspa, complexCourse);
|
||||
ORCPerformanceCurve performanceCurveHalbtrocken = new ORCPerformanceCurveImpl(certificateHalbtrocken, complexCourse);
|
||||
ORCPerformanceCurve performanceCurveSpecificBins = new ORCPerformanceCurveImpl(certificateWithSpecificBins, complexCourse);
|
||||
|
||||
assertEquals(Duration.ONE_HOUR.times(1.0).asHours(), performanceCurveMilan.getAllowancePerCourse(new KnotSpeedImpl(15.75777)).asHours(), accuracy);
|
||||
assertEquals(Duration.ONE_HOUR.times(1.25).asHours(), performanceCurveBank.getAllowancePerCourse(new KnotSpeedImpl(15.27808)).asHours(), accuracy);
|
||||
@@ -311,7 +354,7 @@ public class TestORCPerformanceCurve {
|
||||
assertEquals(Duration.ONE_HOUR.times(1.25).asHours(), performanceCurveHaspa.getAllowancePerCourse(new KnotSpeedImpl(14.44527)).asHours(), accuracy);
|
||||
assertEquals(Duration.ONE_HOUR.times(1.5).asHours(), performanceCurveTutima.getAllowancePerCourse(new KnotSpeedImpl(10.86927)).asHours(), accuracy);
|
||||
assertEquals(Duration.ONE_HOUR.times(2.0).asHours(), performanceCurveHalbtrocken.getAllowancePerCourse(new KnotSpeedImpl(9.13385)).asHours(), accuracy);
|
||||
|
||||
assertEquals(Duration.ONE_HOUR.times(2.0).asHours(), performanceCurveSpecificBins.getAllowancePerCourse(new KnotSpeedImpl(10.83989)).asHours(), accuracy);
|
||||
}
|
||||
|
||||
}
|
||||
+131
-86
@@ -1,17 +1,22 @@
|
||||
package com.sap.sailing.domain.orc.impl;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.TreeMap;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.xml.bind.DatatypeConverter;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
|
||||
import com.sap.sailing.domain.common.impl.MeterDistance;
|
||||
import com.sap.sailing.domain.common.orc.ORCCertificate;
|
||||
import com.sap.sailing.domain.common.orc.impl.ORCCertificateImpl;
|
||||
@@ -57,6 +62,13 @@ public class ORCCertificatesCollectionJSON extends AbstractORCCertificatesCollec
|
||||
private static final String CIRCULAR_RANDOM = "CR";
|
||||
private static final String NON_SPINNAKER = "NS";
|
||||
private static final String EMPTY_CERT_NO = " ";
|
||||
private static final String WIND_SPEEDS = "WindSpeeds";
|
||||
|
||||
/**
|
||||
* Pattern to recognize a true wind angle in the allowances section. Group 1 contains
|
||||
* the decimal number that represents the true wind angle in degrees.
|
||||
*/
|
||||
private static final Pattern twaPattern = Pattern.compile("R(\\d+(\\.\\d+)?)");
|
||||
|
||||
private Map<String, JSONObject> certificateJsonObjectsByCertificateId;
|
||||
|
||||
@@ -79,18 +91,21 @@ public class ORCCertificatesCollectionJSON extends AbstractORCCertificatesCollec
|
||||
*/
|
||||
@Override
|
||||
public ORCCertificate getCertificateById(String certificateId) {
|
||||
String boatName = null;
|
||||
String boatName = null;
|
||||
String boatclass = null;
|
||||
Distance length = null;
|
||||
Duration gph = null;
|
||||
Double cdl = null;
|
||||
Distance length = null;
|
||||
Duration gph = null;
|
||||
Double cdl = null;
|
||||
TimePoint issueDate = null;
|
||||
Map<Speed, Bearing> beatAngles = new HashMap<>();
|
||||
Map<Speed, Bearing> gybeAngles = new HashMap<>();
|
||||
Map<Speed, Map<Bearing, Speed>> velocityPredictionPerTrueWindSpeedAndAngle = new HashMap<>();
|
||||
Map<Bearing, Map<Speed, Duration>> allowanceDurationsPerTrueWindAngleAndSpeed = new HashMap<>(); //per nautical mile
|
||||
Map<String, Map<Speed, Duration>> predefinedAllowanceDurationsPerTrueWindSpeed = new HashMap<>(); //per nautical mile
|
||||
JSONObject object = certificateJsonObjectsByCertificateId.get(certificateId);
|
||||
final Map<Speed, Bearing> beatAngles = new HashMap<>();
|
||||
final Map<Speed, Bearing> gybeAngles = new HashMap<>();
|
||||
final Map<Speed, Map<Bearing, Speed>> velocityPredictionPerTrueWindSpeedAndAngle = new HashMap<>();
|
||||
final Map<Bearing, Map<Speed, Duration>> allowanceDurationsPerTrueWindAngleAndSpeed = new HashMap<>(); // per nautical mile
|
||||
final Map<String, Map<Speed, Duration>> predefinedAllowanceDurationsPerTrueWindSpeed = new HashMap<>(); // per nautical mile
|
||||
final Map<Double, Speed> trueWindSpeedMap = new TreeMap<Double,Speed>(); // Using TreeMap implementation to save the TrueWindSpeed
|
||||
// so that it first sorts the entries as well as avoids duplicates
|
||||
final Map<Double, Bearing> trueWindAngleMap = new TreeMap<Double,Bearing>(); // Same like trueWindSpeedMap
|
||||
final JSONObject object = certificateJsonObjectsByCertificateId.get(certificateId);
|
||||
if (object == null) {
|
||||
// TODO Throw Exception for certificate by id not found. InvalidArgumentException?
|
||||
return null;
|
||||
@@ -98,84 +113,104 @@ public class ORCCertificatesCollectionJSON extends AbstractORCCertificatesCollec
|
||||
String sailNumber = null;
|
||||
for (Entry<Object, Object> entry : object.entrySet()) {
|
||||
switch ((String) entry.getKey()) {
|
||||
case SAIL_NO:
|
||||
sailNumber = entry.getValue() == null ? null : entry.getValue().toString();
|
||||
break;
|
||||
case LOA:
|
||||
length = new MeterDistance(((Number) entry.getValue()).doubleValue());
|
||||
break;
|
||||
case YACHT_NAME:
|
||||
boatName = entry.getValue()==null?null:entry.getValue().toString();
|
||||
break;
|
||||
case CLASS:
|
||||
boatclass = (String) entry.getValue();
|
||||
break;
|
||||
case GPH2:
|
||||
gph = new SecondsDurationImpl(((Number) entry.getValue()).doubleValue());
|
||||
break;
|
||||
case CDL2:
|
||||
cdl = ((Number) entry.getValue()).doubleValue();
|
||||
break;
|
||||
case ISSUE_DATE:
|
||||
Date date = DatatypeConverter.parseDateTime((String) entry.getValue()).getTime();
|
||||
issueDate = new MillisecondsTimePoint(date);
|
||||
break;
|
||||
case ALLOWANCES:
|
||||
final JSONObject allowances = (JSONObject) object.get(ALLOWANCES);
|
||||
for (final Object aKey : allowances.keySet()) {
|
||||
final JSONArray array = (JSONArray) allowances.get(aKey);
|
||||
if (((String) aKey).equals(BEAT_ANGLE)) {
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
beatAngles.put(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[i],
|
||||
new DegreeBearingImpl(((Number) array.get(i)).doubleValue()));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (((String) aKey).equals(GYBE_ANGLE)) {
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
gybeAngles.put(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[i],
|
||||
new DegreeBearingImpl(((Number) array.get(i)).doubleValue()));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
Map<Speed, Duration> twsMap = new HashMap<>();
|
||||
case SAIL_NO:
|
||||
sailNumber = entry.getValue() == null ? null : entry.getValue().toString();
|
||||
break;
|
||||
case LOA:
|
||||
length = new MeterDistance(((Number) entry.getValue()).doubleValue());
|
||||
break;
|
||||
case YACHT_NAME:
|
||||
boatName = entry.getValue() == null ? null : entry.getValue().toString();
|
||||
break;
|
||||
case CLASS:
|
||||
boatclass = (String) entry.getValue();
|
||||
break;
|
||||
case GPH2:
|
||||
gph = new SecondsDurationImpl(((Number) entry.getValue()).doubleValue());
|
||||
break;
|
||||
case CDL2:
|
||||
cdl = ((Number) entry.getValue()).doubleValue();
|
||||
break;
|
||||
case ISSUE_DATE:
|
||||
Date date = DatatypeConverter.parseDateTime((String) entry.getValue()).getTime();
|
||||
issueDate = new MillisecondsTimePoint(date);
|
||||
break;
|
||||
case ALLOWANCES:
|
||||
final JSONObject allowances = (JSONObject) object.get(ALLOWANCES);
|
||||
// calculating the TWA and TWS before calculating the other dependent values in allowances object
|
||||
final Object windSpeedsObject = allowances.get(WIND_SPEEDS);
|
||||
if (windSpeedsObject != null) {
|
||||
final JSONArray twsArray = (JSONArray) windSpeedsObject;
|
||||
for (final Object twsObject : twsArray) {
|
||||
Double twsValue = ((Number) twsObject).doubleValue();
|
||||
trueWindSpeedMap.put(twsValue, new KnotSpeedImpl(twsValue));
|
||||
}
|
||||
} else {
|
||||
for (Speed speed : ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
trueWindSpeedMap.put(speed.getKnots(), speed);
|
||||
}
|
||||
}
|
||||
final Double [] trueWindSpeedArray = new Double[trueWindSpeedMap.size()];
|
||||
trueWindSpeedMap.keySet().toArray(trueWindSpeedArray);
|
||||
for (final Object aKey : allowances.keySet()) {
|
||||
String keyString = (String) aKey;
|
||||
final Matcher matcher = twaPattern.matcher(keyString);
|
||||
if (matcher.lookingAt()) {
|
||||
final JSONArray array = (JSONArray) allowances.get(keyString);
|
||||
final Map<Speed, Duration> twsMap = new HashMap<>();
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
twsMap.put(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[i],
|
||||
final Double allowanceValue = ((Number) array.get(i)).doubleValue();
|
||||
twsMap.put(trueWindSpeedMap.get(trueWindSpeedArray[i]), new SecondsDurationImpl(allowanceValue));
|
||||
}
|
||||
final Double trueWindAngleValue = Double.parseDouble(matcher.group(1));
|
||||
trueWindAngleMap.put(trueWindAngleValue, new DegreeBearingImpl(trueWindAngleValue));
|
||||
allowanceDurationsPerTrueWindAngleAndSpeed.put(trueWindAngleMap.get(trueWindAngleValue), twsMap);
|
||||
}
|
||||
}
|
||||
// Now read the various allowances, assuming we find values for the TWS "bins" identified above
|
||||
for (final Object aKey : allowances.keySet()) {
|
||||
final JSONArray array = (JSONArray) allowances.get(aKey);
|
||||
if (((String) aKey).equals(BEAT_ANGLE)) {
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
beatAngles.put(new KnotSpeedImpl(trueWindSpeedArray[i]),
|
||||
new DegreeBearingImpl(((Number) array.get(i)).doubleValue()));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (((String) aKey).equals(GYBE_ANGLE)) {
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
gybeAngles.put(new KnotSpeedImpl(trueWindSpeedArray[i]),
|
||||
new DegreeBearingImpl(((Number) array.get(i)).doubleValue()));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
Map<Speed, Duration> twsMap = new HashMap<>();
|
||||
//ignore true wind angles key
|
||||
if (!twaPattern.matcher((String) aKey).lookingAt()) {
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
twsMap.put(new KnotSpeedImpl(trueWindSpeedArray[i]),
|
||||
new SecondsDurationImpl(((Number) array.get(i)).doubleValue()));
|
||||
}
|
||||
switch ((String) aKey) {
|
||||
case "R52":
|
||||
case "R60":
|
||||
case "R75":
|
||||
case "R90":
|
||||
case "R110":
|
||||
case "R120":
|
||||
case "R135":
|
||||
case "R150":
|
||||
allowanceDurationsPerTrueWindAngleAndSpeed.put(
|
||||
new DegreeBearingImpl(Integer.parseInt(((String) aKey).substring(1))), twsMap);
|
||||
break;
|
||||
case BEAT:
|
||||
case RUN:
|
||||
predefinedAllowanceDurationsPerTrueWindSpeed.put((String) aKey, twsMap);
|
||||
break;
|
||||
default:
|
||||
predefinedAllowanceDurationsPerTrueWindSpeed.put((String) aKey, twsMap);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
switch ((String) aKey) {
|
||||
case BEAT:
|
||||
case RUN:
|
||||
predefinedAllowanceDurationsPerTrueWindSpeed.put((String) aKey, twsMap);
|
||||
break;
|
||||
default:
|
||||
predefinedAllowanceDurationsPerTrueWindSpeed.put((String) aKey, twsMap);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (Speed tws : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
velocityPredictionPerTrueWindSpeedAndAngle.put(tws, new HashMap<>());
|
||||
}
|
||||
for (Bearing keyTWA : allowanceDurationsPerTrueWindAngleAndSpeed.keySet()) {
|
||||
for (Speed keyTWS : allowanceDurationsPerTrueWindAngleAndSpeed.get(keyTWA).keySet()) {
|
||||
velocityPredictionPerTrueWindSpeedAndAngle.get(keyTWS).put(keyTWA,
|
||||
ORCCertificateImpl.NAUTICAL_MILE
|
||||
trueWindSpeedMap.values().forEach(tws -> velocityPredictionPerTrueWindSpeedAndAngle.put(tws, new HashMap<>()));
|
||||
for (final Bearing keyTWA : allowanceDurationsPerTrueWindAngleAndSpeed.keySet()) {
|
||||
for (final Speed keyTWS : allowanceDurationsPerTrueWindAngleAndSpeed.get(keyTWA).keySet()) {
|
||||
velocityPredictionPerTrueWindSpeedAndAngle.get(keyTWS).put(keyTWA, ORCCertificateImpl.NAUTICAL_MILE
|
||||
.inTime(allowanceDurationsPerTrueWindAngleAndSpeed.get(keyTWA).get(keyTWS)));
|
||||
}
|
||||
}
|
||||
@@ -203,20 +238,30 @@ public class ORCCertificatesCollectionJSON extends AbstractORCCertificatesCollec
|
||||
nonSpinnakerSpeedPredictionPerTrueWindSpeed.put(tws, ORCCertificateImpl.NAUTICAL_MILE
|
||||
.inTime(predefinedAllowanceDurationsPerTrueWindSpeed.get(NON_SPINNAKER).get(tws)));
|
||||
}
|
||||
return new ORCCertificateImpl(getId(object), sailNumber, boatName, boatclass, length, gph, cdl,
|
||||
issueDate, velocityPredictionPerTrueWindSpeedAndAngle, beatAngles, beatVMGPredictionPerTrueWindSpeed,
|
||||
final Bearing[] dynamicAllowancesTrueWindAngles = trueWindAngleMap.values().toArray(new Bearing[trueWindAngleMap.values().size()]);
|
||||
final Speed[] dynamicAllowancesTrueWindSpeeds = trueWindSpeedMap.values().toArray(new Speed[trueWindSpeedMap.values().size()]);
|
||||
// replace array by the default arrays if they match; this will save the space for the dynamically-parsed arrays
|
||||
return new ORCCertificateImpl(
|
||||
Arrays.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS, dynamicAllowancesTrueWindSpeeds)
|
||||
? ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS
|
||||
: dynamicAllowancesTrueWindSpeeds,
|
||||
Arrays.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES, dynamicAllowancesTrueWindAngles)
|
||||
? ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES
|
||||
: dynamicAllowancesTrueWindAngles,
|
||||
getId(object), sailNumber, boatName, boatclass, length, gph, cdl, issueDate,
|
||||
velocityPredictionPerTrueWindSpeedAndAngle, beatAngles, beatVMGPredictionPerTrueWindSpeed,
|
||||
beatAllowancePerTrueWindSpeed, gybeAngles, runVMGPredictionPerTrueWindSpeed,
|
||||
runAllowancePerTrueWindSpeed, windwardLeewardSpeedPredictionPerTrueWindSpeed,
|
||||
longDistanceSpeedPredictionPerTrueWindSpeed, circularRandomSpeedPredictionPerTrueWindSpeed,
|
||||
nonSpinnakerSpeedPredictionPerTrueWindSpeed);
|
||||
}
|
||||
|
||||
|
||||
private String getId(JSONObject certificateAsJson) {
|
||||
return getIdFromFields(certificateAsJson.get(NAT_AUTH).toString(),
|
||||
certificateAsJson.get(CERT_NO) == null ? EMPTY_CERT_NO : certificateAsJson.get(CERT_NO).toString(),
|
||||
certificateAsJson.get(BIN).toString());
|
||||
}
|
||||
|
||||
|
||||
private String getIdFromFields(final String natAuth, final String certNo, final String bin) {
|
||||
return natAuth + certNo + bin;
|
||||
}
|
||||
|
||||
+2
-2
@@ -122,7 +122,7 @@ public class ORCCertificatesCollectionRMS extends AbstractORCCertificatesCollect
|
||||
final Map<Speed, Speed> longDistanceSpeedPredictionPerTrueWindSpeed = new HashMap<>();
|
||||
final Map<Speed, Speed> circularRandomSpeedPredictionPerTrueWindSpeed = new HashMap<>();
|
||||
final Map<Speed, Speed> nonSpinnakerSpeedPredictionPerTrueWindSpeed = new HashMap<>();
|
||||
for (Speed tws : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
for (Speed tws : ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
String windSpeed = Integer.toString((int) tws.getKnots());
|
||||
String beatAngleKey = BEAT_ANGLE + windSpeed;
|
||||
String beatAllowanceKey = BEAT_ALLOWANCE + windSpeed;
|
||||
@@ -147,7 +147,7 @@ public class ORCCertificatesCollectionRMS extends AbstractORCCertificatesCollect
|
||||
nonSpinnakerSpeedPredictionPerTrueWindSpeed.put(tws, ORCCertificateImpl.NAUTICAL_MILE.inTime(
|
||||
new SecondsDurationImpl(Double.parseDouble(certificateValues.getValue(nonSpinnakerKey)))));
|
||||
Map<Bearing, Speed> velocityPredictionPerTrueWindAngle = new HashMap<>();
|
||||
for (Bearing twa : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_ANGLES ) {
|
||||
for (Bearing twa : ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES ) {
|
||||
String twaCoursesKey = TWA_COURSES + Integer.toString((int) twa.getDegrees()) + windSpeed;
|
||||
velocityPredictionPerTrueWindAngle.put(twa, ORCCertificateImpl.NAUTICAL_MILE.inTime(
|
||||
new SecondsDurationImpl(Double.parseDouble(certificateValues.getValue(twaCoursesKey)))));
|
||||
|
||||
+38
-17
@@ -71,6 +71,16 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv
|
||||
* allowance in sec/nm.
|
||||
*/
|
||||
private final UnivariateDifferentiableFunction functionImpliedWindInKnotsToAverageSpeedInKnotsForCourse;
|
||||
|
||||
/**
|
||||
* The {@link ORCCertificate#getTrueWindAngles()} from the certificate
|
||||
*/
|
||||
private final Bearing[] trueWindAngles;
|
||||
|
||||
/**
|
||||
* The {@link ORCCertificate#getTrueWindSpeeds()} from the certificate
|
||||
*/
|
||||
private final Speed[] trueWindSpeeds;
|
||||
|
||||
/**
|
||||
* Accepts the simplified polar data, one "column" for each of the defined true wind speeds, where each column is a
|
||||
@@ -79,6 +89,8 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv
|
||||
*/
|
||||
public ORCPerformanceCurveImpl(ORCCertificate certificate, ORCPerformanceCurveCourse course) throws FunctionEvaluationException {
|
||||
this.course = course;
|
||||
this.trueWindAngles = certificate.getTrueWindAngles();
|
||||
this.trueWindSpeeds = certificate.getTrueWindSpeeds();
|
||||
functionImpliedWindInKnotsToAverageSpeedInKnotsForCourse = createPerformanceCurve(certificate);
|
||||
}
|
||||
|
||||
@@ -100,8 +112,8 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv
|
||||
*/
|
||||
private UnivariateDifferentiableFunction createPerformanceCurve(ORCCertificate certificate) throws FunctionEvaluationException {
|
||||
final Map<Speed, Duration> allowancesForCoursePerTrueWindSpeed = createAllowancesPerCourse(certificate);
|
||||
double[] xs = new double[ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS.length+2];
|
||||
double[] ys = new double[ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS.length+2];
|
||||
double[] xs = new double[certificate.getTrueWindSpeeds().length+2];
|
||||
double[] ys = new double[certificate.getTrueWindSpeeds().length+2];
|
||||
int i = 0;
|
||||
xs[i] = 0; // see original Pascal code; the first "knot" is set to (0.0, 0.0)
|
||||
ys[i] = 0;
|
||||
@@ -142,7 +154,7 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv
|
||||
for (final ORCPerformanceCurveLeg leg : course.getLegs()) {
|
||||
allowancesPerLeg.put(leg, createAllowancePerLeg(leg, certificate));
|
||||
}
|
||||
for (final Speed tws : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
for (final Speed tws : certificate.getTrueWindSpeeds()) {
|
||||
Duration allowancePerTws = new SecondsDurationImpl(0);
|
||||
for (final ORCPerformanceCurveLeg leg : course.getLegs()) {
|
||||
allowancePerTws = allowancePerTws.plus(allowancesPerLeg.get(leg).get(tws));
|
||||
@@ -168,7 +180,7 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv
|
||||
|
||||
switch (leg.getType()) {
|
||||
case TWA:
|
||||
for (final Speed tws : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
for (final Speed tws : certificate.getTrueWindSpeeds()) {
|
||||
// Case switching on TWA (0. TWA == 0; 1. TWA < Beat; 2. Beat < TWA < Gybe; 3. Gybe < TWA; 4. TWA == 180)
|
||||
if (leg.getTwa().abs().compareTo(beatAngles.get(tws)) <= 0) {
|
||||
// Case 0 & 1 - result = beatVMG * distance * cos(TWA)
|
||||
@@ -186,23 +198,23 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv
|
||||
}
|
||||
break;
|
||||
case CIRCULAR_RANDOM:
|
||||
for (final Speed tws : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
for (final Speed tws : certificate.getTrueWindSpeeds()) {
|
||||
result.put(tws, certificate.getCircularRandomSpeedPredictions().get(tws).getDuration(leg.getLength()));
|
||||
}
|
||||
break;
|
||||
case LONG_DISTANCE:
|
||||
for (final Speed tws : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
for (final Speed tws : certificate.getTrueWindSpeeds()) {
|
||||
result.put(tws, certificate.getLongDistanceSpeedPredictions().get(tws).getDuration(leg.getLength()));
|
||||
}
|
||||
break;
|
||||
case WINDWARD_LEEWARD:
|
||||
case WINDWARD_LEEWARD_REAL_LIVE:
|
||||
for (final Speed tws : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
for (final Speed tws : certificate.getTrueWindSpeeds()) {
|
||||
result.put(tws, certificate.getWindwardLeewardSpeedPrediction().get(tws).getDuration(leg.getLength()));
|
||||
}
|
||||
break;
|
||||
case NON_SPINNAKER:
|
||||
for (final Speed tws : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
for (final Speed tws :certificate.getTrueWindSpeeds()) {
|
||||
result.put(tws, certificate.getNonSpinnakerSpeedPredictions().get(tws).getDuration(leg.getLength()));
|
||||
}
|
||||
break;
|
||||
@@ -216,7 +228,7 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv
|
||||
*/
|
||||
private double[][] createPolarsPerTrueWindSpeed(Speed trueWindSpeed, Map<Speed, Map<Bearing, Speed>> reachingSpeedPredictionsPerTrueWindSpeedAndAngle,
|
||||
Map<Speed, Bearing> beatAngles, Map<Speed, Speed> beatVMGPredictionPerTrueWindSpeed,
|
||||
Map<Speed, Bearing> runAngles, Map<Speed, Speed> runVMGPredictionPerTrueWindSpeed) {
|
||||
Map<Speed, Bearing> runAngles, Map<Speed, Speed> runVMGPredictionPerTrueWindSpeed, Bearing[] trueWindAngles) {
|
||||
ArrayList<Double> resultWindAngles = new ArrayList<>();
|
||||
ArrayList<Double> resultSpeedsOverGroundInKnots = new ArrayList<>();
|
||||
Bearing beatAngle = beatAngles.get(trueWindSpeed);
|
||||
@@ -228,7 +240,7 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv
|
||||
resultSpeedsOverGroundInKnots.add(beatVMGPredictionPerTrueWindSpeed.get(trueWindSpeed).getKnots() / Math.cos(beatAngle.add(MINUS_TWO_DEGREES).getRadians()));
|
||||
resultWindAngles.add(beatAngle.getDegrees());
|
||||
resultSpeedsOverGroundInKnots.add(beatVMGPredictionPerTrueWindSpeed.get(trueWindSpeed).getKnots() / Math.cos(beatAngle.getRadians()));
|
||||
for (final Bearing twa : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_ANGLES) {
|
||||
for (final Bearing twa : trueWindAngles) {
|
||||
if (twa.compareTo(beatAngle) > 0 && twa.compareTo(runAngle) < 0) {
|
||||
resultWindAngles.add(twa.getDegrees());
|
||||
resultSpeedsOverGroundInKnots.add(reachingSpeedPredictionsPerTrueWindSpeedAndAngle.get(trueWindSpeed).get(twa).getKnots());
|
||||
@@ -251,14 +263,14 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv
|
||||
@Override
|
||||
public Speed getImpliedWind(Duration durationToCompleteCourse) throws MaxIterationsExceededException, FunctionEvaluationException{
|
||||
final Speed averageSpeedOnCourse = getCourse().getTotalLength().inTime(durationToCompleteCourse);
|
||||
final double[] predictedSpeedsInKnotsForTotalCourseByTrueWindSpeed = Arrays.stream(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS).mapToDouble
|
||||
final double[] predictedSpeedsInKnotsForTotalCourseByTrueWindSpeed = Arrays.stream(trueWindSpeeds).mapToDouble
|
||||
(tws->{ return functionImpliedWindInKnotsToAverageSpeedInKnotsForCourse.value(tws.getKnots()); }).toArray();
|
||||
final Speed result;
|
||||
// Corner cases for Allowance > Allowance(20kt) or Allowance < Allowance(6kt)
|
||||
if (averageSpeedOnCourse.getKnots() >= predictedSpeedsInKnotsForTotalCourseByTrueWindSpeed[predictedSpeedsInKnotsForTotalCourseByTrueWindSpeed.length-1]) {
|
||||
result = ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS.length-1];
|
||||
result = trueWindSpeeds[trueWindSpeeds.length-1];
|
||||
} else if (averageSpeedOnCourse.equals(Speed.NULL) || averageSpeedOnCourse.getKnots() <= predictedSpeedsInKnotsForTotalCourseByTrueWindSpeed[0]) {
|
||||
result = ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[0];
|
||||
result = trueWindSpeeds[0];
|
||||
} else {
|
||||
// find the polynomial splined function that produces the durationToCompleteCourse within its validity range
|
||||
int i = 1; // skip the auxiliary spline segment from (0.0, 0.0) to (6.0, ...)
|
||||
@@ -272,7 +284,7 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv
|
||||
final UnivariateDifferentiableFunction targetZeroFunction = FunctionUtils.add(functionImpliedWindInKnotsToAverageSpeedInKnotsForCourse,
|
||||
FunctionUtils.multiply((UnivariateDifferentiableFunction) averageSpeedInKnots,
|
||||
(UnivariateDifferentiableFunction) new Constant(-1)));
|
||||
final double impliedWindSpeedInKnots = newtonSolver.solve(1000, targetZeroFunction, 10 /* knots of true wind speed */);
|
||||
final double impliedWindSpeedInKnots = newtonSolver.solve(1000, targetZeroFunction, 12 /* knots of true wind speed */);
|
||||
result = new KnotSpeedImpl(impliedWindSpeedInKnots);
|
||||
}
|
||||
return result;
|
||||
@@ -294,9 +306,18 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv
|
||||
Map<Speed, Bearing> beatAngles, Map<Speed, Speed> beatVMGPredictionPerTrueWindSpeed,
|
||||
Map<Speed, Bearing> runAngles, Map<Speed, Speed> runVMGPredictionPerTrueWindSpeed, Speed trueWindSpeed,
|
||||
Bearing trueWindAngle) throws FunctionEvaluationException, IllegalArgumentException {
|
||||
return getLagrangeSpeedPredictionForTrueWindSpeedAndAngle(twaAllowances, beatAngles,
|
||||
beatVMGPredictionPerTrueWindSpeed, runAngles, runVMGPredictionPerTrueWindSpeed, trueWindSpeed,
|
||||
trueWindAngle, trueWindAngles);
|
||||
}
|
||||
|
||||
public Speed getLagrangeSpeedPredictionForTrueWindSpeedAndAngle(Map<Speed, Map<Bearing, Speed>> twaAllowances,
|
||||
Map<Speed, Bearing> beatAngles, Map<Speed, Speed> beatVMGPredictionPerTrueWindSpeed,
|
||||
Map<Speed, Bearing> runAngles, Map<Speed, Speed> runVMGPredictionPerTrueWindSpeed, Speed trueWindSpeed,
|
||||
Bearing trueWindAngle, Bearing[] trueWindAngles) throws FunctionEvaluationException, IllegalArgumentException {
|
||||
final Speed result;
|
||||
double[][] polarPoints = createPolarsPerTrueWindSpeed(trueWindSpeed, twaAllowances, beatAngles,
|
||||
beatVMGPredictionPerTrueWindSpeed, runAngles, runVMGPredictionPerTrueWindSpeed);
|
||||
beatVMGPredictionPerTrueWindSpeed, runAngles, runVMGPredictionPerTrueWindSpeed, trueWindAngles);
|
||||
double[] twaPolarPoints = polarPoints[0];
|
||||
double[] speedsOverGroundInKnotsPolarPoints = polarPoints[1];
|
||||
int i = -1; // after the loop, i equals the next higher available polar data for the given TWA
|
||||
@@ -330,9 +351,9 @@ public class ORCPerformanceCurveImpl implements Serializable, ORCPerformanceCurv
|
||||
* the {@link #course} (which may be a prefix of a longer course) at the true wind speed provided to the resulting
|
||||
* map as the key. Iteration order is in ascending true wind speeds.
|
||||
*/
|
||||
public LinkedHashMap<Speed, Duration> getAllowancesPerTrueWindSpeedsForCourse() throws ArgumentOutsideDomainException {
|
||||
private LinkedHashMap<Speed, Duration> getAllowancesPerTrueWindSpeedsForCourse() throws ArgumentOutsideDomainException {
|
||||
final LinkedHashMap<Speed, Duration> result = new LinkedHashMap<>();
|
||||
for (final Speed tws : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
for (final Speed tws : trueWindSpeeds) {
|
||||
result.put(tws, getAllowancePerCourse(tws));
|
||||
}
|
||||
return result;
|
||||
|
||||
+4
-3
@@ -6,6 +6,7 @@ import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
import java.util.function.Function;
|
||||
@@ -238,10 +239,10 @@ public abstract class AbstractRankingMetric implements RankingMetric {
|
||||
|
||||
protected Competitor getCompetitorFarthestAhead(TimePoint timePoint, WindLegTypeAndLegBearingAndORCPerformanceCurveCache cache) {
|
||||
Comparator<Competitor> oneDesignComparator = getWindwardDistanceTraveledComparator(timePoint, cache);
|
||||
Competitor competitorFarthestAhead = StreamSupport
|
||||
Optional<Competitor> competitorFarthestAhead = StreamSupport
|
||||
.stream(getCompetitors().spliterator(), /* parallel */true).
|
||||
sorted(oneDesignComparator).findFirst().get();
|
||||
return competitorFarthestAhead;
|
||||
sorted(oneDesignComparator).findFirst();
|
||||
return competitorFarthestAhead.orElse(null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+29
-27
@@ -79,33 +79,35 @@ public abstract class NonPerformanceCurveRankingMetric extends AbstractRankingMe
|
||||
public RankingMetric.RankingInfo getRankingInfo(TimePoint timePoint, WindLegTypeAndLegBearingAndORCPerformanceCurveCache cache) {
|
||||
Map<Competitor, RankingMetric.CompetitorRankingInfo> result = new HashMap<>();
|
||||
Competitor competitorFarthestAhead = getCompetitorFarthestAhead(timePoint, cache);
|
||||
final Distance totalWindwardDistanceTraveled = getWindwardDistanceTraveled(competitorFarthestAhead, timePoint, cache);
|
||||
final TimePoint startOfRace = getTrackedRace().getStartOfRace();
|
||||
if (startOfRace != null) {
|
||||
final Duration actualRaceDuration = startOfRace.until(timePoint);
|
||||
for (Competitor competitor : getCompetitors()) {
|
||||
// TODO bug5110: we cannot compute the following if at timePoint the position of either of the two competitors involved is unknown; we can, however, do this if timePoint is after the two finish mark passings, or if the competitorFarthestAhead has already finished at timePoint and the position of "competitor" is known.
|
||||
final Duration predictedDurationToReachWindwardPositionOfCompetitorFarthestAhead = getPredictedDurationToReachWindwardPositionOf(
|
||||
competitor, competitorFarthestAhead, timePoint, cache);
|
||||
final Duration totalEstimatedDurationSinceRaceStartToCompetitorFarthestAhead = predictedDurationToReachWindwardPositionOfCompetitorFarthestAhead == null ? null
|
||||
: actualRaceDuration.plus(predictedDurationToReachWindwardPositionOfCompetitorFarthestAhead);
|
||||
final Duration calculatedEstimatedTimeWhenReachingCompetitorFarthestAhead = totalEstimatedDurationSinceRaceStartToCompetitorFarthestAhead == null ? null
|
||||
: getCalculatedTime(
|
||||
competitor,
|
||||
() -> getTrackedRace().getTrackedLeg(competitorFarthestAhead, timePoint).getLeg(),
|
||||
() -> getTrackedRace().getTrack(competitorFarthestAhead).getEstimatedPosition(
|
||||
timePoint, /* extrapolate */true),
|
||||
totalEstimatedDurationSinceRaceStartToCompetitorFarthestAhead,
|
||||
totalWindwardDistanceTraveled);
|
||||
final Duration calculatedTime = getCalculatedTime(competitor,
|
||||
() -> getTrackedRace().getCurrentLeg(competitor, timePoint).getLeg(), () -> getTrackedRace()
|
||||
.getTrack(competitor).getEstimatedPosition(timePoint, /* extrapolated */true),
|
||||
getTrackedRace().getTimeSailedSinceRaceStart(competitor, timePoint), totalWindwardDistanceTraveled);
|
||||
RankingMetric.CompetitorRankingInfo rankingInfo = new CompetitorRankingInfoImpl(timePoint, competitor,
|
||||
getWindwardDistanceTraveled(competitor, timePoint, cache), actualRaceDuration, calculatedTime,
|
||||
predictedDurationToReachWindwardPositionOfCompetitorFarthestAhead,
|
||||
calculatedEstimatedTimeWhenReachingCompetitorFarthestAhead);
|
||||
result.put(competitor, rankingInfo);
|
||||
if (competitorFarthestAhead != null) {
|
||||
final Distance totalWindwardDistanceTraveled = getWindwardDistanceTraveled(competitorFarthestAhead, timePoint, cache);
|
||||
final TimePoint startOfRace = getTrackedRace().getStartOfRace();
|
||||
if (startOfRace != null) {
|
||||
final Duration actualRaceDuration = startOfRace.until(timePoint);
|
||||
for (Competitor competitor : getCompetitors()) {
|
||||
// TODO bug5110: we cannot compute the following if at timePoint the position of either of the two competitors involved is unknown; we can, however, do this if timePoint is after the two finish mark passings, or if the competitorFarthestAhead has already finished at timePoint and the position of "competitor" is known.
|
||||
final Duration predictedDurationToReachWindwardPositionOfCompetitorFarthestAhead = getPredictedDurationToReachWindwardPositionOf(
|
||||
competitor, competitorFarthestAhead, timePoint, cache);
|
||||
final Duration totalEstimatedDurationSinceRaceStartToCompetitorFarthestAhead = predictedDurationToReachWindwardPositionOfCompetitorFarthestAhead == null ? null
|
||||
: actualRaceDuration.plus(predictedDurationToReachWindwardPositionOfCompetitorFarthestAhead);
|
||||
final Duration calculatedEstimatedTimeWhenReachingCompetitorFarthestAhead = totalEstimatedDurationSinceRaceStartToCompetitorFarthestAhead == null ? null
|
||||
: getCalculatedTime(
|
||||
competitor,
|
||||
() -> getTrackedRace().getTrackedLeg(competitorFarthestAhead, timePoint).getLeg(),
|
||||
() -> getTrackedRace().getTrack(competitorFarthestAhead).getEstimatedPosition(
|
||||
timePoint, /* extrapolate */true),
|
||||
totalEstimatedDurationSinceRaceStartToCompetitorFarthestAhead,
|
||||
totalWindwardDistanceTraveled);
|
||||
final Duration calculatedTime = getCalculatedTime(competitor,
|
||||
() -> getTrackedRace().getCurrentLeg(competitor, timePoint).getLeg(), () -> getTrackedRace()
|
||||
.getTrack(competitor).getEstimatedPosition(timePoint, /* extrapolated */true),
|
||||
getTrackedRace().getTimeSailedSinceRaceStart(competitor, timePoint), totalWindwardDistanceTraveled);
|
||||
RankingMetric.CompetitorRankingInfo rankingInfo = new CompetitorRankingInfoImpl(timePoint, competitor,
|
||||
getWindwardDistanceTraveled(competitor, timePoint, cache), actualRaceDuration, calculatedTime,
|
||||
predictedDurationToReachWindwardPositionOfCompetitorFarthestAhead,
|
||||
calculatedEstimatedTimeWhenReachingCompetitorFarthestAhead);
|
||||
result.put(competitor, rankingInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
return new NonPerformanceCurveRankingInfoImpl(timePoint, result, competitorFarthestAhead);
|
||||
|
||||
+32
-14
@@ -144,52 +144,70 @@ public class ExpeditionMessageImpl implements ExpeditionMessage {
|
||||
|
||||
@Override
|
||||
public GPSFixMoving getGPSFixMoving() {
|
||||
final GPSFixMoving result;
|
||||
if (hasValue(ID_GPS_LAT) && hasValue(ID_GPS_LNG)) {
|
||||
return new GPSFixMovingImpl(new DegreePosition(getValue(ID_GPS_LAT), getValue(ID_GPS_LNG)), getTimePoint(),
|
||||
getSpeedOverGround());
|
||||
final SpeedWithBearing cogSog = getSpeedOverGround();
|
||||
if (cogSog != null) {
|
||||
result = new GPSFixMovingImpl(new DegreePosition(getValue(ID_GPS_LAT), getValue(ID_GPS_LNG)), getTimePoint(),
|
||||
getSpeedOverGround());
|
||||
} else {
|
||||
result = null;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
result = null;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpeedWithBearing getTrueWind() {
|
||||
final SpeedWithBearing result;
|
||||
if (hasValue(ID_TWD) && hasValue(ID_TWS)) {
|
||||
return new KnotSpeedWithBearingImpl(getValue(ID_TWS), getTrueWindBearing());
|
||||
result = new KnotSpeedWithBearingImpl(getValue(ID_TWS), getTrueWindBearing());
|
||||
} else if (hasValue(ID_GWD) && hasValue(ID_GWS)) {
|
||||
return new KnotSpeedWithBearingImpl(getValue(ID_GWS), getTrueWindBearing());
|
||||
result = new KnotSpeedWithBearingImpl(getValue(ID_GWS), getTrueWindBearing());
|
||||
} else {
|
||||
return null;
|
||||
result = null;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bearing getTrueWindBearing() {
|
||||
final Bearing result;
|
||||
if (hasValue(ID_TWD)) { // TWD represents the "from" direction and need to be reversed to obtain the "to" bearing
|
||||
return new DegreeBearingImpl(getValue(ID_TWD)).reverse();
|
||||
result = new DegreeBearingImpl(getValue(ID_TWD)).reverse();
|
||||
} else if (hasValue(ID_GWD)) {
|
||||
return new DegreeBearingImpl(getValue(ID_GWD)).reverse();
|
||||
result = new DegreeBearingImpl(getValue(ID_GWD)).reverse();
|
||||
} else {
|
||||
return null;
|
||||
result = null;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpeedWithBearing getSpeedOverGround() {
|
||||
if (hasValue(ID_GPS_COG) && hasValue(ID_GPS_SOG)) {
|
||||
return new KnotSpeedWithBearingImpl(getValue(ID_GPS_SOG), getCourseOverGround());
|
||||
final SpeedWithBearing result;
|
||||
if (hasValue(ID_GPS_COG)) {
|
||||
// We're assuming that if SOG is not part of the message but COG is then
|
||||
// the SOG was probably so low that it's fair to approximate it as 0.
|
||||
final double sogInKnots = hasValue(ID_GPS_SOG) ? getValue(ID_GPS_SOG) : 0;
|
||||
result = new KnotSpeedWithBearingImpl(sogInKnots, getCourseOverGround());
|
||||
} else {
|
||||
return null;
|
||||
result = null;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bearing getCourseOverGround() {
|
||||
final Bearing result;
|
||||
if (hasValue(ID_GPS_COG)) {
|
||||
return new DegreeBearingImpl(getValue(ID_GPS_COG));
|
||||
result = new DegreeBearingImpl(getValue(ID_GPS_COG));
|
||||
} else {
|
||||
return null;
|
||||
result = null;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+14
-1
@@ -1,12 +1,15 @@
|
||||
package com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.orc.impl;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gwt.user.client.rpc.CustomFieldSerializer;
|
||||
import com.google.gwt.user.client.rpc.SerializationException;
|
||||
import com.google.gwt.user.client.rpc.SerializationStreamReader;
|
||||
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
|
||||
import com.sap.sailing.domain.common.orc.ORCCertificate;
|
||||
import com.sap.sailing.domain.common.orc.impl.ORCCertificateImpl;
|
||||
import com.sap.sse.common.Bearing;
|
||||
import com.sap.sse.common.Distance;
|
||||
@@ -43,6 +46,10 @@ public class ORCCertificateImpl_CustomFieldSerializer extends CustomFieldSeriali
|
||||
streamWriter.writeObject(new HashMap<>(instance.getLongDistanceSpeedPredictions()));
|
||||
streamWriter.writeObject(new HashMap<>(instance.getCircularRandomSpeedPredictions()));
|
||||
streamWriter.writeObject(new HashMap<>(instance.getNonSpinnakerSpeedPredictions()));
|
||||
streamWriter.writeObject(Arrays.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES, instance.getTrueWindAngles()) ? null :
|
||||
Arrays.asList(instance.getTrueWindAngles()));
|
||||
streamWriter.writeObject(Arrays.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS, instance.getTrueWindSpeeds()) ? null :
|
||||
Arrays.asList(instance.getTrueWindSpeeds()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -88,7 +95,13 @@ public class ORCCertificateImpl_CustomFieldSerializer extends CustomFieldSeriali
|
||||
final Map<Speed, Speed> circularRandomSpeedPredictionsPerTrueWindSpeed = (Map<Speed, Speed>) streamReader.readObject();
|
||||
@SuppressWarnings("unchecked")
|
||||
final Map<Speed, Speed> nonSpinnakerSpeedPredictionsPerTrueWindSpeed = (Map<Speed, Speed>) streamReader.readObject();
|
||||
return new ORCCertificateImpl(idConsistingOfNatAuthCertNoAndBIN, sailnumber, boatName, boatclass, length, gph,
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Bearing> readTWAs = (List<Bearing>) streamReader.readObject();
|
||||
final Bearing[] trueWindAngles = readTWAs == null ? ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES : readTWAs.toArray(new Bearing[readTWAs.size()]);
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Speed> readTWSs = (List<Speed>) streamReader.readObject();
|
||||
final Speed[] trueWindSpeeds = readTWSs == null ? ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS : readTWSs.toArray(new Speed[readTWSs.size()]);
|
||||
return new ORCCertificateImpl(trueWindSpeeds,trueWindAngles,idConsistingOfNatAuthCertNoAndBIN, sailnumber, boatName, boatclass, length, gph,
|
||||
cdl, issueDate, velocityPredictionsPerTrueWindSpeedAndAngle, beatAngles,
|
||||
beatVMGPredictionPerTrueWindSpeed, beatAllowancePerTrueWindSpeed, runAngles,
|
||||
runVMGPredictionPerTrueWindSpeed, runAllowancePerTrueWindSpeed,
|
||||
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
package com.google.gwt.user.client.rpc.core.com.sap.sse.security.shared;
|
||||
|
||||
import com.google.gwt.user.client.rpc.CustomFieldSerializer;
|
||||
import com.google.gwt.user.client.rpc.SerializationException;
|
||||
import com.google.gwt.user.client.rpc.SerializationStreamReader;
|
||||
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
|
||||
import com.sap.sse.security.shared.AdminRole;
|
||||
|
||||
public class AdminRole_CustomFieldSerializer extends CustomFieldSerializer<AdminRole> {
|
||||
|
||||
@Override
|
||||
public void serializeInstance(SerializationStreamWriter streamWriter, AdminRole instance)
|
||||
throws SerializationException {
|
||||
serialize(streamWriter, instance);
|
||||
}
|
||||
|
||||
public static void serialize(SerializationStreamWriter streamWriter, AdminRole instance)
|
||||
throws SerializationException {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCustomInstantiateInstance() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AdminRole instantiateInstance(SerializationStreamReader streamReader) throws SerializationException {
|
||||
return instantiate(streamReader);
|
||||
}
|
||||
|
||||
public static AdminRole instantiate(SerializationStreamReader streamReader) throws SerializationException {
|
||||
return AdminRole.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deserializeInstance(SerializationStreamReader streamReader, AdminRole instance)
|
||||
throws SerializationException {
|
||||
deserialize(streamReader, instance);
|
||||
}
|
||||
|
||||
public static void deserialize(SerializationStreamReader streamReader, AdminRole instance) {
|
||||
// Done by instantiateInstance
|
||||
}
|
||||
|
||||
}
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
package com.google.gwt.user.client.rpc.core.com.sap.sse.security.shared;
|
||||
|
||||
import com.google.gwt.user.client.rpc.CustomFieldSerializer;
|
||||
import com.google.gwt.user.client.rpc.SerializationException;
|
||||
import com.google.gwt.user.client.rpc.SerializationStreamReader;
|
||||
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
|
||||
import com.sap.sse.security.shared.RolePrototype;
|
||||
import com.sap.sse.security.shared.UserRole;
|
||||
|
||||
public class UserRole_CustomFieldSerializer extends CustomFieldSerializer<UserRole> {
|
||||
|
||||
@Override
|
||||
public void serializeInstance(SerializationStreamWriter streamWriter, UserRole instance)
|
||||
throws SerializationException {
|
||||
serialize(streamWriter, instance);
|
||||
}
|
||||
|
||||
public static void serialize(SerializationStreamWriter streamWriter, UserRole instance)
|
||||
throws SerializationException {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCustomInstantiateInstance() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserRole instantiateInstance(SerializationStreamReader streamReader) throws SerializationException {
|
||||
return instantiate(streamReader);
|
||||
}
|
||||
|
||||
public static UserRole instantiate(SerializationStreamReader streamReader) throws SerializationException {
|
||||
return UserRole.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deserializeInstance(SerializationStreamReader streamReader, UserRole instance)
|
||||
throws SerializationException {
|
||||
deserialize(streamReader, instance);
|
||||
}
|
||||
|
||||
public static void deserialize(SerializationStreamReader streamReader, RolePrototype instance) {
|
||||
// Done by instantiateInstance
|
||||
}
|
||||
|
||||
}
|
||||
+5
-6
@@ -24,19 +24,16 @@ public class Stage extends Composite {
|
||||
SimplePanel widgetCarouselContainerUi;
|
||||
|
||||
private StageTeaser stageTeaser;
|
||||
private List<StageTeaser> stageTeaserComposites;
|
||||
private final DesktopPlacesNavigator placeNavigator;
|
||||
|
||||
public Stage(DesktopPlacesNavigator placeNavigator) {
|
||||
this.placeNavigator = placeNavigator;
|
||||
StageResources.INSTANCE.css().ensureInjected();
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
stageTeaserComposites = new ArrayList<StageTeaser>();
|
||||
}
|
||||
|
||||
public void setFeaturedEvents(List<EventStageDTO> list) {
|
||||
final WidgetCarousel widgetCarousel = new WidgetCarousel();
|
||||
widgetCarousel.setShowDots(false);
|
||||
final List<Widget> stageWidgets = new ArrayList<>();
|
||||
for (EventStageDTO event : list) {
|
||||
switch (event.getStageType()) {
|
||||
case POPULAR:
|
||||
@@ -49,9 +46,11 @@ public class Stage extends Composite {
|
||||
stageTeaser = new UpcomingEventStageTeaser(event, placeNavigator);
|
||||
break;
|
||||
}
|
||||
widgetCarousel.addWidget(stageTeaser);
|
||||
stageTeaserComposites.add(stageTeaser);
|
||||
stageWidgets.add(stageTeaser);
|
||||
}
|
||||
final WidgetCarousel widgetCarousel = new WidgetCarousel();
|
||||
widgetCarousel.setShowDots(false);
|
||||
widgetCarousel.setWidgets(stageWidgets);
|
||||
this.widgetCarouselContainerUi.setWidget(widgetCarousel);
|
||||
}
|
||||
}
|
||||
+1
-2
@@ -37,9 +37,8 @@ public class EventsOverviewRecent extends Composite {
|
||||
List<EventListEventDTO> allEvents = new LinkedList<EventListEventDTO>();
|
||||
boolean oneYearIsExpanded = false;
|
||||
for (EventListYearDTO yearDTO : years) {
|
||||
EventsOverviewRecentYear recentEventsOfOneYear = new EventsOverviewRecentYear(yearDTO, navigator, true);
|
||||
EventsOverviewRecentYear recentEventsOfOneYear = new EventsOverviewRecentYear(yearDTO, navigator, !oneYearIsExpanded);
|
||||
year.add(recentEventsOfOneYear);
|
||||
if (oneYearIsExpanded) recentEventsOfOneYear.onHeaderClicked();
|
||||
oneYearIsExpanded = true;
|
||||
allEvents.addAll(yearDTO.getEvents());
|
||||
}
|
||||
|
||||
+16
-5
@@ -44,10 +44,15 @@ public class EventsOverviewRecentYear extends Composite {
|
||||
|
||||
private boolean isContentVisible;
|
||||
|
||||
private boolean isStageInitialized;
|
||||
|
||||
private final CollapseAnimation animation;
|
||||
|
||||
private final List<EventListEventDTO> events;
|
||||
|
||||
public EventsOverviewRecentYear(EventListYearDTO yearDTO, MobilePlacesNavigator navigator, boolean showInitial) {
|
||||
List<EventListEventDTO> events = yearDTO.getEvents();
|
||||
isContentVisible = showInitial;
|
||||
events = yearDTO.getEvents();
|
||||
eventStage = new Stage(navigator, false);
|
||||
EventsOverviewRecentResources.INSTANCE.css().ensureInjected();
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
@@ -80,8 +85,7 @@ public class EventsOverviewRecentYear extends Composite {
|
||||
statisticsBox.getElement().getStyle().setPaddingRight(1, Unit.EM);
|
||||
recentEventsTeaserPanel.add(statisticsBox);
|
||||
|
||||
eventStage.setFeaturedEvents(events);
|
||||
// eventStage.removeFromParent();
|
||||
initStageContents();
|
||||
headerDiv.addDomHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
@@ -89,18 +93,25 @@ public class EventsOverviewRecentYear extends Composite {
|
||||
}
|
||||
}, ClickEvent.getType());
|
||||
|
||||
isContentVisible = showInitial;
|
||||
animation = new CollapseAnimation(contentDiv, showInitial);
|
||||
updateAccordionState();
|
||||
}
|
||||
|
||||
void onHeaderClicked() {
|
||||
private void initStageContents() {
|
||||
if (isContentVisible && !isStageInitialized) {
|
||||
eventStage.setFeaturedEvents(events);
|
||||
isStageInitialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void onHeaderClicked() {
|
||||
isContentVisible = !isContentVisible;
|
||||
updateContentVisibility();
|
||||
}
|
||||
|
||||
private void updateContentVisibility() {
|
||||
animation.animate(isContentVisible);
|
||||
initStageContents();
|
||||
updateAccordionState();
|
||||
}
|
||||
|
||||
|
||||
+3
-5
@@ -21,8 +21,6 @@ public class Stage extends Composite {
|
||||
|
||||
private static StageUiBinder uiBinder = GWT.create(StageUiBinder.class);
|
||||
|
||||
private List<StageTeaser> stageTeaserComposites;
|
||||
|
||||
@UiField DivElement stageContainer;
|
||||
@UiField WidgetCarousel widgetCarousel;
|
||||
|
||||
@@ -36,10 +34,10 @@ public class Stage extends Composite {
|
||||
widgetCarousel.setShowArrows(false);
|
||||
if (!showDots) stageContainer.getStyle().setHeight(100, Unit.PCT);
|
||||
widgetCarousel.setShowDots(showDots);
|
||||
stageTeaserComposites = new ArrayList<StageTeaser>();
|
||||
}
|
||||
|
||||
public void setFeaturedEvents(List<? extends EventLinkAndMetadataDTO> list) {
|
||||
final List<Widget> stageWidgets = new ArrayList<>();
|
||||
for (EventLinkAndMetadataDTO event : list) {
|
||||
switch (event.getStageType()) {
|
||||
case POPULAR:
|
||||
@@ -52,8 +50,8 @@ public class Stage extends Composite {
|
||||
stageTeaser = new UpcomingEventStageTeaser(event, placeNavigator);
|
||||
break;
|
||||
}
|
||||
widgetCarousel.addWidget(stageTeaser);
|
||||
stageTeaserComposites.add(stageTeaser);
|
||||
stageWidgets.add(stageTeaser);
|
||||
}
|
||||
widgetCarousel.setWidgets(stageWidgets);
|
||||
}
|
||||
}
|
||||
+3
-4
@@ -15,7 +15,6 @@ import com.sap.sailing.gwt.home.mobile.places.start.StartView.Presenter;
|
||||
import com.sap.sailing.gwt.home.shared.app.ActivityCallback;
|
||||
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
|
||||
import com.sap.sailing.gwt.home.shared.places.start.StartPlace;
|
||||
import com.sap.sailing.gwt.home.shared.refresh.RefreshManager;
|
||||
import com.sap.sailing.gwt.home.shared.refresh.RefreshManagerWithErrorAndBusy;
|
||||
import com.sap.sse.gwt.dispatch.shared.commands.ListResult;
|
||||
|
||||
@@ -33,11 +32,13 @@ public class StartActivity extends AbstractActivity implements Presenter {
|
||||
panel.setWidget(clientFactory.createBusyView());
|
||||
Window.setTitle(place.getTitle());
|
||||
final StartView view = new StartViewImpl(StartActivity.this);
|
||||
final RefreshManagerWithErrorAndBusy refreshManager = new RefreshManagerWithErrorAndBusy(view.asWidget(), panel,
|
||||
clientFactory.getDispatch(), clientFactory);
|
||||
clientFactory.getDispatch().execute(new GetStagedEventsAction(true),
|
||||
new ActivityCallback<ListResult<EventStageDTO>>(clientFactory, panel) {
|
||||
@Override
|
||||
public void onSuccess(ListResult<EventStageDTO> result) {
|
||||
panel.setWidget(view.asWidget());
|
||||
refreshManager.attachContent();
|
||||
Window.setTitle(place.getTitle());
|
||||
view.setFeaturedEvents(result.getValues());
|
||||
}
|
||||
@@ -50,8 +51,6 @@ public class StartActivity extends AbstractActivity implements Presenter {
|
||||
}
|
||||
});
|
||||
|
||||
final RefreshManager refreshManager = new RefreshManagerWithErrorAndBusy(view.asWidget(), panel,
|
||||
clientFactory.getDispatch(), clientFactory);
|
||||
refreshManager.add(view.getAnniversariesView(), new GetAnniversariesAction());
|
||||
}
|
||||
|
||||
|
||||
+5
-1
@@ -34,7 +34,11 @@ public class AutoAttachingRefreshManager extends LifecycleRefreshManager {
|
||||
|
||||
@Override
|
||||
protected void onSuccessfulUpdate() {
|
||||
if(container != null) {
|
||||
attachContent();
|
||||
}
|
||||
|
||||
public void attachContent() {
|
||||
if (container != null) {
|
||||
LOG.log(Level.FINE, "Attaching refreshable content to container");
|
||||
container.setWidget(content);
|
||||
container = null;
|
||||
|
||||
+10
-10
@@ -9,33 +9,33 @@ import com.google.gwt.dom.client.Style.Overflow;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
|
||||
public class CollapseAnimation extends Animation {
|
||||
|
||||
|
||||
private Element elementToAnimate;
|
||||
|
||||
|
||||
private boolean show = true;
|
||||
private int effectiveHeight;
|
||||
|
||||
public CollapseAnimation(Element elementToAnimate) {
|
||||
this(elementToAnimate, true);
|
||||
}
|
||||
|
||||
|
||||
public CollapseAnimation(Element elementToAnimate, int effectiveHeight) {
|
||||
this(elementToAnimate, false);
|
||||
this.effectiveHeight = effectiveHeight;
|
||||
}
|
||||
|
||||
|
||||
public CollapseAnimation(Element elementToAnimate, boolean showInitial) {
|
||||
this.elementToAnimate = elementToAnimate;
|
||||
this.show = showInitial;
|
||||
elementToAnimate.getStyle().setOverflow(Overflow.HIDDEN);
|
||||
if(!showInitial) {
|
||||
if (!showInitial) {
|
||||
elementToAnimate.getStyle().setDisplay(Display.NONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onComplete() {
|
||||
if(!show) {
|
||||
if (!show) {
|
||||
elementToAnimate.getStyle().setDisplay(Display.NONE);
|
||||
} else {
|
||||
elementToAnimate.getStyle().clearHeight();
|
||||
@@ -44,14 +44,14 @@ public class CollapseAnimation extends Animation {
|
||||
|
||||
@Override
|
||||
protected void onUpdate(double progress) {
|
||||
if(!show) {
|
||||
if (!show) {
|
||||
progress = 1.0 - progress;
|
||||
}
|
||||
elementToAnimate.getStyle().setHeight(effectiveHeight * progress, Unit.PX);
|
||||
}
|
||||
|
||||
|
||||
public void animate(boolean show) {
|
||||
if(show && effectiveHeight == 0) {
|
||||
if (show && effectiveHeight == 0) {
|
||||
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
||||
@Override
|
||||
public void execute() {
|
||||
|
||||
+7
-3
@@ -399,13 +399,17 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint
|
||||
SecuredSecurityTypes.SERVER.getPermissionForObject(
|
||||
SecuredSecurityTypes.ServerActions.CONFIGURE_REMOTE_INSTANCES, serverInfo));
|
||||
|
||||
LocalServerManagementPanel localServerInstancesManagementPanel = new LocalServerManagementPanel(
|
||||
final LocalServerManagementPanel localServerInstancesManagementPanel = new LocalServerManagementPanel(
|
||||
getSailingService(), getUserService(), this, getStringMessages());
|
||||
localServerInstancesManagementPanel.ensureDebugId("LocalServer");
|
||||
panel.addToTabPanel(advancedTabPanel,
|
||||
new DefaultRefreshableAdminConsolePanel<LocalServerManagementPanel>(
|
||||
localServerInstancesManagementPanel),
|
||||
getStringMessages().localServer(),
|
||||
localServerInstancesManagementPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
localServerInstancesManagementPanel.refreshServerConfiguration();
|
||||
}
|
||||
}, getStringMessages().localServer(),
|
||||
// We explicitly use a different permission check here.
|
||||
// Most panels show a list of domain objects which means we check if the user has permissions for any
|
||||
// potentially existing object to decide about the visibility.
|
||||
|
||||
+1
-6
@@ -61,15 +61,12 @@ public class LocalServerManagementPanel extends SimplePanel {
|
||||
this.userService = userService;
|
||||
this.errorReporter = errorReporter;
|
||||
this.stringMessages = stringMessages;
|
||||
|
||||
final Panel mainPanel = new VerticalPanel();
|
||||
setWidget(mainPanel);
|
||||
mainPanel.setWidth("100%");
|
||||
|
||||
mainPanel.add(this.buttonPanel = createServerActionsUi(userService));
|
||||
mainPanel.add(createServerInfoUI());
|
||||
mainPanel.add(createServerConfigurationUI());
|
||||
|
||||
refreshServerConfiguration();
|
||||
}
|
||||
|
||||
@@ -150,7 +147,7 @@ public class LocalServerManagementPanel extends SimplePanel {
|
||||
});
|
||||
}
|
||||
|
||||
private void refreshServerConfiguration() {
|
||||
void refreshServerConfiguration() {
|
||||
sailingService.getServerConfiguration(new RefreshAsyncCallback<>(this::updateServerConfiguration));
|
||||
}
|
||||
|
||||
@@ -164,7 +161,6 @@ public class LocalServerManagementPanel extends SimplePanel {
|
||||
final boolean hasUserOwner = ownership != null && ownership.getUserOwner() != null;
|
||||
groupOwnerInfo.setText(hasGroupOwner ? ownership.getTenantOwner().getName() : "---");
|
||||
userOwnerInfo.setText(hasUserOwner ? ownership.getUserOwner().getName() : "---");
|
||||
|
||||
// Update changeability
|
||||
isSelfServiceServerCheckbox.setEnabled(userService.hasCurrentUserMetaPermission(
|
||||
serverInfo.getIdentifier().getPermission(ServerActions.CREATE_OBJECT), serverInfo.getOwnership()));
|
||||
@@ -175,7 +171,6 @@ public class LocalServerManagementPanel extends SimplePanel {
|
||||
private void updateServerConfiguration(ServerConfigurationDTO result) {
|
||||
isStandaloneServerCheckbox.setValue(result.isStandaloneServer(), false);
|
||||
isStandaloneServerCheckbox.setEnabled(true);
|
||||
|
||||
isPublicServerCheckbox.setValue(result.isPublic(), false);
|
||||
isSelfServiceServerCheckbox.setValue(result.isSelfService(), false);
|
||||
}
|
||||
|
||||
+1
@@ -110,6 +110,7 @@ public class MarkPropertiesPanel extends FlowPanel {
|
||||
strings.add(t.getName());
|
||||
strings.add(t.getCommonMarkProperties().getShortName());
|
||||
strings.add(t.getUuid().toString());
|
||||
Util.addAll(t.getTags(), strings);
|
||||
return strings;
|
||||
}
|
||||
|
||||
|
||||
+37
-4
@@ -438,6 +438,8 @@ pleaseEnterNonEmptyUrl=Indique un URL.
|
||||
pleaseEnterNonEmptyUrlOrUploadImage=Indique un URL o cargue una imagen.
|
||||
addResultImportUrl=Añadir un URL de importación de resultados
|
||||
errorAddingResultImportUrl=Error al añadir URL de importación de resultados: {0}
|
||||
eventIdOrUrl=ID de evento o URL
|
||||
doYouReallyWantToRemoveResultImportUrls=¿Desea realmente eliminar los URLs de importación de resultados seleccionados?
|
||||
remoteServerInstances=Instancias de servidor remoto
|
||||
localServer=Servidor local
|
||||
errorRefreshingSailingServers=Error al refrescar instancias SailingServer: {0}
|
||||
@@ -1435,6 +1437,7 @@ gotoDesktop=Ir a la versión de escritorio
|
||||
goBack=Volver
|
||||
showAllX=Mostrar todo {0}
|
||||
collapseX=Comprimir {0}
|
||||
|
||||
numberOfGPSFixes=Correcciones de GPS
|
||||
fastestSailor=Más rápido
|
||||
highestSpeed=Máxima velocidad
|
||||
@@ -2241,18 +2244,18 @@ invalidSecret=Secreto no válido
|
||||
warningSailInsightVersion=El servidor se ha configurado para el uso con SAP Sail Insight 1. Las regatas abiertas solo son compatibles con SAP Sail Insight 2; se pueden producir problemas de uso.
|
||||
invalidState=Estado no válido
|
||||
doYouReallyWantToRemoveDeviceConfiguration=¿Desea realmente eliminar la configuración del dispositivo {0}?
|
||||
errorFetchingSimulationData=Se ha producido un error al obtener los datos de simulación: {0}
|
||||
errorFetchingSimulationData=Se ha producido un error al obtener los datos de simulación: {0}. Asegúrese de haber iniciado sesión con su cuenta de usuario.
|
||||
usernameAndPasswordMustBothBeSet=El nombre de usuario y contraseña deben estar completados o en blanco
|
||||
explainUserName=El nombre de usuario a utilizar para la autenticación en el maestro
|
||||
explainPassword=La contraseña a utilizar para la autenticación en el maestro
|
||||
tracTracConnection=Conexión TracTrac
|
||||
addTracTracConnection=Añadir conexión TracTrac
|
||||
editTracTracConnection=Tratar conexión TracTrac
|
||||
filterTracTracConnections=Filtrar conexiones TracTrac
|
||||
creatorName=Nombre de creador
|
||||
swissTimingAchivedConnection=Conexión SwissTimingArchived
|
||||
addSwissTimingAchivedConnection=Añadir conexión SwissTimingArchived
|
||||
editSwissTimingAchivedConnection=Tratar conexión SwissTimingArchived
|
||||
filterSwissTimingAchivedConnections=Filtrar conexiones SwissTimingArchived
|
||||
editSwissTimingConnections=Tratar conexión SwissTiming
|
||||
swissTimingConnections=Conexión SwissTiming
|
||||
filterSwissTimingConnections=Filtrar conexiones SwissTiming
|
||||
addSwissTimingConnection=Añadir conexión SwissTiming
|
||||
updateURL=Actualizar URL
|
||||
@@ -2322,3 +2325,33 @@ orcPerformanceCurveLegTypeDescriptionWindwardLeewardRealLive=Regata de barlovent
|
||||
errorWhileLoadingUserSettings=Error al cargar las opciones de usuario: {0}
|
||||
certificates=Certificados
|
||||
dataBy=Datos por
|
||||
currentPositionLatitudeTooltip=Latitud de posición en grados (valores positivos denotan hemisferio norte; valores negativos, hemisferio sur)
|
||||
currentPositionLongitudeTooltip=Longitud de posición en grados (valores positivos denotan este; valores negativos, oeste)
|
||||
courseCreation=Creación de rumbo
|
||||
filterMarkTemplateByName=Filtrar plantillas de marcas
|
||||
markTemplates=Plantillas de marcas
|
||||
filterMarkPropertiesByName=Filtrar propiedades de marcas
|
||||
markProperties=Propiedades de marcas
|
||||
filterCourseTemplateByName=Filtrar plantillas de rumbos
|
||||
courseTemplates=Plantillas de rumbos
|
||||
markTemplate=Plantilla de marcas
|
||||
markRole1=Rol de marca 1
|
||||
markRole2=Rol de marca 2
|
||||
pleaseSelectAValidMarkTemplate=Seleccione una plantilla de marcas válida
|
||||
pleaseSelectAValidPassingInstruction=Seleccione una instrucción de paso válida
|
||||
doYouReallyWantToRemoveCourseTemplate=¿Desea realmente eliminar la plantilla de rumbos "{0}"? Todos los rumbos asociados se desvincularán.
|
||||
couldNotRemoveCourseTemplate=No se ha podido eliminar la plantilla de rumbos "{0}".
|
||||
doYouReallyWantToRemoveMarkProperties=¿Desea realmente eliminar las propiedades de marcas "{0}"?
|
||||
couldNotRemoveMarkProperties=No se han podido eliminar las propiedades de marcas "{0}".
|
||||
markRoles=Roles de marca
|
||||
filterMarkRoles=Filtrar roles de marca
|
||||
wayPointRequiresPassingInstruction=Seleccione una instrucción de paso válida para el punto de ruta
|
||||
wayPointRequiresShortName=Introduzca un nombre breve del punto de ruta
|
||||
wayPointRequiresName=Introduzca un nombre del punto de ruta
|
||||
wayPointMarkTemplatesAreTheSame=Las plantillas de marcas utilizadas en un punto de ruta no pueden ser iguales
|
||||
wayPointMarkInSequenceMissing=La marca utilizada en la secuencia no existe en la plantilla de rumbos
|
||||
defaultNumberOfLaps=# vueltas por defecto
|
||||
invalidImageURL=URL de imagen no válido
|
||||
setDeviceIdentifier=Fijar identificador de dispositivo
|
||||
setPosition=Fijar posición
|
||||
spareMarksAndTheirOptionalDefaultMarkRoles=Marcas adicionales y sus roles de marca por defecto opcionales
|
||||
+37
-4
@@ -438,6 +438,8 @@ pleaseEnterNonEmptyUrl=Saisissez une URL.
|
||||
pleaseEnterNonEmptyUrlOrUploadImage=Veuillez saisir une URL ou charger une image.
|
||||
addResultImportUrl=Ajouter URL d''importation des résultats
|
||||
errorAddingResultImportUrl=Erreur lors de l''ajout de l''URL d''importation des résultats : {0}
|
||||
eventIdOrUrl=URL ou ID de manifestation
|
||||
doYouReallyWantToRemoveResultImportUrls=Voulez-vous vraiment supprimer les URL d''importation de résultats sélectionnées ?
|
||||
remoteServerInstances=Instances de serveur distant
|
||||
localServer=Serveur local
|
||||
errorRefreshingSailingServers=Erreur lors de la mise à jour des instances SailingServer : {0}
|
||||
@@ -1435,6 +1437,7 @@ gotoDesktop=Aller à la version bureau
|
||||
goBack=Retour
|
||||
showAllX=Afficher tout {0}
|
||||
collapseX=Réduire {0}
|
||||
|
||||
numberOfGPSFixes=Positions GPS
|
||||
fastestSailor=Le plus rapide
|
||||
highestSpeed=Vitesse maximale
|
||||
@@ -2241,18 +2244,18 @@ invalidSecret=Secret non valide
|
||||
warningSailInsightVersion=Le serveur est configuré pour être utilisé avec SAP Sailing Boat Tracker 1. Les régates ouvertes sont prises en charge uniquement dans SAP Sailing Boat Tracker 2. Cela peut provoquer des problèmes d''utilisation.
|
||||
invalidState=Statut non valide
|
||||
doYouReallyWantToRemoveDeviceConfiguration=Voulez-vous vraiment supprimer la configuration de l''appareil "{0}" ?
|
||||
errorFetchingSimulationData=Une erreur s''est produite lors de l''accès aux données de simulation : {0}
|
||||
errorFetchingSimulationData=Une erreur s''est produite lors de l''accès aux données de simulation : {0}. Assurez-vous que vous êtes bien connecté avec votre compte utilisateur.
|
||||
usernameAndPasswordMustBothBeSet=Le nom d''utilisateur et le mot de passe doivent tous les deux être renseignés ou vides.
|
||||
explainUserName=Nom d''utilisateur à utiliser pour l''authentification dans le système principal
|
||||
explainPassword=Mot de passe à utiliser pour l''authentification dans le système principal
|
||||
tracTracConnection=Connexion TracTrac
|
||||
addTracTracConnection=Ajouter connexion TracTrac
|
||||
editTracTracConnection=Modifier connexion TracTrac
|
||||
filterTracTracConnections=Filtrer connexions TracTrac
|
||||
creatorName=Nom de l''auteur
|
||||
swissTimingAchivedConnection=Connexion SwissTimingArchived
|
||||
addSwissTimingAchivedConnection=Ajouter connexion SwissTimingArchived
|
||||
editSwissTimingAchivedConnection=Modifier connexion SwissTimingArchived
|
||||
filterSwissTimingAchivedConnections=Filtrer connexions SwissTimingArchived
|
||||
editSwissTimingConnections=Modifier connexion SwissTiming
|
||||
swissTimingConnections=Connexion SwissTiming
|
||||
filterSwissTimingConnections=Filtrer connexions SwissTiming
|
||||
addSwissTimingConnection=Ajouter connexion SwissTiming
|
||||
updateURL=Mettre à jour URL
|
||||
@@ -2322,3 +2325,33 @@ orcPerformanceCurveLegTypeDescriptionWindwardLeewardRealLive="Windward/Leeward"
|
||||
errorWhileLoadingUserSettings=Erreur lors du chargement des options utilisateur : {0}
|
||||
certificates=Certificats
|
||||
dataBy=Données par
|
||||
currentPositionLatitudeTooltip=Latitude de la position en degrés (les valeurs positives indiquent l''hémisphère nord, les valeurs négatives indiquent l''hémisphère sud)
|
||||
currentPositionLongitudeTooltip=Longitude de la position en degrés (les valeurs positives indiquent l''est, les valeurs négatives indiquent l''ouest)
|
||||
courseCreation=Création de parcours
|
||||
filterMarkTemplateByName=Filtrer les modèles de marque
|
||||
markTemplates=Modèles de marque
|
||||
filterMarkPropertiesByName=Filtrer les propriétés de marque
|
||||
markProperties=Propriétés de marque
|
||||
filterCourseTemplateByName=Filtrer les modèles de parcours
|
||||
courseTemplates=Modèles de parcours
|
||||
markTemplate=Modèle de marque
|
||||
markRole1=Rôle de marque 1
|
||||
markRole2=Rôle de marque 2
|
||||
pleaseSelectAValidMarkTemplate=Veuillez sélectionner un modèle de marque valide.
|
||||
pleaseSelectAValidPassingInstruction=Veuillez sélectionner une instruction de passage valide.
|
||||
doYouReallyWantToRemoveCourseTemplate=Voulez-vous vraiment supprimer le modèle de parcours "{0}" ? Tous les parcours associés ne seront plus liés.
|
||||
couldNotRemoveCourseTemplate=Impossible de supprimer le modèle de parcours "{0}".
|
||||
doYouReallyWantToRemoveMarkProperties=Voulez-vous vraiment supprimer les propriétés de marque "{0}" ?
|
||||
couldNotRemoveMarkProperties=Impossible de supprimer les propriétés de marque "{0}".
|
||||
markRoles=Rôles de marque
|
||||
filterMarkRoles=Filtrer les rôles de marque
|
||||
wayPointRequiresPassingInstruction=Veuillez sélectionner une instruction de passage valide pour le point de cheminement.
|
||||
wayPointRequiresShortName=Veuillez saisir un nom court pour le point de cheminement.
|
||||
wayPointRequiresName=Veuillez saisir un nom pour le point de cheminement.
|
||||
wayPointMarkTemplatesAreTheSame=Les modèles de marque utilisés dans un point de cheminement ne peuvent pas être les mêmes.
|
||||
wayPointMarkInSequenceMissing=La marque utilisée dans la séquence n''existe pas dans le modèle de parcours.
|
||||
defaultNumberOfLaps=Nombre de tours par défaut
|
||||
invalidImageURL=URL de l''image non valide
|
||||
setDeviceIdentifier=Définir l''identificateur d''appareil
|
||||
setPosition=Définir la position
|
||||
spareMarksAndTheirOptionalDefaultMarkRoles=Marques de rechange et leur rôles de marque par défaut facultatifs
|
||||
+37
-4
@@ -438,6 +438,8 @@ pleaseEnterNonEmptyUrl=Inserire un URL.
|
||||
pleaseEnterNonEmptyUrlOrUploadImage=Inserire un URL o caricare un''immagine.
|
||||
addResultImportUrl=Aggiungi URL di importazione dei risultati
|
||||
errorAddingResultImportUrl=Errore nell’aggiunta degli URL di importazione dei risultati: {0}
|
||||
eventIdOrUrl=URL o ID evento
|
||||
doYouReallyWantToRemoveResultImportUrls=Eliminare gli URL di importazione dei risultati selezionati?
|
||||
remoteServerInstances=Istanze del server remoto
|
||||
localServer=Server locale
|
||||
errorRefreshingSailingServers=Errore nell’aggiornamento delle istanze SailingServer: {0}
|
||||
@@ -1435,6 +1437,7 @@ gotoDesktop=Vai a versione desktop
|
||||
goBack=Indietro
|
||||
showAllX=Mostra tutto {0}
|
||||
collapseX=Comprimi {0}
|
||||
|
||||
numberOfGPSFixes=Punti nave GPS
|
||||
fastestSailor=Più veloce
|
||||
highestSpeed=Velocità massima
|
||||
@@ -2241,18 +2244,18 @@ invalidSecret=Stringa segreta non valida
|
||||
warningSailInsightVersion=Il server è configurato per l''uso con SAP Sail Insight 1. Le regate aperte sono supportate solo in SAP Sail Insight 2. Ciò può causare problemi di utilizzo
|
||||
invalidState=Stato non valido
|
||||
doYouReallyWantToRemoveDeviceConfiguration=Confermare l''eliminazione della configurazione del dispositivo {0}?
|
||||
errorFetchingSimulationData=Si è verificato un errore nella raccolta dei dati di simulazione: {0}
|
||||
errorFetchingSimulationData=Si è verificato un errore nella raccolta dei dati di simulazione: {0}. Assicurarsi di avere eseguito l''accesso con il proprio account utente.
|
||||
usernameAndPasswordMustBothBeSet=Nome utente e password devono essere entrambi alimentati o vuoti
|
||||
explainUserName=Nome utente da utilizzare per l''autenticazione nell''anagrafica
|
||||
explainPassword=Password da utilizzare per l''autenticazione nell''anagrafica
|
||||
tracTracConnection=Connessione TracTrac
|
||||
addTracTracConnection=Aggiungi connessione TracTrac
|
||||
editTracTracConnection=Modifica connessione TracTrac
|
||||
filterTracTracConnections=Filtra connessioni TracTrac
|
||||
creatorName=Nome autore
|
||||
swissTimingAchivedConnection=Connessione SwissTimingArchived
|
||||
addSwissTimingAchivedConnection=Aggiungi connessione SwissTimingArchived
|
||||
editSwissTimingAchivedConnection=Modifica connessione SwissTimingArchived
|
||||
filterSwissTimingAchivedConnections=Filtra connessioni SwissTimingArchived
|
||||
editSwissTimingConnections=Modifica connessione SwissTiming
|
||||
swissTimingConnections=Connessione SwissTiming
|
||||
filterSwissTimingConnections=Filtra connessioni SwissTiming
|
||||
addSwissTimingConnection=Aggiungi connessione SwissTiming
|
||||
updateURL=Aggiorna URL
|
||||
@@ -2322,3 +2325,33 @@ orcPerformanceCurveLegTypeDescriptionWindwardLeewardRealLive=Distanza sopravento
|
||||
errorWhileLoadingUserSettings=Errore durante il caricamento delle impostazioni utente: {0}
|
||||
certificates=Certificati
|
||||
dataBy=Dati per
|
||||
currentPositionLatitudeTooltip=Latitudine della posizione in gradi (valori positivi indicano l''emisfero settentrionale, valori negativi indicano l''emisfero meridionale)
|
||||
currentPositionLongitudeTooltip=Longitudine della posizione in gradi (valori positivi indicano l''est, valori negativi indicano l''ovest)
|
||||
courseCreation=Creazione della rotta
|
||||
filterMarkTemplateByName=Filtra modelli di segnale
|
||||
markTemplates=Modelli di segnale
|
||||
filterMarkPropertiesByName=Filtra proprietà del segnale
|
||||
markProperties=Proprietà del segnale
|
||||
filterCourseTemplateByName=Filtra modelli di rotta
|
||||
courseTemplates=Modelli di rotta
|
||||
markTemplate=Modello di segnale
|
||||
markRole1=Ruolo segnale 1
|
||||
markRole2=Ruolo segnale 2
|
||||
pleaseSelectAValidMarkTemplate=Selezionare un modello di segnale valido
|
||||
pleaseSelectAValidPassingInstruction=Selezionare un''istruzione per il passaggio valida
|
||||
doYouReallyWantToRemoveCourseTemplate=Eliminare il modello di rotta "{0}"? I collegamenti a tutte le rotte associate verranno annullati.
|
||||
couldNotRemoveCourseTemplate=Impossibile eliminare il modello di rotta "{0}".
|
||||
doYouReallyWantToRemoveMarkProperties=Confermare l''eliminazione delle proprietà del segnale "{0}"?
|
||||
couldNotRemoveMarkProperties=Impossibile eliminare proprietà segnale "{0}".
|
||||
markRoles=Ruoli segnale
|
||||
filterMarkRoles=Filtra ruoli segnale
|
||||
wayPointRequiresPassingInstruction=Selezionare un''istruzione per il passaggio valida per il waypoint
|
||||
wayPointRequiresShortName=Inserire un nome breve per il waypoint
|
||||
wayPointRequiresName=Inserire un nome per il waypoint
|
||||
wayPointMarkTemplatesAreTheSame=I modelli di segnale utilizzati in un waypoint non possono essere gli stessi
|
||||
wayPointMarkInSequenceMissing=Il segnale utilizzato in Sequenza non esiste nel Modello di rotta
|
||||
defaultNumberOfLaps=# predefinito di giri
|
||||
invalidImageURL=URL immagine non valido
|
||||
setDeviceIdentifier=Imposta identificatore dispositivo
|
||||
setPosition=Imposta la posizione
|
||||
spareMarksAndTheirOptionalDefaultMarkRoles=Segnali di scorta e relativi ruoli segnale predefiniti opzionali
|
||||
+37
-4
@@ -438,6 +438,8 @@ pleaseEnterNonEmptyUrl=URL を入力してください。
|
||||
pleaseEnterNonEmptyUrlOrUploadImage=URL を入力するか、画像をアップロードしてください。
|
||||
addResultImportUrl=結果インポート URL の追加
|
||||
errorAddingResultImportUrl=結果インポート URL を追加しようとしてエラーが発生: {0}
|
||||
eventIdOrUrl=イベント ID または URL
|
||||
doYouReallyWantToRemoveResultImportUrls=選択した結果インポート URL を削除しますか
|
||||
remoteServerInstances=リモートサーバインスタンス
|
||||
localServer=ローカルサーバ
|
||||
errorRefreshingSailingServers=SailingServer インスタンスをリフレッシュしようとしてエラーが発生: {0}
|
||||
@@ -1435,6 +1437,7 @@ gotoDesktop=デスクトップバージョンにジャンプ
|
||||
goBack=戻る
|
||||
showAllX=全 {0} を表示
|
||||
collapseX={0} を圧縮
|
||||
|
||||
numberOfGPSFixes=GPS フィックス
|
||||
fastestSailor=最速
|
||||
highestSpeed=最高速度
|
||||
@@ -2241,18 +2244,18 @@ invalidSecret=無効なシークレット
|
||||
warningSailInsightVersion=このサーバは SAP Sail Insight 1 で使用するために設定されています。オープンレガッタは SAP Sail Insight 2 でのみサポートされています。これにより使用に問題が生じる可能性があります
|
||||
invalidState=無効なステータス
|
||||
doYouReallyWantToRemoveDeviceConfiguration=デバイス設定 {0} を削除しますか
|
||||
errorFetchingSimulationData=シミュレーションデータのフェッチ時にエラーが発生しました: {0}
|
||||
errorFetchingSimulationData=シミュレーションデータのフェッチ時にエラーが発生しました: {0}。自分のユーザアカウントでサインインしているか確認してください。
|
||||
usernameAndPasswordMustBothBeSet=ユーザ名とパスワードは両方とも入力するか、両方とも空である必要があります
|
||||
explainUserName=マスタ上で認証のために使用するユーザ名
|
||||
explainPassword=マスタ上で認証のために使用するパスワード
|
||||
tracTracConnection=TracTrac 接続
|
||||
addTracTracConnection=TracTrac 接続の追加
|
||||
editTracTracConnection=TracTrac 接続の編集
|
||||
filterTracTracConnections=TracTrac 接続のフィルタリング
|
||||
creatorName=作成者名
|
||||
swissTimingAchivedConnection=SwissTimingArchived 接続
|
||||
addSwissTimingAchivedConnection=SwissTimingArchived 接続の追加
|
||||
editSwissTimingAchivedConnection=SwissTimingArchived 接続の編集
|
||||
filterSwissTimingAchivedConnections=SwissTimingArchived 接続のフィルタリング
|
||||
editSwissTimingConnections=SwissTiming 接続の編集
|
||||
swissTimingConnections=SwissTiming 接続
|
||||
filterSwissTimingConnections=SwissTiming 接続のフィルタリング
|
||||
addSwissTimingConnection=SwissTiming 接続の追加
|
||||
updateURL=URL 更新
|
||||
@@ -2322,3 +2325,33 @@ orcPerformanceCurveLegTypeDescriptionWindwardLeewardRealLive=Windward/Leeward (
|
||||
errorWhileLoadingUserSettings=ユーザ設定のロード中にエラーが発生: {0}
|
||||
certificates=証明書
|
||||
dataBy=データ提供
|
||||
currentPositionLatitudeTooltip=位置の緯度 (度単位: プラスの値は北緯を、マイナスの値は南緯を意味)
|
||||
currentPositionLongitudeTooltip=位置の経度 (度単位: プラスの値は東経、マイナスの値は西経を意味)
|
||||
courseCreation=コース作成
|
||||
filterMarkTemplateByName=マークテンプレートのフィルタリング
|
||||
markTemplates=マークテンプレート
|
||||
filterMarkPropertiesByName=マークプロパティのフィルタリング
|
||||
markProperties=マークプロパティ
|
||||
filterCourseTemplateByName=コーステンプレートのフィルタリング
|
||||
courseTemplates=コーステンプレート
|
||||
markTemplate=マークテンプレート
|
||||
markRole1=マークロール 1
|
||||
markRole2=マークロール 2
|
||||
pleaseSelectAValidMarkTemplate=有効なマークテンプレートを選択してください
|
||||
pleaseSelectAValidPassingInstruction=有効な通過指示を選択してください
|
||||
doYouReallyWantToRemoveCourseTemplate=コーステンプレート "{0}" を削除しますか。関連付けられているコースはすべてリンク解除されます。
|
||||
couldNotRemoveCourseTemplate=コーステンプレート "{0}" を削除できませんでした。
|
||||
doYouReallyWantToRemoveMarkProperties=マークプロパティ "{0}" を削除しますか。
|
||||
couldNotRemoveMarkProperties=マークプロパティ "{0}" を削除できませんでした。
|
||||
markRoles=マークロール
|
||||
filterMarkRoles=マークロールのフィルタリング
|
||||
wayPointRequiresPassingInstruction=変針点の有効な通過指示を選択してください
|
||||
wayPointRequiresShortName=変針点の名前 (短) を入力してください
|
||||
wayPointRequiresName=変針点の名前を入力してください
|
||||
wayPointMarkTemplatesAreTheSame=変針点で使用するマークテンプレートは同じにはできません
|
||||
wayPointMarkInSequenceMissing=順序で使用するマークがコーステンプレートに存在していません
|
||||
defaultNumberOfLaps=デフォルトのラップ数
|
||||
invalidImageURL=画像 URL が無効です
|
||||
setDeviceIdentifier=デバイス ID を設定してください
|
||||
setPosition=位置を設定してください
|
||||
spareMarksAndTheirOptionalDefaultMarkRoles=予備のマークとそのオプションのデフォルトマークロール
|
||||
+37
-4
@@ -438,6 +438,8 @@ pleaseEnterNonEmptyUrl=Insira um URL.
|
||||
pleaseEnterNonEmptyUrlOrUploadImage=Insira um URL ou carregue uma imagem.
|
||||
addResultImportUrl=Adicionar URL de importação de resultado
|
||||
errorAddingResultImportUrl=Erro ao adicionar URL de importação de resultado: {0}
|
||||
eventIdOrUrl=ID de evento ou URL
|
||||
doYouReallyWantToRemoveResultImportUrls=Remover os URLs de importação de resultados selecionados?
|
||||
remoteServerInstances=Instâncias do servidor remoto
|
||||
localServer=Servidor local
|
||||
errorRefreshingSailingServers=Erro ao atualizar instâncias de SailingServer: {0}
|
||||
@@ -1435,6 +1437,7 @@ gotoDesktop=Ir para versão desktop
|
||||
goBack=Voltar
|
||||
showAllX=Visualizar todos os {0}
|
||||
collapseX=Comprimir {0}
|
||||
|
||||
numberOfGPSFixes=Pontos fixos de GPS
|
||||
fastestSailor=O mais rápido
|
||||
highestSpeed=Velocidade mais alta
|
||||
@@ -2241,18 +2244,18 @@ invalidSecret=Chave secreta inválida
|
||||
warningSailInsightVersion=O servidor está configurado para utilização com o SAP Sail Insight 1. As regatas abertas só são suportadas no SAP Sail Insight 2. Isto pode causar problemas na utilização
|
||||
invalidState=Status inválido
|
||||
doYouReallyWantToRemoveDeviceConfiguration=Você quer realmente remover a configuração do dispositivo {0}?
|
||||
errorFetchingSimulationData=Ocorreu um erro ao chamar dados de simulação: {0}
|
||||
errorFetchingSimulationData=Ocorreu um erro ao chamar dados de simulação: {0}. Assegure que está conectado com sua conta de usuário.
|
||||
usernameAndPasswordMustBothBeSet=Nome de utilizador e senha devem estar ambos preenchidos ou vazios
|
||||
explainUserName=Nome de usuário para utilizar para autenticação no mestre
|
||||
explainPassword=Senha para utilizar para autenticação no mestre
|
||||
tracTracConnection=Conexão TracTrac
|
||||
addTracTracConnection=Adicionar conexão TracTrac
|
||||
editTracTracConnection=Processar conexão TracTrac
|
||||
filterTracTracConnections=Filtrar conexões TracTrac
|
||||
creatorName=Nome do autor
|
||||
swissTimingAchivedConnection=Conexão SwissTimingArchived
|
||||
addSwissTimingAchivedConnection=Adicionar conexão SwissTimingArchived
|
||||
editSwissTimingAchivedConnection=Processar conexão SwissTimingArchived
|
||||
filterSwissTimingAchivedConnections=Filtrar conexões SwissTimingArchived
|
||||
editSwissTimingConnections=Processar conexão SwissTiming
|
||||
swissTimingConnections=Conexão SwissTiming
|
||||
filterSwissTimingConnections=Filtrar conexões SwissTiming
|
||||
addSwissTimingConnection=Adicionar conexão SwissTiming
|
||||
updateURL=Atualizar URL
|
||||
@@ -2322,3 +2325,33 @@ orcPerformanceCurveLegTypeDescriptionWindwardLeewardRealLive=Barlavento/sotavent
|
||||
errorWhileLoadingUserSettings=Erro ao carregar configurações do usuário: {0}
|
||||
certificates=Certificados
|
||||
dataBy=Dados por
|
||||
currentPositionLatitudeTooltip=Latitude de posição em graus (valores positivos designam o hemisfério norte, valores negativos designam o hemisfério sul)
|
||||
currentPositionLongitudeTooltip=Longitude de posição em graus (valores positivos designam este, valores negativos designam oeste)
|
||||
courseCreation=Criação de percurso
|
||||
filterMarkTemplateByName=Filtrar modelos de marca
|
||||
markTemplates=Modelos de marca
|
||||
filterMarkPropertiesByName=Filtrar propriedades de marca
|
||||
markProperties=Propriedades de marca
|
||||
filterCourseTemplateByName=Filtrar modelos de percurso
|
||||
courseTemplates=Modelos de percurso
|
||||
markTemplate=Modelo de marca
|
||||
markRole1=Função de marca 1
|
||||
markRole2=Função de marca 2
|
||||
pleaseSelectAValidMarkTemplate=Selecione um modelo de marca válido
|
||||
pleaseSelectAValidPassingInstruction=Selecione uma instrução de passagem válida
|
||||
doYouReallyWantToRemoveCourseTemplate=Você quer realmente remover modelo de percurso"{0}"? Todos os percursos associados serão desvinculados.
|
||||
couldNotRemoveCourseTemplate=Não foi possível remover modelo de percurso "{0}".
|
||||
doYouReallyWantToRemoveMarkProperties=Você quer realmente remover as propriedades da marca "{0}"?
|
||||
couldNotRemoveMarkProperties=Não foi possível remover as propriedades da marca "{0}".
|
||||
markRoles=Funções de marca
|
||||
filterMarkRoles=Filtrar funções de marca
|
||||
wayPointRequiresPassingInstruction=Selecione uma instrução de passagem válida para o waypoint
|
||||
wayPointRequiresShortName=Insira um nome curto para o waypoint
|
||||
wayPointRequiresName=Insira o nome para o waypoint
|
||||
wayPointMarkTemplatesAreTheSame=Os modelos de marca utilizados em um waypoint não podem ser iguais
|
||||
wayPointMarkInSequenceMissing=A marca utilizada na sequência não existe no modelo do percurso
|
||||
defaultNumberOfLaps=Nº padrão de voltas
|
||||
invalidImageURL=O URL da imagem é inválido
|
||||
setDeviceIdentifier=Definir identificador de dispositivo
|
||||
setPosition=Definir posição
|
||||
spareMarksAndTheirOptionalDefaultMarkRoles=Marcas sobressalentes e suas funções de marca padrão opcionais
|
||||
+38
-5
@@ -438,6 +438,8 @@ pleaseEnterNonEmptyUrl=Введите URL-адрес.
|
||||
pleaseEnterNonEmptyUrlOrUploadImage=Введите URL-адрес или загрузите изображение.
|
||||
addResultImportUrl=Добавьте URL-адрес импорта результатов
|
||||
errorAddingResultImportUrl=Ошибка при добавлении URL-адресов импорта результатов: {0}
|
||||
eventIdOrUrl=Ид. события или URL
|
||||
doYouReallyWantToRemoveResultImportUrls=Действительно удалить выбранные URL-адреса импорта результатов?
|
||||
remoteServerInstances=Удаленные экземпляры сервера
|
||||
localServer=Локальный сервер
|
||||
errorRefreshingSailingServers=Ошибка при обновлении экземпляров SailingServer: {0}
|
||||
@@ -666,7 +668,7 @@ timePointMustBeAfterStartOfTracking=Отметка времени должна
|
||||
timePointMustBeBeforeEndOfTracking=Отметка времени должна быть раньше окончания отслеживания.
|
||||
regattaUsedForTheTrackedRace=Регата, используемая для отслеживаемой гонки
|
||||
tracTracUpdateUrl=URI обновления сервера TracTrac
|
||||
passingInstructions=Передача инструкций
|
||||
passingInstructions=Инструкции по прохождению
|
||||
refreshNow=Обновить сейчас
|
||||
stopUpdating=Прекратить обновление
|
||||
startUpdating=Начать обновление
|
||||
@@ -1435,6 +1437,7 @@ gotoDesktop=Перейти на версию для рабочего стола
|
||||
goBack=Назад
|
||||
showAllX=Показать все {0}
|
||||
collapseX=Свернуть {0}
|
||||
|
||||
numberOfGPSFixes=Замеры GPS
|
||||
fastestSailor=Самый быстрый
|
||||
highestSpeed=Наивысшая скорость
|
||||
@@ -2241,18 +2244,18 @@ invalidSecret=Недействительный секрет
|
||||
warningSailInsightVersion=Сервер сконфигурирован для использования с SAP Sail Insight 1. Открытые регаты поддерживаются только в SAP Sail Insight 2. Это может стать причиной проблем при использовании
|
||||
invalidState=Недействительный статус
|
||||
doYouReallyWantToRemoveDeviceConfiguration=Действительно удалить конфигурацию устройства {0}?
|
||||
errorFetchingSimulationData=Произошла ошибка при вызове данных моделирования: {0}
|
||||
errorFetchingSimulationData=Произошла ошибка при вызове данных моделирования: {0}. Убедитесь, что вход выполнен с вашей учетной записью.
|
||||
usernameAndPasswordMustBothBeSet=Имя пользователя и пароль должны быть либо заполненными, либо пустыми
|
||||
explainUserName=Имя пользователя для аутентификации на главном сервере
|
||||
explainPassword=Пароль для аутентификации на главном сервере
|
||||
tracTracConnection=Соединение TracTrac
|
||||
addTracTracConnection=Добавить соединение TracTrac
|
||||
editTracTracConnection=Редактировать соединение TracTrac
|
||||
filterTracTracConnections=Фильтр соединений TracTrac
|
||||
creatorName=Имя автора
|
||||
swissTimingAchivedConnection=Соединение SwissTimingArchived
|
||||
addSwissTimingAchivedConnection=Добавить соединение SwissTimingArchived
|
||||
editSwissTimingAchivedConnection=Редактировать соединение SwissTimingArchived
|
||||
filterSwissTimingAchivedConnections=Фильтр соединений SwissTimingArchived
|
||||
editSwissTimingConnections=Редактировать соединение SwissTiming
|
||||
swissTimingConnections=Соединение SwissTiming
|
||||
filterSwissTimingConnections=Фильтр соединений SwissTiming
|
||||
addSwissTimingConnection=Добавить соединение SwissTiming
|
||||
updateURL=Обновить URL
|
||||
@@ -2322,3 +2325,33 @@ orcPerformanceCurveLegTypeDescriptionWindwardLeewardRealLive=На ветре/п
|
||||
errorWhileLoadingUserSettings=Ошибка при загрузке пользовательских настроек: {0}
|
||||
certificates=Сертификаты
|
||||
dataBy=Данные по
|
||||
currentPositionLatitudeTooltip=Широта позиции в градусах (положительные значения — северное полушарие, отрицательные значения — южное полушарие)
|
||||
currentPositionLongitudeTooltip=Долгота позиции в градусах (положительные значения — восток, отрицательные значения — запад)
|
||||
courseCreation=Создание курса
|
||||
filterMarkTemplateByName=Фильтровать шаблоны знаков
|
||||
markTemplates=Шаблоны знаков
|
||||
filterMarkPropertiesByName=Фильтровать свойства знаков
|
||||
markProperties=Свойства знаков
|
||||
filterCourseTemplateByName=Фильтровать шаблоны курсов
|
||||
courseTemplates=Шаблоны курсов
|
||||
markTemplate=Шаблон знака
|
||||
markRole1=Роль знака 1
|
||||
markRole2=Роль знака 2
|
||||
pleaseSelectAValidMarkTemplate=Выберите допустимый шаблон знака
|
||||
pleaseSelectAValidPassingInstruction=Выберите допустимую инструкцию по прохождению
|
||||
doYouReallyWantToRemoveCourseTemplate=Действительно удалить шаблон курса "{0}"? Все связанные курсы будут отвязаны.
|
||||
couldNotRemoveCourseTemplate=Не удалось удалить шаблон курс "{0}".
|
||||
doYouReallyWantToRemoveMarkProperties=Действительно удалить свойства знака "{0}"?
|
||||
couldNotRemoveMarkProperties=Не удалось удалить свойства знака "{0}".
|
||||
markRoles=Роли знаков
|
||||
filterMarkRoles=Фильтровать роли знаков
|
||||
wayPointRequiresPassingInstruction=Выберите допустимую инструкцию по прохождению для путевой точки
|
||||
wayPointRequiresShortName=Введите краткое имя для путевой точки
|
||||
wayPointRequiresName=Введите имя для путевой точки
|
||||
wayPointMarkTemplatesAreTheSame=Шаблоны знаков, используемые в путевой точке, не могут быть одинаковыми
|
||||
wayPointMarkInSequenceMissing=Знак, используемый в последовательности, не существует в шаблоне курса
|
||||
defaultNumberOfLaps=Число кругов по умолчанию
|
||||
invalidImageURL=URL изображения недействителен
|
||||
setDeviceIdentifier=Установить идентификатор устройства
|
||||
setPosition=Установить позицию
|
||||
spareMarksAndTheirOptionalDefaultMarkRoles=Запасные знаки и их роли по умолчанию (необязательно)
|
||||
+37
-4
@@ -438,6 +438,8 @@ pleaseEnterNonEmptyUrl=请输入 URL。
|
||||
pleaseEnterNonEmptyUrlOrUploadImage=请输入 URL 或上传图像。
|
||||
addResultImportUrl=添加结果导入 URL
|
||||
errorAddingResultImportUrl=添加结果导入 URL 出错: {0}
|
||||
eventIdOrUrl=活动编号或 URL
|
||||
doYouReallyWantToRemoveResultImportUrls=是否确定移除所选结果导入 URL?
|
||||
remoteServerInstances=远程服务器实例
|
||||
localServer=本地服务器
|
||||
errorRefreshingSailingServers=刷新 SailingServer 实例出错: {0}
|
||||
@@ -1435,6 +1437,7 @@ gotoDesktop=进入桌面版
|
||||
goBack=返回
|
||||
showAllX=显示所有{0}
|
||||
collapseX=折叠{0}
|
||||
|
||||
numberOfGPSFixes=GPS 修复
|
||||
fastestSailor=最快
|
||||
highestSpeed=最高速度
|
||||
@@ -2241,18 +2244,18 @@ invalidSecret=密钥无效
|
||||
warningSailInsightVersion=此服务器配置为与 SAP Sail Insight 一起使用 1. 仅 SAP Sail Insight 中支持公开赛 2. 这可能会导致使用中出现问题
|
||||
invalidState=状态无效
|
||||
doYouReallyWantToRemoveDeviceConfiguration=是否确定移除设备配置{0}?
|
||||
errorFetchingSimulationData=获取模拟数据时发生错误:{0}
|
||||
errorFetchingSimulationData=获取模拟数据时发生错误:{0}。请确保您已经登录您的用户账户。
|
||||
usernameAndPasswordMustBothBeSet=用户名和密码必须填写或为空
|
||||
explainUserName=用于在主服务器上进行身份验证的用户名
|
||||
explainPassword=用于在主服务器上进行身份验证的密码
|
||||
tracTracConnection=TracTrac 连接
|
||||
addTracTracConnection=添加 TracTrac 连接
|
||||
editTracTracConnection=编辑 TracTrac 连接
|
||||
filterTracTracConnections=筛选 TracTrac 连接
|
||||
creatorName=创建者名称
|
||||
swissTimingAchivedConnection=SwissTimingArchived 连接
|
||||
addSwissTimingAchivedConnection=添加 SwissTimingArchived 连接
|
||||
editSwissTimingAchivedConnection=编辑 SwissTimingArchived 连接
|
||||
filterSwissTimingAchivedConnections=筛选 SwissTimingArchived 连接
|
||||
editSwissTimingConnections=编辑 SwissTiming 连接
|
||||
swissTimingConnections=SwissTiming 连接
|
||||
filterSwissTimingConnections=筛选 SwissTiming 连接
|
||||
addSwissTimingConnection=添加 SwissTiming 连接
|
||||
updateURL=更新 URL
|
||||
@@ -2322,3 +2325,33 @@ orcPerformanceCurveLegTypeDescriptionWindwardLeewardRealLive=上风/下风(向
|
||||
errorWhileLoadingUserSettings=加载用户设置时发生错误:{0}
|
||||
certificates=证书
|
||||
dataBy=数据排序方式
|
||||
currentPositionLatitudeTooltip=位置的纬度(正值表示北半球,负值表示南半球)
|
||||
currentPositionLongitudeTooltip=位置的经度(正值表示东,负值表示西)
|
||||
courseCreation=场地创建
|
||||
filterMarkTemplateByName=筛选标志模板
|
||||
markTemplates=标志模板
|
||||
filterMarkPropertiesByName=筛选标志属性
|
||||
markProperties=标志属性
|
||||
filterCourseTemplateByName=筛选场地模板
|
||||
courseTemplates=场地模板
|
||||
markTemplate=标志模板
|
||||
markRole1=标志角色 1
|
||||
markRole2=标志角色 2
|
||||
pleaseSelectAValidMarkTemplate=请选择有效的标志模板
|
||||
pleaseSelectAValidPassingInstruction=请选择有效的通过指示
|
||||
doYouReallyWantToRemoveCourseTemplate=是否确定移除场地模板“{0}”?所有关联的场地都将被取消链接。
|
||||
couldNotRemoveCourseTemplate=无法移除场地模板“{0}”。
|
||||
doYouReallyWantToRemoveMarkProperties=是否确定移除标志属性“{0}”?
|
||||
couldNotRemoveMarkProperties=无法移除标志属性“{0}”。
|
||||
markRoles=标志角色
|
||||
filterMarkRoles=筛选标志角色
|
||||
wayPointRequiresPassingInstruction=请选择有效的航路点通过指示
|
||||
wayPointRequiresShortName=请输入航路点的短名称
|
||||
wayPointRequiresName=请输入航路点的名称
|
||||
wayPointMarkTemplatesAreTheSame=航路点中使用的标志模板不得相同
|
||||
wayPointMarkInSequenceMissing=序列中使用的标志在场地模板中不存在
|
||||
defaultNumberOfLaps=间隔的默认编号
|
||||
invalidImageURL=图像 URL 无效
|
||||
setDeviceIdentifier=设置设备标识符
|
||||
setPosition=设置位置
|
||||
spareMarksAndTheirOptionalDefaultMarkRoles=备用标志及其可选默认标志角色
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
.maneuverPanel {
|
||||
margin-top: 1em;
|
||||
margin-right: 3em;
|
||||
padding-top: 1em;
|
||||
padding-right: 3em;
|
||||
overflow: auto;
|
||||
}
|
||||
.contentContainer {
|
||||
|
||||
+12
-15
@@ -145,14 +145,14 @@ public class TouchSplitLayoutPanel extends DockLayoutPanel {
|
||||
LayoutData layout = (LayoutData) associatedSplitter.target.getLayoutData();
|
||||
if (layout.size == 0) {
|
||||
// Restore the old size.
|
||||
associatedSplitter.setAssociatedWidgetSize(layout.oldSize, /* defer */true);
|
||||
associatedSplitter.setAssociatedWidgetSize(layout.oldSize, /* forceLayout */true);
|
||||
} else {
|
||||
/*
|
||||
* Collapse to size 0. We change the size instead of hiding the widget because hiding the
|
||||
* widget can cause issues if the widget contains a flash component.
|
||||
*/
|
||||
layout.oldSize = layout.size;
|
||||
associatedSplitter.setAssociatedWidgetSize(0, /* defer */true);
|
||||
associatedSplitter.setAssociatedWidgetSize(0, /* forceLayout */true);
|
||||
}
|
||||
}
|
||||
associatedSplitter.lastClick = now;
|
||||
@@ -175,7 +175,7 @@ public class TouchSplitLayoutPanel extends DockLayoutPanel {
|
||||
- associatedSplitter.offset;
|
||||
}
|
||||
((LayoutData) associatedSplitter.target.getLayoutData()).hidden = false;
|
||||
associatedSplitter.setAssociatedWidgetSize(size, /* defer */true);
|
||||
associatedSplitter.setAssociatedWidgetSize(size, /* forceLayout */true);
|
||||
event.preventDefault();
|
||||
}
|
||||
break;
|
||||
@@ -294,7 +294,7 @@ public class TouchSplitLayoutPanel extends DockLayoutPanel {
|
||||
|
||||
// Try resetting the associated widget's size, which will enforce the new
|
||||
// minSize value.
|
||||
setAssociatedWidgetSize((int) layout.size, /* defer */true);
|
||||
setAssociatedWidgetSize((int) layout.size, /* forceLayout */true);
|
||||
}
|
||||
|
||||
public void setSnapClosedSize(int snapClosedSize) {
|
||||
@@ -327,10 +327,10 @@ public class TouchSplitLayoutPanel extends DockLayoutPanel {
|
||||
* Sets the size of the associated {@link Widget} thus moving it down, up, left or right
|
||||
* depending of the position. Informs the {@link DockLayoutPanel} about the change.
|
||||
*
|
||||
* @param defer if set to true then the layout change will be deferred until the browser
|
||||
* @param forceLayout if set to true then the layout change will be deferred until the browser
|
||||
* event loop returns.
|
||||
*/
|
||||
private void setAssociatedWidgetSize(double size, boolean defer) {
|
||||
private void setAssociatedWidgetSize(double size, boolean forceLayout) {
|
||||
double maxSize = getMaxSize();
|
||||
if (size > maxSize) {
|
||||
size = maxSize;
|
||||
@@ -353,7 +353,7 @@ public class TouchSplitLayoutPanel extends DockLayoutPanel {
|
||||
|
||||
// Defer actually updating the layout, so that if we receive many
|
||||
// mouse events before layout/paint occurs, we'll only update once.
|
||||
if (layoutCommand == null && defer) {
|
||||
if (layoutCommand == null && forceLayout) {
|
||||
layoutCommand = new ScheduledCommand() {
|
||||
@Override
|
||||
public void execute() {
|
||||
@@ -362,9 +362,6 @@ public class TouchSplitLayoutPanel extends DockLayoutPanel {
|
||||
}
|
||||
};
|
||||
Scheduler.get().scheduleDeferred(layoutCommand);
|
||||
} else {
|
||||
// force layout on DockPanel
|
||||
forceLayout();
|
||||
}
|
||||
if (getAssociatedComponent() instanceof RequiresResize) {
|
||||
Scheduler.get().scheduleFinally(new ScheduledCommand() {
|
||||
@@ -378,7 +375,7 @@ public class TouchSplitLayoutPanel extends DockLayoutPanel {
|
||||
|
||||
@Override
|
||||
public void onResize() {
|
||||
setAssociatedWidgetSize(getTargetSize(), /* defer */ false);
|
||||
setAssociatedWidgetSize(getTargetSize(), /* forceLayout */ false);
|
||||
}
|
||||
|
||||
protected abstract int getAbsolutePosition();
|
||||
@@ -860,7 +857,7 @@ public class TouchSplitLayoutPanel extends DockLayoutPanel {
|
||||
associatedComponentToWidget.setVisible(false);
|
||||
}
|
||||
}
|
||||
splitter.setAssociatedWidgetSize(0, /* defer */false);
|
||||
splitter.setAssociatedWidgetSize(0, /* forceLayout */false);
|
||||
|
||||
// need to ensure visibility of dragger, do NOT use setVisible() as south/north splitter should be shown always
|
||||
splitter.setDraggerVisible(!hidden);
|
||||
@@ -875,10 +872,10 @@ public class TouchSplitLayoutPanel extends DockLayoutPanel {
|
||||
//it is not yet sized
|
||||
if(layoutData.oldSize > 0) {
|
||||
//and we have a stored old size it had before minimizing it
|
||||
splitter.setAssociatedWidgetSize(layoutData.oldSize, /* defer */false);
|
||||
splitter.setAssociatedWidgetSize(layoutData.oldSize, /* forceLayout */false);
|
||||
} else {
|
||||
//and we do not have any size yet, so use the default size
|
||||
splitter.setAssociatedWidgetSize(initialSize, /* defer */false);
|
||||
splitter.setAssociatedWidgetSize(initialSize, /* forceLayout */false);
|
||||
}
|
||||
}
|
||||
splitter.setDraggerVisible(!hidden);
|
||||
@@ -902,7 +899,7 @@ public class TouchSplitLayoutPanel extends DockLayoutPanel {
|
||||
final Splitter splitter = getAssociatedSplitter(widget);
|
||||
if (splitter != null) {
|
||||
if (widget.isVisible()) {
|
||||
splitter.setAssociatedWidgetSize(size, /* defer */false);
|
||||
splitter.setAssociatedWidgetSize(size, /* forceLayout */false);
|
||||
} else {
|
||||
((LayoutData) widget.getLayoutData()).oldSize = size;
|
||||
}
|
||||
|
||||
+3
-1
@@ -196,7 +196,9 @@ public class TaggingPanel extends ComponentWithoutSettings
|
||||
@Override
|
||||
public void onResize() {
|
||||
super.onResize();
|
||||
taggingPanel.setWidgetSize(footerPanel, calculateFooterPanelHeight());
|
||||
if (currentState != State.VIEW) {
|
||||
taggingPanel.setWidgetSize(footerPanel, calculateFooterPanelHeight());
|
||||
}
|
||||
}
|
||||
};
|
||||
filterbarAndContentPanel = new HeaderPanel();
|
||||
|
||||
+9
-9
@@ -5215,7 +5215,7 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
|
||||
@Override
|
||||
public ServerConfigurationDTO getServerConfiguration() {
|
||||
SailingServerConfiguration sailingServerConfiguration = getService().getSailingServerConfiguration();
|
||||
UserGroup serverTenant = getSecurityService().getDefaultTenant();
|
||||
UserGroup serverTenant = getSecurityService().getServerGroup();
|
||||
StrippedUserGroupDTO serverTenantDTO = new SecurityDTOFactory()
|
||||
.createStrippedUserGroupDTOFromUserGroup(serverTenant, new HashMap<>());
|
||||
ServerConfigurationDTO result = new ServerConfigurationDTO(sailingServerConfiguration.isStandaloneServer(),
|
||||
@@ -5244,19 +5244,19 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
|
||||
if (serverConfiguration.isPublic() != null) {
|
||||
final RoleDefinition viewerRole = getSecurityService()
|
||||
.getRoleDefinition(SailingViewerRole.getInstance().getId());
|
||||
final UserGroup defaultServerTenant = getSecurityService().getDefaultTenant();
|
||||
if (viewerRole != null && defaultServerTenant != null) {
|
||||
final boolean isCurrentlyPublic = Boolean.TRUE.equals(defaultServerTenant.getRoleAssociation(viewerRole));
|
||||
final UserGroup serverGroup = getSecurityService().getServerGroup();
|
||||
if (viewerRole != null && serverGroup != null) {
|
||||
final boolean isCurrentlyPublic = Boolean.TRUE.equals(serverGroup.getRoleAssociation(viewerRole));
|
||||
final boolean shouldBePublic = serverConfiguration.isPublic();
|
||||
if (isCurrentlyPublic != shouldBePublic) {
|
||||
// value changed
|
||||
if (getSecurityService().hasCurrentUserUpdatePermission(defaultServerTenant)
|
||||
if (getSecurityService().hasCurrentUserUpdatePermission(serverGroup)
|
||||
&& getSecurityService().hasCurrentUserMetaPermissionsOfRoleDefinitionWithQualification(
|
||||
viewerRole, new Ownership(null, defaultServerTenant))) {
|
||||
viewerRole, new Ownership(null, serverGroup))) {
|
||||
if (serverConfiguration.isPublic()) {
|
||||
getSecurityService().putRoleDefinitionToUserGroup(defaultServerTenant, viewerRole, true);
|
||||
getSecurityService().putRoleDefinitionToUserGroup(serverGroup, viewerRole, true);
|
||||
} else {
|
||||
getSecurityService().removeRoleDefintionFromUserGroup(defaultServerTenant, viewerRole);
|
||||
getSecurityService().removeRoleDefintionFromUserGroup(serverGroup, viewerRole);
|
||||
}
|
||||
} else {
|
||||
throw new AuthorizationException("No permission to make the server public");
|
||||
@@ -9317,7 +9317,7 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
|
||||
final Boolean result;
|
||||
final RoleDefinition viewerRole = getSecurityService()
|
||||
.getRoleDefinition(SailingViewerRole.getInstance().getId());
|
||||
final UserGroup defaultServerTenant = getSecurityService().getDefaultTenant();
|
||||
final UserGroup defaultServerTenant = getSecurityService().getServerGroup();
|
||||
if (viewerRole != null && defaultServerTenant != null) {
|
||||
result = defaultServerTenant.getRoleAssociation(viewerRole);
|
||||
} else {
|
||||
|
||||
+2
@@ -10,3 +10,5 @@ raceLogNotFound=No existe el registro de carrera
|
||||
tagNotRevokable=Esta etiqueta no se puede revocar
|
||||
tagAlreadyExists=Ya existe la etiqueta, no se permiten etiquetas duplicadas
|
||||
invalidParameters=Uno de los parámetros indicados no tiene un valor válido
|
||||
pleaseEnterNonEmptyUrl=Introduzca un URL no vacío
|
||||
scoreCorrectionProviderNotFound=No existe proveedor de corrección de puntuación
|
||||
+2
@@ -10,3 +10,5 @@ raceLogNotFound=Journal de la course introuvable
|
||||
tagNotRevokable=Cette balise ne peut pas être annulée.
|
||||
tagAlreadyExists=La balise existe déjà. Les balises en double ne sont pas autorisées.
|
||||
invalidParameters=L''un des paramètres donnés a une valeur non valide.
|
||||
pleaseEnterNonEmptyUrl=Veuillez saisir une URL non vide.
|
||||
scoreCorrectionProviderNotFound=Fournisseur de correction des scores introuvable
|
||||
+2
@@ -10,3 +10,5 @@ raceLogNotFound=Registro di gara non trovato.
|
||||
tagNotRevokable=Impossibile revocare questo tag.
|
||||
tagAlreadyExists=Tag già esistente; tag doppi non ammessi.
|
||||
invalidParameters=Uno dei parametri indicati non ha un valore valido.
|
||||
pleaseEnterNonEmptyUrl=Inserire un URL non vuoto
|
||||
scoreCorrectionProviderNotFound=Provider di correzione dei punteggi non trovato
|
||||
+2
@@ -10,3 +10,5 @@ raceLogNotFound=レースログが見つかりません
|
||||
tagNotRevokable=このタグは取消ができません
|
||||
tagAlreadyExists=タグがすでに存在しています。タグの重複は許されていません
|
||||
invalidParameters=指定されたパラメータの 1 つに有効な値がありません
|
||||
pleaseEnterNonEmptyUrl=空でない URL を入力してください
|
||||
scoreCorrectionProviderNotFound=得点修正の提供者が見つかりません
|
||||
+2
@@ -10,3 +10,5 @@ raceLogNotFound=RaceLog não encontrado.
|
||||
tagNotRevokable=Esta etiqueta não pode ser anulada.
|
||||
tagAlreadyExists=A etiqueta já existe, não são permitidas etiquetas duplicadas.
|
||||
invalidParameters=Um dos parâmetros indicados não tem um valor válido.
|
||||
pleaseEnterNonEmptyUrl=Insira um URL que não esteja vazio
|
||||
scoreCorrectionProviderNotFound=Fornecedor de correção de pontuação não encontrado
|
||||
+2
@@ -10,3 +10,5 @@ raceLogNotFound=Журнал гонки не найден!
|
||||
tagNotRevokable=Этот тег невозможно отозвать!
|
||||
tagAlreadyExists=Тег уже существует, дубликаты тегов не разрешены!
|
||||
invalidParameters=Один из указанных параметров не имеет действительного значения!
|
||||
pleaseEnterNonEmptyUrl=Введите непустой URL-адрес
|
||||
scoreCorrectionProviderNotFound=Поставщик корректировки оценки не найден
|
||||
+2
@@ -10,3 +10,5 @@ raceLogNotFound=未找到比赛轮次日志!
|
||||
tagNotRevokable=无法撤销此标记!
|
||||
tagAlreadyExists=标记已存在,不允许重复的标记!
|
||||
invalidParameters=其中一个给定参数没有有效值!
|
||||
pleaseEnterNonEmptyUrl=请输入非空 URL
|
||||
scoreCorrectionProviderNotFound=未找到得分更正提供方
|
||||
+28
-4
@@ -1,8 +1,12 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.racelog.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
|
||||
@@ -46,7 +50,11 @@ public class ORCCertificateJsonDeserializer implements JsonDeserializer<ORCCerti
|
||||
Map<Speed, Speed> longDistanceSpeedPredictionPerTrueWindSpeed = new HashMap<>();
|
||||
Map<Speed, Speed> circularRandomSpeedPredictionPerTrueWindSpeed = new HashMap<>();
|
||||
Map<Speed, Speed> nonSpinnakerSpeedPredictionPerTrueWindSpeed = new HashMap<>();
|
||||
for (Speed tws : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
Speed[] trueWindSpeeds = convertJsonArrayOfDoublesToArrayOfObjectsOrReturnDefault(json.get(ORCCertificateJsonSerializer.ORC_CERTIFICATE_TRUE_WIND_SPEEDS_IN_KNOTS),
|
||||
ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS, speedInKnots->new KnotSpeedImpl(speedInKnots), new Speed[0]);
|
||||
Bearing[] trueWindAngles = convertJsonArrayOfDoublesToArrayOfObjectsOrReturnDefault(json.get(ORCCertificateJsonSerializer.ORC_CERTIFICATE_TRUE_WIND_ANGLES_IN_TRUE_DEGREES),
|
||||
ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES, twaInTrueDegrees->new DegreeBearingImpl(twaInTrueDegrees), new Bearing[0]);
|
||||
for (Speed tws : trueWindSpeeds) {
|
||||
String twsKey = ORCCertificateJsonSerializer.speedToKnotsString(tws);
|
||||
beatAngles.put(tws, new DegreeBearingImpl(
|
||||
((Number) ((JSONObject) json.get(ORCCertificateJsonSerializer.ORC_CERTIFICATE_BEAT_ANGLES))
|
||||
@@ -84,9 +92,8 @@ public class ORCCertificateJsonDeserializer implements JsonDeserializer<ORCCerti
|
||||
new KnotSpeedImpl(((Number) ((JSONObject) json
|
||||
.get(ORCCertificateJsonSerializer.ORC_CERTIFICATE_NON_SPINNAKER_SPEED_PREDICTIONS))
|
||||
.get(twsKey)).doubleValue()));
|
||||
|
||||
Map<Bearing, Speed> velocityPredictionAtCurrentTrueWindSpeedPerTrueWindAngle = new HashMap<>();
|
||||
for (Bearing twa : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_ANGLES) {
|
||||
for (Bearing twa : trueWindAngles) {
|
||||
String twaKey = ORCCertificateJsonSerializer.bearingToDegreeString(twa);
|
||||
velocityPredictionAtCurrentTrueWindSpeedPerTrueWindAngle.put(twa,
|
||||
new KnotSpeedImpl(((Number) ((JSONObject) ((JSONObject) json
|
||||
@@ -97,7 +104,7 @@ public class ORCCertificateJsonDeserializer implements JsonDeserializer<ORCCerti
|
||||
velocityPredictionAtCurrentTrueWindSpeedPerTrueWindAngle);
|
||||
}
|
||||
final String idConsistingOfNatAuthCertNoAndBIN = json.get(ORCCertificateJsonSerializer.ORC_CERTIFICATE_ID).toString();
|
||||
final ORCCertificate certificate = new ORCCertificateImpl(idConsistingOfNatAuthCertNoAndBIN, sailnumber,
|
||||
final ORCCertificate certificate = new ORCCertificateImpl(trueWindSpeeds,trueWindAngles,idConsistingOfNatAuthCertNoAndBIN, sailnumber,
|
||||
boatName, boatclass, length, gph, cdl, issueDate, velocityPredictionsPerTrueWindSpeedAndAngle,
|
||||
beatAngles, beatVMGPredictionPerTrueWindSpeed, beatAllowancePerTrueWindSpeed, runAngles,
|
||||
runVMGPredictionPerTrueWindSpeed, runAllowancePerTrueWindSpeed,
|
||||
@@ -105,4 +112,21 @@ public class ORCCertificateJsonDeserializer implements JsonDeserializer<ORCCerti
|
||||
circularRandomSpeedPredictionPerTrueWindSpeed, nonSpinnakerSpeedPredictionPerTrueWindSpeed);
|
||||
return certificate;
|
||||
}
|
||||
|
||||
private <T> T[] convertJsonArrayOfDoublesToArrayOfObjectsOrReturnDefault(final Object supposedJsonArray,
|
||||
final T[] defaults, final Function<Double, T> constructor, T[] array) {
|
||||
final T[] result;
|
||||
final JSONArray windAnglesJsonArray;
|
||||
if (supposedJsonArray == null || !(supposedJsonArray instanceof JSONArray) || (windAnglesJsonArray=(JSONArray) supposedJsonArray).isEmpty()) {
|
||||
result = defaults;
|
||||
} else {
|
||||
final List<T> resultList = new ArrayList<>();
|
||||
for (final Object number : windAnglesJsonArray) {
|
||||
resultList.add(constructor.apply((Double) number));
|
||||
}
|
||||
final T[] tArray = resultList.toArray(array);
|
||||
result = tArray;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
+9
-9
@@ -19,21 +19,21 @@ public class CourseBaseJsonSerializer implements JsonSerializer<CourseBase> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(CourseBase object) {
|
||||
public JSONObject serialize(CourseBase course) {
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
result.put(FIELD_NAME, object.getName());
|
||||
if (object.getOriginatingCourseTemplateIdOrNull() != null) {
|
||||
result.put(FIELD_ORIGINATING_COURSE_TEMPLATE_ID, object.getOriginatingCourseTemplateIdOrNull());
|
||||
result.put(FIELD_NAME, course.getName());
|
||||
if (course.getOriginatingCourseTemplateIdOrNull() != null) {
|
||||
result.put(FIELD_ORIGINATING_COURSE_TEMPLATE_ID, course.getOriginatingCourseTemplateIdOrNull());
|
||||
}
|
||||
|
||||
JSONArray waypoints = new JSONArray();
|
||||
for (Waypoint waypoint : object.getWaypoints()) {
|
||||
waypoints.add(waypointSerializer.serialize(waypoint));
|
||||
for (Waypoint waypoint : course.getWaypoints()) {
|
||||
waypoints.add(serializeWaypoint(waypoint));
|
||||
}
|
||||
result.put(FIELD_WAYPOINTS, waypoints);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
protected JSONObject serializeWaypoint(Waypoint waypoint) {
|
||||
return waypointSerializer.serialize(waypoint);
|
||||
}
|
||||
}
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
package com.sap.sailing.server.gateway.serialization.coursedata.impl;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseBase;
|
||||
import com.sap.sailing.domain.base.Leg;
|
||||
import com.sap.sailing.domain.base.Waypoint;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseBaseWithGeometryJsonSerializer.CourseGeometry;
|
||||
import com.sap.sse.common.Bearing;
|
||||
import com.sap.sse.common.Distance;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
|
||||
public class CourseBaseWithGeometryJsonSerializer implements JsonSerializer<Pair<CourseBase, CourseGeometry>> {
|
||||
public static final String FIELD_TOTAL_DISTANCE_IN_METERS = "totalDistanceInMeters";
|
||||
public static final String FIELD_LEG_DISTANCE_IN_METERS = "legDistanceInMeters";
|
||||
public static final String FIELD_LEG_BEARING_TRUE_DEGREES = "legBearingTrueDegrees";
|
||||
|
||||
public static class CourseGeometry {
|
||||
private final Distance totalDistance;
|
||||
private final Map<Leg, Distance> legDistances;
|
||||
private final Map<Leg, Bearing> legBearings;
|
||||
|
||||
public CourseGeometry(Distance totalDistance, Map<Leg, Distance> legDistances, Map<Leg, Bearing> legBearings) {
|
||||
super();
|
||||
this.totalDistance = totalDistance;
|
||||
this.legDistances = legDistances;
|
||||
this.legBearings = legBearings;
|
||||
}
|
||||
|
||||
public Distance getTotalDistance() {
|
||||
return totalDistance;
|
||||
}
|
||||
|
||||
public Map<Leg, Distance> getLegDistances() {
|
||||
return legDistances;
|
||||
}
|
||||
|
||||
public Map<Leg, Bearing> getLegBearings() {
|
||||
return legBearings;
|
||||
}
|
||||
}
|
||||
|
||||
private JsonSerializer<Waypoint> waypointSerializer;
|
||||
|
||||
public CourseBaseWithGeometryJsonSerializer(WaypointJsonSerializer waypointSerializer) {
|
||||
this.waypointSerializer = waypointSerializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(final Pair<CourseBase, CourseGeometry> courseAndOptionalGeometry) {
|
||||
final CourseBase course = courseAndOptionalGeometry.getA();
|
||||
final CourseGeometry geometry = courseAndOptionalGeometry.getB();
|
||||
final JSONObject result = new CourseBaseJsonSerializer(waypointSerializer) {
|
||||
@Override
|
||||
protected JSONObject serializeWaypoint(Waypoint waypoint) {
|
||||
final JSONObject result = super.serializeWaypoint(waypoint);
|
||||
if (geometry != null) {
|
||||
final int waypointIndex = course.getIndexOfWaypoint(waypoint);
|
||||
if (waypointIndex >= 0 && course.getLegs().size() > waypointIndex) {
|
||||
final Leg leg = course.getLegs().get(waypointIndex);
|
||||
result.put(FIELD_LEG_DISTANCE_IN_METERS, geometry.getLegDistances().get(leg).getMeters());
|
||||
result.put(FIELD_LEG_BEARING_TRUE_DEGREES, geometry.getLegBearings().get(leg).getDegrees());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}.serialize(course);
|
||||
if (courseAndOptionalGeometry.getB() != null) {
|
||||
result.put(FIELD_TOTAL_DISTANCE_IN_METERS, courseAndOptionalGeometry.getB().getTotalDistance().getMeters());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
+53
-22
@@ -1,9 +1,12 @@
|
||||
package com.sap.sailing.server.gateway.serialization.racelog.impl;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.function.Function;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.orc.ORCCertificate;
|
||||
import com.sap.sailing.domain.common.orc.impl.ORCCertificateImpl;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
import com.sap.sse.common.Bearing;
|
||||
import com.sap.sse.common.Speed;
|
||||
@@ -28,6 +31,7 @@ public class ORCCertificateJsonSerializer implements JsonSerializer<ORCCertifica
|
||||
public static final String ORC_CERTIFICATE_ID = "ID";
|
||||
public static final String ORC_CERTIFICATE_LENGTH = "length";
|
||||
public static final String ORC_CERTIFICATE_ISSUE_DATE = "issueDate";
|
||||
public static final String ORC_CERTIFICATE_TWS_KNOTS = "ORC_CERTIFICATE_TWS_{0}KT";
|
||||
public static final String ORC_CERTIFICATE_TWS_6KT = "ORC_CERTIFICATE_TWS_6KT";
|
||||
public static final String ORC_CERTIFICATE_TWS_8KT = "ORC_CERTIFICATE_TWS_8KT";
|
||||
public static final String ORC_CERTIFICATE_TWS_10KT = "ORC_CERTIFICATE_TWS_10KT";
|
||||
@@ -35,6 +39,8 @@ public class ORCCertificateJsonSerializer implements JsonSerializer<ORCCertifica
|
||||
public static final String ORC_CERTIFICATE_TWS_14KT = "ORC_CERTIFICATE_TWS_14KT";
|
||||
public static final String ORC_CERTIFICATE_TWS_16KT = "ORC_CERTIFICATE_TWS_16KT";
|
||||
public static final String ORC_CERTIFICATE_TWS_20KT = "ORC_CERTIFICATE_TWS_20KT";
|
||||
|
||||
public static final String ORC_CERTIFICATE_R_PERDICTION = "ORC_CERTIFICATE_R{0}_PREDICTION";
|
||||
public static final String ORC_CERTIFICATE_R52_PREDICTION = "ORC_CERTIFICATE_R52_PREDICTION";
|
||||
public static final String ORC_CERTIFICATE_R60_PREDICTION = "ORC_CERTIFICATE_R60_PREDICTION";
|
||||
public static final String ORC_CERTIFICATE_R75_PREDICTION = "ORC_CERTIFICATE_R75_PREDICTION";
|
||||
@@ -43,6 +49,8 @@ public class ORCCertificateJsonSerializer implements JsonSerializer<ORCCertifica
|
||||
public static final String ORC_CERTIFICATE_R120_PREDICTION = "ORC_CERTIFICATE_R120_PREDICTION";
|
||||
public static final String ORC_CERTIFICATE_R135_PREDICTION = "ORC_CERTIFICATE_R135_PREDICTION";
|
||||
public static final String ORC_CERTIFICATE_R150_PREDICTION = "ORC_CERTIFICATE_R150_PREDICTION";
|
||||
public static final String ORC_CERTIFICATE_TRUE_WIND_SPEEDS_IN_KNOTS = "trueWindSpeedsInKnots";
|
||||
public static final String ORC_CERTIFICATE_TRUE_WIND_ANGLES_IN_TRUE_DEGREES = "trueWindAnglesInTrueDegrees";
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(ORCCertificate certificate) {
|
||||
@@ -54,8 +62,8 @@ public class ORCCertificateJsonSerializer implements JsonSerializer<ORCCertifica
|
||||
result.put(ORC_CERTIFICATE_GPH, certificate.getGPHInSecondsToTheMile());
|
||||
result.put(ORC_CERTIFICATE_CDL, certificate.getCDL());
|
||||
result.put(ORC_CERTIFICATE_LENGTH, certificate.getLengthOverAll().getMeters());
|
||||
result.put(ORC_CERTIFICATE_ISSUE_DATE, certificate.getIssueDate()==null?null:certificate.getIssueDate().asMillis());
|
||||
|
||||
result.put(ORC_CERTIFICATE_ISSUE_DATE,
|
||||
certificate.getIssueDate() == null ? null : certificate.getIssueDate().asMillis());
|
||||
JSONObject beatAngles = new JSONObject();
|
||||
JSONObject runAngles = new JSONObject();
|
||||
JSONObject beatAllowances = new JSONObject();
|
||||
@@ -67,7 +75,7 @@ public class ORCCertificateJsonSerializer implements JsonSerializer<ORCCertifica
|
||||
JSONObject longDistancePredictions = new JSONObject();
|
||||
JSONObject nonSpinnakerPredictions = new JSONObject();
|
||||
JSONObject velocityPredictionsPerTrueWindSpeedAndAngle = new JSONObject();
|
||||
for (Speed tws : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
for (Speed tws : certificate.getTrueWindSpeeds()) {
|
||||
String keyTWS = speedToKnotsString(tws);
|
||||
JSONObject velocityPredictionsPerTrueWindAngle = new JSONObject();
|
||||
beatAngles.put(keyTWS, certificate.getBeatAngles().get(tws).getDegrees());
|
||||
@@ -80,13 +88,13 @@ public class ORCCertificateJsonSerializer implements JsonSerializer<ORCCertifica
|
||||
circularRandomPredictions.put(keyTWS, certificate.getCircularRandomSpeedPredictions().get(tws).getKnots());
|
||||
longDistancePredictions.put(keyTWS, certificate.getLongDistanceSpeedPredictions().get(tws).getKnots());
|
||||
nonSpinnakerPredictions.put(keyTWS, certificate.getNonSpinnakerSpeedPredictions().get(tws).getKnots());
|
||||
for (Bearing twa : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_ANGLES) {
|
||||
for (Bearing twa : certificate.getTrueWindAngles()) {
|
||||
String keyTWA = bearingToDegreeString(twa);
|
||||
velocityPredictionsPerTrueWindAngle.put(keyTWA, certificate.getVelocityPredictionPerTrueWindSpeedAndAngle().get(tws).get(twa).getKnots());
|
||||
velocityPredictionsPerTrueWindAngle.put(keyTWA,
|
||||
certificate.getVelocityPredictionPerTrueWindSpeedAndAngle().get(tws).get(twa).getKnots());
|
||||
}
|
||||
velocityPredictionsPerTrueWindSpeedAndAngle.put(keyTWS, velocityPredictionsPerTrueWindAngle);
|
||||
}
|
||||
|
||||
result.put(ORC_CERTIFICATE_BEAT_ANGLES, beatAngles);
|
||||
result.put(ORC_CERTIFICATE_RUN_ANGLES, runAngles);
|
||||
result.put(ORC_CERTIFICATE_BEAT_ALLOWANCES, beatAllowances);
|
||||
@@ -98,47 +106,70 @@ public class ORCCertificateJsonSerializer implements JsonSerializer<ORCCertifica
|
||||
result.put(ORC_CERTIFICATE_CIRCULAR_RANDOM_SPEED_PREDICTIONS, circularRandomPredictions);
|
||||
result.put(ORC_CERTIFICATE_NON_SPINNAKER_SPEED_PREDICTIONS, nonSpinnakerPredictions);
|
||||
result.put(ORC_CERTIFICATE_TWA_SPEED_PREDICTIONS, velocityPredictionsPerTrueWindSpeedAndAngle);
|
||||
if (certificate.getTrueWindAngles() != ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES) {
|
||||
result.put(ORC_CERTIFICATE_TRUE_WIND_ANGLES_IN_TRUE_DEGREES, convertObjectsToJsonArrayOfDoubles(twa->twa.getDegrees(), certificate.getTrueWindAngles()));
|
||||
}
|
||||
if (certificate.getTrueWindSpeeds() != ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS) {
|
||||
result.put(ORC_CERTIFICATE_TRUE_WIND_SPEEDS_IN_KNOTS, convertObjectsToJsonArrayOfDoubles(tws->tws.getKnots(), certificate.getTrueWindSpeeds()));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@SafeVarargs
|
||||
private final <T> JSONArray convertObjectsToJsonArrayOfDoubles(Function<T, Double> converterToDouble, T... objects) {
|
||||
final JSONArray jsonArray = new JSONArray();
|
||||
for (T t : objects) {
|
||||
jsonArray.add(converterToDouble.apply(t));
|
||||
}
|
||||
return jsonArray;
|
||||
}
|
||||
|
||||
public static String speedToKnotsString(Speed speed) {
|
||||
String result = null;
|
||||
if (speed.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[0])) {
|
||||
if (speed.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[0])) {
|
||||
result = ORC_CERTIFICATE_TWS_6KT;
|
||||
} else if (speed.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[1])) {
|
||||
} else if (speed.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[1])) {
|
||||
result = ORC_CERTIFICATE_TWS_8KT;
|
||||
} else if (speed.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[2])) {
|
||||
} else if (speed.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[2])) {
|
||||
result = ORC_CERTIFICATE_TWS_10KT;
|
||||
} else if (speed.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[3])) {
|
||||
} else if (speed.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[3])) {
|
||||
result = ORC_CERTIFICATE_TWS_12KT;
|
||||
} else if (speed.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[4])) {
|
||||
} else if (speed.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[4])) {
|
||||
result = ORC_CERTIFICATE_TWS_14KT;
|
||||
} else if (speed.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[5])) {
|
||||
} else if (speed.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[5])) {
|
||||
result = ORC_CERTIFICATE_TWS_16KT;
|
||||
} else if (speed.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS[6])) {
|
||||
} else if (speed.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS[6])) {
|
||||
result = ORC_CERTIFICATE_TWS_20KT;
|
||||
} else {
|
||||
String speedKnots = String.valueOf(speed.getKnots());
|
||||
speedKnots = speedKnots.replace(".", "P");
|
||||
result = MessageFormat.format(ORC_CERTIFICATE_TWS_KNOTS, speedKnots);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static String bearingToDegreeString(Bearing bearing) {
|
||||
String result = null;
|
||||
if (bearing.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_ANGLES[0])) {
|
||||
if (bearing.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES[0])) {
|
||||
result = ORC_CERTIFICATE_R52_PREDICTION;
|
||||
} else if (bearing.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_ANGLES[1])) {
|
||||
} else if (bearing.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES[1])) {
|
||||
result = ORC_CERTIFICATE_R60_PREDICTION;
|
||||
} else if (bearing.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_ANGLES[2])) {
|
||||
} else if (bearing.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES[2])) {
|
||||
result = ORC_CERTIFICATE_R75_PREDICTION;
|
||||
} else if (bearing.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_ANGLES[3])) {
|
||||
} else if (bearing.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES[3])) {
|
||||
result = ORC_CERTIFICATE_R90_PREDICTION;
|
||||
} else if (bearing.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_ANGLES[4])) {
|
||||
} else if (bearing.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES[4])) {
|
||||
result = ORC_CERTIFICATE_R110_PREDICTION;
|
||||
} else if (bearing.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_ANGLES[5])) {
|
||||
} else if (bearing.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES[5])) {
|
||||
result = ORC_CERTIFICATE_R120_PREDICTION;
|
||||
} else if (bearing.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_ANGLES[6])) {
|
||||
} else if (bearing.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES[6])) {
|
||||
result = ORC_CERTIFICATE_R135_PREDICTION;
|
||||
} else if (bearing.equals(ORCCertificateImpl.ALLOWANCES_TRUE_WIND_ANGLES[7])) {
|
||||
} else if (bearing.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES[7])) {
|
||||
result = ORC_CERTIFICATE_R150_PREDICTION;
|
||||
} else {
|
||||
String angleDegress = String.valueOf(bearing.getDegrees());
|
||||
angleDegress = angleDegress.replace(".", "P");
|
||||
result = MessageFormat.format(ORC_CERTIFICATE_R_PERDICTION, String.valueOf(angleDegress));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
+221
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"rms":[
|
||||
{
|
||||
"NatAuth":"GR",
|
||||
"BIN":"GR317",
|
||||
"CertNo":"A00073",
|
||||
"RefNo":"N\/A",
|
||||
"SailNo":"GRE-317",
|
||||
"YachtName":"AVANTES",
|
||||
"Class":"FIRST 31.7",
|
||||
"Builder":"BENETEAU",
|
||||
"Designer":"FINOT",
|
||||
"Address3":"I.O. HALKIDAS",
|
||||
"C_Type":"INTL",
|
||||
"Family":"ORC",
|
||||
"Division":"C",
|
||||
"IssueDate":"2020-02-05T12:54:23.484Z",
|
||||
"Age_Year":1998,
|
||||
"CrewWT":550,
|
||||
"LOA":9.49,
|
||||
"IMSL":9.003,
|
||||
"Draft":1.94,
|
||||
"MB":3.216,
|
||||
"Dspl_Measurement":3936,
|
||||
"Stability_Index":103.7,
|
||||
"Dynamic_Allowance":0.31,
|
||||
"GPH":678,
|
||||
"TMF_Inshore":0.9229,
|
||||
"ILCWA":731.4,
|
||||
"TMF_Offshore":0.9145,
|
||||
"OSN":656.1,
|
||||
"CDL":8.155,
|
||||
"TN_Offshore_Low":0.8578,
|
||||
"TN_Offshore_Medium":1.1292,
|
||||
"TN_Offshore_High":1.2751,
|
||||
"TN_Inshore_Low":0.6639,
|
||||
"TN_Inshore_Medium":0.9158,
|
||||
"TN_Inshore_High":1.0666,
|
||||
"TND_Offshore_Low":786.9,
|
||||
"TND_Offshore_Medium":597.8,
|
||||
"TND_Offshore_High":529.4,
|
||||
"TND_Inshore_Low":1016.7,
|
||||
"TND_Inshore_Medium":737.1,
|
||||
"TND_Inshore_High":632.9,
|
||||
"OSN_Jibs":688.6,
|
||||
"TMF_Jibs":0.8713,
|
||||
"Dspl_Sailing":4660,
|
||||
"WSS":22.41,
|
||||
"Area_Main":27.04,
|
||||
"Area_Jib":22.08,
|
||||
"Area_Sym":61.48,
|
||||
"Area_ASym":0,
|
||||
"GPH_Jibs":714.6,
|
||||
"GPH_Jibs_TOT":0.8396,
|
||||
"Allowances":{
|
||||
"WindSpeeds":[
|
||||
6.1,
|
||||
8.2,
|
||||
10.6,
|
||||
12.1,
|
||||
14.9,
|
||||
16.7,
|
||||
20.1
|
||||
],
|
||||
"Beat":[
|
||||
1175.6,
|
||||
968.7,
|
||||
854,
|
||||
780.9,
|
||||
752,
|
||||
744.6,
|
||||
744.9
|
||||
],
|
||||
"Run":[
|
||||
1074.7,
|
||||
847.7,
|
||||
716.4,
|
||||
628.3,
|
||||
566,
|
||||
526.9,
|
||||
480.1
|
||||
],
|
||||
"BeatAngle":[
|
||||
43.5,
|
||||
41.6,
|
||||
40.5,
|
||||
39.8,
|
||||
39,
|
||||
38.6,
|
||||
39
|
||||
],
|
||||
"GybeAngle":[
|
||||
146,
|
||||
150,
|
||||
153,
|
||||
158,
|
||||
178,
|
||||
180,
|
||||
180
|
||||
],
|
||||
"WL":[
|
||||
1125.2,
|
||||
908.2,
|
||||
785.2,
|
||||
704.6,
|
||||
659,
|
||||
635.8,
|
||||
612.5
|
||||
],
|
||||
"CR":[
|
||||
942.4,
|
||||
757.3,
|
||||
657.2,
|
||||
598.8,
|
||||
563,
|
||||
540.1,
|
||||
512.7
|
||||
],
|
||||
"OC":[
|
||||
1120.1,
|
||||
852,
|
||||
706,
|
||||
616.2,
|
||||
571.7,
|
||||
539.8,
|
||||
487.7
|
||||
],
|
||||
"NS":[
|
||||
1008.9,
|
||||
804,
|
||||
691.6,
|
||||
625.1,
|
||||
584.2,
|
||||
558,
|
||||
527.3
|
||||
],
|
||||
"OL":[
|
||||
1077.4,
|
||||
874.1,
|
||||
761.4,
|
||||
694.6,
|
||||
658.2,
|
||||
638.7,
|
||||
615.2
|
||||
],
|
||||
"R52.7":[
|
||||
767,
|
||||
645,
|
||||
577.3,
|
||||
544,
|
||||
530.1,
|
||||
525.8,
|
||||
525
|
||||
],
|
||||
"R64.4":[
|
||||
725.4,
|
||||
613.2,
|
||||
556.7,
|
||||
530.3,
|
||||
516.8,
|
||||
510.9,
|
||||
508.9
|
||||
],
|
||||
"R75":[
|
||||
697.1,
|
||||
589.3,
|
||||
541.9,
|
||||
519,
|
||||
502.9,
|
||||
490.9,
|
||||
480.5
|
||||
],
|
||||
"R90":[
|
||||
694.3,
|
||||
577.7,
|
||||
526.9,
|
||||
505.5,
|
||||
495.9,
|
||||
481.7,
|
||||
454.3
|
||||
],
|
||||
"R110":[
|
||||
688.6,
|
||||
568.4,
|
||||
520.4,
|
||||
493.9,
|
||||
469.8,
|
||||
450.8,
|
||||
430.3
|
||||
],
|
||||
"R120":[
|
||||
710.9,
|
||||
583.7,
|
||||
526.8,
|
||||
498.8,
|
||||
473.3,
|
||||
448.4,
|
||||
409.9
|
||||
],
|
||||
"R135":[
|
||||
788.3,
|
||||
640.5,
|
||||
556.1,
|
||||
517.8,
|
||||
492.5,
|
||||
466.8,
|
||||
416.9
|
||||
],
|
||||
"R150":[
|
||||
930.8,
|
||||
734.2,
|
||||
621.9,
|
||||
551.9,
|
||||
517.7,
|
||||
494,
|
||||
446.5
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+215
@@ -0,0 +1,215 @@
|
||||
{
|
||||
"rms": [
|
||||
{
|
||||
"NatAuth": "GRE",
|
||||
"BIN": "GR49735",
|
||||
"CertNo": "000021",
|
||||
"RefNo": "GRE01015829",
|
||||
"SailNo": "GRE-49735",
|
||||
"YachtName": "NEMO",
|
||||
"Class": "PHANTOM 34",
|
||||
"Builder": "Genzel",
|
||||
"Designer": "Streuer",
|
||||
"Address3": "NO RAHON",
|
||||
"C_Type": "CLUB",
|
||||
"Division": "C",
|
||||
"IssueDate": "2019-06-11T21:37:02.000Z",
|
||||
"Age_Year": 1988,
|
||||
"CrewWT": 400,
|
||||
"LOA": 10.3,
|
||||
"IMSL": 8.518,
|
||||
"Draft": 1.777,
|
||||
"MB": 3.15,
|
||||
"Dspl_Measurement": 6386,
|
||||
"Stability_Index": 131.7,
|
||||
"Dynamic_Allowance": 0.702,
|
||||
"GPH": 780.1,
|
||||
"TMF_Inshore": 0.8017,
|
||||
"ILCWA": 842,
|
||||
"TMF_Offshore": 0.798,
|
||||
"OSN": 751.9,
|
||||
"CDL": 7.056,
|
||||
"TN_Offshore_Low": 0.7209,
|
||||
"TN_Offshore_Medium": 0.9908,
|
||||
"TN_Offshore_High": 1.1542,
|
||||
"TN_Inshore_Low": 0.5529,
|
||||
"TN_Inshore_Medium": 0.7913,
|
||||
"TN_Inshore_High": 0.9571,
|
||||
"TND_Offshore_Low": 936.3,
|
||||
"TND_Offshore_Medium": 681.3,
|
||||
"TND_Offshore_High": 584.8,
|
||||
"TND_Inshore_Low": 1220.8,
|
||||
"TND_Inshore_Medium": 853,
|
||||
"TND_Inshore_High": 705.3,
|
||||
"Double_Handed_TOD": null,
|
||||
"Double_Handed_TOT": null,
|
||||
"OSN_Jibs": 751.9,
|
||||
"TMF_Jibs": 0.798,
|
||||
"Dspl_Sailing": 7116,
|
||||
"WSS": 27.39,
|
||||
"Area_Main": 24.97,
|
||||
"Area_Jib": 35.81,
|
||||
"Area_Sym": 0,
|
||||
"Area_ASym": 0,
|
||||
"GPH_Jibs": 780.1,
|
||||
"GPH_Jibs_TOT": 0.7691,
|
||||
"GPH_DH": 0,
|
||||
"GPH_DH_TOT": 0,
|
||||
"Allowances": {
|
||||
"Beat": [
|
||||
1363.4,
|
||||
1113.9,
|
||||
981.7,
|
||||
892.9,
|
||||
841.8,
|
||||
822.5,
|
||||
818.8
|
||||
],
|
||||
"Run": [
|
||||
1368.9,
|
||||
1036.8,
|
||||
849.8,
|
||||
734.8,
|
||||
653.5,
|
||||
592.3,
|
||||
531
|
||||
],
|
||||
"BeatAngle": [
|
||||
45.9,
|
||||
43.6,
|
||||
42.7,
|
||||
43.1,
|
||||
43.2,
|
||||
42.8,
|
||||
43
|
||||
],
|
||||
"GybeAngle": [
|
||||
167.1,
|
||||
167.8,
|
||||
168.9,
|
||||
170,
|
||||
170.1,
|
||||
171.4,
|
||||
175.4
|
||||
],
|
||||
"WL": [
|
||||
1366.2,
|
||||
1075.4,
|
||||
915.7,
|
||||
813.8,
|
||||
747.7,
|
||||
707.4,
|
||||
674.9
|
||||
],
|
||||
"CR": [
|
||||
1111.7,
|
||||
882.2,
|
||||
754.7,
|
||||
678,
|
||||
630.1,
|
||||
599.8,
|
||||
567.2
|
||||
],
|
||||
"OC": [
|
||||
1366.4,
|
||||
1009.6,
|
||||
820.8,
|
||||
702.4,
|
||||
636.3,
|
||||
593.1,
|
||||
536.8
|
||||
],
|
||||
"NS": [
|
||||
1111.7,
|
||||
882.2,
|
||||
754.7,
|
||||
678,
|
||||
630.1,
|
||||
599.8,
|
||||
567.2
|
||||
],
|
||||
"OL": [
|
||||
1299.8,
|
||||
1037,
|
||||
892.2,
|
||||
800.5,
|
||||
743.6,
|
||||
712.9,
|
||||
687.5
|
||||
],
|
||||
"R52": [
|
||||
866.3,
|
||||
724.9,
|
||||
642.2,
|
||||
586.7,
|
||||
561.7,
|
||||
553.2,
|
||||
549.9
|
||||
],
|
||||
"R60": [
|
||||
806.5,
|
||||
682.9,
|
||||
605,
|
||||
562.4,
|
||||
542.9,
|
||||
534.7,
|
||||
530.6
|
||||
],
|
||||
"R75": [
|
||||
763.8,
|
||||
648.6,
|
||||
578.1,
|
||||
545.2,
|
||||
527.6,
|
||||
516,
|
||||
505.8
|
||||
],
|
||||
"R90": [
|
||||
770.4,
|
||||
649.9,
|
||||
575.9,
|
||||
541.5,
|
||||
522.6,
|
||||
506.7,
|
||||
486.6
|
||||
],
|
||||
"R110": [
|
||||
841.2,
|
||||
690.9,
|
||||
599.3,
|
||||
550.4,
|
||||
525.7,
|
||||
508.1,
|
||||
476.4
|
||||
],
|
||||
"R120": [
|
||||
899.7,
|
||||
728.7,
|
||||
628.2,
|
||||
564.5,
|
||||
533.7,
|
||||
514.4,
|
||||
481.6
|
||||
],
|
||||
"R135": [
|
||||
1027.7,
|
||||
808.1,
|
||||
690.6,
|
||||
609.2,
|
||||
558.7,
|
||||
532,
|
||||
498
|
||||
],
|
||||
"R150": [
|
||||
1205.8,
|
||||
924.1,
|
||||
770,
|
||||
674,
|
||||
602.7,
|
||||
557.4,
|
||||
514.8
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.test.racelog;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.ParseException;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
|
||||
import com.sap.sailing.domain.common.orc.ORCCertificate;
|
||||
import com.sap.sailing.domain.orc.ORCCertificatesCollection;
|
||||
import com.sap.sailing.domain.orc.ORCCertificatesImporter;
|
||||
import com.sap.sailing.server.gateway.deserialization.racelog.impl.ORCCertificateJsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.impl.ORCCertificateJsonSerializer;
|
||||
import com.sap.sse.common.Bearing;
|
||||
import com.sap.sse.common.Speed;
|
||||
import com.sap.sse.common.impl.DegreeBearingImpl;
|
||||
|
||||
public class ORCCertificateJsonDeserializerTest {
|
||||
private ORCCertificateJsonSerializer serializer;
|
||||
private ORCCertificateJsonDeserializer deserializer;
|
||||
private static final String RESOURCES = "resources/rms/";
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
deserializer = new ORCCertificateJsonDeserializer();
|
||||
serializer = new ORCCertificateJsonSerializer();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNewFormateOrcCertificateDeserializer() throws FileNotFoundException, IOException, ParseException {
|
||||
File fileGER = new File(RESOURCES + "newFormatCertificate.json");
|
||||
ORCCertificatesCollection importer = ORCCertificatesImporter.INSTANCE.read(new FileInputStream(fileGER));
|
||||
Iterator<ORCCertificate> iterator = importer.getCertificates().iterator();
|
||||
assertTrue(iterator.hasNext());
|
||||
ORCCertificate certificate = iterator.next();
|
||||
final Speed[] expectedTrueWindSpeeds = { new KnotSpeedImpl(6.1), new KnotSpeedImpl(8.2), new KnotSpeedImpl(10.6), new KnotSpeedImpl(12.1), new KnotSpeedImpl(14.9), new KnotSpeedImpl(16.7), new KnotSpeedImpl(20.1) };
|
||||
assertTrue(Arrays.equals(expectedTrueWindSpeeds, certificate.getTrueWindSpeeds()));
|
||||
final Bearing[] expectedTrueWindAngles = { new DegreeBearingImpl(52.7), new DegreeBearingImpl(64.4), new DegreeBearingImpl(75), new DegreeBearingImpl(90),
|
||||
new DegreeBearingImpl(110), new DegreeBearingImpl(120), new DegreeBearingImpl(135), new DegreeBearingImpl(150) };
|
||||
assertTrue(Arrays.equals(expectedTrueWindAngles, certificate.getTrueWindAngles()));
|
||||
JSONObject serializedCertificate = serializer.serialize(certificate);
|
||||
assertNotNull(serializedCertificate);
|
||||
ORCCertificate certificateAfterDeserialize = deserializer.deserialize(serializedCertificate);
|
||||
assertEquals(certificate.getId(), certificateAfterDeserialize.getId());
|
||||
assertTrue(Arrays.equals(expectedTrueWindSpeeds, certificateAfterDeserialize.getTrueWindSpeeds()));
|
||||
assertTrue(Arrays.equals(expectedTrueWindAngles, certificateAfterDeserialize.getTrueWindAngles()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOrcCertificateOldFormatDeserializer() throws IOException, ParseException {
|
||||
File fileGER = new File(RESOURCES + "oldFormatCertificate.json");
|
||||
ORCCertificatesCollection importer = ORCCertificatesImporter.INSTANCE.read(new FileInputStream(fileGER));
|
||||
Iterator<ORCCertificate> iterator = importer.getCertificates().iterator();
|
||||
assertTrue(iterator.hasNext());
|
||||
ORCCertificate certificate = iterator.next();
|
||||
assertTrue(Arrays.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS, certificate.getTrueWindSpeeds()));
|
||||
assertTrue(Arrays.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES, certificate.getTrueWindAngles()));
|
||||
JSONObject serializedCertificate = serializer.serialize(certificate);
|
||||
assertNotNull(serializedCertificate);
|
||||
ORCCertificate certificateAfterDeserialize = deserializer.deserialize(serializedCertificate);
|
||||
assertEquals(certificate.getId(), certificateAfterDeserialize.getId());
|
||||
assertTrue(Arrays.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_SPEEDS, certificateAfterDeserialize.getTrueWindSpeeds()));
|
||||
assertTrue(Arrays.equals(ORCCertificate.ALLOWANCES_TRUE_WIND_ANGLES, certificateAfterDeserialize.getTrueWindAngles()));
|
||||
}
|
||||
}
|
||||
+17
-3
@@ -132,13 +132,27 @@ public abstract class AbstractSailingServerResource {
|
||||
|
||||
protected TrackedRace findTrackedRace(String regattaName, String raceName) {
|
||||
Regatta regatta = findRegattaByName(regattaName);
|
||||
RaceDefinition race = findRaceByName(regatta, raceName);
|
||||
TrackedRace trackedRace = null;
|
||||
if (regatta != null && race != null) {
|
||||
final TrackedRace trackedRace;
|
||||
if (regatta == null) {
|
||||
trackedRace = null;
|
||||
} else {
|
||||
trackedRace = findTrackedRace(regatta, raceName);
|
||||
}
|
||||
return trackedRace;
|
||||
}
|
||||
|
||||
protected TrackedRace findTrackedRace(Regatta regatta, String raceName) {
|
||||
final TrackedRace trackedRace;
|
||||
final RaceDefinition race = findRaceByName(regatta, raceName);
|
||||
if (race != null) {
|
||||
DynamicTrackedRegatta trackedRegatta = getService().getTrackedRegatta(regatta);
|
||||
if (trackedRegatta != null) {
|
||||
trackedRace = trackedRegatta.getExistingTrackedRace(race);
|
||||
} else {
|
||||
trackedRace = null;
|
||||
}
|
||||
} else {
|
||||
trackedRace = null;
|
||||
}
|
||||
return trackedRace;
|
||||
}
|
||||
|
||||
+4
@@ -185,6 +185,10 @@ public abstract class AbstractLeaderboardsResource extends AbstractSailingServer
|
||||
? MillisecondsTimePoint.now().minus(trackedRace.getDelayToLiveInMillis())
|
||||
: new MillisecondsTimePoint(resultTimePoint)));
|
||||
trackedRaceInfo.put("delayToLiveInMillis", trackedRace.getDelayToLiveInMillis());
|
||||
if (trackedRace.getStatus() != null) {
|
||||
trackedRaceInfo.put("status", trackedRace.getStatus().getStatus().toString());
|
||||
trackedRaceInfo.put("loadingProgress", trackedRace.getStatus().getLoadingProgress());
|
||||
}
|
||||
}
|
||||
fleetJson.put("trackedRace", trackedRaceInfo);
|
||||
}
|
||||
|
||||
+2
-2
@@ -311,7 +311,8 @@ public class LeaderboardsResourceV2 extends AbstractLeaderboardsResource {
|
||||
DetailType.RACE_DISTANCE_TO_COMPETITOR_FARTHEST_AHEAD_IN_METERS,
|
||||
DetailType.NUMBER_OF_MANEUVERS,
|
||||
DetailType.RACE_CURRENT_LEG,
|
||||
DetailType.OVERALL_MAXIMUM_SPEED_OVER_GROUND_IN_KNOTS };
|
||||
DetailType.OVERALL_MAXIMUM_SPEED_OVER_GROUND_IN_KNOTS,
|
||||
DetailType.LEG_WINDWARD_DISTANCE_TO_GO_IN_METERS };
|
||||
}
|
||||
|
||||
private DetailType[] getAvailableOverallDetailColumnTypes() {
|
||||
@@ -491,7 +492,6 @@ public class LeaderboardsResourceV2 extends AbstractLeaderboardsResource {
|
||||
* If {@code raceColumnNames} is empty or {@code null}, return the names of all {@link raceColumnsOfLeaderboard};
|
||||
* otherwise return those race column names from {@code raceColumnsOfLeaderboard} that are also in
|
||||
* {@code raceColumnNames}.
|
||||
* @param leaderboard TODO
|
||||
* @param showOnlyActiveRacesForCompetitorIds
|
||||
* {@code null}, or specifies zero or more competitor IDs, requesting that the result contained the race
|
||||
* column holding that competitor's "active" race at the time requested; see also the
|
||||
|
||||
+23
-24
@@ -214,17 +214,17 @@ public class MarkResource extends AbstractSailingServerResource {
|
||||
@Produces("application/json;charset=UTF-8")
|
||||
public Response addCourseDefinitionToRaceLog(String json)
|
||||
throws DoesNotHaveRegattaLogException, NotFoundException, ParseException, JsonDeserializationException {
|
||||
Object requestBody = JSONValue.parseWithException(json);
|
||||
JSONObject requestObject = Helpers.toJSONObjectSafe(requestBody);
|
||||
String leaderboardName = (String) requestObject.get(LEADERBOARD_NAME);
|
||||
String originatingCourseTemplateIdAsString = (String) requestObject.get(ORIGINATING_COURSE_TEMPLATE_ID);
|
||||
UUID originatingCourseTemplateId = originatingCourseTemplateIdAsString != null ? UUID.fromString(originatingCourseTemplateIdAsString) : null;
|
||||
final Object requestBody = JSONValue.parseWithException(json);
|
||||
final JSONObject requestObject = Helpers.toJSONObjectSafe(requestBody);
|
||||
final String leaderboardName = (String) requestObject.get(LEADERBOARD_NAME);
|
||||
final String originatingCourseTemplateIdAsString = (String) requestObject.get(ORIGINATING_COURSE_TEMPLATE_ID);
|
||||
final UUID originatingCourseTemplateId = originatingCourseTemplateIdAsString != null ? UUID.fromString(originatingCourseTemplateIdAsString) : null;
|
||||
SecurityUtils.getSubject().checkPermission(
|
||||
SecuredDomainType.LEADERBOARD.getStringPermissionForTypeRelativeIdentifier(DefaultActions.UPDATE,
|
||||
Leaderboard.getTypeRelativeObjectIdentifier(leaderboardName)));
|
||||
String raceColumnName = (String) requestObject.get(RACE_COLUMN_NAME);
|
||||
String fleetName = (String) requestObject.get(FLEET_NAME);
|
||||
RaceLog raceLog = getRaceLog(leaderboardName, raceColumnName, fleetName);
|
||||
final String raceColumnName = (String) requestObject.get(RACE_COLUMN_NAME);
|
||||
final String fleetName = (String) requestObject.get(FLEET_NAME);
|
||||
final RaceLog raceLog = getRaceLog(leaderboardName, raceColumnName, fleetName);
|
||||
String courseName = "Course of " + raceColumnName;
|
||||
if (!LeaderboardNameConstants.DEFAULT_FLEET_NAME.equals(fleetName)) {
|
||||
courseName += " - " + fleetName;
|
||||
@@ -234,25 +234,25 @@ public class MarkResource extends AbstractSailingServerResource {
|
||||
if (lastPublishedCourse == null) {
|
||||
lastPublishedCourse = new CourseDataImpl(courseName);
|
||||
}
|
||||
JSONArray controlPointsRaw = (JSONArray) requestObject.get("controlPoints");
|
||||
List<Pair<ControlPoint, PassingInstruction>> controlPoints = new ArrayList<>();
|
||||
final JSONArray controlPointsRaw = (JSONArray) requestObject.get("controlPoints");
|
||||
final List<Pair<ControlPoint, PassingInstruction>> controlPoints = new ArrayList<>();
|
||||
for (Object controlPointUnsafe : controlPointsRaw) {
|
||||
JSONObject controlPointRaw = Helpers.toJSONObjectSafe(controlPointUnsafe);
|
||||
final String passingInstructionString = (String) controlPointRaw.get("passingInstruction");
|
||||
PassingInstruction passing = PassingInstruction.valueOfIgnoringCase(passingInstructionString);
|
||||
JSONArray marksRaw = (JSONArray) controlPointRaw.get("marks");
|
||||
final PassingInstruction passing = PassingInstruction.valueOfIgnoringCase(passingInstructionString);
|
||||
final JSONArray marksRaw = (JSONArray) controlPointRaw.get("marks");
|
||||
if (marksRaw.size() == 1) {
|
||||
String markName = (String) marksRaw.get(0);
|
||||
Mark mark = getService().getBaseDomainFactory().getExistingMarkByIdAsString(markName);
|
||||
final String markName = (String) marksRaw.get(0);
|
||||
final Mark mark = getService().getBaseDomainFactory().getExistingMarkByIdAsString(markName);
|
||||
if (mark == null) {
|
||||
throw new IllegalStateException("Could not resolve mark " + markName);
|
||||
}
|
||||
controlPoints.add(new Pair<>(mark, passing));
|
||||
} else {
|
||||
String markNameA = (String) marksRaw.get(0);
|
||||
String markNameB = (String) marksRaw.get(1);
|
||||
Mark markA = getService().getBaseDomainFactory().getExistingMarkByIdAsString(markNameA);
|
||||
Mark markB = getService().getBaseDomainFactory().getExistingMarkByIdAsString(markNameB);
|
||||
final String markNameA = (String) marksRaw.get(0);
|
||||
final String markNameB = (String) marksRaw.get(1);
|
||||
final Mark markA = getService().getBaseDomainFactory().getExistingMarkByIdAsString(markNameA);
|
||||
final Mark markB = getService().getBaseDomainFactory().getExistingMarkByIdAsString(markNameB);
|
||||
if (markA == null) {
|
||||
throw new IllegalStateException("Could not resolve mark " + markA);
|
||||
}
|
||||
@@ -263,25 +263,24 @@ public class MarkResource extends AbstractSailingServerResource {
|
||||
if (controlPointName == null || controlPointName.isEmpty()) {
|
||||
controlPointName = markA.getName() + "-" + markB.getName();
|
||||
}
|
||||
|
||||
String shortName = (String) controlPointRaw.get(CONTROL_POINT_SHORT_NAME);
|
||||
final String shortName = (String) controlPointRaw.get(CONTROL_POINT_SHORT_NAME);
|
||||
controlPoints.add(new Pair<>(new ControlPointWithTwoMarksImpl(markA, markB, controlPointName,
|
||||
shortName == null ? controlPointName : shortName), passing));
|
||||
}
|
||||
}
|
||||
Course course = new CourseImpl(courseName, lastPublishedCourse.getWaypoints(), originatingCourseTemplateId);
|
||||
final Course course = new CourseImpl(courseName, lastPublishedCourse.getWaypoints(), originatingCourseTemplateId);
|
||||
try {
|
||||
course.update(controlPoints, lastPublishedCourse.getAssociatedRoles(),
|
||||
lastPublishedCourse.getOriginatingCourseTemplateIdOrNull(), getService().getBaseDomainFactory());
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
RaceLogEvent event = new RaceLogCourseDesignChangedEventImpl(MillisecondsTimePoint.now(),
|
||||
final RaceLogEvent event = new RaceLogCourseDesignChangedEventImpl(MillisecondsTimePoint.now(),
|
||||
getService().getServerAuthor(), raceLog.getCurrentPassId(), course, CourseDesignerMode.ADMIN_CONSOLE);
|
||||
raceLog.add(event);
|
||||
CourseBase updatedPublishedCourse = new LastPublishedCourseDesignFinder(raceLog,
|
||||
final CourseBase updatedPublishedCourse = new LastPublishedCourseDesignFinder(raceLog,
|
||||
/* onlyCoursesWithValidWaypointList */ false).analyze();
|
||||
JSONObject jsonResult = new JSONObject();
|
||||
final JSONObject jsonResult = new JSONObject();
|
||||
jsonResult.put("course",
|
||||
new CourseJsonSerializer(new CourseBaseJsonSerializer(
|
||||
new WaypointJsonSerializer(new ControlPointJsonSerializer(new MarkJsonSerializer(),
|
||||
|
||||
+164
-14
@@ -4,6 +4,7 @@ import java.io.Serializable;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@@ -11,9 +12,11 @@ import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.function.Function;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
@@ -55,6 +58,7 @@ import com.sap.sailing.domain.base.CompetitorWithBoat;
|
||||
import com.sap.sailing.domain.base.Course;
|
||||
import com.sap.sailing.domain.base.CourseBase;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.Leg;
|
||||
import com.sap.sailing.domain.base.Mark;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.RaceColumnInSeries;
|
||||
@@ -76,7 +80,11 @@ import com.sap.sailing.domain.common.Tack;
|
||||
import com.sap.sailing.domain.common.TargetTimeInfo;
|
||||
import com.sap.sailing.domain.common.WindSource;
|
||||
import com.sap.sailing.domain.common.abstractlog.NotRevokableException;
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTO;
|
||||
import com.sap.sailing.domain.common.dto.FleetDTO;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardEntryDTO;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardRowDTO;
|
||||
import com.sap.sailing.domain.common.security.SecuredDomainType;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFix;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
|
||||
@@ -88,6 +96,7 @@ import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
|
||||
import com.sap.sailing.domain.tracking.GPSFixTrack;
|
||||
import com.sap.sailing.domain.tracking.Maneuver;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tracking.RaceWindCalculator;
|
||||
import com.sap.sailing.domain.tracking.TrackedLeg;
|
||||
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
|
||||
@@ -100,6 +109,8 @@ import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.coursedata.impl.ControlPointJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseBaseJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseBaseWithGeometryJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseBaseWithGeometryJsonSerializer.CourseGeometry;
|
||||
import com.sap.sailing.server.gateway.serialization.coursedata.impl.GateJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.coursedata.impl.MarkJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.coursedata.impl.WaypointJsonSerializer;
|
||||
@@ -141,6 +152,7 @@ import com.sap.sailing.server.operationaltransformation.AddColumnToSeries;
|
||||
import com.sap.sailing.server.operationaltransformation.UpdateSeries;
|
||||
import com.sap.sailing.server.operationaltransformation.UpdateSpecificRegatta;
|
||||
import com.sap.sse.InvalidDateException;
|
||||
import com.sap.sse.common.Bearing;
|
||||
import com.sap.sse.common.Color;
|
||||
import com.sap.sse.common.Distance;
|
||||
import com.sap.sse.common.Duration;
|
||||
@@ -1061,12 +1073,12 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
response = getBadRegattaErrorResponse(regattaName);
|
||||
} else {
|
||||
getSecurityService().checkCurrentUserReadPermission(regatta);
|
||||
RaceDefinition race = findRaceByName(regatta, raceName);
|
||||
if (race == null) {
|
||||
TrackedRace trackedRace = findTrackedRace(regatta, raceName);
|
||||
if (trackedRace == null) {
|
||||
response = getBadRaceErrorResponse(regattaName, raceName);
|
||||
} else {
|
||||
CourseBase course = race.getCourse();
|
||||
response = getCourseResult(course);
|
||||
CourseBase course = trackedRace.getRace().getCourse();
|
||||
response = getCourseResult(course, trackedRace);
|
||||
}
|
||||
}
|
||||
return response;
|
||||
@@ -1089,14 +1101,13 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
response = getBadRegattaErrorResponse(regattaName);
|
||||
} else {
|
||||
getSecurityService().checkCurrentUserReadPermission(regatta);
|
||||
|
||||
final RaceColumn raceColumn = findRaceColumnByName(regatta, raceColumnName);
|
||||
final Fleet fleet = findFleetByName(raceColumn, fleetName);
|
||||
|
||||
if (raceColumn == null || fleet == null) {
|
||||
response = getBadRaceErrorResponse(regattaName, raceColumnName, fleetName);
|
||||
} else {
|
||||
final RaceDefinition raceDefinition = raceColumn.getRaceDefinition(fleet);
|
||||
final TrackedRace trackedRace = raceColumn.getTrackedRace(fleet);
|
||||
final RaceDefinition raceDefinition = trackedRace == null ? null : trackedRace.getRace();
|
||||
final CourseBase course;
|
||||
if (raceDefinition != null) {
|
||||
course = raceDefinition.getCourse();
|
||||
@@ -1105,29 +1116,88 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
raceColumn.getRaceLog(fleet), /* onlyCoursesWithValidWaypointList */ true);
|
||||
course = courseDesginFinder.analyze();
|
||||
}
|
||||
|
||||
if (course == null) {
|
||||
response = Response.status(Status.NOT_FOUND).entity("No course found for given race.").build();
|
||||
} else {
|
||||
response = getCourseResult(course);
|
||||
response = getCourseResult(course, trackedRace);
|
||||
}
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
private Response getCourseResult(CourseBase course) {
|
||||
/**
|
||||
* @param optionalTrackedRace
|
||||
* if not {@code null}, the tracked race will be used to obtain information about the course geometry
|
||||
* which the serializer will put into the result.
|
||||
*/
|
||||
private Response getCourseResult(CourseBase course, TrackedRace optionalTrackedRace) {
|
||||
Response response;
|
||||
CourseBaseJsonSerializer serializer = new CourseBaseJsonSerializer(new WaypointJsonSerializer(
|
||||
final WaypointJsonSerializer waypointSerializer = new WaypointJsonSerializer(
|
||||
new ControlPointJsonSerializer(new MarkJsonSerializer(), new GateJsonSerializer(
|
||||
new MarkJsonSerializer()))));
|
||||
|
||||
JSONObject jsonCourse = serializer.serialize(course);
|
||||
new MarkJsonSerializer())));
|
||||
final JSONObject jsonCourse;
|
||||
if (optionalTrackedRace == null) {
|
||||
jsonCourse = new CourseBaseJsonSerializer(waypointSerializer).serialize(course);
|
||||
} else {
|
||||
final CourseGeometry geometry = getCourseGeometry(optionalTrackedRace);
|
||||
jsonCourse = new CourseBaseWithGeometryJsonSerializer(waypointSerializer).serialize(new Pair<>(course, geometry));
|
||||
}
|
||||
String json = jsonCourse.toJSONString();
|
||||
response = Response.ok(json).header("Content-Type", MediaType.APPLICATION_JSON + ";charset=UTF-8").build();
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
* The leg distance and bearing is taken for the time point when the first boat enters the leg, or for the start of the race
|
||||
* if no mark passing exists for that leg yet, or for the start of tracking if no start of race exists, or for "now" if no
|
||||
* start of tracking time point exists, either. The total distance is computed as the sum of the leg distances, therefore
|
||||
* not necessarily representing the total course distance at any single point in time.
|
||||
*/
|
||||
private CourseGeometry getCourseGeometry(TrackedRace trackedRace) {
|
||||
assert trackedRace != null;
|
||||
final Course course = trackedRace.getRace().getCourse();
|
||||
Distance totalDistance = Distance.NULL;
|
||||
final Map<Leg, Distance> legDistances = new HashMap<>();
|
||||
final Map<Leg, Bearing> legBearings = new HashMap<>();
|
||||
course.lockForRead();
|
||||
try {
|
||||
for (final Leg leg : course.getLegs()) {
|
||||
final TrackedLeg trackedLeg = trackedRace.getTrackedLeg(leg);
|
||||
final TimePoint timePointForLegGeometry = getTimePointForLegGeometry(trackedRace, leg);
|
||||
final Distance legDistance = trackedLeg.getGreatCircleDistance(timePointForLegGeometry);
|
||||
legDistances.put(leg, legDistance);
|
||||
legBearings.put(leg, trackedLeg.getLegBearing(timePointForLegGeometry));
|
||||
totalDistance = totalDistance.add(legDistance);
|
||||
}
|
||||
} finally {
|
||||
course.unlockAfterRead();
|
||||
}
|
||||
return new CourseGeometry(totalDistance, legDistances, legBearings);
|
||||
}
|
||||
|
||||
private TimePoint getTimePointForLegGeometry(TrackedRace trackedRace, Leg leg) {
|
||||
final Iterable<MarkPassing> markPassingsForLegStart = trackedRace.getMarkPassingsInOrder(leg.getFrom());
|
||||
final Iterator<MarkPassing> firstMarkPassingForLegStartIter = markPassingsForLegStart.iterator();
|
||||
final TimePoint result;
|
||||
if (firstMarkPassingForLegStartIter.hasNext()) {
|
||||
result = firstMarkPassingForLegStartIter.next().getTimePoint();
|
||||
} else {
|
||||
final TimePoint raceStartTime = trackedRace.getStartOfRace();
|
||||
if (raceStartTime != null) {
|
||||
result = raceStartTime;
|
||||
} else {
|
||||
final TimePoint startOfTracking = trackedRace.getStartOfTracking();
|
||||
if (startOfTracking != null) {
|
||||
result = startOfTracking;
|
||||
} else {
|
||||
result = MillisecondsTimePoint.now();
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the target time of the race
|
||||
*
|
||||
@@ -1204,6 +1274,86 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates all start analysis parameters for all competitors in the race.
|
||||
*/
|
||||
@GET
|
||||
@Produces("application/json;charset=UTF-8")
|
||||
@Path("{regattaname}/races/{racename}/startanalysis")
|
||||
public Response getStartAnalysis(@PathParam("regattaname") String regattaName, @PathParam("racename") String raceName,
|
||||
@QueryParam("secret") String regattaSecret) {
|
||||
Response response = null;
|
||||
Regatta regatta = findRegattaByName(regattaName);
|
||||
if (regatta == null) {
|
||||
response = getBadRegattaErrorResponse(regattaName);
|
||||
} else {
|
||||
if (!getService().skipChecksDueToCorrectSecret(regattaName, regattaSecret)) {
|
||||
getSecurityService().checkCurrentUserReadPermission(regatta);
|
||||
}
|
||||
final TrackedRace trackedRace = findTrackedRace(regatta, raceName);
|
||||
if (trackedRace == null) {
|
||||
response = getBadRaceErrorResponse(regattaName, raceName);
|
||||
} else {
|
||||
try {
|
||||
JSONArray jsonStartAnalysis = getStartAnalysis(trackedRace, regatta);
|
||||
String json = jsonStartAnalysis.toJSONString();
|
||||
response = Response.ok(json).header("Content-Type", MediaType.APPLICATION_JSON + ";charset=UTF-8").build();
|
||||
} catch (NoWindException | InterruptedException | ExecutionException e) {
|
||||
response = Response.status(Status.INTERNAL_SERVER_ERROR)
|
||||
.entity("Error computing start analysis for race '" + StringEscapeUtils.escapeHtml(raceName) + "' in regatta '" + StringEscapeUtils.escapeHtml(regattaName) + "': "+
|
||||
StringEscapeUtils.escapeHtml(e.getMessage()))
|
||||
.type(MediaType.TEXT_PLAIN).build();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
private JSONArray getStartAnalysis(TrackedRace trackedRace, Regatta regatta) throws NoWindException, InterruptedException, ExecutionException {
|
||||
assert trackedRace != null;
|
||||
final Leaderboard leaderboard = getService().getLeaderboardByName(regatta.getName());
|
||||
final CompetitorJsonSerializer competitorSerializer = new CompetitorJsonSerializer(new TeamJsonSerializer(new PersonJsonSerializer(
|
||||
new NationalityJsonSerializer())),
|
||||
BoatJsonSerializer.create(), /* serialize non-public fields */ false);
|
||||
final JSONArray result = new JSONArray();
|
||||
if (leaderboard != null) {
|
||||
final RaceDefinition race = trackedRace.getRace();
|
||||
final Map<String, Competitor> competitorByIdAsString = new HashMap<>();
|
||||
for (final Competitor c : race.getCompetitors()) {
|
||||
competitorByIdAsString.put(c.getId().toString(), c);
|
||||
}
|
||||
final Pair<RaceColumn, Fleet> raceColumnAndFleet = regatta.getRaceColumnAndFleet(trackedRace);
|
||||
if (raceColumnAndFleet != null && raceColumnAndFleet.getA() != null) {
|
||||
final LeaderboardDTO latestLeaderboard = leaderboard.getLeaderboardDTO(/* live time point */ null,
|
||||
Arrays.asList(raceColumnAndFleet.getA().getName()), /* addOverallDetails */ false, getService(),
|
||||
getService().getBaseDomainFactory(), /* fillTotalPointsUncorrected */ false);
|
||||
if (latestLeaderboard != null) {
|
||||
for (final Entry<CompetitorDTO, LeaderboardRowDTO> e : latestLeaderboard.rows.entrySet()) {
|
||||
final Competitor competitor = competitorByIdAsString.get(e.getKey().getIdAsString());
|
||||
if (competitor != null) {
|
||||
final LeaderboardRowDTO competitorRow = e.getValue();
|
||||
final LeaderboardEntryDTO entry = competitorRow.fieldsByRaceColumnName.get(raceColumnAndFleet.getA().getName());
|
||||
if (entry != null) {
|
||||
final JSONObject competitorStartAnalysisJson = new JSONObject();
|
||||
competitorStartAnalysisJson.put("competitor", competitorSerializer.serialize(competitor));
|
||||
competitorStartAnalysisJson.put("distanceToStarboardSideOfStartLineInMeters", entry.distanceToStarboardSideOfStartLineInMeters);
|
||||
competitorStartAnalysisJson.put("distanceToStartLineAtStartOfRaceInMeters", entry.distanceToStartLineAtStartOfRaceInMeters);
|
||||
competitorStartAnalysisJson.put("distanceToStartLineFiveSecondsBeforeStartInMeters", entry.distanceToStartLineFiveSecondsBeforeStartInMeters);
|
||||
competitorStartAnalysisJson.put("speedOverGroundAtPassingStartWaypointInKnots", entry.speedOverGroundAtPassingStartWaypointInKnots);
|
||||
competitorStartAnalysisJson.put("speedOverGroundAtStartOfRaceInKnots", entry.speedOverGroundAtStartOfRaceInKnots);
|
||||
competitorStartAnalysisJson.put("speedOverGroundFiveSecondsBeforeStartInKnots", entry.speedOverGroundFiveSecondsBeforeStartInKnots);
|
||||
competitorStartAnalysisJson.put("timeBetweenRaceStartAndCompetitorStartInSeconds", entry.timeBetweenRaceStartAndCompetitorStartInSeconds);
|
||||
result.add(competitorStartAnalysisJson);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the relevant times of the race.
|
||||
|
||||
+1
-1
@@ -198,7 +198,7 @@ public class MediaReplicationTest extends AbstractServerReplicationTest {
|
||||
User currentUser = new UserImpl("test", "email@test", Collections.emptyMap(), null);
|
||||
|
||||
SecurityService securityService = Mockito.mock(SecurityService.class);
|
||||
Mockito.doReturn(defaultTenant).when(securityService).getDefaultTenant();
|
||||
Mockito.doReturn(defaultTenant).when(securityService).getServerGroup();
|
||||
Mockito.doReturn(currentUser).when(securityService).getCurrentUser();
|
||||
Mockito.doReturn(true).when(securityService).hasCurrentUserReadPermission(Mockito.any());
|
||||
Mockito.doNothing().when(securityService).checkCurrentUserReadPermission(Mockito.any());
|
||||
|
||||
+1
-1
@@ -201,7 +201,7 @@ public class MasterDataImportTest {
|
||||
Subject fakeSubject = Mockito.mock(Subject.class);
|
||||
SecurityUtils.setSecurityManager(securityManager);
|
||||
Mockito.doReturn(fakeSubject).when(securityManager).createSubject(Mockito.any());
|
||||
Mockito.doReturn(defaultTenant).when(securityService).getDefaultTenant();
|
||||
Mockito.doReturn(defaultTenant).when(securityService).getServerGroup();
|
||||
Mockito.doReturn(currentUser).when(securityService).getCurrentUser();
|
||||
Mockito.doReturn(true).when(securityService).hasCurrentUserReadPermission(Mockito.any());
|
||||
Mockito.doNothing().when(securityService).checkCurrentUserReadPermission(Mockito.any());
|
||||
|
||||
+1
-1
@@ -126,7 +126,7 @@ public class SearchServiceTest {
|
||||
|
||||
SecurityUtils.setSecurityManager(securityManager);
|
||||
Mockito.doReturn(fakeSubject).when(securityManager).createSubject(Mockito.any());
|
||||
Mockito.doReturn(defaultTenant).when(securityService).getDefaultTenant();
|
||||
Mockito.doReturn(defaultTenant).when(securityService).getServerGroup();
|
||||
Mockito.doReturn(currentUser).when(securityService).getCurrentUser();
|
||||
Mockito.doReturn(true).when(securityService).hasCurrentUserReadPermission(Mockito.any());
|
||||
Mockito.doNothing().when(securityService).checkCurrentUserReadPermission(Mockito.any());
|
||||
|
||||
@@ -34,5 +34,5 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
</launchConfiguration>
|
||||
@@ -36,5 +36,5 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.google.gwt.servlet@default:default,com.googlecode.java-diff-utils@default:default,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.competitorimport@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.datamining@5:true,com.sap.sailing.declination@default:default,com.sap.sailing.domain.bravoadapter@5:true,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.domain@default:default,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.geocoding@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.manage2sail@default:default,com.sap.sailing.monitoring@7:true,com.sap.sailing.news@4:true,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.polars@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.routeconverterjava11extension@default:false,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@5:true,com.sap.sailing.server.interface@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.server@5:true,com.sap.sailing.shared.persistence@default:default,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.udpconnector@default:default,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.www@5:true,com.sap.sailing.xmlexport@5:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sse.common@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sse.datamining@default:default,com.sap.sse.filestorage@4:true,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.gwt@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:false,com.sap.sse.jettyextensions@default:false,com.sap.sse.mail@5:true,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.replication@6:true,com.sap.sse.security.common@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse.security@default:default,com.sap.sse.shared.android@default:default,com.sap.sse.threadmanager@default:default,com.sap.sse@default:default,com.tractrac.clientmodule@default:default,net.sf.marineapi@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default,org.mp4parser.isoparser@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.google.gwt.servlet@default:default,com.googlecode.java-diff-utils@default:default,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.competitorimport@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.datamining@5:true,com.sap.sailing.declination@default:default,com.sap.sailing.domain.bravoadapter@5:true,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.domain@default:default,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.geocoding@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.manage2sail@default:default,com.sap.sailing.monitoring@7:true,com.sap.sailing.news@4:true,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.polars@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.routeconverterjava11extension@default:false,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@5:true,com.sap.sailing.server.interface@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.server@5:true,com.sap.sailing.shared.persistence@default:default,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.udpconnector@default:default,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.www@5:true,com.sap.sailing.xmlexport@5:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sse.common@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sse.datamining@default:default,com.sap.sse.filestorage@4:true,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.gwt@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:false,com.sap.sse.jettyextensions@default:false,com.sap.sse.mail@5:true,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.replication.persistence@default:default,com.sap.sse.replication@6:true,com.sap.sse.security.common@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse.security@default:default,com.sap.sse.shared.android@default:default,com.sap.sse.threadmanager@default:default,com.sap.sse@default:default,com.tractrac.clientmodule@default:default,net.sf.marineapi@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default,org.mp4parser.isoparser@default:default"/>
|
||||
</launchConfiguration>
|
||||
@@ -33,5 +33,5 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
</launchConfiguration>
|
||||
@@ -36,5 +36,5 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
</launchConfiguration>
|
||||
@@ -36,5 +36,5 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
</launchConfiguration>
|
||||
@@ -36,5 +36,5 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
</launchConfiguration>
|
||||
@@ -27,6 +27,6 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
<stringAttribute key="yk-options" value=" additional-options2=onexit\=snapshot "/>
|
||||
</launchConfiguration>
|
||||
+1
-1
@@ -27,6 +27,6 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
<stringAttribute key="yk-options" value=" additional-options2=onexit\=snapshot "/>
|
||||
</launchConfiguration>
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
|
||||
<booleanAttribute key="append.args" value="true"/>
|
||||
<booleanAttribute key="automaticAdd" value="false"/>
|
||||
<booleanAttribute key="automaticValidate" value="false"/>
|
||||
<stringAttribute key="bootstrap" value=""/>
|
||||
<stringAttribute key="checked" value="[NONE]"/>
|
||||
<booleanAttribute key="clearConfig" value="false"/>
|
||||
<stringAttribute key="configLocation" value="${workspace_loc}/target"/>
|
||||
<booleanAttribute key="default" value="true"/>
|
||||
<booleanAttribute key="default_auto_start" value="true"/>
|
||||
<intAttribute key="default_start_level" value="4"/>
|
||||
<booleanAttribute key="includeOptional" value="true"/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.pde.ui.launcher.PDESourceLookupDirector"/>
|
||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;classpathContainer path=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.classpathContainer"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console -clean"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djetty.port=8889 -Dreplication.exchangeName=sapsailinganalytics-replica -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dexpedition.udp.port=2011 -Xmx6000m -XX:+UseG1GC -Djetty.home=${project_loc:com.sap.sailing.server}/../target/configuration/jetty -Djava.util.logging.config.file=${project_loc:com.sap.sailing.server}/../target/configuration/logging_debug.properties -XX:+UseMembar -Dmongo.dbName=other-server -Dreplicate.on.start=com.sap.sse.security.impl.SecurityServiceImpl,com.sap.sailing.shared.server.impl.SharedSailingDataImpl -Dreplicate.master.queue.host=127.0.0.1 -Dreplicate.master.queue.port=5672 -Dreplicate.master.servlet.port=8888 -Dreplicate.master.servlet.host=127.0.0.1 -Dreplicate.master.exchange.name=sapsailinganalytics -Dreplicate.master.username=admin -Dreplicate.master.password=admin -Dcom.sap.sailing.server.name=other-server"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc}"/>
|
||||
<stringAttribute key="pde.version" value="3.3"/>
|
||||
<booleanAttribute key="show_selected_only" value="false"/>
|
||||
<stringAttribute key="target_bundles" value="com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.rabbitmq.client@default:default,com.sun.activation.javax.activation@default:default,com.sun.istack.commons-runtime@default:default,com.sun.jersey.contribs.jersey-multipart@default:default,com.sun.jersey@default:default,com.sun.mail.javax.mail@default:default,com.sun.xml.bind.jaxb-impl@default:default,jackson-core-asl@default:default,jackson-jaxrs@default:default,jackson-mapper-asl@default:default,javax.servlet@default:default,javax.validation@default:default,javax.ws.rs@default:default,javax.xml.stream@default:default,javax.xml.ws@default:default,javax.xml@default:default,jaxb-api@default:default,jcl.over.slf4j@default:default,lz4-java@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.fileupload@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.math3@default:default,org.apache.commons.math@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.felix.shell.remote@0:true,org.apache.felix.shell@0:true,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.poi.ooxml.schemas@default:default,org.apache.poi.ooxml@default:default,org.apache.poi@default:default,org.apache.servicemix.bundles.aws-java-sdk@default:default,org.apache.servicemix.bundles.ehcache@default:default,org.apache.servicemix.bundles.scribe@default:default,org.apache.servicemix.bundles.zxing@default:default,org.apache.shiro.core@default:default,org.apache.shiro.ehcache@default:default,org.apache.shiro.web@default:default,org.apache.xmlbeans@default:default,org.dom4j@default:default,org.eclipse.equinox.cm@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.simpleconfigurator@2:true,org.eclipse.jetty.client@default:default,org.eclipse.jetty.deploy@4:true,org.eclipse.jetty.http@4:true,org.eclipse.jetty.io@4:true,org.eclipse.jetty.jmx@4:true,org.eclipse.jetty.osgi.boot@3:true,org.eclipse.jetty.security@4:true,org.eclipse.jetty.server@4:true,org.eclipse.jetty.servlet@4:true,org.eclipse.jetty.util@4:true,org.eclipse.jetty.webapp@4:true,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.xml@4:true,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.hyperic.sigar@default:default,org.jdom@default:default,org.jvnet.mimepull@default:default,org.mongodb.mongo-java-driver@default:default,org.objectweb.asm@default:default,routeconverter@default:default,slf4j.api@default:default,slf4j.jdk14@default:false"/>
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.google.gwt.servlet@default:default,com.googlecode.java-diff-utils@default:default,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.competitorimport@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.datamining@5:true,com.sap.sailing.declination@default:default,com.sap.sailing.domain.bravoadapter@5:true,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.domain@default:default,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.geocoding@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.manage2sail@default:default,com.sap.sailing.monitoring@7:true,com.sap.sailing.news@4:true,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.polars@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.routeconverterjava11extension@default:false,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@5:true,com.sap.sailing.server.interface@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.server@5:true,com.sap.sailing.shared.persistence@default:default,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.udpconnector@default:default,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.www@5:true,com.sap.sailing.xmlexport@5:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sse.common@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sse.datamining@default:default,com.sap.sse.filestorage@4:true,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.gwt@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:false,com.sap.sse.jettyextensions@default:false,com.sap.sse.mail@5:true,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.replication.persistence@default:default,com.sap.sse.replication@6:true,com.sap.sse.security.common@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse.security@default:default,com.sap.sse.shared.android@default:default,com.sap.sse.threadmanager@default:default,com.sap.sse@default:default,com.tractrac.clientmodule@default:default,net.sf.marineapi@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default,org.mp4parser.isoparser@default:default"/>
|
||||
<stringAttribute key="yk-options" value=" additional-options2=onexit\=snapshot "/>
|
||||
</launchConfiguration>
|
||||
+1
-1
@@ -27,6 +27,6 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
<stringAttribute key="yk-options" value=" additional-options2=onexit\=snapshot "/>
|
||||
</launchConfiguration>
|
||||
+1
-1
@@ -29,6 +29,6 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
<stringAttribute key="yk-options" value=" additional-options2=onexit\=snapshot "/>
|
||||
</launchConfiguration>
|
||||
@@ -27,6 +27,6 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
<stringAttribute key="yk-options" value=" additional-options2=onexit\=snapshot "/>
|
||||
</launchConfiguration>
|
||||
+1
-1
@@ -27,6 +27,6 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
<stringAttribute key="yk-options" value=" additional-options2=onexit\=snapshot "/>
|
||||
</launchConfiguration>
|
||||
@@ -27,5 +27,5 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
</launchConfiguration>
|
||||
@@ -36,5 +36,5 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
</launchConfiguration>
|
||||
@@ -29,9 +29,9 @@
|
||||
<stringAttribute key="profilingTraceType-PERFORMANCE_HOTSPOT_TRACE" value="KEY_SESSION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_USER_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_REQUEST_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_IGNORE_SLEEPING_THREADS%CTX_KEY%true%CTX_ENTRY%KEY_APPLICATION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ENABLEMENT%CTX_KEY%false%CTX_ENTRY%"/>
|
||||
<stringAttribute key="profilingTraceType-SYNCHRONIZATION_TRACE" value="KEY_SESSION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_USER_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_REQUEST_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_APPLICATION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ENABLEMENT%CTX_KEY%false%CTX_ENTRY%"/>
|
||||
<booleanAttribute key="show_selected_only" value="false"/>
|
||||
<stringAttribute key="target_bundles" value="com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.rabbitmq.client@default:default,com.sun.activation.javax.activation@default:default,com.sun.istack.commons-runtime@default:default,com.sun.jersey.contribs.jersey-multipart@default:default,com.sun.jersey@default:default,com.sun.mail.javax.mail@default:default,com.sun.xml.bind.jaxb-impl@default:default,jackson-core-asl@default:default,jackson-jaxrs@default:default,jackson-mapper-asl@default:default,javax.servlet@default:default,javax.validation@default:default,javax.ws.rs@default:default,javax.xml.stream@default:default,javax.xml.ws@default:default,javax.xml@default:default,jaxb-api@default:default,jcl.over.slf4j@default:default,lz4-java@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.fileupload@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.math3@default:default,org.apache.commons.math@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.felix.shell.remote@0:true,org.apache.felix.shell@0:true,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.poi.ooxml.schemas@default:default,org.apache.poi.ooxml@default:default,org.apache.poi@default:default,org.apache.servicemix.bundles.aws-java-sdk@default:default,org.apache.servicemix.bundles.ehcache@default:default,org.apache.servicemix.bundles.scribe@default:default,org.apache.servicemix.bundles.zxing@default:default,org.apache.shiro.core@default:default,org.apache.shiro.ehcache@default:default,org.apache.shiro.web@default:default,org.apache.xmlbeans@default:default,org.dom4j@default:default,org.eclipse.equinox.cm@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.simpleconfigurator@2:true,org.eclipse.jetty.client@default:default,org.eclipse.jetty.deploy@4:true,org.eclipse.jetty.http@4:true,org.eclipse.jetty.io@4:true,org.eclipse.jetty.jmx@4:true,org.eclipse.jetty.osgi.boot@3:true,org.eclipse.jetty.security@4:true,org.eclipse.jetty.server@4:true,org.eclipse.jetty.servlet@4:true,org.eclipse.jetty.util@4:true,org.eclipse.jetty.webapp@4:true,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.xml@4:true,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.hyperic.sigar@default:default,org.jdom@default:default,org.jvnet.mimepull@default:default,org.mongodb.mongo-java-driver@default:default,org.objectweb.asm@default:default,routeconverter@default:default,slf4j.api@default:default,slf4j.jdk14@default:false"/>
|
||||
<stringAttribute key="target_bundles" value="routeconverter@default:default,org.apache.commons.codec@default:default,org.apache.poi@default:default,org.apache.poi.ooxml@default:default,org.apache.poi.ooxml.schemas@default:default,org.dom4j@default:default,org.apache.xmlbeans@default:default,org.apache.commons.math@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.objectweb.asm@default:default,org.hyperic.sigar@default:default,com.sun.jersey.contribs.jersey-multipart@default:default,javax.validation@default:default,org.apache.commons.fileupload@default:default,org.jdom@default:default,org.jvnet.mimepull@default:default,org.apache.commons.math3@default:default,org.mongodb.mongo-java-driver@default:default,org.eclipse.jetty.osgi.boot@3:true,slf4j.jdk14@default:default,org.apache.felix.shell@0:true,org.apache.felix.shell.remote@0:true,lz4-java@default:default,javax.servlet@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.eclipse.jetty.deploy@4:true,org.eclipse.jetty.http@4:true,org.eclipse.jetty.io@4:true,org.eclipse.jetty.jmx@4:true,org.eclipse.jetty.security@4:true,org.eclipse.jetty.server@4:true,org.eclipse.jetty.servlet@4:true,org.eclipse.jetty.util@4:true,org.eclipse.jetty.webapp@4:true,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.xml@4:true,slf4j.api@default:default,org.apache.servicemix.bundles.zxing@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,org.apache.commons.io@default:default,jcl.over.slf4j@default:default,org.apache.servicemix.bundles.aws-java-sdk@default:default,com.sun.mail.javax.mail@default:default,com.rabbitmq.client@default:default,org.apache.commons.lang@default:default,jackson-jaxrs@default:default,com.sun.jersey@default:default,javax.ws.rs@default:default,org.apache.commons.beanutils@default:default,org.apache.servicemix.bundles.ehcache@default:default,org.apache.servicemix.bundles.scribe@default:default,org.apache.shiro.core@default:default,org.apache.shiro.ehcache@default:default,org.apache.shiro.web@default:default,jackson-core-asl@default:default,jackson-mapper-asl@default:default,org.apache.commons.collections@default:default,org.eclipse.jetty.client@default:default,javax.xml@default:default,com.sun.activation.javax.activation@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.simpleconfigurator@2:true,org.eclipse.osgi@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.equinox.cm@default:default,com.sun.istack.commons-runtime@default:default,jaxb-api@default:default,com.sun.xml.bind.jaxb-impl@default:default,javax.xml.stream@default:default,javax.xml.ws@default:default,org.eclipse.osgi.util@default:default"/>
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.google.gwt.servlet@default:default,com.googlecode.java-diff-utils@default:default,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.competitorimport@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.datamining@5:true,com.sap.sailing.declination@default:default,com.sap.sailing.domain.bravoadapter@5:true,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.domain@default:default,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.geocoding@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.manage2sail@default:default,com.sap.sailing.monitoring@7:true,com.sap.sailing.news@4:true,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.polars@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.routeconverterjava11extension@default:false,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway.test.support@default:default,com.sap.sailing.server.gateway@5:true,com.sap.sailing.server.interface@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.server@5:true,com.sap.sailing.shared.persistence@default:default,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.udpconnector@default:default,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.www@5:true,com.sap.sailing.xmlexport@5:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sse.common@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sse.datamining@default:default,com.sap.sse.filestorage@4:true,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.gwt@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:false,com.sap.sse.jettyextensions@default:false,com.sap.sse.mail@5:true,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.replication@6:true,com.sap.sse.security.common@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse.security@default:default,com.sap.sse.shared.android@default:default,com.sap.sse.threadmanager@default:default,com.sap.sse@default:default,com.tractrac.clientmodule@default:default,net.sf.marineapi@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default,org.mp4parser.isoparser@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default,com.sap.sailing.server.gateway.test.support@default:default"/>
|
||||
</launchConfiguration>
|
||||
+1
-1
@@ -27,6 +27,6 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.sap.sailing.geocoding@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain@default:default,com.sap.sailing.news@4:true,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.domain.windfinderadapter@4:true,com.sap.sailing.server@5:true,com.sap.sailing.server.gateway@5:true,com.tractrac.clientmodule@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingadapter.persistence@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@4:true,com.sap.sailing.gwt.ui@6:true,com.sap.sailing.udpconnector@default:default,com.sap.sailing.xmlexport@5:true,com.sap.sailing.simulator@default:default,com.sap.sailing.www@5:true,com.sap.sailing.resultimport@4:true,com.sap.sailing.kiworesultimport@4:true,com.sap.sailing.ess40.resultimport@4:true,com.sap.sailing.freg.resultimport@4:true,com.sap.sailing.barbados.resultimport@4:true,com.sap.sailing.sailwave.resultimport@4:true,com.sap.sailing.manage2sail.resultimport@4:true,com.sap.sailing.yachtscoring.resultimport@4:true,com.sap.sailing.velum.resultimport@4:true,com.sap.sailing.monitoring@7:true,com.sap.sailing.xrr.resultimport@4:true,com.sap.sailing.domain.igtimiadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@4:true,com.sap.sailing.domain.deckmanadapter@5:true,com.sap.sailing.xrr.structureimport@default:default,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.dashboards.gwt@6:true,com.sap.sailing.datamining@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.polars@5:true,com.sap.sailing.windestimation@5:true,com.sap.sailing.polars.datamining@5:true,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.competitorimport@default:default,com.sap.sailing.datamining.provider@default:default,com.sap.sailing.grib@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.domain.expeditionadapter@5:true,com.sap.sailing.expeditionconnector.persistence@4:true,com.sap.sailing.expeditionconnector.common@default:default,com.sap.sailing.domain.bravoadapter@5:true,net.sf.marineapi@default:default,com.sap.sailing.routeconverterjava11extension@default:default,com.sap.sailing.server.interface@default:default,com.sap.sse.datamining.ui@default:default,com.sap.sailing.domain.igtimiadapter.gateway@5:true,com.sap.sailing.shared.server@5:true,com.sap.sailing.shared.server.gateway@5:true,com.sap.sailing.shared.persistence@default:default,com.tractrac.clientmodule@default:default,com.sap.sse.gwt@default:default,com.google.gwt.servlet@default:default,com.sap.sse.security@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@6:true,com.sap.sse.filestorage@4:true,com.sap.sse.shared.android@default:default,com.sap.sse.mail@5:true,com.sap.sse.threadmanager@default:default,com.sap.sse.security.common@default:default,org.json.simple@default:default,com.sap.sse.jersey.jaxbdependencyfragment@default:default,org.moxieapps.gwt.highcharts@default:default,com.googlecode.java-diff-utils@default:default,org.mp4parser.isoparser@default:default,com.sap.sse.replication.interfaces@default:default,com.sap.sse.security.persistence@default:default,com.sap.sse.security.interface@default:default,com.sap.sse.jettyextensions@default:default,com.sap.sse.replication.persistence@default:default"/>
|
||||
<stringAttribute key="yk-options" value=" additional-options2=onexit\=snapshot "/>
|
||||
</launchConfiguration>
|
||||
@@ -216,7 +216,7 @@ public class Activator implements BundleActivator {
|
||||
if (securityService.isInitialOrMigration()) {
|
||||
// The server is initially set to be public by adding sailing_viewer role to the server group
|
||||
// with forAll=true
|
||||
securityService.putRoleDefinitionToUserGroup(securityService.getDefaultTenant(),
|
||||
securityService.putRoleDefinitionToUserGroup(securityService.getServerGroup(),
|
||||
sailingViewerRoleDefinition, true);
|
||||
// sailing_viewer role is publicly readable
|
||||
securityService.addToAccessControlList(sailingViewerRoleDefinition.getIdentifier(), null, DefaultActions.READ.name());
|
||||
|
||||
@@ -62,12 +62,19 @@ public abstract class UDPReceiver<MessageType extends UDPMessage, ListenerType e
|
||||
message = queue.poll(/* timeout */ 10000, TimeUnit.MILLISECONDS);
|
||||
while (!stopped) {
|
||||
if (message != null) {
|
||||
listener.received(message);
|
||||
try {
|
||||
listener.received(message);
|
||||
} catch (Exception e) {
|
||||
logger.log(Level.WARNING, "Exception "+e.getMessage()+
|
||||
" while trying to dispaatch UDP message "+message+
|
||||
" to listener "+listener, e);
|
||||
}
|
||||
}
|
||||
message = queue.poll(/* timeout */ 10000, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
// when interrupted, this means we'll terminate
|
||||
logger.warning("Listener thread for "+listener+" got interrupted and will now terminate.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,30 @@
|
||||
<div class="mainContent">
|
||||
<h2 class="releaseHeadline">Release Notes - Administration Console</h2>
|
||||
<div class="innerContent">
|
||||
<h2 class="articleSubheadline">February 2020</h2>
|
||||
<ul class="bulletList">
|
||||
<li>The "Local Server" tab now refreshes automatically when it comes into view.</li>
|
||||
<li>There is a new system property <tt>repliate.restore.replicas</tt>. When it is set to <tt>true</tt>
|
||||
(which is the default),
|
||||
upon start-up the server instance will read the replica descriptors stored persistently when
|
||||
a replica registers, assuming that those replicas are still alive and want to continue to
|
||||
receive replication updates from this server. This way, replicas may not have to be
|
||||
re-started or re-connected to the re-started master instance. Note, though, that
|
||||
as the re-started master loads races, those loading activities will be broadcast
|
||||
to all replicas which are likely to have all that information already. Use the flag, e.g.,
|
||||
in the <tt>ADDITIONAL_JAVA_ARGS</tt> environment variable that the <tt>start</tt> script
|
||||
will consider, as in<pre>
|
||||
ADDITIONAL_JAVA_ARGS="${ADDITIONAL_JAVA_ARGS} -Drepliate.restore.replicas=true"
|
||||
</pre></li>
|
||||
<li>Replication from replica to master will now re-send upon HTTP status 404 which
|
||||
may indicate a re-starting master where the health check hasn't properly disabled
|
||||
forwarding requests to the instance.
|
||||
</li>
|
||||
<li>Replication operations that a replica needs to send back to the master instance are
|
||||
now consistently sent in a background task, avoiding any hold-ups and latencies in
|
||||
client / user interaction.
|
||||
</li>
|
||||
</ul>
|
||||
<h2 class="articleSubheadline">January 2020</h2>
|
||||
<ul class="bulletList">
|
||||
<li>Overhaul of the Result Import URLs page to be more user friendly and to better fit in with
|
||||
@@ -46,7 +70,7 @@
|
||||
</ul>
|
||||
<h2 class="articleSubheadline">November 2019</h2>
|
||||
<ul class="bulletList">
|
||||
<li>Added system property <tt>security.sharedAcrossSubdomains</tt> which can be used to
|
||||
<li>Added system property <tt>security.sharedAcrossSubdomainsOf</tt> which can be used to
|
||||
configure the security service as shared across several subdomains of the parent
|
||||
domain specified by the system property. Use, e.g., as in<pre>
|
||||
-Dsecurity.sharedAcrossSubdomainsOf=sapsailing.com
|
||||
|
||||
@@ -220,7 +220,7 @@ Computes leaderboard information for sailing races and offers RESTful APIs to al
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
<plugin
|
||||
id="com.sap.sse.jettyextensions"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
@@ -228,4 +228,11 @@ Computes leaderboard information for sailing races and offers RESTful APIs to al
|
||||
fragment="true"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.sap.sse.replication.persistence"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
</feature>
|
||||
+2
-4
@@ -104,8 +104,8 @@
|
||||
-moz-transform: translate(0, -50%);
|
||||
-ms-transform: translate(0, -50%);
|
||||
transform: translate(0, -50%);
|
||||
width: 4em;
|
||||
height: 4em;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
background-image:
|
||||
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxNzkyQ0E2OUQ0MzgxMUUzQTM5MEI2NkI4RTRCODhEMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxNzkyQ0E2QUQ0MzgxMUUzQTM5MEI2NkI4RTRCODhEMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE3OTJDQTY3RDQzODExRTNBMzkwQjY2QjhFNEI4OEQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE3OTJDQTY4RDQzODExRTNBMzkwQjY2QjhFNEI4OEQzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8Qas9QAAA/9JREFUeNrs3T1LW1EYwHFzk2poS1sthSJipRrFRcEX0CWmgkMHv0YHd2dxlDsGAv0IfgIRlYIgWYpBF4cW0SjokFYL0oY0L80zZKlx8t5zntzz/4Mf4Dm/E5PDzb2JTU9Pf+6iyOaxBAATwAQwAUwAE8AEMMAEMAFMABPABDDpBk4kEjH5i8qiaprH07AYuVzuQzabzUQBWWaQWWQmDfN4GnCnpqZGJicnhyYmJl51OrDMILPITBqQ4/39/cu2cSuVyt+1tbWtg4ODUqcDX11dlYvF4nU6nX4/MDDwpjnfy62trbN6ve4OcDvcnZ2d66i8B5+ent5pQTYOHHVcbchGgV3B1YRsDNg1XC3IRoBdxX0Iufkp+8X29va5CeTQgVvnwpmZmZSLuO2QBwcHjSGHCtzCnZ2ddRrXJnJowODqQA4FGFw9yIEDg6sLOVBgcPUhB36xIR6Px6DTs3aBvoJl58khXg7zct6TnSk7VHYqfPdbWlp6u76+/rG7u/vJ4eHh95WVlS/VarWh+j0YZD24oX2KBlkHbqjnYJDt44YKDLJ93NCBQbaLawQYZHu4xoBdRraJaxTYRWTbuMaBXULWgGsF2AVkLbjWgB9CLhQK5/K94k7Gbc7T6/v+sgZcKWFzMWRwWYBcLtdVq9Uax8fHt53+6pUZjo6OzuTCgW1cKabhWZWt2ztsL0YU50loWJCowGqch/uDIx7AABPABDABTAATwAQwwAQwAUwAE8D0qORy4TTLwCuYACaACWACmAAmgAEmgAlgApgAJoAJYIAtJffSRukhpprm8TQshu/7QxsbG++igCwzyCwyk4Z5PA246XS6b25urnd0dLSn04FlBplFZtKALM/o+GQbt1wu11dXV78VCoXfnQ5cKpWqJycnd4uLi33Dw8NPx8bGenZ3d381Gg13gNvh5vP5yDxG6fLysqIF2Thw1HG1IRsFdgVXE7IxYNdwtSAbAXYV9yHkVCrVvbe3ZwQ5dODWuXBhYeG1i7jtkEdGRp6ZQg4VuIWbyWScxrWJHBowuDqQQwEGVw9y4MDg6kIOFBhcfciBX2zwPI/fLlS0doG+gmXnySFeDvNy3pOdKTtUdip895ufn3/u+34qmUx6+/v7P5v/8c7kudmq34NB1oMb2qdokHXghnoOBtk+bqjAINvHDR0YZLu4RoBBtodrDNhlZJu4RoFdRLaNaxzYJWQNuFaAXUDWgmsN+CHkfD5/K98r7mTc8fHxZDabHdOAaxX4f+SLi4s/m5ubP2x9QTyobm5uak3knmKxWLaNK8lvF361vSit2ztsL0YU51Hx24VRgdU4D/cHRzyAASaACWACmAAmgAlggAlgApgAJoDpUf0TYADnqrAanCLw9QAAAABJRU5ErkJggg==)
|
||||
}
|
||||
@@ -119,8 +119,6 @@
|
||||
|
||||
.slider .slick-prev {
|
||||
left: 0px;
|
||||
height: 60px;
|
||||
width: 60px;
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
|
||||
+62
-12
@@ -7,6 +7,8 @@ import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.core.client.Scheduler;
|
||||
import com.google.gwt.dom.client.Document;
|
||||
import com.google.gwt.dom.client.Element;
|
||||
import com.google.gwt.dom.client.Style.Overflow;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.user.client.Command;
|
||||
@@ -66,6 +68,8 @@ public class WidgetCarousel extends Composite {
|
||||
private boolean showArrows = true;
|
||||
|
||||
private LinkedList<Widget> items = new LinkedList<Widget>();
|
||||
|
||||
private boolean initialized;
|
||||
|
||||
/**
|
||||
* Widget constructor
|
||||
@@ -74,17 +78,51 @@ public class WidgetCarousel extends Composite {
|
||||
initWidget(ourUiBinder.createAndBindUi(this));
|
||||
uniqueId = Document.get().createUniqueId();
|
||||
sliderMainUi.addStyleName(uniqueId);
|
||||
sliderMainUi.getElement().getStyle().setHeight(0, Unit.PX);
|
||||
sliderMainUi.getElement().getStyle().setOverflowY(Overflow.HIDDEN);
|
||||
}
|
||||
|
||||
private void initializeIfRequired() {
|
||||
// Slick slider may only get initialized when it is attached to DOM, visible and items are added
|
||||
// Rendering bugs may occur otherwise
|
||||
if (!initialized && !items.isEmpty() && isAttached() && isVisible()) {
|
||||
initialized = true;
|
||||
initAfterReflow();
|
||||
}
|
||||
}
|
||||
|
||||
private void initAfterReflow() {
|
||||
// Slick slider initialization will produce layout problems when the content widget sizes aren't calculated yet.
|
||||
// Until the initial reflow happened, widget size are reported as 0. If that's the case,
|
||||
// initialization is deferred after the reflow.
|
||||
if (items.getFirst().getElement().getOffsetWidth() > 10
|
||||
&& items.getFirst().getElement().getOffsetHeight() > 10) {
|
||||
init();
|
||||
sliderMainUi.getElement().getStyle().setWidth(items.getFirst().getElement().getOffsetWidth(), Unit.PX);
|
||||
sliderMainUi.getElement().getStyle().setHeight(items.getFirst().getElement().getOffsetHeight(), Unit.PX);
|
||||
Scheduler.get().scheduleDeferred(sliderMainUi.getElement().getStyle()::clearOverflowY);
|
||||
} else {
|
||||
Scheduler.get().scheduleDeferred(this::initAfterReflow);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visible) {
|
||||
super.setVisible(visible);
|
||||
initializeIfRequired();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onLoad() {
|
||||
super.onLoad();
|
||||
init();
|
||||
// onLoad is called before the element is completely attached to the DOM.
|
||||
// Using scheduleFinally ensures, this is finished before continuing with the initialization.
|
||||
Scheduler.get().scheduleFinally(this::initializeIfRequired);
|
||||
}
|
||||
|
||||
public void onAfterChange() {
|
||||
for (Iterator<Widget> iterator = items.iterator(); iterator.hasNext();) {
|
||||
Widget widget = (Widget) iterator.next();
|
||||
Widget widget = iterator.next();
|
||||
final Element parent = widget.getElement();
|
||||
|
||||
if (parent != null) {
|
||||
@@ -116,7 +154,6 @@ public class WidgetCarousel extends Composite {
|
||||
* @param uniqueId
|
||||
*/
|
||||
native void setupSlider(WidgetCarousel sliderReference) /*-{
|
||||
|
||||
$wnd
|
||||
.$(
|
||||
'.'
|
||||
@@ -155,21 +192,34 @@ public class WidgetCarousel extends Composite {
|
||||
}-*/;
|
||||
|
||||
/**
|
||||
* Add new image to carousel.
|
||||
* Set widgets to be shown by the carousel.
|
||||
*
|
||||
* @param url
|
||||
*
|
||||
*/
|
||||
public void addWidget(Widget slide) {
|
||||
if (items.isEmpty()) {
|
||||
if (slide instanceof LazyLoadable) {
|
||||
LazyLoadable lazyLoadable = (LazyLoadable) slide;
|
||||
lazyLoadable.doInitializeLazyComponents();
|
||||
public void setWidgets(Iterable<Widget> slides) {
|
||||
// May only be called once because items added after the initialization of slick slider are not recognized.
|
||||
// If adding items should be supported, the integration needs to be extended to also update the slider model.
|
||||
assert items.isEmpty();
|
||||
for (Widget slide : slides) {
|
||||
items.add(slide);
|
||||
sliderMainUi.add(slide);
|
||||
}
|
||||
if (!items.isEmpty()) {
|
||||
ensureInitialized(items.getFirst());
|
||||
if (items.size() > 1) {
|
||||
ensureInitialized(items.get(1));
|
||||
}
|
||||
ensureInitialized(items.getLast());
|
||||
}
|
||||
initializeIfRequired();
|
||||
}
|
||||
|
||||
private void ensureInitialized(Widget slide) {
|
||||
if (slide instanceof LazyLoadable) {
|
||||
LazyLoadable lazyLoadable = (LazyLoadable) slide;
|
||||
lazyLoadable.doInitializeLazyComponents();
|
||||
}
|
||||
items.add(slide);
|
||||
sliderMainUi.add(slide);
|
||||
onAfterChange();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+2
-4
@@ -25,8 +25,6 @@
|
||||
|
||||
.slider .slick-prev {
|
||||
left: 0px;
|
||||
height: 60px;
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.slick-prev, .slick-next {
|
||||
@@ -39,8 +37,8 @@
|
||||
-moz-transform: translate(0, -50%);
|
||||
-ms-transform: translate(0, -50%);
|
||||
transform: translate(0, -50%);
|
||||
width: 4em;
|
||||
height: 4em;
|
||||
height: 60px;
|
||||
width: 60px;
|
||||
background-image:
|
||||
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxNzkyQ0E2OUQ0MzgxMUUzQTM5MEI2NkI4RTRCODhEMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxNzkyQ0E2QUQ0MzgxMUUzQTM5MEI2NkI4RTRCODhEMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE3OTJDQTY3RDQzODExRTNBMzkwQjY2QjhFNEI4OEQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE3OTJDQTY4RDQzODExRTNBMzkwQjY2QjhFNEI4OEQzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8Qas9QAAA/9JREFUeNrs3T1LW1EYwHFzk2poS1sthSJipRrFRcEX0CWmgkMHv0YHd2dxlDsGAv0IfgIRlYIgWYpBF4cW0SjokFYL0oY0L80zZKlx8t5zntzz/4Mf4Dm/E5PDzb2JTU9Pf+6iyOaxBAATwAQwAUwAE8AEMMAEMAFMABPABDDpBk4kEjH5i8qiaprH07AYuVzuQzabzUQBWWaQWWQmDfN4GnCnpqZGJicnhyYmJl51OrDMILPITBqQ4/39/cu2cSuVyt+1tbWtg4ODUqcDX11dlYvF4nU6nX4/MDDwpjnfy62trbN6ve4OcDvcnZ2d66i8B5+ent5pQTYOHHVcbchGgV3B1YRsDNg1XC3IRoBdxX0Iufkp+8X29va5CeTQgVvnwpmZmZSLuO2QBwcHjSGHCtzCnZ2ddRrXJnJowODqQA4FGFw9yIEDg6sLOVBgcPUhB36xIR6Px6DTs3aBvoJl58khXg7zct6TnSk7VHYqfPdbWlp6u76+/rG7u/vJ4eHh95WVlS/VarWh+j0YZD24oX2KBlkHbqjnYJDt44YKDLJ93NCBQbaLawQYZHu4xoBdRraJaxTYRWTbuMaBXULWgGsF2AVkLbjWgB9CLhQK5/K94k7Gbc7T6/v+sgZcKWFzMWRwWYBcLtdVq9Uax8fHt53+6pUZjo6OzuTCgW1cKabhWZWt2ztsL0YU50loWJCowGqch/uDIx7AABPABDABTAATwAQwwAQwAUwAE8D0qORy4TTLwCuYACaACWACmAAmgAEmgAlgApgAJoAJYIAtJffSRukhpprm8TQshu/7QxsbG++igCwzyCwyk4Z5PA246XS6b25urnd0dLSn04FlBplFZtKALM/o+GQbt1wu11dXV78VCoXfnQ5cKpWqJycnd4uLi33Dw8NPx8bGenZ3d381Gg13gNvh5vP5yDxG6fLysqIF2Thw1HG1IRsFdgVXE7IxYNdwtSAbAXYV9yHkVCrVvbe3ZwQ5dODWuXBhYeG1i7jtkEdGRp6ZQg4VuIWbyWScxrWJHBowuDqQQwEGVw9y4MDg6kIOFBhcfciBX2zwPI/fLlS0doG+gmXnySFeDvNy3pOdKTtUdip895ufn3/u+34qmUx6+/v7P5v/8c7kudmq34NB1oMb2qdokHXghnoOBtk+bqjAINvHDR0YZLu4RoBBtodrDNhlZJu4RoFdRLaNaxzYJWQNuFaAXUDWgmsN+CHkfD5/K98r7mTc8fHxZDabHdOAaxX4f+SLi4s/m5ubP2x9QTyobm5uak3knmKxWLaNK8lvF361vSit2ztsL0YU51Hx24VRgdU4D/cHRzyAASaACWACmAAmgAlggAlgApgAJoDpUf0TYADnqrAanCLw9QAAAABJRU5ErkJggg==)
|
||||
}
|
||||
|
||||
@@ -6,7 +6,8 @@ Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Vendor: SAP
|
||||
Automatic-Module-Name: com.sap.sse.replication.interfaces
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Export-Package: com.sap.sse.replication
|
||||
Export-Package: com.sap.sse.replication,
|
||||
com.sap.sse.replication.impl
|
||||
Import-Package: com.rabbitmq.client;version="2.8.4",
|
||||
org.json.simple
|
||||
Require-Bundle: com.sap.sse.operationaltransformation;bundle-version="1.0.0",
|
||||
|
||||
+1
-1
@@ -58,7 +58,7 @@ public interface OperationsToMasterSender<S, O extends OperationWithResult<S, ?>
|
||||
dos.writeUTF(getId().toString());
|
||||
this.writeOperation(operationWithResultWithIdWrapper, outputStream, /* closeStream */ true);
|
||||
final int responseCode = connection.getResponseCode();
|
||||
if (responseCode < 300 || responseCode >= 500) {
|
||||
if (responseCode < 300 || responseCode >= 500 || responseCode == 404) {
|
||||
// if OK or an internal error, process as usual; in case of >= 500 this will throw an exception
|
||||
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
|
||||
bufferedReader.close();
|
||||
|
||||
+11
-3
@@ -27,10 +27,18 @@ public class ReplicaDescriptorImpl implements ReplicaDescriptor {
|
||||
/**
|
||||
* Sets the registration time to now.
|
||||
*/
|
||||
public ReplicaDescriptorImpl(InetAddress ipAddress, UUID serverUuid, String additionalInformation, String[] replicableIdsAsStrings) {
|
||||
public ReplicaDescriptorImpl(InetAddress ipAddress, UUID id, String additionalInformation, String[] replicableIdsAsStrings) {
|
||||
this(ipAddress, id, MillisecondsTimePoint.now(), additionalInformation, replicableIdsAsStrings);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the registration time to now.
|
||||
*/
|
||||
public ReplicaDescriptorImpl(InetAddress ipAddress, UUID id, TimePoint registrationTime,
|
||||
String additionalInformation, String[] replicableIdsAsStrings) {
|
||||
assert replicableIdsAsStrings != null && replicableIdsAsStrings.length > 0;
|
||||
this.uuid = serverUuid;
|
||||
this.registrationTime = MillisecondsTimePoint.now();
|
||||
this.uuid = id;
|
||||
this.registrationTime = registrationTime;
|
||||
this.ipAddress = ipAddress;
|
||||
this.additionalInformation = additionalInformation;
|
||||
this.replicableIdsAsStrings = replicableIdsAsStrings;
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>com.sap.sse.replication.persistence</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,7 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
@@ -0,0 +1,16 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Persistence
|
||||
Bundle-SymbolicName: com.sap.sse.replication.persistence
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Vendor: SAP
|
||||
Automatic-Module-Name: com.sap.sse.replication.persistence
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Require-Bundle: com.sap.sse.replication.interfaces,
|
||||
org.mongodb.mongo-java-driver;bundle-version="3.6.4",
|
||||
com.sap.sse.common
|
||||
Import-Package: com.sap.sse.mongodb,
|
||||
org.osgi.framework;version="1.8.0"
|
||||
Export-Package: com.sap.sse.replication.persistence
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-Activator: com.sap.sse.replication.persistence.impl.Activator
|
||||
@@ -0,0 +1,4 @@
|
||||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>root</artifactId>
|
||||
<groupId>com.sap.sailing</groupId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>com.sap.sse.replication.persistence</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
</project>
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package com.sap.sse.replication.persistence;
|
||||
|
||||
import com.sap.sse.replication.ReplicaDescriptor;
|
||||
|
||||
public interface DomainObjectFactory {
|
||||
Iterable<ReplicaDescriptor> loadReplicaDescriptors();
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package com.sap.sse.replication.persistence;
|
||||
|
||||
import com.sap.sse.replication.ReplicaDescriptor;
|
||||
|
||||
public interface MongoObjectFactory {
|
||||
void storeReplicaDescriptor(ReplicaDescriptor replicaDescriptor);
|
||||
|
||||
void removeReplicaDescriptor(ReplicaDescriptor replicaDescriptor);
|
||||
}
|
||||
Loaded 100 of 142 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user